As you can see from the patch there is already a case to catch this type
of problem. This BUG_ON() adds a resursive OOPS , since BUG() causes an OOPS
and the OOPS just calls do_exit() , and do_exit() just causes another OOPS with
this BUG_ON().. If we call panic() here then it's clear what the problem was,
instead of causing an endless recursive crash.
Signed-off-by: Daniel Walker <[email protected]>
---
kernel/exit.c | 1 -
1 file changed, 1 deletion(-)
Index: linux-2.6.23.1/kernel/exit.c
===================================================================
--- linux-2.6.23.1.orig/kernel/exit.c
+++ linux-2.6.23.1/kernel/exit.c
@@ -895,7 +895,6 @@ fastcall NORET_TYPE void do_exit(long co
WARN_ON(atomic_read(&tsk->fs_excl));
- BUG_ON(in_interrupt());
if (unlikely(in_interrupt()))
panic("Aiee, killing interrupt handler!");
if (unlikely(!tsk->pid))
--
--
--
On Tue, 30 Oct 2007, Daniel Walker wrote:
> As you can see from the patch there is already a case to catch this type
> of problem. This BUG_ON() adds a resursive OOPS , since BUG() causes an OOPS
> and the OOPS just calls do_exit() , and do_exit() just causes another OOPS with
> this BUG_ON().. If we call panic() here then it's clear what the problem was,
> instead of causing an endless recursive crash.
>
> Signed-off-by: Daniel Walker <[email protected]>
>
> ---
> kernel/exit.c | 1 -
> 1 file changed, 1 deletion(-)
>
> Index: linux-2.6.23.1/kernel/exit.c
> ===================================================================
> --- linux-2.6.23.1.orig/kernel/exit.c
> +++ linux-2.6.23.1/kernel/exit.c
> @@ -895,7 +895,6 @@ fastcall NORET_TYPE void do_exit(long co
>
> WARN_ON(atomic_read(&tsk->fs_excl));
>
> - BUG_ON(in_interrupt());
> if (unlikely(in_interrupt()))
> panic("Aiee, killing interrupt handler!");
> if (unlikely(!tsk->pid))
I did this change once before, while debugging. I had the same issue. This
BUG_ON was giving me recursive crashes that prevented me knowing WTF was
going on. I thought I even submitted a patch to remove it. Perhaps I
forgot to. Nope, I did!
http://www.ussg.iu.edu/hypermail/linux/kernel/0707.0/1804.html
Since the change is added by the preempt-realtime-core.patch, I'll just
remove it from there.
IOW, I'll fold this into that patch.
-- Steve
On Tue, 2007-10-30 at 19:44 -0400, Steven Rostedt wrote:
> I did this change once before, while debugging. I had the same issue. This
> BUG_ON was giving me recursive crashes that prevented me knowing WTF was
> going on. I thought I even submitted a patch to remove it. Perhaps I
> forgot to. Nope, I did!
>
> http://www.ussg.iu.edu/hypermail/linux/kernel/0707.0/1804.html
I wonder if Ingo had his reasons for keeping it.. They're may have been
a benefit to doing a BUG_ON at one point .. I don't know ..
Daniel
--
On Tue, 30 Oct 2007, Daniel Walker wrote:
> On Tue, 2007-10-30 at 19:44 -0400, Steven Rostedt wrote:
>
> > I did this change once before, while debugging. I had the same issue. This
> > BUG_ON was giving me recursive crashes that prevented me knowing WTF was
> > going on. I thought I even submitted a patch to remove it. Perhaps I
> > forgot to. Nope, I did!
> >
> > http://www.ussg.iu.edu/hypermail/linux/kernel/0707.0/1804.html
>
> I wonder if Ingo had his reasons for keeping it.. They're may have been
> a benefit to doing a BUG_ON at one point .. I don't know ..
>
I don't know. But since we now know at least two people got burned by this
BUG_ON being there (you and me). Maybe this was added before panic did a
dump_stack. Which I have no idea why the mainline doesn't dump_stack on
panic.
Hmm, I think I'll send a patch to see what people say ;-)
-- Steve