Hi Helge, Helge Deller <deller@xxxxxx> writes: > On 10/10/21 20:38, Sven Schnelle wrote: >> +void notrace toc_intr(struct pt_regs *regs) >> +{ >> + struct pdc_toc_pim_20 pim_data20; >> + struct pdc_toc_pim_11 pim_data11; >> + >> + nmi_enter(); >> + >> + if (boot_cpu_data.cpu_type >= pcxu) { > > I wonder if this is correct. > If we boot a 32bit-kernel on a 64-bit (pcxu) machine, then > I think the code below for pdc_pim_toc11() should be executed. > So, maybe we need a #ifdef CONFIG_64BIT above... > > >> + if (pdc_pim_toc20(&pim_data20)) >> + panic("Failed to get PIM data"); >> + toc20_to_pt_regs(regs, &pim_data20); >> + } else { > > ... with an #else here > >> + if (pdc_pim_toc11(&pim_data11)) >> + panic("Failed to get PIM data"); >> + toc11_to_pt_regs(regs, &pim_data11); >> + } > > and #endif here. ?? Hmm, that's what i understood from the HPMC PIM code, transfer_pim_to_trap_frame(). If it's running a 32 Bit OS, than PDC returns a wide frame on a 64 bit capable CPU? But maybe i have to read the documentation/code again. Regards Sven