Re: [PATCH v2 4/4] vfio: Fold vfio_virqfd.ko into vfio.ko

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



On Mon, Oct 03 2022, Jason Gunthorpe <jgg@xxxxxxxxxx> wrote:

> This is only 1.8k, putting it in its own module is going to waste more
> space rounding up to a PAGE_SIZE than it is worth. Put it in the main
> vfio.ko module now that kbuild can support multiple .c files.
>
> Signed-off-by: Jason Gunthorpe <jgg@xxxxxxxxxx>
> ---
>  drivers/vfio/Makefile    |  4 +---
>  drivers/vfio/vfio.h      | 13 +++++++++++++
>  drivers/vfio/vfio_main.c |  7 +++++++
>  drivers/vfio/virqfd.c    | 16 ++--------------
>  4 files changed, 23 insertions(+), 17 deletions(-)
>
> diff --git a/drivers/vfio/Makefile b/drivers/vfio/Makefile
> index 50b8e8e3fb10dd..0721ed4831c92f 100644
> --- a/drivers/vfio/Makefile
> +++ b/drivers/vfio/Makefile
> @@ -1,13 +1,11 @@
>  # SPDX-License-Identifier: GPL-2.0
> -vfio_virqfd-y := virqfd.o
> -
>  obj-$(CONFIG_VFIO) += vfio.o
>  
>  vfio-y += vfio_main.o \
>  	  iova_bitmap.o \
>  	  container.o
> +vfio-$(CONFIG_VFIO_VIRQFD) += virqfd.o

I think you need to make VFIO_VIRQFD bool instead of tristate now?

>  
> -obj-$(CONFIG_VFIO_VIRQFD) += vfio_virqfd.o
>  obj-$(CONFIG_VFIO_IOMMU_TYPE1) += vfio_iommu_type1.o
>  obj-$(CONFIG_VFIO_IOMMU_SPAPR_TCE) += vfio_iommu_spapr_tce.o
>  obj-$(CONFIG_VFIO_PCI) += pci/

(...)

> diff --git a/drivers/vfio/virqfd.c b/drivers/vfio/virqfd.c
> index 414e98d82b02e5..0ff3c1519df0bd 100644
> --- a/drivers/vfio/virqfd.c
> +++ b/drivers/vfio/virqfd.c
> @@ -13,14 +13,10 @@
>  #include <linux/module.h>
>  #include <linux/slab.h>

And this needs an #include "vfio.h", I think?

>  
> -#define DRIVER_VERSION  "0.1"
> -#define DRIVER_AUTHOR   "Alex Williamson <alex.williamson@xxxxxxxxxx>"
> -#define DRIVER_DESC     "IRQFD support for VFIO bus drivers"
> -
>  static struct workqueue_struct *vfio_irqfd_cleanup_wq;
>  static DEFINE_SPINLOCK(virqfd_lock);
>  
> -static int __init vfio_virqfd_init(void)
> +int __init vfio_virqfd_init(void)
>  {
>  	vfio_irqfd_cleanup_wq =
>  		create_singlethread_workqueue("vfio-irqfd-cleanup");
> @@ -30,7 +26,7 @@ static int __init vfio_virqfd_init(void)
>  	return 0;
>  }
>  
> -static void __exit vfio_virqfd_exit(void)
> +void vfio_virqfd_exit(void)
>  {
>  	destroy_workqueue(vfio_irqfd_cleanup_wq);
>  }
> @@ -216,11 +212,3 @@ void vfio_virqfd_disable(struct virqfd **pvirqfd)
>  	flush_workqueue(vfio_irqfd_cleanup_wq);
>  }
>  EXPORT_SYMBOL_GPL(vfio_virqfd_disable);
> -
> -module_init(vfio_virqfd_init);
> -module_exit(vfio_virqfd_exit);
> -
> -MODULE_VERSION(DRIVER_VERSION);
> -MODULE_LICENSE("GPL v2");
> -MODULE_AUTHOR(DRIVER_AUTHOR);
> -MODULE_DESCRIPTION(DRIVER_DESC);




[Index of Archives]     [KVM ARM]     [KVM ia64]     [KVM ppc]     [Virtualization Tools]     [Spice Development]     [Libvirt]     [Libvirt Users]     [Linux USB Devel]     [Linux Audio Users]     [Yosemite Questions]     [Linux Kernel]     [Linux SCSI]     [XFree86]

  Powered by Linux