Re: [PATCH] qemu-kvm: Prepare IOAPIC for upstream merge

2011-02-14 Thread Marcelo Tosatti
On Mon, Feb 07, 2011 at 12:59:34PM +0100, Jan Kiszka wrote:
 Drop base_address from the vmstate, upstream decided against managing it
 at device level. Instead, fetch it from the sysbus device state when
 setting the in-kernel state. Moreover, merge ioapic_pre_load into
 ioapic_post_load as upstream does.
 
 Signed-off-by: Jan Kiszka jan.kis...@siemens.com
 ---
  hw/ioapic.c |   26 +++---
  1 files changed, 7 insertions(+), 19 deletions(-)

Patch rejects due to last merge, please rebase.

--
To unsubscribe from this list: send the line unsubscribe kvm in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html


Re: [PATCH] qemu-kvm: Prepare IOAPIC for upstream merge

2011-02-14 Thread Jan Kiszka
On 2011-02-14 16:43, Marcelo Tosatti wrote:
 On Mon, Feb 07, 2011 at 12:59:34PM +0100, Jan Kiszka wrote:
 Drop base_address from the vmstate, upstream decided against managing it
 at device level. Instead, fetch it from the sysbus device state when
 setting the in-kernel state. Moreover, merge ioapic_pre_load into
 ioapic_post_load as upstream does.

 Signed-off-by: Jan Kiszka jan.kis...@siemens.com
 ---
  hw/ioapic.c |   26 +++---
  1 files changed, 7 insertions(+), 19 deletions(-)
 
 Patch rejects due to last merge, please rebase.

Already done [1].

Jan

[1] http://article.gmane.org/gmane.comp.emulators.kvm.devel/67911

-- 
Siemens AG, Corporate Technology, CT T DE IT 1
Corporate Competence Center Embedded Linux
--
To unsubscribe from this list: send the line unsubscribe kvm in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html


[PATCH] qemu-kvm: Prepare IOAPIC for upstream merge

2011-02-07 Thread Jan Kiszka
Drop base_address from the vmstate, upstream decided against managing it
at device level. Instead, fetch it from the sysbus device state when
setting the in-kernel state. Moreover, merge ioapic_pre_load into
ioapic_post_load as upstream does.

Signed-off-by: Jan Kiszka jan.kis...@siemens.com
---
 hw/ioapic.c |   26 +++---
 1 files changed, 7 insertions(+), 19 deletions(-)

diff --git a/hw/ioapic.c b/hw/ioapic.c
index aeb3653..bbc0488 100644
--- a/hw/ioapic.c
+++ b/hw/ioapic.c
@@ -40,7 +40,6 @@
 #define DPRINTF(fmt, ...)
 #endif
 
-#define IOAPIC_DEFAULT_BASE_ADDRESS  0xfec0
 #define IOAPIC_LVT_MASKED  (116)
 
 #define IOAPIC_TRIGGER_EDGE0
@@ -61,8 +60,6 @@ struct IOAPICState {
 SysBusDevice busdev;
 uint8_t id;
 uint8_t ioregsel;
-uint64_t base_address;
-
 uint32_t irr;
 uint64_t ioredtbl[IOAPIC_NUM_PINS];
 };
@@ -219,7 +216,6 @@ static void kvm_kernel_ioapic_save_to_user(IOAPICState *s)
 
 s-id = kioapic-id;
 s-ioregsel = kioapic-ioregsel;
-s-base_address = kioapic-base_address;
 s-irr = kioapic-irr;
 for (i = 0; i  IOAPIC_NUM_PINS; i++) {
 s-ioredtbl[i] = kioapic-redirtbl[i].bits;
@@ -239,7 +235,7 @@ static void kvm_kernel_ioapic_load_from_user(IOAPICState *s)
 
 kioapic-id = s-id;
 kioapic-ioregsel = s-ioregsel;
-kioapic-base_address = s-base_address;
+kioapic-base_address = s-busdev.mmio[0].addr;
 kioapic-irr = s-irr;
 for (i = 0; i  IOAPIC_NUM_PINS; i++) {
 kioapic-redirtbl[i].bits = s-ioredtbl[i];
@@ -258,16 +254,6 @@ static void ioapic_pre_save(void *opaque)
 }
 }
 
-static int ioapic_pre_load(void *opaque)
-{
-IOAPICState *s = opaque;
-
-/* in case we are doing version 1, we just set these to sane values */
-s-base_address = IOAPIC_DEFAULT_BASE_ADDRESS;
-s-irr = 0;
-return 0;
-}
-
 static int ioapic_post_load(void *opaque, int version_id)
 {
 IOAPICState *s = opaque;
@@ -275,21 +261,24 @@ static int ioapic_post_load(void *opaque, int version_id)
 if (kvm_enabled()  kvm_irqchip_in_kernel()) {
 kvm_kernel_ioapic_load_from_user(s);
 }
+if (version_id == 1) {
+/* set sane value */
+s-irr = 0;
+}
 return 0;
 }
 
 static const VMStateDescription vmstate_ioapic = {
 .name = ioapic,
-.version_id = 2,
+.version_id = 3,
 .minimum_version_id = 1,
 .minimum_version_id_old = 1,
-.pre_load = ioapic_pre_load,
 .post_load = ioapic_post_load,
 .pre_save = ioapic_pre_save,
 .fields  = (VMStateField []) {
 VMSTATE_UINT8(id, IOAPICState),
 VMSTATE_UINT8(ioregsel, IOAPICState),
-VMSTATE_UINT64_V(base_address, IOAPICState, 2),
+VMSTATE_UNUSED_V(2, 8), /* to account for qemu-kvm's v2 format */
 VMSTATE_UINT32_V(irr, IOAPICState, 2),
 VMSTATE_UINT64_ARRAY(ioredtbl, IOAPICState, IOAPIC_NUM_PINS),
 VMSTATE_END_OF_LIST()
@@ -301,7 +290,6 @@ static void ioapic_reset(DeviceState *d)
 IOAPICState *s = DO_UPCAST(IOAPICState, busdev.qdev, d);
 int i;
 
-s-base_address = IOAPIC_DEFAULT_BASE_ADDRESS;
 s-id = 0;
 s-ioregsel = 0;
 s-irr = 0;
-- 
1.7.1
--
To unsubscribe from this list: send the line unsubscribe kvm in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html