- kernel-irq-chipc-irq-disable-shutdown-bug.patch removed from -mm tree

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

 



The patch titled
     kernel/irq/chip.c IRQ disable, shutdown bug
has been removed from the -mm tree.  Its filename was
     kernel-irq-chipc-irq-disable-shutdown-bug.patch

This patch was dropped because it is obsolete

The current -mm tree may be found at http://userweb.kernel.org/~akpm/mmotm/

------------------------------------------------------
Subject: kernel/irq/chip.c IRQ disable, shutdown bug
From: "Hennerich, Michael" <Michael.Hennerich@xxxxxxxxxx>

free_irq() does not disable/mask the irq, in case disable or shutdown in
struct irq_chip is left uninitilazied.

/**
 * struct irq_chip - hardware interrupt chip descriptor
 *
 * @name:		name for /proc/interrupts
 * @startup:		start up the interrupt (defaults to ->enable if NULL)
 * @shutdown:		shut down the interrupt (defaults to ->disable if NULL)
 * @enable:		enable the interrupt (defaults to chip->unmask if NULL)
 * @disable:		disable the interrupt (defaults to chip->mask if NULL)

According to linux/irq.h struct irq_chip information, chip->disable should
default to chip->mask if NULL.  However irq_chip_set_defaults(struct irq_chip
*chip) will set it to default_disable a empty function.

Looking through various architectures, it's pretty common that disable and
shutdown is NULL.  So this bug affects many architectures.

This patch fixes the issue.

Cc: Thomas Gleixner <tglx@xxxxxxxxxxxxx>
Cc: Ingo Molnar <mingo@xxxxxxx>
Signed-off-by: Andrew Morton <akpm@xxxxxxxxxxxxxxxxxxxx>
---

 kernel/irq/chip.c |    4 ++++
 1 file changed, 4 insertions(+)

diff -puN kernel/irq/chip.c~kernel-irq-chipc-irq-disable-shutdown-bug kernel/irq/chip.c
--- a/kernel/irq/chip.c~kernel-irq-chipc-irq-disable-shutdown-bug
+++ a/kernel/irq/chip.c
@@ -233,6 +233,10 @@ static void default_enable(unsigned int 
  */
 static void default_disable(unsigned int irq)
 {
+       struct irq_desc *desc = irq_desc + irq;
+
+       desc->chip->mask(irq);
+       desc->status |= IRQ_MASKED;
 }
 
 /*
_

Patches currently in -mm which might be from Michael.Hennerich@xxxxxxxxxx are

origin.patch
kernel-irq-chipc-irq-disable-shutdown-bug.patch

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

[Index of Archives]     [Kernel Newbies FAQ]     [Kernel Archive]     [IETF Annouce]     [DCCP]     [Netdev]     [Networking]     [Security]     [Bugtraq]     [Photo]     [Yosemite]     [MIPS Linux]     [ARM Linux]     [Linux Security]     [Linux RAID]     [Linux SCSI]

  Powered by Linux