Ben-san, > > It should have been set in setup_64.c, in setup_paca() (which is called > > twice) in that statement: > > > > local_paca = &paca[cpu]; > > > > As local_paca is defined as being a variable held in register r13. Maybe > > something bad's happening with the compiler ?
> Can you check early_setup disassembly, see if r13 is assigned (it should > be in two spots) and if it's clobbered by the compiler somewhere ? > Also, you may want to try adding --ffixed-r13 to the CFLAGS in the > makefile and let us know if it makes a difference... r13 is marked > reserved by the ABI but segher seems to imply that gcc may decide to ues > it anyway (ouch !) I reviewed early_setup() disassembly sets r13 correctly. Now I found the kernel works well without our hack, so I think I can decline the patch [1/7]. Commit edd0622bd2e8f755c960827e15aa6908c3c5aa94 seems to break the kernel and commit 175587cca7447daf5a13e4a53d32360ed8cba804 backs out the symptom. Calling slb_flush_and_rebolt() at slb_initialize() function breaks the SLB table since it is called before setting up PACA. Thank you for your hint. Best regards, Kou Ishizaki _______________________________________________ Linuxppc-dev mailing list Linuxppc-dev@ozlabs.org https://ozlabs.org/mailman/listinfo/linuxppc-dev