All of lore.kernel.org
 help / color / mirror / Atom feed
From: Marcelo Tosatti <mtosatti@redhat.com>
To: qemu-devel@nongnu.org, kvm-devel@lists.sourceforge.net
Cc: Marcelo Tosatti <mtosatti@redhat.com>
Subject: [patch 08/24] QEMU/KVM: drive removal support
Date: Tue, 11 Mar 2008 17:11:59 -0300	[thread overview]
Message-ID: <20080311201417.831948218@localhost.localdomain> (raw)
In-Reply-To: 20080311201151.959635433@localhost.localdomain

[-- Attachment #1: device-removal --]
[-- Type: text/plain, Size: 2362 bytes --]

To be used by hot-remove.

Signed-off-by: Marcelo Tosatti <mtosatti@redhat.com>

Index: kvm-userspace.hotplug2/qemu/vl.c
===================================================================
--- kvm-userspace.hotplug2.orig/qemu/vl.c
+++ kvm-userspace.hotplug2/qemu/vl.c
@@ -5010,6 +5010,12 @@ static int drive_add(const char *file, c
     return index;
 }
 
+void drive_remove(int index)
+{
+    drives_opt[index].used = 0;
+    nb_drives_opt--;
+}
+
 int drive_get_index(BlockInterfaceType type, int bus, int unit)
 {
     int index;
@@ -5040,6 +5046,20 @@ int drive_get_max_bus(BlockInterfaceType
     return max_bus;
 }
 
+void drive_uninit(BlockDriverState *bdrv)
+{
+    int i;
+
+    for (i = 0; i < MAX_DRIVES; i++)
+        if (drives_table[i].bdrv == bdrv) {
+            drives_table[i].bdrv = NULL;
+            drives_table[i].used = 0;
+            drive_remove(drives_table[i].drive_opt_idx);
+            nb_drives--;
+            break;
+        }
+}
+
 static int drive_init(struct drive_opt *arg, int snapshot,
                       QEMUMachine *machine)
 {
@@ -5313,6 +5333,7 @@ static int drive_init(struct drive_opt *
     drives_table[drives_table_idx].type = type;
     drives_table[drives_table_idx].bus = bus_id;
     drives_table[drives_table_idx].unit = unit_id;
+    drives_table[drives_table_idx].drive_opt_idx = arg - drives_opt;
     nb_drives++;
 
     switch(type) {
Index: kvm-userspace.hotplug2/qemu/sysemu.h
===================================================================
--- kvm-userspace.hotplug2.orig/qemu/sysemu.h
+++ kvm-userspace.hotplug2/qemu/sysemu.h
@@ -140,6 +140,7 @@ typedef struct DriveInfo {
     int bus;
     int unit;
     int used;
+    int drive_opt_idx;
 } DriveInfo;
 
 #define MAX_IDE_DEVS	2
@@ -153,6 +154,9 @@ int extboot_drive;
 extern int drive_get_index(BlockInterfaceType type, int bus, int unit);
 extern int drive_get_max_bus(BlockInterfaceType type);
 
+extern void drive_uninit(BlockDriverState *bdrv);
+extern void drive_remove(int index);
+
 /* acpi */
 void qemu_system_cpu_hot_add(int cpu, int state);
 void qemu_system_hot_add_init(char *cpu_model);

-- 


-------------------------------------------------------------------------
This SF.net email is sponsored by: Microsoft
Defy all challenges. Microsoft(R) Visual Studio 2008.
http://clk.atdmt.com/MRT/go/vse0120000070mrt/direct/01/

WARNING: multiple messages have this Message-ID (diff)
From: Marcelo Tosatti <mtosatti@redhat.com>
To: qemu-devel@nongnu.org, kvm-devel@lists.sourceforge.net
Cc: aliguori@us.ibm.com, Marcelo Tosatti <mtosatti@redhat.com>
Subject: [Qemu-devel] [patch 08/24] QEMU/KVM: drive removal support
Date: Tue, 11 Mar 2008 17:11:59 -0300	[thread overview]
Message-ID: <20080311201417.831948218@localhost.localdomain> (raw)
In-Reply-To: 20080311201151.959635433@localhost.localdomain

[-- Attachment #1: device-removal --]
[-- Type: text/plain, Size: 2131 bytes --]

To be used by hot-remove.

Signed-off-by: Marcelo Tosatti <mtosatti@redhat.com>

Index: kvm-userspace.hotplug2/qemu/vl.c
===================================================================
--- kvm-userspace.hotplug2.orig/qemu/vl.c
+++ kvm-userspace.hotplug2/qemu/vl.c
@@ -5010,6 +5010,12 @@ static int drive_add(const char *file, c
     return index;
 }
 
+void drive_remove(int index)
+{
+    drives_opt[index].used = 0;
+    nb_drives_opt--;
+}
+
 int drive_get_index(BlockInterfaceType type, int bus, int unit)
 {
     int index;
@@ -5040,6 +5046,20 @@ int drive_get_max_bus(BlockInterfaceType
     return max_bus;
 }
 
+void drive_uninit(BlockDriverState *bdrv)
+{
+    int i;
+
+    for (i = 0; i < MAX_DRIVES; i++)
+        if (drives_table[i].bdrv == bdrv) {
+            drives_table[i].bdrv = NULL;
+            drives_table[i].used = 0;
+            drive_remove(drives_table[i].drive_opt_idx);
+            nb_drives--;
+            break;
+        }
+}
+
 static int drive_init(struct drive_opt *arg, int snapshot,
                       QEMUMachine *machine)
 {
@@ -5313,6 +5333,7 @@ static int drive_init(struct drive_opt *
     drives_table[drives_table_idx].type = type;
     drives_table[drives_table_idx].bus = bus_id;
     drives_table[drives_table_idx].unit = unit_id;
+    drives_table[drives_table_idx].drive_opt_idx = arg - drives_opt;
     nb_drives++;
 
     switch(type) {
Index: kvm-userspace.hotplug2/qemu/sysemu.h
===================================================================
--- kvm-userspace.hotplug2.orig/qemu/sysemu.h
+++ kvm-userspace.hotplug2/qemu/sysemu.h
@@ -140,6 +140,7 @@ typedef struct DriveInfo {
     int bus;
     int unit;
     int used;
+    int drive_opt_idx;
 } DriveInfo;
 
 #define MAX_IDE_DEVS	2
@@ -153,6 +154,9 @@ int extboot_drive;
 extern int drive_get_index(BlockInterfaceType type, int bus, int unit);
 extern int drive_get_max_bus(BlockInterfaceType type);
 
+extern void drive_uninit(BlockDriverState *bdrv);
+extern void drive_remove(int index);
+
 /* acpi */
 void qemu_system_cpu_hot_add(int cpu, int state);
 void qemu_system_hot_add_init(char *cpu_model);

-- 

  parent reply	other threads:[~2008-03-11 20:11 UTC|newest]

Thread overview: 60+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2008-03-11 20:11 [patch 00/24] QEMU ACPI PCI hotplug support Marcelo Tosatti
2008-03-11 20:11 ` [Qemu-devel] " Marcelo Tosatti
2008-03-11 20:11 ` [patch 01/24] QEMU/KVM: add devices to represent PCI slots with _EJ0 method Marcelo Tosatti
2008-03-11 20:11   ` [Qemu-devel] " Marcelo Tosatti
2008-03-11 20:11 ` [patch 02/24] QEMU/KVM: add OperationRegion and GPE handler for add/removal notification Marcelo Tosatti
2008-03-11 20:11   ` [Qemu-devel] " Marcelo Tosatti
2008-03-11 20:11 ` [patch 03/24] QEMU/KVM: add pci_find_bus Marcelo Tosatti
2008-03-11 20:11   ` [Qemu-devel] " Marcelo Tosatti
2008-03-11 20:11 ` [patch 04/24] QEMU/KVM: return PCIDevice on net device init and record devfn Marcelo Tosatti
2008-03-11 20:11   ` [Qemu-devel] " Marcelo Tosatti
2008-03-11 20:11 ` [patch 05/24] QEMU/KVM: pci hotplug GPE support Marcelo Tosatti
2008-03-11 20:11   ` [Qemu-devel] " Marcelo Tosatti
2008-03-11 20:11 ` [patch 06/24] QEMU/KVM: dynamic drive/drive_opt index allocation Marcelo Tosatti
2008-03-11 20:11   ` [Qemu-devel] " Marcelo Tosatti
2008-03-11 20:11 ` [patch 07/24] QEMU/KVM: dynamic nic info " Marcelo Tosatti
2008-03-11 20:11   ` [Qemu-devel] " Marcelo Tosatti
2008-03-11 20:11 ` Marcelo Tosatti [this message]
2008-03-11 20:11   ` [Qemu-devel] [patch 08/24] QEMU/KVM: drive removal support Marcelo Tosatti
2008-03-11 20:12 ` [patch 09/24] QEMU/KVM: record devfn on block driver instance Marcelo Tosatti
2008-03-11 20:12   ` [Qemu-devel] " Marcelo Tosatti
2008-03-11 20:12 ` [patch 10/24] QEMU/KVM: move drives_opt for external use Marcelo Tosatti
2008-03-11 20:12   ` [Qemu-devel] " Marcelo Tosatti
2008-03-11 20:12 ` [patch 11/24] QEMU/KVM: net/drive add/remove tweaks Marcelo Tosatti
2008-03-11 20:12   ` [Qemu-devel] " Marcelo Tosatti
2008-03-11 20:12 ` [patch 12/24] QEMU/KVM: add net_client_uninit Marcelo Tosatti
2008-03-11 20:12   ` [Qemu-devel] " Marcelo Tosatti
2008-03-11 20:12 ` [patch 13/24] QEMU/KVM: export get_param_value/check_params Marcelo Tosatti
2008-03-11 20:12   ` [Qemu-devel] " Marcelo Tosatti
2008-03-11 20:12 ` [patch 14/24] QEMU/KVM: add pci_find_device Marcelo Tosatti
2008-03-11 20:12   ` [Qemu-devel] " Marcelo Tosatti
2008-03-11 20:12 ` [patch 15/24] QEMU/KVM: virtio_blk_init return PCIDevice pointer Marcelo Tosatti
2008-03-11 20:12   ` [Qemu-devel] " Marcelo Tosatti
2008-03-11 20:12 ` [patch 16/24] QEMU/KVM: device and disk hot-add Marcelo Tosatti
2008-03-11 20:12   ` [Qemu-devel] " Marcelo Tosatti
2008-03-11 20:12 ` [patch 17/24] QEMU/KVM: add cpu_unregister_io_memory and make io mem table index dynamic Marcelo Tosatti
2008-03-11 20:12   ` [Qemu-devel] " Marcelo Tosatti
2008-03-18 12:32   ` Amit Shah
2008-03-18 12:32     ` [Qemu-devel] Re: [kvm-devel] " Amit Shah
2008-03-18 13:54     ` Marcelo Tosatti
2008-03-18 13:54       ` [Qemu-devel] Re: [kvm-devel] " Marcelo Tosatti
2008-03-18 14:13       ` Amit Shah
2008-03-18 14:13         ` [Qemu-devel] RE: [kvm-devel] " Amit Shah
2008-03-18 15:22         ` Avi Kivity
2008-03-18 15:22           ` [Qemu-devel] Re: [kvm-devel] " Avi Kivity
2008-03-11 20:12 ` [patch 18/24] QEMU/KVM: notify _EJ0 through _SEJ OperationRegion Marcelo Tosatti
2008-03-11 20:12   ` [Qemu-devel] " Marcelo Tosatti
2008-03-11 20:12 ` [patch 19/24] QEMU/KVM: handle SEJ notifications Marcelo Tosatti
2008-03-11 20:12   ` [Qemu-devel] " Marcelo Tosatti
2008-03-11 20:12 ` [patch 20/24] QEMU/KVM: add qemu_free_irqs Marcelo Tosatti
2008-03-11 20:12   ` [Qemu-devel] " Marcelo Tosatti
2008-03-11 20:12 ` [patch 21/24] QEMU/KVM: add pci_unregister_device Marcelo Tosatti
2008-03-11 20:12   ` [Qemu-devel] " Marcelo Tosatti
2008-03-11 20:12 ` [patch 22/24] QEMU/KVM: LSI SCSI and e1000 unregister callbacks Marcelo Tosatti
2008-03-11 20:12   ` [Qemu-devel] " Marcelo Tosatti
2008-03-11 20:12 ` [patch 23/24] QEMU/KVM: zero ioport_opaque on isa_unassign_ioport Marcelo Tosatti
2008-03-11 20:12   ` [Qemu-devel] " Marcelo Tosatti
2008-03-11 20:12 ` [patch 24/24] QEMU/KVM: device hot-remove Marcelo Tosatti
2008-03-11 20:12   ` [Qemu-devel] " Marcelo Tosatti
2008-03-16 12:30 ` [patch 00/24] QEMU ACPI PCI hotplug support Avi Kivity
2008-03-16 12:30   ` [Qemu-devel] Re: [kvm-devel] " Avi Kivity

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=20080311201417.831948218@localhost.localdomain \
    --to=mtosatti@redhat.com \
    --cc=kvm-devel@lists.sourceforge.net \
    --cc=qemu-devel@nongnu.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.