On 9/28/20 11:35 AM, Geert Uytterhoeven wrote: [...] >> +static int __init rcar_pcie_init(void) >> +{ >> +#ifdef CONFIG_ARM_LPAE >> + hook_fault_code(17, rcar_pcie_aarch32_abort_handler, SIGBUS, 0, >> + "asynchronous external abort"); >> +#else >> + hook_fault_code(22, rcar_pcie_aarch32_abort_handler, SIGBUS, 0, >> + "imprecise external abort"); >> +#endif > > As there can be only a single handler, this may interfere with a handler > for another platform in a multi-platform kernel. > Hence I think this should not be done unconditionally, but be moved to > the driver's .probe() callback. Why is nobody doing this in the probe code then ? It seems all the other drivers which hook fault code do it in init as well. I can imagine that something might trip the fault handler even before probe is called, e.g. some PM handling or simply user accessing that PCIe area using setpci. [...]