2023-01-30 08:55:23

by ye.xingchen

[permalink] [raw]
Subject: [PATCH] samples: fix the compile error about SAMPLE_VFIO_MDEV_ series

From: ye xingchen <[email protected]>

When CONFIG_VFIO = m, SAMPLE_VFIO_MDEV_MTTY, SAMPLE_VFIO_MDEV_MTTY and
SAMPLE_VFIO_MDEV_MBOCHS can be selected as:
CONFIG_SAMPLE_VFIO_MDEV_MTTY = y;
CONFIG_SAMPLE_VFIO_MDEV_MTTY = y;
CONFIG_SAMPLE_VFIO_MDEV_MBOCHS = y;

That will cause compile error such as:

ld: samples/vfio-mdev/mdpy.o: in function 'mdpy_remove':
samples/vfio-mdev/mdpy.c:294: undefined reference to
'vfio_unregister_group_dev'

ld: samples/vfio-mdev/mtty.o: in function 'mtty_remove':
samples/vfio-mdev/mtty.c:793: undefined reference to
'vfio_unregister_group_dev'

ld: samples/vfio-mdev/mbochs.o: in function 'mbochs_remove':
samples/vfio-mdev/mbochs.c:603: undefined reference to
'vfio_unregister_group_dev'

Add dependency make SAMPLE_VFIO_MDEV_MTTY, SAMPLE_VFIO_MDEV_MTTY and
SAMPLE_VFIO_MDEV_MBOCHS not allowed to set as y when
CONFIG_VFIO = m.

Signed-off-by: ye xingchen <[email protected]>
---
samples/Kconfig | 3 +++
1 file changed, 3 insertions(+)

diff --git a/samples/Kconfig b/samples/Kconfig
index 56b191d128d8..44a09dfa8a0b 100644
--- a/samples/Kconfig
+++ b/samples/Kconfig
@@ -185,6 +185,7 @@ config SAMPLE_UHID

config SAMPLE_VFIO_MDEV_MTTY
tristate "Build VFIO mtty example mediated device sample code"
+ depends on VFIO
select VFIO_MDEV
help
Build a virtual tty sample driver for use as a VFIO
@@ -192,6 +193,7 @@ config SAMPLE_VFIO_MDEV_MTTY

config SAMPLE_VFIO_MDEV_MDPY
tristate "Build VFIO mdpy example mediated device sample code"
+ depends on VFIO
select VFIO_MDEV
help
Build a virtual display sample driver for use as a VFIO
@@ -209,6 +211,7 @@ config SAMPLE_VFIO_MDEV_MDPY_FB

config SAMPLE_VFIO_MDEV_MBOCHS
tristate "Build VFIO mdpy example mediated device sample code"
+ depends on VFIO
select VFIO_MDEV
select DMA_SHARED_BUFFER
help
--
2.25.1


2023-01-30 23:55:59

by Alex Williamson

[permalink] [raw]
Subject: Re: [PATCH] samples: fix the compile error about SAMPLE_VFIO_MDEV_ series

On Mon, 30 Jan 2023 16:55:03 +0800 (CST)
<[email protected]> wrote:

> From: ye xingchen <[email protected]>
>
> When CONFIG_VFIO = m, SAMPLE_VFIO_MDEV_MTTY, SAMPLE_VFIO_MDEV_MTTY and
> SAMPLE_VFIO_MDEV_MBOCHS can be selected as:
> CONFIG_SAMPLE_VFIO_MDEV_MTTY = y;
> CONFIG_SAMPLE_VFIO_MDEV_MTTY = y;
> CONFIG_SAMPLE_VFIO_MDEV_MBOCHS = y;
>
> That will cause compile error such as:
>
> ld: samples/vfio-mdev/mdpy.o: in function 'mdpy_remove':
> samples/vfio-mdev/mdpy.c:294: undefined reference to
> 'vfio_unregister_group_dev'
>
> ld: samples/vfio-mdev/mtty.o: in function 'mtty_remove':
> samples/vfio-mdev/mtty.c:793: undefined reference to
> 'vfio_unregister_group_dev'
>
> ld: samples/vfio-mdev/mbochs.o: in function 'mbochs_remove':
> samples/vfio-mdev/mbochs.c:603: undefined reference to
> 'vfio_unregister_group_dev'
>
> Add dependency make SAMPLE_VFIO_MDEV_MTTY, SAMPLE_VFIO_MDEV_MTTY and
> SAMPLE_VFIO_MDEV_MBOCHS not allowed to set as y when
> CONFIG_VFIO = m.
>
> Signed-off-by: ye xingchen <[email protected]>
> ---
> samples/Kconfig | 3 +++
> 1 file changed, 3 insertions(+)

Thanks for the fix! Another version[1] was sent last week that includes
a more complete fix and has been merged into the vfio next branch.
Thanks,

Alex

[1]https://lore.kernel.org/all/[email protected]/


> diff --git a/samples/Kconfig b/samples/Kconfig
> index 56b191d128d8..44a09dfa8a0b 100644
> --- a/samples/Kconfig
> +++ b/samples/Kconfig
> @@ -185,6 +185,7 @@ config SAMPLE_UHID
>
> config SAMPLE_VFIO_MDEV_MTTY
> tristate "Build VFIO mtty example mediated device sample code"
> + depends on VFIO
> select VFIO_MDEV
> help
> Build a virtual tty sample driver for use as a VFIO
> @@ -192,6 +193,7 @@ config SAMPLE_VFIO_MDEV_MTTY
>
> config SAMPLE_VFIO_MDEV_MDPY
> tristate "Build VFIO mdpy example mediated device sample code"
> + depends on VFIO
> select VFIO_MDEV
> help
> Build a virtual display sample driver for use as a VFIO
> @@ -209,6 +211,7 @@ config SAMPLE_VFIO_MDEV_MDPY_FB
>
> config SAMPLE_VFIO_MDEV_MBOCHS
> tristate "Build VFIO mdpy example mediated device sample code"
> + depends on VFIO
> select VFIO_MDEV
> select DMA_SHARED_BUFFER
> help