Is the preemptive kernel patch unsafe for 8xx/PPC?
acurtis at directvinternet.com
acurtis at directvinternet.com
Tue Dec 17 01:41:50 EST 2002
I ran this patch on 2.4.19 and here were my results.
> > 1) arch/ppc/kernel.entry.S
> >
> > diff -urN linux-2.4.20/arch/ppc/kernel/entry.S
> linux/arch/ppc/kernel/entry.S
> > --- linux-2.4.20/arch/ppc/kernel/entry.S 2002-11-28
> > 18:53:11.000000000 -0500
> > +++ linux/arch/ppc/kernel/entry.S 2002-12-11
> 02:34:47.000000000 -0500
> > @@ -278,6 +278,41 @@
> > */
> > cmpi 0,r3,0
> > beq restore
> > +#ifdef CONFIG_PREEMPT
> > + lwz r3,PREEMPT_COUNT(r2)
> > + cmpi 0,r3,1
> > + bge ret_from_except
> > + lwz r5,_MSR(r1)
> > + andi. r5,r5,MSR_PR
> > + bne do_signal_ret
> >
> > <rest of the diff is skipped>
> >
> > I had to change the last command to "bne ret_from_except".
> > I checked MontaVista tree, and they have "ret_from_except" there also.
>
> This I can not comment on, but my 8xx runs fine with it.
I did not make the above code change and it appears to run. Any comments?
> > 2) include/asm-ppc/pgalloc.h There are curly brackets missing in
> > get_pgd_fast()
>
> Yes, they are missing in the else part.
I had to fix this too.
> > 3) to support 440GP you have to modify
> arc/ppc/kernel/irc.c:preempt_intercept:
> >
> > #if !defined(CONFIG_4xx) || defined(CONFIG_440)
> > case 0x900:
> > #else
> > case 0x1000:
> > #endif
I could not test these changes either. Any feedback from Robert Love?
** Sent via the linuxppc-dev mail list. See http://lists.linuxppc.org/
More information about the Linuxppc-dev
mailing list