Skip to content

Commit

Permalink
vfio/mdev: Remove CONFIG_VFIO_MDEV_DEVICE
Browse files Browse the repository at this point in the history
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 <[email protected]>
Signed-off-by: Christoph Hellwig <[email protected]>
Reviewed-by: Cornelia Huck <[email protected]>
Reviewed-by: Greg Kroah-Hartman <[email protected]>
Reviewed-by: Kirti Wankhede <[email protected]>
Link: https://lore.kernel.org/r/[email protected]
Signed-off-by: Alex Williamson <[email protected]>
  • Loading branch information
jgunthorpe authored and awilliam committed Jun 21, 2021
1 parent 0d9f837 commit af3ab3f
Show file tree
Hide file tree
Showing 9 changed files with 23 additions and 40 deletions.
1 change: 0 additions & 1 deletion Documentation/s390/vfio-ap.rst
Original file line number Diff line number Diff line change
Expand Up @@ -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::
Expand Down
2 changes: 1 addition & 1 deletion arch/s390/Kconfig
Original file line number Diff line number Diff line change
Expand Up @@ -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
Expand Down
2 changes: 1 addition & 1 deletion drivers/gpu/drm/i915/Kconfig
Original file line number Diff line number Diff line change
Expand Up @@ -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
Expand Down
7 changes: 0 additions & 7 deletions drivers/vfio/mdev/Kconfig
Original file line number Diff line number Diff line change
Expand Up @@ -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.
3 changes: 1 addition & 2 deletions drivers/vfio/mdev/Makefile
Original file line number Diff line number Diff line change
@@ -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
16 changes: 14 additions & 2 deletions drivers/vfio/mdev/mdev_core.c
Original file line number Diff line number Diff line change
Expand Up @@ -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);

Expand All @@ -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");
2 changes: 2 additions & 0 deletions drivers/vfio/mdev/mdev_private.h
Original file line number Diff line number Diff line change
Expand Up @@ -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);

Expand Down
24 changes: 1 addition & 23 deletions drivers/vfio/mdev/vfio_mdev.c
Original file line number Diff line number Diff line change
Expand Up @@ -17,10 +17,6 @@

#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);
Expand Down Expand Up @@ -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,
Expand All @@ -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);
6 changes: 3 additions & 3 deletions samples/Kconfig
Original file line number Diff line number Diff line change
Expand Up @@ -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
Expand All @@ -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
Expand Down

0 comments on commit af3ab3f

Please sign in to comment.