2021-04-22 13:39:44

by Arnd Bergmann

[permalink] [raw]
Subject: [PATCH] vfio/gvt: fix DRM_I915_GVT dependency on VFIO_MDEV

From: Arnd Bergmann <[email protected]>

The Kconfig dependency is incomplete since DRM_I915_GVT is a 'bool'
symbol that depends on the 'tristate' VFIO_MDEV. This allows a
configuration with VFIO_MDEV=m, DRM_I915_GVT=y and DRM_I915=y that
causes a link failure:

x86_64-linux-ld: drivers/gpu/drm/i915/gvt/gvt.o: in function `available_instances_show':
gvt.c:(.text+0x67a): undefined reference to `mtype_get_parent_dev'
x86_64-linux-ld: gvt.c:(.text+0x6a5): undefined reference to `mtype_get_type_group_id'
x86_64-linux-ld: drivers/gpu/drm/i915/gvt/gvt.o: in function `description_show':
gvt.c:(.text+0x76e): undefined reference to `mtype_get_parent_dev'
x86_64-linux-ld: gvt.c:(.text+0x799): undefined reference to `mtype_get_type_group_id'

Clarify the dependency by specifically disallowing the broken
configuration. If VFIO_MDEV is built-in, it will work, but if
VFIO_MDEV=m, the i915 driver cannot be built-in here.

Fixes: 07e543f4f9d1 ("vfio/gvt: Make DRM_I915_GVT depend on VFIO_MDEV")
Fixes: 9169cff168ff ("vfio/mdev: Correct the function signatures for the mdev_type_attributes")
Signed-off-by: Arnd Bergmann <[email protected]>
---
drivers/gpu/drm/i915/Kconfig | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/drivers/gpu/drm/i915/Kconfig b/drivers/gpu/drm/i915/Kconfig
index 7a5b7a93d33e..791cc9556863 100644
--- a/drivers/gpu/drm/i915/Kconfig
+++ b/drivers/gpu/drm/i915/Kconfig
@@ -111,7 +111,7 @@ config DRM_I915_GVT
bool "Enable Intel GVT-g graphics virtualization host support"
depends on DRM_I915
depends on 64BIT
- depends on VFIO_MDEV
+ depends on VFIO_MDEV=y || VFIO_MDEV=DRM_I915
default n
help
Choose this option if you want to enable Intel GVT-g graphics
--
2.29.2


2021-04-22 14:01:46

by Jason Gunthorpe

[permalink] [raw]
Subject: Re: [PATCH] vfio/gvt: fix DRM_I915_GVT dependency on VFIO_MDEV

On Thu, Apr 22, 2021 at 03:35:33PM +0200, Arnd Bergmann wrote:
> From: Arnd Bergmann <[email protected]>
>
> The Kconfig dependency is incomplete since DRM_I915_GVT is a 'bool'
> symbol that depends on the 'tristate' VFIO_MDEV. This allows a
> configuration with VFIO_MDEV=m, DRM_I915_GVT=y and DRM_I915=y that
> causes a link failure:
>
> x86_64-linux-ld: drivers/gpu/drm/i915/gvt/gvt.o: in function `available_instances_show':
> gvt.c:(.text+0x67a): undefined reference to `mtype_get_parent_dev'
> x86_64-linux-ld: gvt.c:(.text+0x6a5): undefined reference to `mtype_get_type_group_id'
> x86_64-linux-ld: drivers/gpu/drm/i915/gvt/gvt.o: in function `description_show':
> gvt.c:(.text+0x76e): undefined reference to `mtype_get_parent_dev'
> x86_64-linux-ld: gvt.c:(.text+0x799): undefined reference to `mtype_get_type_group_id'
>
> Clarify the dependency by specifically disallowing the broken
> configuration. If VFIO_MDEV is built-in, it will work, but if
> VFIO_MDEV=m, the i915 driver cannot be built-in here.
>
> Fixes: 07e543f4f9d1 ("vfio/gvt: Make DRM_I915_GVT depend on VFIO_MDEV")
> Fixes: 9169cff168ff ("vfio/mdev: Correct the function signatures for the mdev_type_attributes")
> Signed-off-by: Arnd Bergmann <[email protected]>
> ---
> drivers/gpu/drm/i915/Kconfig | 2 +-
> 1 file changed, 1 insertion(+), 1 deletion(-)

