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(-)
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
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
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
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
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
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
dri-devel@lists.freedesktop.org