diff mbox

[RFC,06/11] kvm: Publicize kvm_release_gsi as kvm_irqchip_release_virq

Message ID 76b10d8334b851fc2c1aa1324f8b81e39ec8e15e.1337029654.git.jan.kiszka@siemens.com
State New
Headers show

Commit Message

Jan Kiszka May 14, 2012, 9:07 p.m. UTC
This allows to drop routes created by kvm_irqchip_add_irq/msi_route
again.

Signed-off-by: Jan Kiszka <jan.kiszka@siemens.com>
---
 kvm-all.c  |    8 ++++----
 kvm-stub.c |    4 ++++
 kvm.h      |    1 +
 3 files changed, 9 insertions(+), 4 deletions(-)
diff mbox

Patch

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