remove in_interrupt() BUG_ON in exit path
PATCH 1/1 remove in_interrupt() BUG_ON in exit path
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.
--- kernel/exit.c | 1 - 1 file changed, 1 deletion(-)
kernel/exit.c +0 -1
@@ -895,7 +895,6 @@ fastcall NORET_TYPE void do_exit(long coWARN_ON (atomic_read (&tsk->fs_excl)); -BUG_ON (in_interrupt ());if (unlikely (in_interrupt ()))panic ("Aiee, killing interrupt handler!" );if (unlikely (!tsk->pid))
Signature · 1 line
--
--
Quoted 17 lines · Daniel Walker
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 , sinceBUG()causes an OOPS and the OOPS just callsdo_exit(), anddo_exit()just causes another OOPS with thisBUG_ON().. If we callpanic()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
===================================================================
kernel/exit.c fastcall NORET_TYPE void do_exit(long co · line 900
Quoted 7 lines
kernel/exit.c +0
-1@@ -895,7 +895,6 @@ fastcall NORET_TYPE void do_exit(long coWARN_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
Quoted 6 lines · Steven Rostedt
I did this change once before, while debugging. I had the same issue. This
BUG_ONwas 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
--
Quoted 7 lines · Daniel Walker
Quoted 5 lines · Steven Rostedt
I did this change once before, while debugging. I had the same issue. This
BUG_ONwas 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!
Quoted 5 lines
I wonder if Ingo had his reasons for keeping it.. They're may have been a benefit to doing a
BUG_ONat 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