RE: [PATCH] vfio/qat: add PCI_IOV dependency

From: Tian, Kevin
Date: Tue May 28 2024 - 22:25:50 EST


> From: Arnd Bergmann <arnd@xxxxxxxxxx>
> Sent: Tuesday, May 28, 2024 8:05 PM
>
> From: Arnd Bergmann <arnd@xxxxxxxx>
>
> The newly added driver depends on the crypto driver, but it uses exported
> symbols that are only available when IOV is also turned on:
>
> x86_64-linux-ld: drivers/vfio/pci/qat/main.o: in function
> `qat_vf_pci_open_device':
> main.c:(.text+0xd7): undefined reference to `qat_vfmig_open'
> x86_64-linux-ld: drivers/vfio/pci/qat/main.o: in function
> `qat_vf_pci_release_dev':
> main.c:(.text+0x122): undefined reference to `qat_vfmig_cleanup'
> x86_64-linux-ld: main.c:(.text+0x12d): undefined reference to
> `qat_vfmig_destroy'
> x86_64-linux-ld: drivers/vfio/pci/qat/main.o: in function
> `qat_vf_resume_write':
> main.c:(.text+0x308): undefined reference to `qat_vfmig_load_setup'
> x86_64-linux-ld: drivers/vfio/pci/qat/main.o: in function
> `qat_vf_save_device_data':
> main.c:(.text+0x64c): undefined reference to `qat_vfmig_save_state'
> x86_64-linux-ld: main.c:(.text+0x677): undefined reference to
> `qat_vfmig_save_setup'
> x86_64-linux-ld: drivers/vfio/pci/qat/main.o: in function
> `qat_vf_pci_aer_reset_done':
> main.c:(.text+0x82d): undefined reference to `qat_vfmig_reset'
> x86_64-linux-ld: drivers/vfio/pci/qat/main.o: in function
> `qat_vf_pci_close_device':
> main.c:(.text+0x862): undefined reference to `qat_vfmig_close'
> x86_64-linux-ld: drivers/vfio/pci/qat/main.o: in function
> `qat_vf_pci_set_device_state':
> main.c:(.text+0x9af): undefined reference to `qat_vfmig_suspend'
> x86_64-linux-ld: main.c:(.text+0xa14): undefined reference to
> `qat_vfmig_save_state'
> x86_64-linux-ld: main.c:(.text+0xb37): undefined reference to
> `qat_vfmig_resume'
> x86_64-linux-ld: main.c:(.text+0xbc7): undefined reference to
> `qat_vfmig_load_state'

at a glance those undefined symbols don't use any symbol under
IOV. They are just wrappers to certain callbacks registered by
by respective qat drivers which support migration.

Probably they'd better be moved out of CONFIG_PCI_IOV in
"drivers/crypto/intel/qat/qat_common/Makefile" to remove
this dependency in vfio variant driver.

>
> Add this as a second dependency.
>
> Fixes: bb208810b1ab ("vfio/qat: Add vfio_pci driver for Intel QAT SR-IOV VF
> devices")
> Signed-off-by: Arnd Bergmann <arnd@xxxxxxxx>
> ---
> drivers/vfio/pci/qat/Kconfig | 3 ++-
> 1 file changed, 2 insertions(+), 1 deletion(-)
>
> diff --git a/drivers/vfio/pci/qat/Kconfig b/drivers/vfio/pci/qat/Kconfig
> index bf52cfa4b595..fae9d6cb8ccb 100644
> --- a/drivers/vfio/pci/qat/Kconfig
> +++ b/drivers/vfio/pci/qat/Kconfig
> @@ -1,8 +1,9 @@
> # SPDX-License-Identifier: GPL-2.0-only
> config QAT_VFIO_PCI
> tristate "VFIO support for QAT VF PCI devices"
> - select VFIO_PCI_CORE
> depends on CRYPTO_DEV_QAT_4XXX
> + depends on PCI_IOV
> + select VFIO_PCI_CORE
> help
> This provides migration support for Intel(R) QAT Virtual Function
> using the VFIO framework.
> --
> 2.39.2