Message ID | 20210422133547.1861063-1-arnd@kernel.org |
---|---|
State | New |
Headers | show |
Series | vfio/gvt: fix DRM_I915_GVT dependency on VFIO_MDEV | expand |
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> Jason _______________________________________________ dri-devel mailing list dri-devel@lists.freedesktop.org https://lists.freedesktop.org/mailman/listinfo/dri-devel
Cc: gvt list & maintainers On Thu, 22 Apr 2021, Jason Gunthorpe <jgg@ziepe.ca> 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> > > Jason -- Jani Nikula, Intel Open Source Graphics Center _______________________________________________ dri-devel mailing list dri-devel@lists.freedesktop.org https://lists.freedesktop.org/mailman/listinfo/dri-devel
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. Thanks _______________________________________________ dri-devel mailing list dri-devel@lists.freedesktop.org https://lists.freedesktop.org/mailman/listinfo/dri-devel
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 Jason _______________________________________________ dri-devel mailing list dri-devel@lists.freedesktop.org https://lists.freedesktop.org/mailman/listinfo/dri-devel
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 _______________________________________________ dri-devel mailing list dri-devel@lists.freedesktop.org https://lists.freedesktop.org/mailman/listinfo/dri-devel
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 _______________________________________________ dri-devel mailing list dri-devel@lists.freedesktop.org https://lists.freedesktop.org/mailman/listinfo/dri-devel
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