Oh kconfig stuff like this makes my head hurt, thanks for finding it

I also can't see an alternative to this ugly thing, besides having the
i915 guys properly modularize this code someday

Reviewed-by: Jason Gunthorpe <[email protected]>

Jason

2021-04-22 14:54:33

by Jani Nikula

[permalink] [raw]
Subject: Re: [PATCH] vfio/gvt: fix DRM_I915_GVT dependency on VFIO_MDEV


Cc: gvt list & maintainers

On Thu, 22 Apr 2021, Jason Gunthorpe <[email protected]> wrote:
> On Thu, Apr 22, 2021 at 03:35:33PM +0200, Arnd Bergmann wrote:
>> From: Arnd Bergmann <[email protected]>
>>
>> The Kconfig dependency is incomplete since DRM_I915_GVT is a 'bool'
>> symbol that depends on the 'tristate' VFIO_MDEV. This allows a
>> configuration with VFIO_MDEV=m, DRM_I915_GVT=y and DRM_I915=y that
>> causes a link failure:
>>
>> x86_64-linux-ld: drivers/gpu/drm/i915/gvt/gvt.o: in function `available_instances_show':
>> gvt.c:(.text+0x67a): undefined reference to `mtype_get_parent_dev'
>> x86_64-linux-ld: gvt.c:(.text+0x6a5): undefined reference to `mtype_get_type_group_id'
>> x86_64-linux-ld: drivers/gpu/drm/i915/gvt/gvt.o: in function `description_show':
>> gvt.c:(.text+0x76e): undefined reference to `mtype_get_parent_dev'
>> x86_64-linux-ld: gvt.c:(.text+0x799): undefined reference to `mtype_get_type_group_id'
>>
>> Clarify the dependency by specifically disallowing the broken
>> configuration. If VFIO_MDEV is built-in, it will work, but if
>> VFIO_MDEV=m, the i915 driver cannot be built-in here.
>>
>> Fixes: 07e543f4f9d1 ("vfio/gvt: Make DRM_I915_GVT depend on VFIO_MDEV")
>> Fixes: 9169cff168ff ("vfio/mdev: Correct the function signatures for the mdev_type_attributes")
>> Signed-off-by: Arnd Bergmann <[email protected]>
>> ---
>> drivers/gpu/drm/i915/Kconfig | 2 +-
>> 1 file changed, 1 insertion(+), 1 deletion(-)
>
> Oh kconfig stuff like this makes my head hurt, thanks for finding it
>
> I also can't see an alternative to this ugly thing, besides having the
> i915 guys properly modularize this code someday
>
> Reviewed-by: Jason Gunthorpe <[email protected]>
>
> Jason

--
Jani Nikula, Intel Open Source Graphics Center

2021-04-23 04:13:55

by Zhenyu Wang

[permalink] [raw]
Subject: Re: [PATCH] vfio/gvt: fix DRM_I915_GVT dependency on VFIO_MDEV

