On Thu, 29 Jan 2009, Geoff Levand wrote: > > > > //************************************************************************************************************************************* > > ip:d000000000045aec jumps to d000000000046340 r2: d000000000050c00 > > 3d82ffff 398c5740 ffff5740 toc: d000000000046360 c0000000 00007cac > > ip:d0000000000458d0 jumps to d000000000046340 r2: d000000000050c00 > > 3d82ffff 398c5740 ffff5740 toc: d000000000046360 c0000000 00007cac > > ip:d000000000045838 jumps to d000000000046340 r2: d000000000050c00 > > 3d82ffff 398c5740 ffff5740 toc: d000000000046360 c0000000 00007cac > > ip:d0000000000456dc jumps to d000000000046340 r2: d000000000050c00 > > 3d82ffff 398c5740 ffff5740 toc: d000000000046360 c0000000 00007cac > ...
So I take it that the above showed that the code worked for some? > > ps3_system_bus_match:362: dev=11.0(lpm_01), drv=11.0(ps3-lpm): match > > ps3_system_bus_match:362: dev=11.0(lpm_01), drv=11.0(ps3-lpm): match > > ps3-lpm lpm_01: <- ps3_lpm_probe:1245: > > ip:d0000000003fe280 jumps to d0000000003ffad8 r2: d000000000422c70 Could you find out what that function is? Perhaps do a: printk("ip:%pF\n", ip); As long as you have kallsyms on, that should point to the function that's the problem. > > 3d82fffe 398cce68 fffece68 toc: d00000000040faf8 6c656400 5f5f6b73 > > addr does not match > > ptr: 6c6564005f5f6b73 ptr is the same info as the last line above. > > addr: c0000000004ff128 > > GET_ADDR(addr): c000000000007cac > > I don't know so much about ftrace, but to get a better idea of the > problem, could you try with the patch below? > > Is ps3-lpm built as a loadable module, and if so, is it the first one > that got loaded? > > Also, try to either build with CONFIG_PS3_LPM=n, or delete ps3-lpm.ko > so it does not get loaded to see what happens. > > -Geoff > > --- a/arch/powerpc/kernel/ftrace.c > +++ b/arch/powerpc/kernel/ftrace.c > @@ -23,7 +23,7 @@ > #if 0 Heh, I would have just done: - #if 0 + #if 1 ;-) -- Steve > #define DEBUGP printk > #else > -#define DEBUGP(fmt , ...) do { } while (0) > +#define DEBUGP printk > #endif > > static unsigned int ftrace_nop = PPC_NOP_INSTR; > @@ -213,6 +213,8 @@ __ftrace_make_nop(struct module *mod, > > ptr = ((unsigned long)jmp[0] << 32) + jmp[1]; > > + printk("ptr %lx, addr %lx, GET_ADDR %lx\n", ptr, addr, GET_ADDR(addr)); > + > /* This should match what was called */ > if (ptr != GET_ADDR(addr)) { > printk(KERN_ERR "addr does not match %lx\n", ptr); > > > > _______________________________________________ Linuxppc-dev mailing list Linuxppc-dev@ozlabs.org https://ozlabs.org/mailman/listinfo/linuxppc-dev