public inbox for kvm@vger.kernel.org
 help / color / mirror / Atom feed
From: Alex Williamson <alex.williamson@redhat.com>
To: Will Deacon <will.deacon@arm.com>
Cc: kvm@vger.kernel.org, kvmarm@lists.cs.columbia.edu,
	cornelia.huck@de.ibm.com, agraf@suse.de, gleb@kernel.org,
	pbonzini@redhat.com, marc.zyngier@arm.com,
	christoffer.dall@linaro.org
Subject: Re: [PATCH v2 4/4] KVM: VFIO: register kvm_device_ops dynamically
Date: Wed, 09 Jul 2014 10:19:24 -0600	[thread overview]
Message-ID: <1404922764.4256.181.camel@ul30vt.home> (raw)
In-Reply-To: <1404225918-8903-4-git-send-email-will.deacon@arm.com>

On Tue, 2014-07-01 at 15:45 +0100, Will Deacon wrote:
> Now that we have a dynamic means to register kvm_device_ops, use that
> for the VFIO kvm device, instead of relying on the static table.
> 
> This is achieved by a module_init call to register the ops with KVM.
> 
> Cc: Gleb Natapov <gleb@kernel.org>
> Cc: Paolo Bonzini <pbonzini@redhat.com>
> Cc: Alex Williamson <Alex.Williamson@redhat.com>
> Signed-off-by: Will Deacon <will.deacon@arm.com>
> ---
>  include/linux/kvm_host.h |  1 -
>  virt/kvm/kvm_main.c      |  4 ----
>  virt/kvm/vfio.c          | 22 +++++++++++++++-------
>  3 files changed, 15 insertions(+), 12 deletions(-)
> 
> diff --git a/include/linux/kvm_host.h b/include/linux/kvm_host.h
> index 422e55ac8a13..c04d58754263 100644
> --- a/include/linux/kvm_host.h
> +++ b/include/linux/kvm_host.h
> @@ -1087,7 +1087,6 @@ int kvm_register_device_ops(struct kvm_device_ops *ops, u32 type);
>  
>  extern struct kvm_device_ops kvm_mpic_ops;
>  extern struct kvm_device_ops kvm_xics_ops;
> -extern struct kvm_device_ops kvm_vfio_ops;
>  
>  #ifdef CONFIG_HAVE_KVM_CPU_RELAX_INTERCEPT
>  
> diff --git a/virt/kvm/kvm_main.c b/virt/kvm/kvm_main.c
> index c9181db8abdd..c5f646e846ba 100644
> --- a/virt/kvm/kvm_main.c
> +++ b/virt/kvm/kvm_main.c
> @@ -2266,10 +2266,6 @@ static struct kvm_device_ops *kvm_device_ops_table[KVM_DEV_TYPE_MAX] = {
>  #ifdef CONFIG_KVM_XICS
>  	[KVM_DEV_TYPE_XICS]		= &kvm_xics_ops,
>  #endif
> -
> -#ifdef CONFIG_KVM_VFIO
> -	[KVM_DEV_TYPE_VFIO]		= &kvm_vfio_ops,
> -#endif
>  };
>  
>  int kvm_register_device_ops(struct kvm_device_ops *ops, u32 type)
> diff --git a/virt/kvm/vfio.c b/virt/kvm/vfio.c
> index ba1a93f935c7..bb11b36ee8a2 100644
> --- a/virt/kvm/vfio.c
> +++ b/virt/kvm/vfio.c
> @@ -246,6 +246,16 @@ static void kvm_vfio_destroy(struct kvm_device *dev)
>  	kfree(dev); /* alloc by kvm_ioctl_create_device, free by .destroy */
>  }
>  
> +static int kvm_vfio_create(struct kvm_device *dev, u32 type);
> +
> +static struct kvm_device_ops kvm_vfio_ops = {
> +	.name = "kvm-vfio",
> +	.create = kvm_vfio_create,
> +	.destroy = kvm_vfio_destroy,
> +	.set_attr = kvm_vfio_set_attr,
> +	.has_attr = kvm_vfio_has_attr,
> +};
> +

Why move the struct?  We wouldn't need the prototype if it was left in
place and it seems like the only change we're making to set it static.
Functionally the change is fine, but the ordering was cleaner before
imho.  Thanks,

Alex

>  static int kvm_vfio_create(struct kvm_device *dev, u32 type)
>  {
>  	struct kvm_device *tmp;
> @@ -268,10 +278,8 @@ static int kvm_vfio_create(struct kvm_device *dev, u32 type)
>  	return 0;
>  }
>  
> -struct kvm_device_ops kvm_vfio_ops = {
> -	.name = "kvm-vfio",
> -	.create = kvm_vfio_create,
> -	.destroy = kvm_vfio_destroy,
> -	.set_attr = kvm_vfio_set_attr,
> -	.has_attr = kvm_vfio_has_attr,
> -};
> +static int __init kvm_vfio_ops_init(void)
> +{
> +	return kvm_register_device_ops(&kvm_vfio_ops, KVM_DEV_TYPE_VFIO);
> +}
> +module_init(kvm_vfio_ops_init);




  parent reply	other threads:[~2014-07-09 16:19 UTC|newest]

Thread overview: 17+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2014-07-01 14:45 [PATCH v2 1/4] KVM: device: add simple registration mechanism for kvm_device_ops Will Deacon
2014-07-01 14:45 ` [PATCH v2 2/4] KVM: ARM: vgic: register kvm_device_ops dynamically Will Deacon
2014-07-09 16:05   ` Paolo Bonzini
2014-07-09 16:13     ` Marc Zyngier
2014-07-31 12:10   ` Christoffer Dall
2014-07-31 13:25     ` Will Deacon
2014-07-01 14:45 ` [PATCH v2 3/4] KVM: s390: register flic ops dynamically Will Deacon
2014-07-01 14:45 ` [PATCH v2 4/4] KVM: VFIO: register kvm_device_ops dynamically Will Deacon
2014-07-09 16:06   ` Paolo Bonzini
2014-07-09 16:19   ` Alex Williamson [this message]
2014-07-09 16:47     ` Will Deacon
2014-07-09 16:56       ` Alex Williamson
2014-07-09 16:56   ` Alex Williamson
2014-07-02  9:17 ` [PATCH v2 1/4] KVM: device: add simple registration mechanism for kvm_device_ops Cornelia Huck
2014-07-02  9:32   ` Will Deacon
2014-07-02 10:18     ` Cornelia Huck
2014-07-31 12:10 ` Christoffer Dall

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=1404922764.4256.181.camel@ul30vt.home \
    --to=alex.williamson@redhat.com \
    --cc=agraf@suse.de \
    --cc=christoffer.dall@linaro.org \
    --cc=cornelia.huck@de.ibm.com \
    --cc=gleb@kernel.org \
    --cc=kvm@vger.kernel.org \
    --cc=kvmarm@lists.cs.columbia.edu \
    --cc=marc.zyngier@arm.com \
    --cc=pbonzini@redhat.com \
    --cc=will.deacon@arm.com \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox