> -----Original Message-----
> From: Alex Williamson <[email protected]>
> Sent: Thursday, August 27, 2026 4:21 AM
> To: Manish Honap <[email protected]>
> Cc: [email protected]; Ankit Agrawal <[email protected]>; [email protected];
> [email protected]; [email protected]; Srirangan Madhavan
> <[email protected]>; [email protected]; [email protected];
> [email protected]; [email protected]; [email protected];
> [email protected]; [email protected]; Yishai Hadas
> <[email protected]>; Shameer Kolothum Thodi
> <[email protected]>; [email protected]; [email protected];
> [email protected]; [email protected]; [email protected]; Neo Jia
> <[email protected]>; Krishnakant Jaju <[email protected]>; Vikram Sethi
> <[email protected]>; Zhi Wang <[email protected]>; linux-
> [email protected]; [email protected]; [email protected];
> [email protected]; [email protected]; linux-
> [email protected]; [email protected]; [email protected]
> Subject: Re: [PATCH v4 08/27] vfio/cxl: Add the vfio-cxl module skeleton
>
> External email: Use caution opening links or attachments
>
>
> On Thu, 13 Aug 2026 15:06:12 +0530
> <[email protected]> wrote:
>
> > From: Manish Honap <[email protected]>
> >
> > Add the vfio-cxl module that vfio-pci loads on demand for CXL Type-2
> > devices. It registers a set of callbacks with vfio-pci-core at
> > module_init and drops them at exit; the callbacks are stubs here and
> > are filled in by later patches.
> >
> > VFIO_CXL depends on CXL_BUS and builds as vfio-cxl.ko, which
> > request_module("vfio-cxl") resolves through MODULE_ALIAS.
> >
> > Signed-off-by: Manish Honap <[email protected]>
> > ---
> > MAINTAINERS | 7 +++++
> > drivers/vfio/pci/Kconfig | 2 ++
> > drivers/vfio/pci/Makefile | 2 ++
> > drivers/vfio/pci/cxl/Kconfig | 11 ++++++++
> > drivers/vfio/pci/cxl/Makefile | 3 ++
> > drivers/vfio/pci/cxl/vfio_cxl_core.c | 41
> > ++++++++++++++++++++++++++++
> > 6 files changed, 66 insertions(+)
> > create mode 100644 drivers/vfio/pci/cxl/Kconfig create mode 100644
> > drivers/vfio/pci/cxl/Makefile create mode 100644
> > drivers/vfio/pci/cxl/vfio_cxl_core.c
> >
> > diff --git a/MAINTAINERS b/MAINTAINERS index
> > c665bf8f1a28..aa8cecbc4cf2 100644
> > --- a/MAINTAINERS
> > +++ b/MAINTAINERS
> > @@ -28312,6 +28312,13 @@ L: [email protected]
> > S: Maintained
> > F: drivers/vfio/cdx/*
> >
> > +VFIO CXL DRIVER
> > +M: Manish Honap <[email protected]>
> > +L: [email protected]
> > +L: [email protected]
> > +S: Supported
> > +F: drivers/vfio/pci/cxl/
> > +
> > VFIO DRIVER
> > M: Alex Williamson <[email protected]>
> > L: [email protected]
> > diff --git a/drivers/vfio/pci/Kconfig b/drivers/vfio/pci/Kconfig index
> > 296bf01e185e..c3f54fc8ccc0 100644
> > --- a/drivers/vfio/pci/Kconfig
> > +++ b/drivers/vfio/pci/Kconfig
> > @@ -70,6 +70,8 @@ source "drivers/vfio/pci/virtio/Kconfig"
> >
> > source "drivers/vfio/pci/nvgrace-gpu/Kconfig"
> >
> > +source "drivers/vfio/pci/cxl/Kconfig"
> > +
> > source "drivers/vfio/pci/qat/Kconfig"
> >
> > source "drivers/vfio/pci/xe/Kconfig"
>
> It seems fair to put this above the variant driver Kconfigs rather than bury
> it
> among them.
>
> > diff --git a/drivers/vfio/pci/Makefile b/drivers/vfio/pci/Makefile
> > index 6138f1bf241d..c3031070a1f3 100644
> > --- a/drivers/vfio/pci/Makefile
> > +++ b/drivers/vfio/pci/Makefile
> > @@ -21,6 +21,8 @@ obj-$(CONFIG_VIRTIO_VFIO_PCI) += virtio/
> >
> > obj-$(CONFIG_NVGRACE_GPU_VFIO_PCI) += nvgrace-gpu/
> >
> > +obj-$(CONFIG_VFIO_CXL) += cxl/
> > +
> > obj-$(CONFIG_QAT_VFIO_PCI) += qat/
> >
> > obj-$(CONFIG_XE_VFIO_PCI) += xe/
>
> Here again, cxl is a feature of vfio-pci-core. I'd promote it to between
> vfio-pci-
> core and vfio-pci. The earlier linking also has the benefit that in the
> typical case
> it will be available before the builtin drivers (but keep the deferred loading
> behavior). Thanks,
I will move the Kconfig above the variant drivers and the Makefile entry between
vfio-pci-core and vfio-pci, so it links earlier while keeping the deferred-load
behavior.
Manish
>
> Alex
>
> > diff --git a/drivers/vfio/pci/cxl/Kconfig
> > b/drivers/vfio/pci/cxl/Kconfig new file mode 100644 index
> > 000000000000..1392fa4ed15d
> > --- /dev/null
> > +++ b/drivers/vfio/pci/cxl/Kconfig
> > @@ -0,0 +1,11 @@
> > +# SPDX-License-Identifier: GPL-2.0-only config VFIO_CXL
> > + tristate "VFIO support for CXL Type-2 devices"
> > + depends on CXL_BUS && CXL_MEM
> > + select VFIO_PCI_CORE
> > + help
> > + Add CXL HDM handling to vfio-pci so a CXL Type-2 device, such as a
> > + CXL-attached accelerator, can be assigned to a virtual machine.
> > + vfio-pci loads this module on demand when it binds a CXL device.
> > +
> > + If you don't know what to do here, say N.
> > diff --git a/drivers/vfio/pci/cxl/Makefile
> > b/drivers/vfio/pci/cxl/Makefile new file mode 100644 index
> > 000000000000..8501bf626108
> > --- /dev/null
> > +++ b/drivers/vfio/pci/cxl/Makefile
> > @@ -0,0 +1,3 @@
> > +# SPDX-License-Identifier: GPL-2.0-only
> > +obj-$(CONFIG_VFIO_CXL) += vfio-cxl.o
> > +vfio-cxl-y := vfio_cxl_core.o
> > diff --git a/drivers/vfio/pci/cxl/vfio_cxl_core.c
> > b/drivers/vfio/pci/cxl/vfio_cxl_core.c
> > new file mode 100644
> > index 000000000000..cbec7319452c
> > --- /dev/null
> > +++ b/drivers/vfio/pci/cxl/vfio_cxl_core.c
> > @@ -0,0 +1,41 @@
> > +// SPDX-License-Identifier: GPL-2.0-only
> > +/*
> > + * VFIO support for CXL Type-2 devices.
> > + *
> > + * Copyright (c) 2026 NVIDIA Corporation & Affiliates */
> > +
> > +#include <linux/module.h>
> > +#include <linux/vfio_pci_core.h>
> > +
> > +static int vfio_cxl_init_device(struct vfio_pci_core_device *vdev) {
> > + return 0;
> > +}
> > +
> > +static void vfio_cxl_release_device(struct vfio_pci_core_device
> > +*vdev) { }
> > +
> > +static const struct vfio_cxl_ops vfio_cxl_ops = {
> > + .init_device = vfio_cxl_init_device,
> > + .release_device = vfio_cxl_release_device,
> > + .owner = THIS_MODULE,
> > +};
> > +
> > +static int __init vfio_cxl_init(void) {
> > + return vfio_pci_core_register_cxl_ops(&vfio_cxl_ops);
> > +}
> > +
> > +static void __exit vfio_cxl_exit(void) {
> > + vfio_pci_core_unregister_cxl_ops(&vfio_cxl_ops);
> > +}
> > +
> > +module_init(vfio_cxl_init);
> > +module_exit(vfio_cxl_exit);
> > +
> > +MODULE_LICENSE("GPL");
> > +MODULE_DESCRIPTION("VFIO support for CXL Type-2 devices");
> > +MODULE_ALIAS("vfio-cxl");