From: Andrew Morton <akpm@osdl.org>
To: Reuben Farrelly <reuben-lkml@reub.net>
Cc: mingo@elte.hu, linux-kernel@vger.kernel.org, htejun@gmail.com,
jeff@garzik.org, jbeulich@novell.com
Subject: Re: 2.6.17-rc5-mm2
Date: Thu, 1 Jun 2006 09:22:47 -0700 [thread overview]
Message-ID: <20060601092247.8ccc2c49.akpm@osdl.org> (raw)
In-Reply-To: <447ED6A2.5000107@reub.net>
On Thu, 01 Jun 2006 23:59:30 +1200
Reuben Farrelly <reuben-lkml@reub.net> wrote:
> Unable to handle kernel NULL pointer dereference at 0000000000000000 RIP:
> [<0000000000000000>]
Seems that a fix got lost. Please add this:
From: Ingo Molnar <mingo@elte.hu>
This is a fixed up and cleaned up replacement for genirq-msi-fixes.patch,
which should solve the i386 4KSTACKS problem. I also added Ben's idea of
pushing the __do_IRQ() check into generic_handle_irq().
I booted this with MSI enabled, but i only have MSI devices, not MSI-X
devices. I'd still expect MSI-X to work now.
irqchip migration helper: call __do_IRQ() if a descriptor is attached to an
irqtype-style controller. This also fixes MSI-X IRQ handling on i386 and
x86_64.
Signed-off-by: Ingo Molnar <mingo@elte.hu>
Cc: Thomas Gleixner <tglx@linutronix.de>
Cc: Benjamin Herrenschmidt <benh@kernel.crashing.org>
Cc: Roland Dreier <rolandd@cisco.com>
Signed-off-by: Andrew Morton <akpm@osdl.org>
---
arch/i386/kernel/irq.c | 5 +++++
include/linux/irq.h | 27 ++++++++++++++++-----------
2 files changed, 21 insertions(+), 11 deletions(-)
diff -puN arch/i386/kernel/irq.c~genirq-msi-fixes-2 arch/i386/kernel/irq.c
--- devel/arch/i386/kernel/irq.c~genirq-msi-fixes-2 2006-06-01 09:21:52.000000000 -0700
+++ devel-akpm/arch/i386/kernel/irq.c 2006-06-01 09:21:52.000000000 -0700
@@ -77,6 +77,10 @@ fastcall unsigned int do_IRQ(struct pt_r
}
#endif
+ if (!irq_desc[irq].handle_irq) {
+ __do_IRQ(irq, regs);
+ goto out_exit;
+ }
#ifdef CONFIG_4KSTACKS
curctx = (union irq_ctx *) current_thread_info();
@@ -109,6 +113,7 @@ fastcall unsigned int do_IRQ(struct pt_r
#endif
desc->handle_irq(irq, desc, regs);
+out_exit:
irq_exit();
return 1;
diff -puN include/linux/irq.h~genirq-msi-fixes-2 include/linux/irq.h
--- devel/include/linux/irq.h~genirq-msi-fixes-2 2006-06-01 09:21:52.000000000 -0700
+++ devel-akpm/include/linux/irq.h 2006-06-01 09:21:52.000000000 -0700
@@ -178,17 +178,6 @@ typedef struct irq_desc irq_desc_t;
*/
#include <asm/hw_irq.h>
-/*
- * Architectures call this to let the generic IRQ layer
- * handle an interrupt:
- */
-static inline void generic_handle_irq(unsigned int irq, struct pt_regs *regs)
-{
- struct irq_desc *desc = irq_desc + irq;
-
- desc->handle_irq(irq, desc, regs);
-}
-
extern int setup_irq(unsigned int irq, struct irqaction *new);
#ifdef CONFIG_GENERIC_HARDIRQS
@@ -326,6 +315,22 @@ handle_irq_name(void fastcall (*handle)(
*/
extern fastcall unsigned int __do_IRQ(unsigned int irq, struct pt_regs *regs);
+/*
+ * Architectures call this to let the generic IRQ layer
+ * handle an interrupt. If the descriptor is attached to an
+ * irqchip-style controller then we call the ->handle_irq() handler,
+ * and it calls __do_IRQ() if it's attached to an irqtype-style controller.
+ */
+static inline void generic_handle_irq(unsigned int irq, struct pt_regs *regs)
+{
+ struct irq_desc *desc = irq_desc + irq;
+
+ if (likely(desc->handle_irq))
+ desc->handle_irq(irq, desc, regs);
+ else
+ __do_IRQ(irq, regs);
+}
+
/* Handling of unhandled and spurious interrupts: */
extern void note_interrupt(unsigned int irq, struct irq_desc *desc,
int action_ret, struct pt_regs *regs);
_
next prev parent reply other threads:[~2006-06-01 16:20 UTC|newest]
Thread overview: 97+ messages / expand[flat|nested] mbox.gz Atom feed top
2006-06-01 8:48 2.6.17-rc5-mm2 Andrew Morton
2006-06-01 9:30 ` 2.6.17-rc5-mm2 Mike Galbraith
2006-06-01 9:45 ` 2.6.17-rc5-mm2 Jens Axboe
2006-06-01 9:48 ` 2.6.17-rc5-mm2 Andrew Morton
2006-06-01 9:34 ` 2.6.17-rc5-mm2 Reuben Farrelly
2006-06-01 9:56 ` 2.6.17-rc5-mm2 Andrew Morton
2006-06-01 10:11 ` 2.6.17-rc5-mm2 Reuben Farrelly
2006-06-01 10:33 ` 2.6.17-rc5-mm2 Ingo Molnar
2006-06-01 10:53 ` 2.6.17-rc5-mm2 Ingo Molnar
2006-06-01 11:25 ` 2.6.17-rc5-mm2 Ingo Molnar
2006-06-01 11:59 ` 2.6.17-rc5-mm2 Reuben Farrelly
2006-06-01 16:22 ` Andrew Morton [this message]
2006-06-01 22:15 ` 2.6.17-rc5-mm2 Reuben Farrelly
2006-06-01 12:20 ` 2.6.17-rc5-mm2 Jan Beulich
2006-06-01 16:19 ` 2.6.17-rc5-mm2 Andrew Morton
2006-06-01 18:34 ` 2.6.17-rc5-mm2 Andrew Morton
2006-06-02 6:54 ` 2.6.17-rc5-mm2 Jan Beulich
2006-06-02 7:09 ` 2.6.17-rc5-mm2 Ingo Molnar
2006-06-02 7:22 ` 2.6.17-rc5-mm2 Andrew Morton
2006-06-02 7:21 ` 2.6.17-rc5-mm2 Ingo Molnar
2006-06-02 7:13 ` 2.6.17-rc5-mm2 Andrew Morton
2006-06-02 7:37 ` 2.6.17-rc5-mm2 Jan Beulich
2006-06-02 7:51 ` 2.6.17-rc5-mm2 Ingo Molnar
2006-06-02 20:53 ` 2.6.17-rc5-mm2 Daniel Jacobowitz
2006-06-01 10:23 ` 2.6.17-rc5-mm2 Jeff Garzik
2006-06-01 11:42 ` 2.6.17-rc5-mm2 another compile error Helge Hafting
2006-06-01 16:29 ` Andrew Morton
2006-06-21 12:07 ` Adrian Bunk
2006-06-01 11:54 ` 2.6.17-rc5-mm2 stack unwind compile failure Helge Hafting
2006-06-01 16:30 ` Andrew Morton
2006-06-01 12:35 ` 2.6.17-rc5-mm2 md cause BUGs, and readahead speedup Helge Hafting
2006-06-01 12:54 ` Arjan van de Ven
2006-06-01 13:03 ` 2.6.17-rc5-mm2 link issues on s390 Cedric Le Goater
2006-06-01 13:28 ` Martin Schwidefsky
2006-06-01 13:53 ` Cedric Le Goater
2006-06-08 7:28 ` Heiko Carstens
2006-06-08 9:13 ` Cedric Le Goater
2006-06-08 11:02 ` Heiko Carstens
2006-06-08 12:45 ` Cedric Le Goater
2006-06-09 7:58 ` Heiko Carstens
2006-06-01 15:35 ` 2.6.17-rc5-mm2 Jiri Slaby
2006-06-01 15:49 ` 2.6.17-rc5-mm2 Arjan van de Ven
2006-06-01 16:35 ` 2.6.17-rc5-mm2 Ben Collins
2006-06-05 11:28 ` [PATCH 2.6.17-rc5-mm3] ieee1394: hl_irqs_lock is taken in hardware interrupt context Stefan Richter
2006-06-05 11:31 ` [PATCH 2.6.17-rc5-mm3] ieee1394: adjust code formatting in highlevel.c Stefan Richter
2006-06-05 12:07 ` [PATCH 2.6.17-rc5-mm3] ieee1394: hl_irqs_lock is taken in hardware interrupt context Stefan Richter
2006-06-01 15:51 ` 2.6.17-rc5-mm2 Michal Piotrowski
2006-06-01 17:20 ` 2.6.17-rc5-mm2 Arjan van de Ven
2006-06-01 17:35 ` 2.6.17-rc5-mm2 Andrew Morton
2006-06-01 17:36 ` 2.6.17-rc5-mm2 Arjan van de Ven
2006-06-01 19:04 ` 2.6.17-rc5-mm2 Michal Piotrowski
2006-06-01 22:30 ` 2.6.17-rc5-mm2 Michal Piotrowski
2006-06-01 17:22 ` 2.6.17-rc5-mm2 Andrew Morton
2006-06-01 17:27 ` 2.6.17-rc5-mm2 Arjan van de Ven
2006-06-01 17:40 ` 2.6.17-rc5-mm2 Andrew Morton
2006-06-01 19:31 ` 2.6.17-rc5-mm2 Ingo Molnar
2006-06-01 21:51 ` 2.6.17-rc5-mm2 Jesper Juhl
2006-06-01 21:52 ` 2.6.17-rc5-mm2 Jesper Juhl
2006-06-01 22:25 ` 2.6.17-rc5-mm2 Barry K. Nathan
2006-06-01 22:40 ` 2.6.17-rc5-mm2 Andrew Morton
2006-06-01 22:32 ` 2.6.17-rc5-mm2 Barry K. Nathan
2006-06-01 22:52 ` 2.6.17-rc5-mm2 Andrew Morton
2006-06-02 0:07 ` 2.6.17-rc5-mm2 Barry K. Nathan
2006-06-02 0:28 ` 2.6.17-rc5-mm2 Andrew Morton
2006-06-02 0:43 ` 2.6.17-rc5-mm2 Barry K. Nathan
2006-06-02 0:58 ` 2.6.17-rc5-mm2 Barry K. Nathan
2006-06-02 1:38 ` 2.6.17-rc5-mm2 Andrew Morton
2006-06-02 6:02 ` 2.6.17-rc5-mm2 Ingo Molnar
2006-06-02 13:14 ` 2.6.17-rc5-mm2 Barry K. Nathan
2006-06-02 14:20 ` 2.6.17-rc5-mm2 Ingo Molnar
2006-06-02 18:01 ` 2.6.17-rc5-mm2 Barry K. Nathan
2006-06-02 18:06 ` 2.6.17-rc5-mm2 Barry K. Nathan
2006-06-02 20:53 ` 2.6.17-rc5-mm2 Ingo Molnar
2006-06-02 22:33 ` 2.6.17-rc5-mm2 Barry K. Nathan
2006-06-03 7:13 ` 2.6.17-rc5-mm2 Ingo Molnar
2006-06-03 14:41 ` 2.6.17-rc5-mm2 Ingo Molnar
2006-06-03 21:10 ` 2.6.17-rc5-mm2 Barry K. Nathan
2006-06-04 2:29 ` 2.6.17-rc5-mm2 Barry K. Nathan
2006-06-04 8:33 ` 2.6.17-rc5-mm2 Ingo Molnar
2006-06-04 7:57 ` 2.6.17-rc5-mm2 Ingo Molnar
2006-06-02 15:51 ` 2.6.17-rc5-mm2 Alan Cox
2006-06-02 18:21 ` 2.6.17-rc5-mm2 Barry K. Nathan
2006-06-02 18:25 ` 2.6.17-rc5-mm2 Andrew Morton
2006-06-02 3:23 ` 2.6.17-rc5-mm2 KAMEZAWA Hiroyuki
2006-06-02 5:06 ` 2.6.17-rc5-mm2 Andrew Morton
2006-06-02 10:09 ` 2.6.17-rc5-mm2 Paolo Ornati
2006-06-02 11:10 ` 2.6.17-rc5-mm2 Ingo Molnar
2006-06-02 11:17 ` 2.6.17-rc5-mm2 Ingo Molnar
2006-06-02 11:34 ` 2.6.17-rc5-mm2 Paolo Ornati
2006-06-02 14:13 ` 2.6.17-rc5-mm2 Ingo Molnar
2006-06-02 14:46 ` 2.6.17-rc5-mm2 Paolo Ornati
2006-06-02 15:10 ` 2.6.17-rc5-mm2 Ingo Molnar
2006-06-02 19:49 ` 2.6.17-rc5-mm2 Ingo Molnar
2006-06-02 20:09 ` 2.6.17-rc5-mm2 Paolo Ornati
2006-06-02 18:38 ` 2.6.17-rc5-mm2 Mel Gorman
2006-06-02 18:59 ` 2.6.17-rc5-mm2 Andrew Morton
2006-06-03 15:29 ` 2.6.17-rc5-mm2 Mel Gorman
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20060601092247.8ccc2c49.akpm@osdl.org \
--to=akpm@osdl.org \
--cc=htejun@gmail.com \
--cc=jbeulich@novell.com \
--cc=jeff@garzik.org \
--cc=linux-kernel@vger.kernel.org \
--cc=mingo@elte.hu \
--cc=reuben-lkml@reub.net \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox