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