[PATCH][RT]: handle_IRQ_event() - fix thinko

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



  handle_IRQ_event() reenables interrupts for threaded IRQ handlers,
provided said handler does not need to run with IRQF_DISABLED.

  Therefore, unless I'm missing something, in the following:

if (!hardirq_count() || !(action->flags & IRQF_DISABLED))
	local_irq_enable();

  the logical OR should be a logical AND:

if (!hardirq_count() && !(action->flags & IRQF_DISABLED))
	local_irq_enable();

  Or maybe I've not yet reached my daily cafeine dose. (Damned addiction)

Signed-off-by: Sebastien Dugue <sebastien.dugue@xxxxxxxx>
---
 kernel/irq/handle.c |    2 +-
 1 files changed, 1 insertions(+), 1 deletions(-)

diff --git a/kernel/irq/handle.c b/kernel/irq/handle.c
index 9ea9f73..f1579b9 100644
--- a/kernel/irq/handle.c
+++ b/kernel/irq/handle.c
@@ -144,7 +144,7 @@ irqreturn_t handle_IRQ_event(unsigned int irq, struct irqaction *action)
 	 * Unconditionally enable interrupts for threaded
 	 * IRQ handlers:
 	 */
-	if (!hardirq_count() || !(action->flags & IRQF_DISABLED))
+	if (!hardirq_count() && !(action->flags & IRQF_DISABLED))
 		local_irq_enable();
 
 	do {
-- 
1.6.0.1.308.gede4c

--
To unsubscribe from this list: send the line "unsubscribe linux-rt-users" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at  http://vger.kernel.org/majordomo-info.html

[Index of Archives]     [RT Stable]     [Kernel Newbies]     [IDE]     [Security]     [Git]     [Netfilter]     [Bugtraq]     [Yosemite]     [Yosemite News]     [MIPS Linux]     [ARM Linux]     [Linux Security]     [Linux RAID]     [Linux ATA RAID]     [Samba]     [Video 4 Linux]     [Device Mapper]

  Powered by Linux