On Fri, Dec 03, 2021 at 07:55:14PM +0100, Arnd Bergmann
wrote:> From: Arnd Bergmann <arnd at arndb.de>
>
> When VIRTIO_PCI_LIB is not built-in but the alibaba driver is, the
> kernel runs into a link error:
>
> x86_64-linux-ld: drivers/vdpa/alibaba/eni_vdpa.o: in function
`eni_vdpa_set_features':
> eni_vdpa.c:(.text+0x23f): undefined reference to
`vp_legacy_set_features'
> x86_64-linux-ld: drivers/vdpa/alibaba/eni_vdpa.o: in function
`eni_vdpa_set_vq_state':
> eni_vdpa.c:(.text+0x2fe): undefined reference to
`vp_legacy_get_queue_enable'
> x86_64-linux-ld: drivers/vdpa/alibaba/eni_vdpa.o: in function
`eni_vdpa_set_vq_address':
> eni_vdpa.c:(.text+0x376): undefined reference to
`vp_legacy_set_queue_address'
> x86_64-linux-ld: drivers/vdpa/alibaba/eni_vdpa.o: in function
`eni_vdpa_set_vq_ready':
> eni_vdpa.c:(.text+0x3b4): undefined reference to
`vp_legacy_set_queue_address'
> x86_64-linux-ld: drivers/vdpa/alibaba/eni_vdpa.o: in function
`eni_vdpa_free_irq':
> eni_vdpa.c:(.text+0x460): undefined reference to
`vp_legacy_queue_vector'
> x86_64-linux-ld: eni_vdpa.c:(.text+0x4b7): undefined reference to
`vp_legacy_config_vector'
> x86_64-linux-ld: drivers/vdpa/alibaba/eni_vdpa.o: in function
`eni_vdpa_reset':
>
> Selecting VIRTIO_PCI_LIB_LEGACY is not sufficient here since that is
> only part of the VIRTIO_PCI_LIB support.
>
> Fixes: e85087beedca ("eni_vdpa: add vDPA driver for Alibaba ENI")
> Signed-off-by: Arnd Bergmann <arnd at arndb.de>
Confused. These are all part of
drivers/virtio/virtio_pci_legacy_dev.c
and
obj-$(CONFIG_VIRTIO_PCI_LIB_LEGACY) += virtio_pci_legacy_dev.o
what gives?
> ---
> drivers/vdpa/Kconfig | 1 +
> 1 file changed, 1 insertion(+)
>
> diff --git a/drivers/vdpa/Kconfig b/drivers/vdpa/Kconfig
> index 50f45d037611..04466603021f 100644
> --- a/drivers/vdpa/Kconfig
> +++ b/drivers/vdpa/Kconfig
> @@ -80,6 +80,7 @@ config VP_VDPA
>
> config ALIBABA_ENI_VDPA
> tristate "vDPA driver for Alibaba ENI"
> + select VIRTIO_PCI_LIB
> select VIRTIO_PCI_LIB_LEGACY
> depends on PCI_MSI && X86
> help
> --
> 2.29.2