summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorDaniel Gl?ckner <dg@emlix.com>2010-08-10 18:02:26 -0700
committerLinus Torvalds <torvalds@linux-foundation.org>2010-08-11 08:59:09 -0700
commit364fadb32b67695cec610f5cd03df2514ef0f2b0 (patch)
tree0f4fa1741d83183e55e07d425426d954493485eb
parent5ba1821d1b4a506f8c9be93d962f22b24b6140a5 (diff)
downloadlinux-3.10-364fadb32b67695cec610f5cd03df2514ef0f2b0.tar.gz
linux-3.10-364fadb32b67695cec610f5cd03df2514ef0f2b0.tar.bz2
linux-3.10-364fadb32b67695cec610f5cd03df2514ef0f2b0.zip
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 <dg@emlix.com> Reported-by: Ian Jeffray <ian@jeffray.co.uk> Cc: David Brownell <david-b@pacbell.net> Signed-off-by: Andrew Morton <akpm@linux-foundation.org> Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
-rw-r--r--drivers/gpio/gpiolib.c4
1 files changed, 2 insertions, 2 deletions
diff --git a/drivers/gpio/gpiolib.c b/drivers/gpio/gpiolib.c
index 8a29404985f..21da9c19a0c 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;