Re: [PATCH V2] PCI: rcar: Add L1 link state fix into data abort hook

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



Hi Marek,

On Sun, Oct 4, 2020 at 4:16 PM Marek Vasut <marek.vasut@xxxxxxxxx> wrote:
> 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/pci/controller/dwc/pci-keystone.c is:

  ks_pcie_probe()
    ks_pcie_add_pcie_port()
      dw_pcie_host_init()
        pp->ops->host_init(pp) = ks_pcie_host_init()
          hook_fault_code()

> drivers which hook fault code do it in init as well. I can imagine that

Probably nobody bothered exercising the external abort handler on
multi-platform kernels?

> 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.

If that is the case, it must indeed by done earlier, but still
conditional on the presence of the actual PCIe controller.

Gr{oetje,eeting}s,

                        Geert

-- 
Geert Uytterhoeven -- There's lots of Linux beyond ia32 -- geert@xxxxxxxxxxxxxx

In personal conversations with technical people, I call myself a hacker. But
when I'm talking to journalists I just say "programmer" or something like that.
                                -- Linus Torvalds



[Index of Archives]     [Linux Samsung SOC]     [Linux Wireless]     [Linux Kernel]     [ATH6KL]     [Linux Bluetooth]     [Linux Netdev]     [Kernel Newbies]     [IDE]     [Security]     [Git]     [Netfilter]     [Bugtraq]     [Yosemite News]     [MIPS Linux]     [ARM Linux]     [Linux Security]     [Linux RAID]     [Linux ATA RAID]     [Samba]     [Device Mapper]

  Powered by Linux