[PATCH] kvm_irqchip_assign_irqfd: just set irqfd in case of kvm_irqfds_enabled()

Tiejun Chen
2014-12-26T08:08:15Z

We should avoid to set irqfd{} unconditionally.

Signed-off-by: Tiejun Chen <tiejun.chen@intel.com>
---
kvm-all.c | 18 +++++++++---------
1 file changed, 9 insertions(+), 9 deletions(-)

diff --git a/kvm-all.c b/kvm-all.c
index 18cc6b4..5b9786b 100644
--- a/kvm-all.c
+++ b/kvm-all.c
@@ -1257,21 +1257,21 @@ int kvm_irqchip_update_msi_route(KVMState *s, int virq, MSIMessage msg)
static int kvm_irqchip_assign_irqfd(KVMState *s, int fd, int rfd, int virq,
bool assign)
{
- struct kvm_irqfd irqfd = {
- .fd = fd,
- .gsi = virq,
- .flags = assign ? 0 : KVM_IRQFD_FLAG_DEASSIGN,
- };
+ struct kvm_irqfd irqfd = {};
+
+ if (!kvm_irqfds_enabled()) {
+ return -ENOSYS;
+ }
+
+ irqfd.fd = fd;
+ irqfd.gsi = virq;
+ irqfd.flags = assign ? 0 : KVM_IRQFD_FLAG_DEASSIGN;

if (rfd != -1) {
irqfd.flags |= KVM_IRQFD_FLAG_RESAMPLE;
irqfd.resamplefd = rfd;
}

- if (!kvm_irqfds_enabled()) {
- return -ENOSYS;
- }
-
return kvm_vm_ioctl(s, KVM_IRQFD, &irqfd);
}

--
1.9.1