diff options
author | Mike Frysinger <vapier@gentoo.org> | 2009-09-14 19:43:49 +0200 |
---|---|---|
committer | Marcel Holtmann <marcel@holtmann.org> | 2010-01-30 14:57:26 +0100 |
commit | 7427847d2d044d85f478757ea03165ae3cfe87c4 (patch) | |
tree | 17c2da9c5dc61ccf4151065483a0751eb26f8dd8 /drivers/bluetooth/bluecard_cs.c | |
parent | Bluetooth: Fix memory leak in L2CAP (diff) | |
download | linux-7427847d2d044d85f478757ea03165ae3cfe87c4.tar.xz linux-7427847d2d044d85f478757ea03165ae3cfe87c4.zip |
Bluetooth: Redo checks in IRQ handler for shared IRQ support
Commit ac019360fe3 changed the irq handler logic to BUG_ON rather than
returning IRQ_NONE when the incoming argument is invalid. While this
works in most cases, it doesn't work when the IRQ is shared with other
devices (or when DEBUG_SHIRQ is enabled).
So revert the previous change and replace the warning message with a
comment explaining that we want this behavior.
Signed-off-by: Michael Hennerich <michael.hennerich@analog.com>
Signed-off-by: Mike Frysinger <vapier@gentoo.org>
Signed-off-by: Marcel Holtmann <marcel@holtmann.org>
Diffstat (limited to 'drivers/bluetooth/bluecard_cs.c')
-rw-r--r-- | drivers/bluetooth/bluecard_cs.c | 4 |
1 files changed, 3 insertions, 1 deletions
diff --git a/drivers/bluetooth/bluecard_cs.c b/drivers/bluetooth/bluecard_cs.c index 2acdc605cb4b..c2cf81144715 100644 --- a/drivers/bluetooth/bluecard_cs.c +++ b/drivers/bluetooth/bluecard_cs.c @@ -503,7 +503,9 @@ static irqreturn_t bluecard_interrupt(int irq, void *dev_inst) unsigned int iobase; unsigned char reg; - BUG_ON(!info->hdev); + if (!info || !info->hdev) + /* our irq handler is shared */ + return IRQ_NONE; if (!test_bit(CARD_READY, &(info->hw_state))) return IRQ_HANDLED; |