Skip to contentSkip to conversation

qemu-kvm: Fix save/restore of in-kernel i8259

PATCH Superseded Jan Kiszka 3 participants 5 messages Dec 14, 2011 – Jan 9, 2012 KVM

lore
Share & tools
lore

Jan Kiszka

author
#0 lore raw

PATCH 1/1 qemu-kvm: Fix save/restore of in-kernel i8259

Subject: [PATCH] qemu-kvm: Fix save/restore of in-kernel i8259

As the qemu-kvm version of the i8259 contains KVM bits, it still has to be compiled per target. This unbreaks migration of the i8259.

---
 Makefile.objs   |    2 +-
 Makefile.target |    2 +-
 hw/i8259.c      |    2 --
 3 files changed, 2 insertions(+), 4 deletions(-)
Makefile.objs +1 -1
index 13afd19..77237e1 100644
@@ -223,7 +223,7 @@ hw-obj-$(CONFIG_APPLESMC) += applesmc.o
 hw-obj-$(CONFIG_SMARTCARD) += usb-ccid.o ccid-card-passthru.o
 hw-obj-$(CONFIG_SMARTCARD_NSS) += ccid-card-emulated.o
 hw-obj-$(CONFIG_USB_REDIR) += usb-redir.o
-hw-obj-$(CONFIG_I8259) += i8259.o
+# hw-obj-$(CONFIG_I8259) += i8259.o
 
 # PPC devices
 hw-obj-$(CONFIG_PREP_PCI) += prep_pci.o
Makefile.target +1 -1
index 0b610ad..1c9c049 100644
@@ -236,7 +236,7 @@ obj-$(CONFIG_IVSHMEM) += ivshmem.o
 
 # Hardware support
 obj-i386-y += vga.o
-obj-i386-y += mc146818rtc.o pc.o
+obj-i386-y += mc146818rtc.o pc.o i8259.o
 obj-i386-y += cirrus_vga.o sga.o apic.o ioapic.o piix_pci.o
 obj-i386-y += vmport.o
 obj-i386-y += device-hotplug.o pci-hotplug.o smbios.o wdt_ib700.o
hw/i8259.c +0 -2
index fa63e83..a9ea9c9 100644
@@ -697,8 +697,6 @@ static int kvm_kernel_pic_load_from_user(PicState *s)
     return 0;
 }
 