On 2021.04.22 10:58:10 -0300, Jason Gunthorpe wrote:
> On Thu, Apr 22, 2021 at 03:35:33PM +0200, Arnd Bergmann wrote:
> > From: Arnd Bergmann <[email protected]>
> >
> > The Kconfig dependency is incomplete since DRM_I915_GVT is a 'bool'
> > symbol that depends on the 'tristate' VFIO_MDEV. This allows a
> > configuration with VFIO_MDEV=m, DRM_I915_GVT=y and DRM_I915=y that
> > causes a link failure:
> >
> > x86_64-linux-ld: drivers/gpu/drm/i915/gvt/gvt.o: in function `available_instances_show':
> > gvt.c:(.text+0x67a): undefined reference to `mtype_get_parent_dev'
> > x86_64-linux-ld: gvt.c:(.text+0x6a5): undefined reference to `mtype_get_type_group_id'
> > x86_64-linux-ld: drivers/gpu/drm/i915/gvt/gvt.o: in function `description_show':
> > gvt.c:(.text+0x76e): undefined reference to `mtype_get_parent_dev'
> > x86_64-linux-ld: gvt.c:(.text+0x799): undefined reference to `mtype_get_type_group_id'
> >
> > Clarify the dependency by specifically disallowing the broken
> > configuration. If VFIO_MDEV is built-in, it will work, but if
> > VFIO_MDEV=m, the i915 driver cannot be built-in here.
> >
> > Fixes: 07e543f4f9d1 ("vfio/gvt: Make DRM_I915_GVT depend on VFIO_MDEV")
> > Fixes: 9169cff168ff ("vfio/mdev: Correct the function signatures for the mdev_type_attributes")
> > Signed-off-by: Arnd Bergmann <[email protected]>
> > ---
> > drivers/gpu/drm/i915/Kconfig | 2 +-
> > 1 file changed, 1 insertion(+), 1 deletion(-)
>
> Oh kconfig stuff like this makes my head hurt, thanks for finding it
>
> I also can't see an alternative to this ugly thing, besides having the
> i915 guys properly modularize this code someday
>
> Reviewed-by: Jason Gunthorpe <[email protected]>
>

I don't really want this mess to propagate further. We should move
mdev related stuff to kvmgt module instead, so not pretend any more to
possibly use that for other hypervisor..

Sorry that I didn't realize this issue when Jason proposed this. Let
me do the left cleanup.

Thanks


Attachments:
(No filename) (1.96 kB)
signature.asc (201.00 B)
Download all attachments

2021-04-23 12:08:47

by Jason Gunthorpe

[permalink] [raw]
Subject: Re: [PATCH] vfio/gvt: fix DRM_I915_GVT dependency on VFIO_MDEV

On Fri, Apr 23, 2021 at 11:54:26AM +0800, Zhenyu Wang wrote:
> On 2021.04.22 10:58:10 -0300, Jason Gunthorpe wrote:
> > On Thu, Apr 22, 2021 at 03:35:33PM +0200, Arnd Bergmann wrote:
> > > From: Arnd Bergmann <[email protected]>
> > >
> > > The Kconfig dependency is incomplete since DRM_I915_GVT is a 'bool'
> > > symbol that depends on the 'tristate' VFIO_MDEV. This allows a
> > > configuration with VFIO_MDEV=m, DRM_I915_GVT=y and DRM_I915=y that
> > > causes a link failure:
> > >
> > > x86_64-linux-ld: drivers/gpu/drm/i915/gvt/gvt.o: in function `available_instances_show':
> > > gvt.c:(.text+0x67a): undefined reference to `mtype_get_parent_dev'
> > > x86_64-linux-ld: gvt.c:(.text+0x6a5): undefined reference to `mtype_get_type_group_id'
> > > x86_64-linux-ld: drivers/gpu/drm/i915/gvt/gvt.o: in function `description_show':
> > > gvt.c:(.text+0x76e): undefined reference to `mtype_get_parent_dev'
> > > x86_64-linux-ld: gvt.c:(.text+0x799): undefined reference to `mtype_get_type_group_id'
> > >
> > > Clarify the dependency by specifically disallowing the broken
> > > configuration. If VFIO_MDEV is built-in, it will work, but if
> > > VFIO_MDEV=m, the i915 driver cannot be built-in here.
> > >
> > > Fixes: 07e543f4f9d1 ("vfio/gvt: Make DRM_I915_GVT depend on VFIO_MDEV")
> > > Fixes: 9169cff168ff ("vfio/mdev: Correct the function signatures for the mdev_type_attributes")
> > > Signed-off-by: Arnd Bergmann <[email protected]>
> > > drivers/gpu/drm/i915/Kconfig | 2 +-
> > > 1 file changed, 1 insertion(+), 1 deletion(-)
> >
> > Oh kconfig stuff like this makes my head hurt, thanks for finding it
> >
> > I also can't see an alternative to this ugly thing, besides having the
> > i915 guys properly modularize this code someday
> >
> > Reviewed-by: Jason Gunthorpe <[email protected]>
> >
>
> I don't really want this mess to propagate further. We should move
> mdev related stuff to kvmgt module instead, so not pretend any more to
> possibly use that for other hypervisor..
>
> Sorry that I didn't realize this issue when Jason proposed this. Let
> me do the left cleanup.

