From mboxrd@z Thu Jan 1 00:00:00 1970 From: "Michael S. Tsirkin" Subject: [PATCH conditional] qemu-kvm: ioeventfd fixup Date: Sun, 12 Dec 2010 13:47:06 +0200 Message-ID: <20101212114706.GA14925@redhat.com> Mime-Version: 1.0 Content-Type: text/plain; charset=us-ascii To: stefanha@linux.vnet.ibm.com, kvm@vger.kernel.org Return-path: Received: from mx1.redhat.com ([209.132.183.28]:56606 "EHLO mx1.redhat.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1751099Ab0LLLrf (ORCPT ); Sun, 12 Dec 2010 06:47:35 -0500 Content-Disposition: inline Sender: kvm-owner@vger.kernel.org List-ID: Make ioeventfd patchset apply to qemu-kvm. Signed-off-by: Michael S. Tsirkin --- This patch will need to be applied when ioeventfd is merged in qemu.git. kvm-all.c | 2 +- kvm.h | 1 + qemu-kvm.c | 2 ++ qemu-kvm.h | 1 + 4 files changed, 5 insertions(+), 1 deletions(-) diff --git a/kvm-all.c b/kvm-all.c index adfb892..c7bd993 100644 --- a/kvm-all.c +++ b/kvm-all.c @@ -455,7 +455,7 @@ int kvm_check_extension(KVMState *s, unsigned int extension) return ret; } -static int kvm_check_many_ioeventfds(void) +int kvm_check_many_ioeventfds(void) { /* Older kernels have a 6 device limit on the KVM io bus. Find out so we * can avoid creating too many ioeventfds. diff --git a/kvm.h b/kvm.h index 45124ef..345b740 100644 --- a/kvm.h +++ b/kvm.h @@ -204,6 +204,7 @@ int kvm_set_irqfd(int gsi, int fd, bool assigned) } #endif +int kvm_check_many_ioeventfds(void); int kvm_set_ioeventfd_pio_word(int fd, uint16_t adr, uint16_t val, bool assign); int kvm_has_gsi_routing(void); diff --git a/qemu-kvm.c b/qemu-kvm.c index 471306b..76731fe 100644 --- a/qemu-kvm.c +++ b/qemu-kvm.c @@ -1686,6 +1686,8 @@ static int kvm_create_context(void) kvm_state->xcrs = kvm_check_extension(kvm_state, KVM_CAP_XCRS); #endif + kvm_state->many_ioeventfds = kvm_check_many_ioeventfds(); + kvm_init_ap(); if (kvm_irqchip) { if (!qemu_kvm_has_gsi_routing()) { diff --git a/qemu-kvm.h b/qemu-kvm.h index 7e6edfb..db4e340 100644 --- a/qemu-kvm.h +++ b/qemu-kvm.h @@ -754,6 +754,7 @@ struct KVMState { int irqchip_in_kernel; int pit_in_kernel; int xsave, xcrs; + int many_ioeventfds; struct kvm_context kvm_context; }; -- 1.7.3.2.91.g446ac