Subject: cell: temporarily disable oprofile events From: David Erb When the firmware changed this week, it caused a fatal error that needs to be investigated. Temporarily disable events completely. Signed-off-by: Arnd Bergmann --- This patch looks really fishy. We need to investigate what exactly happens before the release! Arnd <>< Index: linus-2.6/arch/powerpc/oprofile/op_model_cell.c =================================================================== --- linus-2.6.orig/arch/powerpc/oprofile/op_model_cell.c +++ linus-2.6/arch/powerpc/oprofile/op_model_cell.c @@ -113,6 +113,7 @@ struct oprofile_umask { static void FW_Call_Rtas(PM_Rtas_Args *pArgs) { +#ifdef SDK2_0 int error; error = rtas_call(rtas_token("ibm,cbe-perftools"), 5, 1, NULL, @@ -125,25 +126,28 @@ static void FW_Call_Rtas(PM_Rtas_Args *p if (error) printk(KERN_WARNING "error: ibm,cbe-perftools returned: %d\n", error); +#endif } static void FW_ResetSignals(u32 cpu) { - PM_Rtas_Args args; + PM_Rtas_Args *pArgs; u64 real_address; - real_address = (u64) virt_to_phys(&(args.signal[0])); + pArgs = &rtas_args; - args.subfunc = subfunc_RESET; - args.passthru = passthru_DISABLE; - args.buffer_addr_hi = real_address >> 32; - args.buffer_addr_lo = real_address & 0xffffffff; - args.buffer_length = sizeof(PM_Signal); - args.signal[0].cpu = cpu; + real_address = (u64) virt_to_phys(&(pArgs->signal[0])); + + pArgs->subfunc = subfunc_RESET; + pArgs->passthru = passthru_DISABLE; + pArgs->buffer_addr_hi = real_address >> 32; + pArgs->buffer_addr_lo = real_address & 0xffffffff; + pArgs->buffer_length = sizeof(PM_Signal); + pArgs->signal[0].cpu = cpu; pm_regs.passthru = passthru_DISABLE; - FW_Call_Rtas(&args); + FW_Call_Rtas(pArgs); } static void FW_ActivateSignals(u32 cpu, u32 count)