[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Qemu-devel] [RFC][PATCH 06/11] kvm: Publicize kvm_release_gsi as kvm_ir
From: |
Jan Kiszka |
Subject: |
[Qemu-devel] [RFC][PATCH 06/11] kvm: Publicize kvm_release_gsi as kvm_irqchip_release_virq |
Date: |
Mon, 14 May 2012 18:07:33 -0300 |
This allows to drop routes created by kvm_irqchip_add_irq/msi_route
again.
Signed-off-by: Jan Kiszka <address@hidden>
---
kvm-all.c | 8 ++++----
kvm-stub.c | 4 ++++
kvm.h | 1 +
3 files changed, 9 insertions(+), 4 deletions(-)
diff --git a/kvm-all.c b/kvm-all.c
index f45b852..e3ffc91 100644
--- a/kvm-all.c
+++ b/kvm-all.c
@@ -955,19 +955,19 @@ int kvm_irqchip_commit_routes(KVMState *s)
return kvm_vm_ioctl(s, KVM_SET_GSI_ROUTING, s->irq_routes);
}
-static void kvm_release_gsi(KVMState *s, int gsi)
+void kvm_irqchip_release_virq(KVMState *s, int virq)
{
struct kvm_irq_routing_entry *e;
int i;
for (i = 0; i < s->irq_routes->nr; i++) {
e = &s->irq_routes->entries[i];
- if (e->gsi == gsi) {
+ if (e->gsi == virq) {
s->irq_routes->nr--;
*e = s->irq_routes->entries[s->irq_routes->nr];
}
}
- clear_gsi(s, gsi);
+ clear_gsi(s, virq);
}
static unsigned int kvm_hash_msi(uint32_t data)
@@ -984,7 +984,7 @@ static void kvm_flush_dynamic_msi_routes(KVMState *s)
for (hash = 0; hash < KVM_MSI_HASHTAB_SIZE; hash++) {
QTAILQ_FOREACH_SAFE(route, &s->msi_hashtab[hash], entry, next) {
- kvm_release_gsi(s, route->kroute.gsi);
+ kvm_irqchip_release_virq(s, route->kroute.gsi);
QTAILQ_REMOVE(&s->msi_hashtab[hash], route, entry);
g_free(route);
}
diff --git a/kvm-stub.c b/kvm-stub.c
index db3a7dc..ec351d9 100644
--- a/kvm-stub.c
+++ b/kvm-stub.c
@@ -136,3 +136,7 @@ int kvm_irqchip_add_msi_route(KVMState *s, MSIMessage msg)
{
return -ENOSYS;
}
+
+void kvm_irqchip_release_virq(KVMState *s, int virq)
+{
+}
diff --git a/kvm.h b/kvm.h
index 67df1f1..1779e73 100644
--- a/kvm.h
+++ b/kvm.h
@@ -215,4 +215,5 @@ int kvm_set_ioeventfd_mmio(int fd, uint32_t adr, uint32_t
val, bool assign,
int kvm_set_ioeventfd_pio_word(int fd, uint16_t adr, uint16_t val, bool
assign);
int kvm_irqchip_add_msi_route(KVMState *s, MSIMessage msg);
+void kvm_irqchip_release_virq(KVMState *s, int virq);
#endif
--
1.7.3.4
- [Qemu-devel] [RFC][PATCH 00/11] uq/master: irqfd-based interrupt injection for virtio/vhost, Jan Kiszka, 2012/05/14
- [Qemu-devel] [RFC][PATCH 01/11] msix: Factor out msix_get_message, Jan Kiszka, 2012/05/14
- [Qemu-devel] [RFC][PATCH 02/11] msix: Invoke msix_handle_mask_update on msix_mask_all, Jan Kiszka, 2012/05/14
- [Qemu-devel] [RFC][PATCH 03/11] msix: Introduce vector notifiers, Jan Kiszka, 2012/05/14
- [Qemu-devel] [RFC][PATCH 04/11] kvm: Rename kvm_irqchip_add_route to kvm_irqchip_add_irq_route, Jan Kiszka, 2012/05/14
- [Qemu-devel] [RFC][PATCH 06/11] kvm: Publicize kvm_release_gsi as kvm_irqchip_release_virq,
Jan Kiszka <=
- [Qemu-devel] [RFC][PATCH 05/11] kvm: Introduce kvm_irqchip_add_msi_route, Jan Kiszka, 2012/05/14
- [Qemu-devel] [RFC][PATCH 07/11] kvm: Make kvm_irqchip_commit_routes an internal service, Jan Kiszka, 2012/05/14
- [Qemu-devel] [RFC][PATCH 08/11] kvm: Introduce kvm_irqchip_add/remove_irqfd, Jan Kiszka, 2012/05/14
- [Qemu-devel] [RFC][PATCH 09/11] kvm: Enable use of kvm_irqchip_in_kernel in hwlib code, Jan Kiszka, 2012/05/14
- [Qemu-devel] [RFC][PATCH 10/11] msix: Add msix_nr_vectors_allocated, Jan Kiszka, 2012/05/14
- [Qemu-devel] [RFC][PATCH 11/11] virtio/vhost: Add support for KVM in-kernel MSI injection, Jan Kiszka, 2012/05/14