vfio/mdev: Remove CONFIG_VFIO_MDEV_DEVICE
authorJason Gunthorpe <jgg@nvidia.com>
Thu, 17 Jun 2021 14:22:14 +0000 (16:22 +0200)
committerAlex Williamson <alex.williamson@redhat.com>
Mon, 21 Jun 2021 21:29:25 +0000 (15:29 -0600)
For some reason the vfio_mdev shim mdev_driver has its own module and
kconfig. As the next patch requires access to it from mdev.ko merge the
two modules together and remove VFIO_MDEV_DEVICE.

A later patch deletes this driver entirely.

Signed-off-by: Jason Gunthorpe <jgg@nvidia.com>
Signed-off-by: Christoph Hellwig <hch@lst.de>
Reviewed-by: Cornelia Huck <cohuck@redhat.com>
Reviewed-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
Reviewed-by: Kirti Wankhede <kwankhede@nvidia.com>
Link: https://lore.kernel.org/r/20210617142218.1877096-7-hch@lst.de
Signed-off-by: Alex Williamson <alex.williamson@redhat.com>
Documentation/s390/vfio-ap.rst
arch/s390/Kconfig
drivers/gpu/drm/i915/Kconfig
drivers/vfio/mdev/Kconfig
drivers/vfio/mdev/Makefile
drivers/vfio/mdev/mdev_core.c
drivers/vfio/mdev/mdev_private.h
drivers/vfio/mdev/vfio_mdev.c
samples/Kconfig

index e154365..f57ae62 100644 (file)
@@ -514,7 +514,6 @@ These are the steps:
    * S390_AP_IOMMU
    * VFIO
    * VFIO_MDEV
-   * VFIO_MDEV_DEVICE
    * KVM
 
    If using make menuconfig select the following to build the vfio_ap module::
index b4c7c34..ea63fd2 100644 (file)
@@ -768,7 +768,7 @@ config VFIO_CCW
 config VFIO_AP
        def_tristate n
        prompt "VFIO support for AP devices"
-       depends on S390_AP_IOMMU && VFIO_MDEV_DEVICE && KVM
+       depends on S390_AP_IOMMU && VFIO_MDEV && KVM
        depends on ZCRYPT
        help
                This driver grants access to Adjunct Processor (AP) devices
index 1e1cb24..53bc686 100644 (file)
@@ -124,7 +124,7 @@ config DRM_I915_GVT_KVMGT
        tristate "Enable KVM/VFIO support for Intel GVT-g"
        depends on DRM_I915_GVT
        depends on KVM
-       depends on VFIO_MDEV && VFIO_MDEV_DEVICE
+       depends on VFIO_MDEV
        default n
        help
          Choose this option if you want to enable KVMGT support for
index 5da27f2..763c877 100644 (file)
@@ -9,10 +9,3 @@ config VFIO_MDEV
          See Documentation/driver-api/vfio-mediated-device.rst for more details.
 
          If you don't know what do here, say N.
-
-config VFIO_MDEV_DEVICE
-       tristate "VFIO driver for Mediated devices"
-       depends on VFIO && VFIO_MDEV
-       default n
-       help
-         VFIO based driver for Mediated devices.
index 101516f..ff9ecd8 100644 (file)
@@ -1,6 +1,5 @@
 # SPDX-License-Identifier: GPL-2.0-only
 
-mdev-y := mdev_core.o mdev_sysfs.o mdev_driver.o
+mdev-y := mdev_core.o mdev_sysfs.o mdev_driver.o vfio_mdev.o
 
 obj-$(CONFIG_VFIO_MDEV) += mdev.o
