diff options
author | Daniel Gl?ckner <[email protected]> | 2010-08-10 18:02:26 -0700 |
---|---|---|
committer | Linus Torvalds <[email protected]> | 2010-08-11 08:59:09 -0700 |
commit | 364fadb32b67695cec610f5cd03df2514ef0f2b0 (patch) | |
tree | 0f4fa1741d83183e55e07d425426d954493485eb | |
parent | 5ba1821d1b4a506f8c9be93d962f22b24b6140a5 (diff) |
gpiolib: allow nested threaded irqs for poll(2)
The pca953x driver requires the use of threaded irqs as its irq
demultiplexer can sleep. Our irq handler can be called from any context,
so use request_any_context_irq to allow threaded irqs as well.
Signed-off-by: Daniel Gl?ckner <[email protected]>
Reported-by: Ian Jeffray <[email protected]>
Cc: David Brownell <[email protected]>
Signed-off-by: Andrew Morton <[email protected]>
Signed-off-by: Linus Torvalds <[email protected]>
-rw-r--r-- | drivers/gpio/gpiolib.c | 4 |
1 files changed, 2 insertions, 2 deletions
diff --git a/drivers/gpio/gpiolib.c b/drivers/gpio/gpiolib.c index 8a29404985f1..21da9c19a0cb 100644 --- a/drivers/gpio/gpiolib.c +++ b/drivers/gpio/gpiolib.c @@ -386,9 +386,9 @@ static int gpio_setup_irq(struct gpio_desc *desc, struct device *dev, } } - ret = request_irq(irq, gpio_sysfs_irq, irq_flags, + ret = request_any_context_irq(irq, gpio_sysfs_irq, irq_flags, "gpiolib", value_sd); - if (ret) + if (ret < 0) goto free_id; desc->flags |= gpio_flags; |