It would be good, but Alex should still take this patch for the
upcoming merge window, you can revert it when you do all the cleanups

Jason

2021-04-23 15:22:42

by Alex Williamson

[permalink] [raw]
Subject: Re: [PATCH] vfio/gvt: fix DRM_I915_GVT dependency on VFIO_MDEV

On Fri, 23 Apr 2021 09:07:09 -0300
Jason Gunthorpe <[email protected]> wrote:

> On Fri, Apr 23, 2021 at 11:54:26AM +0800, Zhenyu Wang wrote:
> > On 2021.04.22 10:58:10 -0300, Jason Gunthorpe wrote:
> > > On Thu, Apr 22, 2021 at 03:35:33PM +0200, Arnd Bergmann wrote:
> > > > From: Arnd Bergmann <[email protected]>
> > > >
> > > > The Kconfig dependency is incomplete since DRM_I915_GVT is a 'bool'
> > > > symbol that depends on the 'tristate' VFIO_MDEV. This allows a
> > > > configuration with VFIO_MDEV=m, DRM_I915_GVT=y and DRM_I915=y that
> > > > causes a link failure:
> > > >
> > > > x86_64-linux-ld: drivers/gpu/drm/i915/gvt/gvt.o: in function `available_instances_show':
> > > > gvt.c:(.text+0x67a): undefined reference to `mtype_get_parent_dev'
> > > > x86_64-linux-ld: gvt.c:(.text+0x6a5): undefined reference to `mtype_get_type_group_id'
> > > > x86_64-linux-ld: drivers/gpu/drm/i915/gvt/gvt.o: in function `description_show':
> > > > gvt.c:(.text+0x76e): undefined reference to `mtype_get_parent_dev'
> > > > x86_64-linux-ld: gvt.c:(.text+0x799): undefined reference to `mtype_get_type_group_id'
> > > >
> > > > Clarify the dependency by specifically disallowing the broken
> > > > configuration. If VFIO_MDEV is built-in, it will work, but if
> > > > VFIO_MDEV=m, the i915 driver cannot be built-in here.
> > > >
> > > > Fixes: 07e543f4f9d1 ("vfio/gvt: Make DRM_I915_GVT depend on VFIO_MDEV")
> > > > Fixes: 9169cff168ff ("vfio/mdev: Correct the function signatures for the mdev_type_attributes")
> > > > Signed-off-by: Arnd Bergmann <[email protected]>
> > > > drivers/gpu/drm/i915/Kconfig | 2 +-
> > > > 1 file changed, 1 insertion(+), 1 deletion(-)
> > >
> > > Oh kconfig stuff like this makes my head hurt, thanks for finding it
> > >
> > > I also can't see an alternative to this ugly thing, besides having the
> > > i915 guys properly modularize this code someday
> > >
> > > Reviewed-by: Jason Gunthorpe <[email protected]>
> > >
> >
> > I don't really want this mess to propagate further. We should move
> > mdev related stuff to kvmgt module instead, so not pretend any more to
> > possibly use that for other hypervisor..
> >
> > Sorry that I didn't realize this issue when Jason proposed this. Let
> > me do the left cleanup.
>
> It would be good, but Alex should still take this patch for the
> upcoming merge window, you can revert it when you do all the cleanups

