Message ID | 20210422133547.1861063-1-arnd@kernel.org (mailing list archive) |
---|---|
State | New, archived |
Headers | show |
Series | vfio/gvt: fix DRM_I915_GVT dependency on VFIO_MDEV | expand |
On Fri, 23 Apr 2021 09:07:09 -0300 Jason Gunthorpe <jgg@ziepe.ca> 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 <arnd@arndb.de> > > > > > > > > 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 <arnd@arndb.de> > > > > 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 <jgg@nvidia.com> > > > > > > > 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
On 2021.04.23 09:20:09 -0600, Alex Williamson wrote: > On Fri, 23 Apr 2021 09:07:09 -0300 > Jason Gunthorpe <jgg@ziepe.ca> 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 <arnd@arndb.de> > > > > > > > > > > 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 <arnd@arndb.de> > > > > > 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 <jgg@nvidia.com> > > > > > > > > > > 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 <zhenyuw@linux.intel.com> thanks
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