Re: [PATCH] vfio: Fix build failure seen if vfio is built as module and EEH is enabled

Guenter Roeck
2014-08-09T22:28:08Z

On 08/09/2014 12:28 PM, Alex Williamson wrote:
> On Sat, 2014-08-09 at 10:04 -0700, Guenter Roeck wrote:
>> The following build failure is seen with ppc:allmodconfig.
>>
>> ERROR: ".vfio_spapr_iommu_eeh_ioctl" [drivers/vfio/vfio_iommu_spapr_tce.ko] undefined!
>> ERROR: ".vfio_spapr_pci_eeh_open" [drivers/vfio/pci/vfio-pci.ko] undefined!
>> ERROR: ".vfio_spapr_pci_eeh_release" [drivers/vfio/pci/vfio-pci.ko] undefined!
>>
>> Simply exporting the missing symbols is insufficient, since drivers/vfio
>> can be built as module but drivers/vfio/vfio_spapr_eeh.c depends on
>> EEH which is boolean. The combination of obj-m for drivers/vfio and obj-y
>> for drivers/vfio/vfio_spapr_eeh.o results in the symbols being missed even
>> if exported.
>>
>> Export missing symbols and introduce new tristate configuration option
>> VFIO_EEH depending on both EEH and VFIO to fix the problem.
>>
>> Cc: Gavin Shan <gwshan@linux.vnet.ibm.com>
>> Cc: Benjamin Herrenschmidt <benh@kernel.crashing.org>
>> Signed-off-by: Guenter Roeck <linux@roeck-us.net>
>
> Please try:
>
> git://github.com/awilliam/linux-vfio.git next
>
> This will be part of the next linux-next build, should resolve the
> problem, and I plan to ask for a pull early this coming week. Thanks,
>

That should do for the most part, but it will select VFIO_SPAPR_EEH
even if EEH is not configured. You would need something like
select VFIO_SPAPR_EEH if (PPC_POWERNV || PPC_PSERIES) && EEH
to prevent that.

Guenter