I can include it, but I'll wait for confirmation from Zhenyu. Thanks,

Alex

2021-04-25 03:43:03

by Zhenyu Wang

[permalink] [raw]
Subject: Re: [PATCH] vfio/gvt: fix DRM_I915_GVT dependency on VFIO_MDEV

On 2021.04.23 09:20:09 -0600, Alex Williamson wrote:
> On Fri, 23 Apr 2021 09:07:09 -0300
> Jason Gunthorpe <[email protected]> wrote:
>
> > On Fri, Apr 23, 2021 at 11:54:26AM +0800, Zhenyu Wang wrote:
> > > On 2021.04.22 10:58:10 -0300, Jason Gunthorpe wrote:
> > > > On Thu, Apr 22, 2021 at 03:35:33PM +0200, Arnd Bergmann wrote:
> > > > > From: Arnd Bergmann <[email protected]>
> > > > >
> > > > > The Kconfig dependency is incomplete since DRM_I915_GVT is a 'bool'
> > > > > symbol that depends on the 'tristate' VFIO_MDEV. This allows a
> > > > > configuration with VFIO_MDEV=m, DRM_I915_GVT=y and DRM_I915=y that
> > > > > causes a link failure:
> > > > >
> > > > > x86_64-linux-ld: drivers/gpu/drm/i915/gvt/gvt.o: in function `available_instances_show':
> > > > > gvt.c:(.text+0x67a): undefined reference to `mtype_get_parent_dev'
> > > > > x86_64-linux-ld: gvt.c:(.text+0x6a5): undefined reference to `mtype_get_type_group_id'
> > > > > x86_64-linux-ld: drivers/gpu/drm/i915/gvt/gvt.o: in function `description_show':
> > > > > gvt.c:(.text+0x76e): undefined reference to `mtype_get_parent_dev'
> > > > > x86_64-linux-ld: gvt.c:(.text+0x799): undefined reference to `mtype_get_type_group_id'
> > > > >
> > > > > Clarify the dependency by specifically disallowing the broken
> > > > > configuration. If VFIO_MDEV is built-in, it will work, but if
> > > > > VFIO_MDEV=m, the i915 driver cannot be built-in here.
> > > > >
> > > > > Fixes: 07e543f4f9d1 ("vfio/gvt: Make DRM_I915_GVT depend on VFIO_MDEV")
> > > > > Fixes: 9169cff168ff ("vfio/mdev: Correct the function signatures for the mdev_type_attributes")
> > > > > Signed-off-by: Arnd Bergmann <[email protected]>
> > > > > drivers/gpu/drm/i915/Kconfig | 2 +-
> > > > > 1 file changed, 1 insertion(+), 1 deletion(-)
> > > >
> > > > Oh kconfig stuff like this makes my head hurt, thanks for finding it
> > > >
> > > > I also can't see an alternative to this ugly thing, besides having the
> > > > i915 guys properly modularize this code someday
> > > >
> > > > Reviewed-by: Jason Gunthorpe <[email protected]>
> > > >
> > >
> > > I don't really want this mess to propagate further. We should move
> > > mdev related stuff to kvmgt module instead, so not pretend any more to
> > > possibly use that for other hypervisor..
> > >
> > > Sorry that I didn't realize this issue when Jason proposed this. Let
> > > me do the left cleanup.
> >
> > It would be good, but Alex should still take this patch for the
> > upcoming merge window, you can revert it when you do all the cleanups
>
> I can include it, but I'll wait for confirmation from Zhenyu. Thanks,
>

I'm ok with this, future cleanup fixes would still go through i915 pull,
it only lefts for some tests, will send that for next kernel.

Acked-by: Zhenyu Wang <[email protected]>

thanks


Attachments:
(No filename) (2.81 kB)
signature.asc (201.00 B)
Download all attachments