From: Ingo Molnar <mingo@elte.hu>
To: "Eric W. Biederman" <ebiederm@xmission.com>
Cc: Andrew Morton <akpm@osdl.org>, Brandon Philips <brandon@ifup.org>,
linux-kernel@vger.kernel.org, Brice Goglin <brice@myri.com>,
Greg Kroah-Hartman <gregkh@suse.de>,
Thomas Gleixner <tglx@linutronix.de>,
Robert Love <rml@novell.com>
Subject: [patch] genirq/MSI: restore __do_IRQ() compat logic temporarily
Date: Tue, 12 Sep 2006 09:50:47 +0200 [thread overview]
Message-ID: <20060912075047.GA10641@elte.hu> (raw)
In-Reply-To: <m1lkop7gi5.fsf@ebiederm.dsl.xmission.com>
* Eric W. Biederman <ebiederm@xmission.com> wrote:
> Ok. Looking at it I almost certain the problem is that
> we lost the hunk of code removed in: 266f0566761cf88906d634727b3d9fc2556f5cbd
> i386: Fix stack switching in do_IRQ
>
> - if (!irq_desc[irq].handle_irq) {
> - __do_IRQ(irq, regs);
> - goto out_exit;
> - }
>
> The msi code does not yet set desc->handle_irq. So when we attempt to
> call it we get a NULL pointer dereference.
indeed ... We thought the MSI cleanup went all the way with the irqchips
conversion, that's we suggested to Andrew to drop this chunk in -mm too.
> Except for adding that hunk back in and breaking 4K stacks I don't
> have an immediate fix.
i've attached a bandaid patch for -mm below. Brandon, does this solve
the crash you are seeing?
> I do have a pending cleanup that should result in us setting
> handle_irq in all cases. I will see if I can advance that shortly.
yeah, that's the right solution.
Ingo
------------------>
Subject: [patch] genirq/MSI: restore __do_IRQ() compat logic temporarily
From: Ingo Molnar <mingo@elte.hu>
restore the __do_IRQ() compat logic temporarily, until the MSI
genirq conversion has been completed.
disable 4KSTACKS temporarily too.
Signed-off-by: Ingo Molnar <mingo@elte.hu>
---
arch/i386/Kconfig.debug | 4 ++++
arch/i386/kernel/irq.c | 5 +++++
2 files changed, 9 insertions(+)
Index: linux-2.6.18-rc6-mm1/arch/i386/Kconfig.debug
===================================================================
--- linux-2.6.18-rc6-mm1.orig/arch/i386/Kconfig.debug
+++ linux-2.6.18-rc6-mm1/arch/i386/Kconfig.debug
@@ -56,8 +56,12 @@ config DEBUG_RODATA
portion of the kernel code won't be covered by a 2MB TLB anymore.
If in doubt, say "N".
+#
+# FIXME: Disabled temporarily until the MSI genirq conversion is done!
+#
config 4KSTACKS
bool "Use 4Kb + 4Kb for kernel stacks instead of 8Kb" if DEBUG_KERNEL
+ depends on n
default y
help
If you say Y here the kernel will use a 4Kb stacksize for the
Index: linux-2.6.18-rc6-mm1/arch/i386/kernel/irq.c
===================================================================
--- linux-2.6.18-rc6-mm1.orig/arch/i386/kernel/irq.c
+++ linux-2.6.18-rc6-mm1/arch/i386/kernel/irq.c
@@ -83,6 +83,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();
@@ -123,6 +127,7 @@ fastcall unsigned int do_IRQ(struct pt_r
#endif
desc->handle_irq(irq, desc, regs);
+out_exit:
irq_exit();
return 1;
next prev parent reply other threads:[~2006-09-12 7:59 UTC|newest]
Thread overview: 17+ messages / expand[flat|nested] mbox.gz Atom feed top
2006-09-08 17:44 2.6.18-rc6-mm1 2.6.18-rc5-mm1 Kernel Panic on X60s Brandon Philips
2006-09-08 19:13 ` Andrew Morton
2006-09-08 19:43 ` Brandon Philips
2006-09-08 19:50 ` Andrew Morton
2006-09-09 2:22 ` Benoit Boissinot
2006-09-09 3:27 ` Eric W. Biederman
2006-09-09 5:21 ` Andrew Morton
2006-09-09 5:47 ` Brice Goglin
2006-09-09 6:01 ` Brandon Philips
2006-09-09 6:14 ` Brice Goglin
2006-09-11 2:14 ` Brandon Philips
2006-09-11 16:51 ` Andrew Morton
2006-09-11 17:55 ` Eric W. Biederman
2006-09-12 6:20 ` Eric W. Biederman
2006-09-12 7:50 ` Ingo Molnar [this message]
2006-09-12 12:44 ` [patch] genirq/MSI: restore __do_IRQ() compat logic temporarily Brandon Philips
2006-09-12 14:37 ` Eric W. Biederman
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=20060912075047.GA10641@elte.hu \
--to=mingo@elte.hu \
--cc=akpm@osdl.org \
--cc=brandon@ifup.org \
--cc=brice@myri.com \
--cc=ebiederm@xmission.com \
--cc=gregkh@suse.de \
--cc=linux-kernel@vger.kernel.org \
--cc=rml@novell.com \
--cc=tglx@linutronix.de \
/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 an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.