-obj-$(CONFIG_VFIO_MDEV_DEVICE) += vfio_mdev.o
index 2a85d6f..ff8c1a8 100644 (file)
@@ -360,11 +360,24 @@ int mdev_device_remove(struct mdev_device *mdev)
 
 static int __init mdev_init(void)
 {
-       return mdev_bus_register();
+       int rc;
+
+       rc = mdev_bus_register();
+       if (rc)
+               return rc;
+       rc = mdev_register_driver(&vfio_mdev_driver);
+       if (rc)
+               goto err_bus;
+       return 0;
+err_bus:
+       mdev_bus_unregister();
+       return rc;
 }
 
 static void __exit mdev_exit(void)
 {
+       mdev_unregister_driver(&vfio_mdev_driver);
+
        if (mdev_bus_compat_class)
                class_compat_unregister(mdev_bus_compat_class);
 
@@ -378,4 +391,3 @@ MODULE_VERSION(DRIVER_VERSION);
 MODULE_LICENSE("GPL v2");
 MODULE_AUTHOR(DRIVER_AUTHOR);
 MODULE_DESCRIPTION(DRIVER_DESC);
-MODULE_SOFTDEP("post: vfio_mdev");
index 6999c89..afbad7b 100644 (file)
@@ -37,6 +37,8 @@ struct mdev_type {
 #define to_mdev_type(_kobj)            \
        container_of(_kobj, struct mdev_type, kobj)
 
+extern struct mdev_driver vfio_mdev_driver;
+
 int  parent_create_sysfs_files(struct mdev_parent *parent);
 void parent_remove_sysfs_files(struct mdev_parent *parent);
 
index 9227290..d5b4eed 100644 (file)
 
 #include "mdev_private.h"
 
-#define DRIVER_VERSION  "0.1"
-#define DRIVER_AUTHOR   "NVIDIA Corporation"
-#define DRIVER_DESC     "VFIO based driver for Mediated device"
-
 static int vfio_mdev_open(struct vfio_device *core_vdev)
 {
        struct mdev_device *mdev = to_mdev_device(core_vdev->dev);
@@ -151,7 +147,7 @@ static void vfio_mdev_remove(struct mdev_device *mdev)
        kfree(vdev);
 }
 
-static struct mdev_driver vfio_mdev_driver = {
+struct mdev_driver vfio_mdev_driver = {
        .driver = {
                .name = "vfio_mdev",
                .owner = THIS_MODULE,
@@ -160,21 +156,3 @@ static struct mdev_driver vfio_mdev_driver = {
        .probe  = vfio_mdev_probe,
        .remove = vfio_mdev_remove,
 };
-
-static int __init vfio_mdev_init(void)
-{
-       return mdev_register_driver(&vfio_mdev_driver);
-}
-
-static void __exit vfio_mdev_exit(void)
-{
-       mdev_unregister_driver(&vfio_mdev_driver);
-}
-
-module_init(vfio_mdev_init)
-module_exit(vfio_mdev_exit)
-
-MODULE_VERSION(DRIVER_VERSION);
-MODULE_LICENSE("GPL v2");
-MODULE_AUTHOR(DRIVER_AUTHOR);
-MODULE_DESCRIPTION(DRIVER_DESC);
index b5a1a7a..b0503ef 100644 (file)
@@ -154,14 +154,14 @@ config SAMPLE_UHID
 
 config SAMPLE_VFIO_MDEV_MTTY
        tristate "Build VFIO mtty example mediated device sample code -- loadable modules only"
-       depends on VFIO_MDEV_DEVICE && m
+       depends on VFIO_MDEV && m
        help
          Build a virtual tty sample driver for use as a VFIO
          mediated device
 
 config SAMPLE_VFIO_MDEV_MDPY
        tristate "Build VFIO mdpy example mediated device sample code -- loadable modules only"
-       depends on VFIO_MDEV_DEVICE && m
+       depends on VFIO_MDEV && m
        help
          Build a virtual display sample driver for use as a VFIO
          mediated device.  It is a simple framebuffer and supports
@@ -178,7 +178,7 @@ config SAMPLE_VFIO_MDEV_MDPY_FB
 
 config SAMPLE_VFIO_MDEV_MBOCHS
        tristate "Build VFIO mdpy example mediated device sample code -- loadable modules only"
-       depends on VFIO_MDEV_DEVICE && m
+       depends on VFIO_MDEV && m
        select DMA_SHARED_BUFFER
        help
          Build a virtual display sample driver for use as a VFIO