On 11/03/2015 07:15 AM, Ralf Moder wrote: > Am 02.11.2015 um 16:03 schrieb Philippe Gerum: >> On 11/02/2015 04:00 PM, Ralf Moder wrote: >>> Hi, >>> >>> i have a powerpc cpu (mpc5200) running linux 3.14.17 with xenomai patch >>> 2.6.4 on it. I use floating point in kernel, so the (assembly-)function >>> "giveup_fpu" (in file arch/powerpc/kernel/fpu.S) is called and throws a >>> kernel-oops. fpu.S is patched with ipipe-core-3.14.17-powerpc-6.patch. >>> In original linux (kernel 3.14.17) "giveup_fpu" looks like this: >>> >> Please send a diff context patch summarizing your changes. >> > > Here is my diff: > > --- build/linux-3.14.17/arch/powerpc/kernel/fpu.S 2015-10-22 > 12:06:38.167507290 +0200 > +++ > /home/ralf/qx_ralf/quantumx/projects/ppc/workspace/build/linux-3.14.17/arch/powerpc/kernel/fpu.S > > 2015-11-02 13:11:57.000000000 +0100 > @@ -218,7 +218,7 @@ > SYNC_601 > isync > PPC_LCMPI 0,r3,0 > - beq- 2f /* if no previous owner, done */ > + beq- 3f /* if no previous owner, done */ > addi r3,r3,THREAD /* want THREAD of task */ > PPC_LL r6,THREAD_FPSAVEAREA(r3) > PPC_LL r5,PT_REGS(r3) > @@ -245,7 +245,7 @@ > LOAD_REG_ADDRBASE(r4,last_task_used_math) > PPC_STL r5,ADDROFF(last_task_used_math)(r4) > #endif /* CONFIG_SMP */ > -2: > +3: > #ifdef CONFIG_IPIPE /* restore interrupt state */ > andi. r6,r6,MSR_EE > beqlr > > As you can see, i only changed the label name (from "2:" to "3:") and > the branch to this label. I did that because after applying the > ipipe-patch two labels with name "2:" exists in giveup_fpu and an > objdump has shown that "beq 2f" jumps to the wrong label. >
Ok, I'll pick it, thanks. You may want to pick the patch I mentioned lately as well, not to rely on r6 for keeping the machine state register. -- Philippe. _______________________________________________ Xenomai mailing list [email protected] http://xenomai.org/mailman/listinfo/xenomai
