* [PATCH] Revert "[Bluetooth] Eliminate checks for impossible conditions in IRQ handler"
@ 2009-09-14 5:18 Mike Frysinger
2009-09-14 9:58 ` Marcel Holtmann
2009-09-14 17:43 ` [PATCH v2] [Bluetooth] redo checks in IRQ handler for shared IRQ support Mike Frysinger
0 siblings, 2 replies; 5+ messages in thread
From: Mike Frysinger @ 2009-09-14 5:18 UTC (permalink / raw)
To: Marcel Holtmann; +Cc: linux-bluetooth, linux-kernel, Michael Hennerich
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.
Signed-off-by: Michael Hennerich <michael.hennerich@analog.com>
Signed-off-by: Mike Frysinger <vapier@gentoo.org>
---
drivers/bluetooth/bluecard_cs.c | 4 +++-
drivers/bluetooth/bt3c_cs.c | 4 +++-
drivers/bluetooth/btuart_cs.c | 4 +++-
drivers/bluetooth/dtl1_cs.c | 4 +++-
4 files changed, 12 insertions(+), 4 deletions(-)
diff --git a/drivers/bluetooth/bluecard_cs.c b/drivers/bluetooth/bluecard_cs.c
index b0e569b..a3a8f4d 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;
diff --git a/drivers/bluetooth/bt3c_cs.c b/drivers/bluetooth/bt3c_cs.c
index d58e22b..9a7578e 100644
--- a/drivers/bluetooth/bt3c_cs.c
+++ b/drivers/bluetooth/bt3c_cs.c
@@ -345,7 +345,9 @@ static irqreturn_t bt3c_interrupt(int irq, void *dev_inst)
int iir;
irqreturn_t r = IRQ_NONE;
- BUG_ON(!info->hdev);
+ if (!info || !info->hdev)
+ /* our irq handler is shared */
+ return IRQ_NONE;
iobase = info->p_dev->io.BasePort1;
diff --git a/drivers/bluetooth/btuart_cs.c b/drivers/bluetooth/btuart_cs.c
index efd689a..cd9cb6c 100644
--- a/drivers/bluetooth/btuart_cs.c
+++ b/drivers/bluetooth/btuart_cs.c
@@ -295,7 +295,9 @@ static irqreturn_t btuart_interrupt(int irq, void *dev_inst)
int iir, lsr;
irqreturn_t r = IRQ_NONE;
- BUG_ON(!info->hdev);
+ if (!info || !info->hdev)
+ /* our irq handler is shared */
+ return IRQ_NONE;
iobase = info->p_dev->io.BasePort1;
diff --git a/drivers/bluetooth/dtl1_cs.c b/drivers/bluetooth/dtl1_cs.c
index 2cc7b32..588678a 100644
--- a/drivers/bluetooth/dtl1_cs.c
+++ b/drivers/bluetooth/dtl1_cs.c
@@ -299,7 +299,9 @@ static irqreturn_t dtl1_interrupt(int irq, void *dev_inst)
int iir, lsr;
irqreturn_t r = IRQ_NONE;
- BUG_ON(!info->hdev);
+ if (!info || !info->hdev)
+ /* our irq handler is shared */
+ return IRQ_NONE;
iobase = info->p_dev->io.BasePort1;
--
1.6.4.2
^ permalink raw reply related [flat|nested] 5+ messages in thread
* Re: [PATCH] Revert "[Bluetooth] Eliminate checks for impossible conditions in IRQ handler"
2009-09-14 5:18 [PATCH] Revert "[Bluetooth] Eliminate checks for impossible conditions in IRQ handler" Mike Frysinger
@ 2009-09-14 9:58 ` Marcel Holtmann
2009-09-14 17:43 ` [PATCH v2] [Bluetooth] redo checks in IRQ handler for shared IRQ support Mike Frysinger
1 sibling, 0 replies; 5+ messages in thread
From: Marcel Holtmann @ 2009-09-14 9:58 UTC (permalink / raw)
To: Mike Frysinger; +Cc: linux-bluetooth, linux-kernel, Michael Hennerich
Hi Mike,
> 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.
please don't use git revert here. Send an updated patch that fixes this
issue correct and please send it with a proper subject line.
Regards
Marcel
^ permalink raw reply [flat|nested] 5+ messages in thread
* [PATCH v2] [Bluetooth] redo checks in IRQ handler for shared IRQ support
2009-09-14 5:18 [PATCH] Revert "[Bluetooth] Eliminate checks for impossible conditions in IRQ handler" Mike Frysinger
2009-09-14 9:58 ` Marcel Holtmann
@ 2009-09-14 17:43 ` Mike Frysinger
2010-01-19 11:16 ` Mike Frysinger
1 sibling, 1 reply; 5+ messages in thread
From: Mike Frysinger @ 2009-09-14 17:43 UTC (permalink / raw)
To: linux-bluetooth, Marcel Holtmann; +Cc: linux-kernel, Michael Hennerich
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>
---
v2
- tweak commit log to not use git-revert
drivers/bluetooth/bluecard_cs.c | 4 +++-
drivers/bluetooth/bt3c_cs.c | 4 +++-
drivers/bluetooth/btuart_cs.c | 4 +++-
drivers/bluetooth/dtl1_cs.c | 4 +++-
4 files changed, 12 insertions(+), 4 deletions(-)
diff --git a/drivers/bluetooth/bluecard_cs.c b/drivers/bluetooth/bluecard_cs.c
index b0e569b..a3a8f4d 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;
diff --git a/drivers/bluetooth/bt3c_cs.c b/drivers/bluetooth/bt3c_cs.c
index d58e22b..9a7578e 100644
--- a/drivers/bluetooth/bt3c_cs.c
+++ b/drivers/bluetooth/bt3c_cs.c
@@ -345,7 +345,9 @@ static irqreturn_t bt3c_interrupt(int irq, void *dev_inst)
int iir;
irqreturn_t r = IRQ_NONE;
- BUG_ON(!info->hdev);
+ if (!info || !info->hdev)
+ /* our irq handler is shared */
+ return IRQ_NONE;
iobase = info->p_dev->io.BasePort1;
diff --git a/drivers/bluetooth/btuart_cs.c b/drivers/bluetooth/btuart_cs.c
index efd689a..cd9cb6c 100644
--- a/drivers/bluetooth/btuart_cs.c
+++ b/drivers/bluetooth/btuart_cs.c
@@ -295,7 +295,9 @@ static irqreturn_t btuart_interrupt(int irq, void *dev_inst)
int iir, lsr;
irqreturn_t r = IRQ_NONE;
- BUG_ON(!info->hdev);
+ if (!info || !info->hdev)
+ /* our irq handler is shared */
+ return IRQ_NONE;
iobase = info->p_dev->io.BasePort1;
diff --git a/drivers/bluetooth/dtl1_cs.c b/drivers/bluetooth/dtl1_cs.c
index 2cc7b32..588678a 100644
--- a/drivers/bluetooth/dtl1_cs.c
+++ b/drivers/bluetooth/dtl1_cs.c
@@ -299,7 +299,9 @@ static irqreturn_t dtl1_interrupt(int irq, void *dev_inst)
int iir, lsr;
irqreturn_t r = IRQ_NONE;
- BUG_ON(!info->hdev);
+ if (!info || !info->hdev)
+ /* our irq handler is shared */
+ return IRQ_NONE;
iobase = info->p_dev->io.BasePort1;
--
1.6.4.2
^ permalink raw reply related [flat|nested] 5+ messages in thread
* Re: [PATCH v2] [Bluetooth] redo checks in IRQ handler for shared IRQ support
2009-09-14 17:43 ` [PATCH v2] [Bluetooth] redo checks in IRQ handler for shared IRQ support Mike Frysinger
@ 2010-01-19 11:16 ` Mike Frysinger
2010-01-19 18:21 ` Marcel Holtmann
0 siblings, 1 reply; 5+ messages in thread
From: Mike Frysinger @ 2010-01-19 11:16 UTC (permalink / raw)
To: linux-bluetooth, Marcel Holtmann
Cc: linux-kernel, Michael Hennerich, Andrew Morton
On Mon, Sep 14, 2009 at 12:43, Mike Frysinger wrote:
> Commit ac019360fe3 changed the irq handler logic to BUG_ON rather than
> returning IRQ_NONE when the incoming argument is invalid. =C2=A0While thi=
s
> 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.
was this picked up ?
-mike
^ permalink raw reply [flat|nested] 5+ messages in thread
* Re: [PATCH v2] [Bluetooth] redo checks in IRQ handler for shared IRQ support
2010-01-19 11:16 ` Mike Frysinger
@ 2010-01-19 18:21 ` Marcel Holtmann
0 siblings, 0 replies; 5+ messages in thread
From: Marcel Holtmann @ 2010-01-19 18:21 UTC (permalink / raw)
To: Mike Frysinger
Cc: linux-bluetooth, linux-kernel, Michael Hennerich, Andrew Morton
Hi Mike,
> > 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.
>
> was this picked up ?
not it was not, but now it has been applied to my trees. Thanks.
Regards
Marcel
^ permalink raw reply [flat|nested] 5+ messages in thread
end of thread, other threads:[~2010-01-19 18:21 UTC | newest]
Thread overview: 5+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2009-09-14 5:18 [PATCH] Revert "[Bluetooth] Eliminate checks for impossible conditions in IRQ handler" Mike Frysinger
2009-09-14 9:58 ` Marcel Holtmann
2009-09-14 17:43 ` [PATCH v2] [Bluetooth] redo checks in IRQ handler for shared IRQ support Mike Frysinger
2010-01-19 11:16 ` Mike Frysinger
2010-01-19 18:21 ` Marcel Holtmann
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).