Messages in this thread Patch in this message | | | Date | Mon, 11 Nov 2013 20:34:31 +0100 (CET) | From | Thomas Gleixner <> | Subject | Re: [patch 1/6] hardirq: Make hardirq bits generic |
| |
On Mon, 11 Nov 2013, Thomas Gleixner wrote: > Not what you would expect, right?
Finally found the issue. The patch below fixes the problem here. The little missing detail is, that I zapped GET_CURRENT() assuming blindly that this is only needed for the preempt_count hackery. But in fact the world and some more depends on it which leads to interesting explosions.
Thanks,
tglx ---- Index: linux-2.6/arch/m68k/kernel/entry.S =================================================================== --- linux-2.6.orig/arch/m68k/kernel/entry.S +++ linux-2.6/arch/m68k/kernel/entry.S @@ -274,6 +274,7 @@ do_delayed_trace: ENTRY(auto_inthandler) SAVE_ALL_INT + GET_CURRENT(%d0) | put exception # in d0 bfextu %sp@(PT_OFF_FORMATVEC){#4,#10},%d0 subw #VEC_SPUR,%d0 @@ -297,6 +298,7 @@ ret_from_interrupt: ENTRY(user_inthandler) SAVE_ALL_INT + GET_CURRENT(%d0) | put exception # in d0 bfextu %sp@(PT_OFF_FORMATVEC){#4,#10},%d0 user_irqvec_fixup = . + 2 @@ -313,6 +315,7 @@ user_irqvec_fixup = . + 2 ENTRY(bad_inthandler) SAVE_ALL_INT + GET_CURRENT(%d0) movel %sp,%sp@- jsr handle_badint
| |