>From 79fd6880a8e7caaecc98e559a673400d20fb14be Mon Sep 17 00:00:00 2001
From: Weidong Han <[EMAIL PROTECTED]>
Date: Fri, 14 Nov 2008 16:31:12 +0800
Subject: [PATCH] Deassign ioctl

Add this to support hot remove assigned device

Signed-off-by: Weidong Han <[EMAIL PROTECTED]>
---
 libkvm/libkvm.c |   12 ++++++++++++
 libkvm/libkvm.h |   12 ++++++++++++
 2 files changed, 24 insertions(+), 0 deletions(-)

diff --git a/libkvm/libkvm.c b/libkvm/libkvm.c
index e7dba8a..a42bcad 100644
--- a/libkvm/libkvm.c
+++ b/libkvm/libkvm.c
@@ -1125,6 +1125,18 @@ int kvm_assign_pci_device(kvm_context_t kvm,
        return ret;
 }
 
+int kvm_deassign_pci_device(kvm_context_t kvm,
+                           struct kvm_assigned_pci_dev *assigned_dev)
+{
+       int ret;
+
+       ret = ioctl(kvm->vm_fd, KVM_DEASSIGN_PCI_DEVICE, assigned_dev);
+       if (ret < 0)
+               return -errno;
+
+       return ret;
+}
+
 int kvm_assign_irq(kvm_context_t kvm,
                   struct kvm_assigned_irq *assigned_irq)
 {
diff --git a/libkvm/libkvm.h b/libkvm/libkvm.h
index 53d67f2..e2da8da 100644
--- a/libkvm/libkvm.h
+++ b/libkvm/libkvm.h
@@ -701,6 +701,18 @@ int kvm_assign_pci_device(kvm_context_t kvm,
                          struct kvm_assigned_pci_dev *assigned_dev);
 
 /*!
+ * \brief Notifies host kernel about a PCI device to be deassigned from a guest
+ *
+ * Used for hot remove PCI device, this function notifies the host
+ * kernel about the deassigning of the physical PCI device from a guest.
+ *
+ * \param kvm Pointer to the current kvm_context
+ * \param assigned_dev Parameters, like bus, devfn number, etc
+ */
+int kvm_deassign_pci_device(kvm_context_t kvm,
+                           struct kvm_assigned_pci_dev *assigned_dev);
+
+/*!
  * \brief Notifies host kernel about changes to IRQ for an assigned device
  *
  * Used for PCI device assignment, this function notifies the host
-- 
1.5.1

Attachment: 0002-Deassign-ioctl.patch
Description: 0002-Deassign-ioctl.patch

Reply via email to