Re: [PATCH 1/5] ARM: add EXPORT_SYMBOL of hook_fault_code for PCI host modularization

From: Arnd Bergmann
Date: Mon Feb 08 2016 - 04:53:51 EST


On Sunday 07 February 2016 19:00:40 Paul Gortmaker wrote:
> In a discussion of a previous patch set[1], it was suggested that
> modularizing some of the PCI host support would be good to keep
> multi platform bzImage sizes smaller.
>
> Two of the files that are candidates for conversion to tristate
> from bool are:
>
> drivers/pci/host/pci-imx6.c
> drivers/pci/host/pci-keystone.c
>
> However, doing the conversion reveals that they are going to fail
> at modpost time since hook_fault_code isn't currently exported.
>
> Since we are now going to export it we also need to remove the
> __init tag, as the fcn needs to be present at insmod time.
>
> [1] https://lkml.kernel.org/r/20160108203102.GH5354@localhost
>

If we want to make hook_fault_code() visible, we at least also need
an unhook_fault_code() function that removes the fault handler
when unloading the module, and preferably does so in a safe way.

The usage of hook_fault_code() at least in the imx driver is also
problematic, as it just ignores all "imprecise external abort"
faults, whether they come from PCI or not.

Arnd