-extern void apic_set_irq_delivered(void);
-
 static void kvm_i8259_set_irq(void *opaque, int irq, int level)
 {
     int pic_ret;
Signature · 1 line
1.7.3.4
author
#1 lore raw

PATCH v2 1/1 qemu-kvm: Fix save/restore of in-kernel i8259

As the qemu-kvm version of the i8259 contains KVM bits, it still has to be compiled per target. This unbreaks migration of the i8259.

---

Not sure if anyone bothers (no one should actually use qemu-kvm for targets != x86), but let's avoid needless breakages of other targets requiring the i8259.

 Makefile.objs   |    2 +-
 Makefile.target |    8 ++++----
 hw/i8259.c      |    2 --
 3 files changed, 5 insertions(+), 7 deletions(-)
Makefile.objs +1 -1
index 13afd19..77237e1 100644
@@ -223,7 +223,7 @@ hw-obj-$(CONFIG_APPLESMC) += applesmc.o
 hw-obj-$(CONFIG_SMARTCARD) += usb-ccid.o ccid-card-passthru.o
 hw-obj-$(CONFIG_SMARTCARD_NSS) += ccid-card-emulated.o
 hw-obj-$(CONFIG_USB_REDIR) += usb-redir.o
-hw-obj-$(CONFIG_I8259) += i8259.o
+# hw-obj-$(CONFIG_I8259) += i8259.o
 
 # PPC devices
 hw-obj-$(CONFIG_PREP_PCI) += prep_pci.o
Makefile.target +4 -4
index 0b610ad..29eaa68 100644
@@ -236,7 +236,7 @@ obj-$(CONFIG_IVSHMEM) += ivshmem.o
 
 # Hardware support
 obj-i386-y += vga.o
-obj-i386-y += mc146818rtc.o pc.o
+obj-i386-y += mc146818rtc.o pc.o i8259.o
 obj-i386-y += cirrus_vga.o sga.o apic.o ioapic.o piix_pci.o
 obj-i386-y += vmport.o
 obj-i386-y += device-hotplug.o pci-hotplug.o smbios.o wdt_ib700.o
@@ -255,7 +255,7 @@ obj-i386-$(CONFIG_KVM_DEVICE_ASSIGNMENT) += device-assignment.o
 obj-ppc-y = ppc.o ppc_booke.o
 obj-ppc-y += vga.o
 # PREP target
-obj-ppc-y += mc146818rtc.o
+obj-ppc-y += mc146818rtc.o i8259.o
 obj-ppc-y += ppc_prep.o
 # OldWorld PowerMac
 obj-ppc-y += ppc_oldworld.o
@@ -311,7 +311,7 @@ obj-mips-y += acpi.o acpi_piix4.o
 obj-mips-y += mips_addr.o mips_timer.o mips_int.o
 obj-mips-y += vga.o
 obj-mips-y += jazz_led.o
-obj-mips-y += gt64xxx.o mc146818rtc.o
+obj-mips-y += gt64xxx.o mc146818rtc.o i8259.o
 obj-mips-y += cirrus_vga.o
 obj-mips-$(CONFIG_FULONG) += bonito.o vt82c686.o mips_fulong2e.o
 
@@ -392,7 +392,7 @@ obj-m68k-y += m68k-semi.o dummy_m68k.o
 
 obj-s390x-y = s390-virtio-bus.o s390-virtio.o
 
-obj-alpha-y = mc146818rtc.o
+obj-alpha-y = mc146818rtc.o i8259.o
 obj-alpha-y += vga.o cirrus_vga.o
 obj-alpha-y += alpha_pci.o alpha_dp264.o alpha_typhoon.o
 
hw/i8259.c +0 -2
index fa63e83..a9ea9c9 100644
@@ -697,8 +697,6 @@ static int kvm_kernel_pic_load_from_user(PicState *s)
     return 0;
 }
 
-extern void apic_set_irq_delivered(void);
-
 static void kvm_i8259_set_irq(void *opaque, int irq, int level)
 {
     int pic_ret;
Signature · 1 line
1.7.3.4
#2 lore raw
Quoted 6 lines · Jan Kiszka

As the qemu-kvm version of the i8259 contains KVM bits, it still has to be compiled per target. This unbreaks migration of the i8259.

---

Quoted 8 lines

Not sure if anyone bothers (no one should actually use qemu-kvm for targets != x86), but let's avoid needless breakages of other targets requiring the i8259.

 Makefile.objs   |    2 +-
 Makefile.target |    8 ++++----
 hw/i8259.c      |    2 --
 3 files changed, 5 insertions(+), 7 deletions(-)

Applied, thanks.

#3 lore raw
Quoted 11 lines · Marcelo Tosatti
Quoted 10 lines · Jan Kiszka

As the qemu-kvm version of the i8259 contains KVM bits, it still has to be compiled per target. This unbreaks migration of the i8259.

---

Not sure if anyone bothers (no one should actually use qemu-kvm for targets != x86), but let's avoid needless breakages of other targets requiring the i8259.

Quoted 6 lines
Quoted 4 lines
 Makefile.objs   |    2 +-
 Makefile.target |    8 ++++----
 hw/i8259.c      |    2 --
 3 files changed, 5 insertions(+), 7 deletions(-)

Applied, thanks.

We need it in master as well (forgot to state this explicitly).

Jan

#4 lore raw
Quoted 17 lines · Jan Kiszka
Quoted 16 lines · Marcelo Tosatti
Quoted 14 lines · Jan Kiszka

As the qemu-kvm version of the i8259 contains KVM bits, it still has to be compiled per target. This unbreaks migration of the i8259.

---

Not sure if anyone bothers (no one should actually use qemu-kvm for targets != x86), but let's avoid needless breakages of other targets requiring the i8259.

 Makefile.objs   |    2 +-
 Makefile.target |    8 ++++----
 hw/i8259.c      |    2 --
 3 files changed, 5 insertions(+), 7 deletions(-)
Quoted 5 lines
Quoted 1 line

Applied, thanks.

We need it in master as well (forgot to state this explicitly).

Jan

Fixed, thanks.