From 963604605c0eff8c5b6ca6614b6c5fba8ae4dd15 Mon Sep 17 00:00:00 2001 From: Cristian Iorga Date: Wed, 6 Aug 2014 10:43:25 +0300 Subject: qemu: upgrade to 2.1 QEMU 2.1 comes with fixes and improvements. See http://wiki.qemu.org/ChangeLog/2.1 for details. - Added config for quorum support, depending on gnutls. - pcie_better_hotplug_support.patch removed, integrated upstream. - Qemu-Arm-versatilepb-Add-memory-size-checking.patch updated to 2.1 source code. - no-strip.patch removed, no longer necessary due to code changes. (From OE-Core rev: 3ae32d0d6c7cf8294300f32d346da36748e05f3d) Signed-off-by: Cristian Iorga Signed-off-by: Richard Purdie --- ...-Arm-versatilepb-Add-memory-size-checking.patch | 2 +- .../qemu/files/pcie_better_hotplug_support.patch | 74 ---------------------- meta/recipes-devtools/qemu/qemu.inc | 2 +- meta/recipes-devtools/qemu/qemu/no-strip.patch | 15 ----- meta/recipes-devtools/qemu/qemu_2.0.0.bb | 30 --------- meta/recipes-devtools/qemu/qemu_2.1.0.bb | 27 ++++++++ 6 files changed, 29 insertions(+), 121 deletions(-) delete mode 100644 meta/recipes-devtools/qemu/files/pcie_better_hotplug_support.patch delete mode 100644 meta/recipes-devtools/qemu/qemu/no-strip.patch delete mode 100644 meta/recipes-devtools/qemu/qemu_2.0.0.bb create mode 100644 meta/recipes-devtools/qemu/qemu_2.1.0.bb (limited to 'meta') diff --git a/meta/recipes-devtools/qemu/files/Qemu-Arm-versatilepb-Add-memory-size-checking.patch b/meta/recipes-devtools/qemu/files/Qemu-Arm-versatilepb-Add-memory-size-checking.patch index 3834aed6d0..7f1c5a9058 100644 --- a/meta/recipes-devtools/qemu/files/Qemu-Arm-versatilepb-Add-memory-size-checking.patch +++ b/meta/recipes-devtools/qemu/files/Qemu-Arm-versatilepb-Add-memory-size-checking.patch @@ -32,7 +32,7 @@ index b48d84c..ad2cd5a 100644 + ((unsigned int)ram_size / (1 << 20))); + exit(1); + } - memory_region_init_ram(ram, NULL, "versatile.ram", args->ram_size); + memory_region_init_ram(ram, NULL, "versatile.ram", machine->ram_size); vmstate_register_ram_global(ram); /* ??? RAM should repeat to fill physical memory space. */ -- diff --git a/meta/recipes-devtools/qemu/files/pcie_better_hotplug_support.patch b/meta/recipes-devtools/qemu/files/pcie_better_hotplug_support.patch deleted file mode 100644 index c7035b2bf7..0000000000 --- a/meta/recipes-devtools/qemu/files/pcie_better_hotplug_support.patch +++ /dev/null @@ -1,74 +0,0 @@ -The current code is broken: it does surprise removal which crashes guests. - -Reimplemented the steps: - - Hotplug triggers both 'present detect change' and - 'attention button pressed'. - - - Hotunplug starts by triggering 'attention button pressed', - then waits for the OS to power off the device and only - then detaches it. - -Fixes CVE-2014-3471. - -Originated-by: Marcel Apfelbaum -Updated-by: Daniel BORNAZ - ---- a/hw/pci/pcie.c 2014-04-17 15:44:44.000000000 +0200 -+++ b/hw/pci/pcie.c 2014-07-15 13:03:16.905070562 +0200 -@@ -258,7 +258,8 @@ void pcie_cap_slot_hotplug_cb(HotplugHan - - pci_word_test_and_set_mask(exp_cap + PCI_EXP_SLTSTA, - PCI_EXP_SLTSTA_PDS); -- pcie_cap_slot_event(PCI_DEVICE(hotplug_dev), PCI_EXP_HP_EV_PDC); -+ pcie_cap_slot_event(PCI_DEVICE(hotplug_dev), -+ PCI_EXP_HP_EV_PDC | PCI_EXP_HP_EV_ABP); - } - - void pcie_cap_slot_hot_unplug_cb(HotplugHandler *hotplug_dev, DeviceState *dev, -@@ -268,10 +269,7 @@ void pcie_cap_slot_hot_unplug_cb(Hotplug - - pcie_cap_slot_hotplug_common(PCI_DEVICE(hotplug_dev), dev, &exp_cap, errp); - -- object_unparent(OBJECT(dev)); -- pci_word_test_and_clear_mask(exp_cap + PCI_EXP_SLTSTA, -- PCI_EXP_SLTSTA_PDS); -- pcie_cap_slot_event(PCI_DEVICE(hotplug_dev), PCI_EXP_HP_EV_PDC); -+ pcie_cap_slot_push_attention_button(PCI_DEVICE(hotplug_dev)); - } - - /* pci express slot for pci express root/downstream port -@@ -352,6 +350,11 @@ void pcie_cap_slot_reset(PCIDevice *dev) - hotplug_event_update_event_status(dev); - } - -+static void pcie_unplug_device(PCIBus *bus, PCIDevice *dev, void *opaque) -+{ -+ object_unparent(OBJECT(dev)); -+} -+ - void pcie_cap_slot_write_config(PCIDevice *dev, - uint32_t addr, uint32_t val, int len) - { -@@ -376,6 +379,22 @@ void pcie_cap_slot_write_config(PCIDevic - sltsta); - } - -+ /* -+ * If the slot is polulated, power indicator is off and power -+ * controller is off, it is safe to detach the devices. -+ */ -+ if ((sltsta & PCI_EXP_SLTSTA_PDS) && (val & PCI_EXP_SLTCTL_PCC) && -+ ((val & PCI_EXP_SLTCTL_PIC_OFF) == PCI_EXP_SLTCTL_PIC_OFF)) { -+ PCIBus *sec_bus = pci_bridge_get_sec_bus(PCI_BRIDGE(dev)); -+ pci_for_each_device(sec_bus, pci_bus_num(sec_bus), -+ pcie_unplug_device, NULL); -+ -+ pci_word_test_and_clear_mask(exp_cap + PCI_EXP_SLTSTA, -+ PCI_EXP_SLTSTA_PDS); -+ pci_word_test_and_set_mask(exp_cap + PCI_EXP_SLTSTA, -+ PCI_EXP_SLTSTA_PDC); -+ } -+ - hotplug_event_notify(dev); - - /* diff --git a/meta/recipes-devtools/qemu/qemu.inc b/meta/recipes-devtools/qemu/qemu.inc index 84330aecb0..57907ae5c8 100644 --- a/meta/recipes-devtools/qemu/qemu.inc +++ b/meta/recipes-devtools/qemu/qemu.inc @@ -17,7 +17,6 @@ QEMU_TARGETS ?= "arm i386 mips mipsel mips64 mips64el ppc sh4 x86_64" SRC_URI = "\ file://powerpc_rom.bin \ - file://no-strip.patch \ file://larger_default_ram_size.patch \ file://disable-grabs.patch \ file://exclude-some-arm-EABI-obsolete-syscalls.patch \ @@ -89,6 +88,7 @@ PACKAGECONFIG[virtfs] = "--enable-virtfs --enable-attr,--disable-virtfs,libcap a PACKAGECONFIG[aio] = "--enable-linux-aio,--disable-linux-aio,libaio," PACKAGECONFIG[xfs] = "--enable-xfsctl,--disable-xfsctl,xfsprogs," PACKAGECONFIG[xen] = "--enable-xen, --disable-xen,," +PACKAGECONFIG[quorum] = "--enable-quorum, --disable-quorum, gnutls," PACKAGECONFIG[vnc-tls] = "--enable-vnc --enable-vnc-tls,--disable-vnc-tls, gnutls," PACKAGECONFIG[vnc-ws] = "--enable-vnc --enable-vnc-ws,--disable-vnc-ws, gnutls," PACKAGECONFIG[vnc-sasl] = "--enable-vnc --enable-vnc-sasl,--disable-vnc-sasl,cyrus-sasl," diff --git a/meta/recipes-devtools/qemu/qemu/no-strip.patch b/meta/recipes-devtools/qemu/qemu/no-strip.patch deleted file mode 100644 index d6a4377cd0..0000000000 --- a/meta/recipes-devtools/qemu/qemu/no-strip.patch +++ /dev/null @@ -1,15 +0,0 @@ -Upstream-Status: Inappropriate [configuration] - -Index: qemu-0.14.0/Makefile -=================================================================== ---- qemu-0.14.0.orig/Makefile -+++ qemu-0.14.0/Makefile -@@ -235,7 +235,7 @@ install-sysconfig: - install: all $(if $(BUILD_DOCS),install-doc) install-sysconfig - $(INSTALL_DIR) "$(DESTDIR)$(bindir)" - ifneq ($(TOOLS),) -- $(INSTALL_PROG) $(STRIP_OPT) $(TOOLS) "$(DESTDIR)$(bindir)" -+ $(INSTALL_PROG) $(TOOLS) "$(DESTDIR)$(bindir)" - endif - ifneq ($(BLOBS),) - $(INSTALL_DIR) "$(DESTDIR)$(datadir)" diff --git a/meta/recipes-devtools/qemu/qemu_2.0.0.bb b/meta/recipes-devtools/qemu/qemu_2.0.0.bb deleted file mode 100644 index 9a530a6fb5..0000000000 --- a/meta/recipes-devtools/qemu/qemu_2.0.0.bb +++ /dev/null @@ -1,30 +0,0 @@ -require qemu.inc - -LIC_FILES_CHKSUM = "file://COPYING;md5=441c28d2cf86e15a37fa47e15a72fbac \ - file://COPYING.LIB;endline=24;md5=c04def7ae38850e7d3ef548588159913" - -SRC_URI += "file://qemu-enlarge-env-entry-size.patch \ - file://Qemu-Arm-versatilepb-Add-memory-size-checking.patch \ - file://pcie_better_hotplug_support.patch \ - " - - - -SRC_URI_prepend = "http://wiki.qemu-project.org/download/${BP}.tar.bz2" -SRC_URI[md5sum] = "2790f44fd76da5de5024b4aafeb594c2" -SRC_URI[sha256sum] = "60cc1aa0cad39cec891f970bed60ca8a484f071adad4943123599ac223543a3b" - -COMPATIBLE_HOST_class-target_mips64 = "null" - -do_sanitize_sources() { - # These .git files point to a nonexistent path "../.git/modules" and will confuse git - # if it tries to recurse into those directories. - rm -f ${S}/dtc/.git ${S}/pixman/.git -} - -addtask sanitize_sources after do_unpack before do_patch - -do_install_append() { - # Prevent QA warnings about installed ${localstatedir}/run - if [ -d ${D}${localstatedir}/run ]; then rmdir ${D}${localstatedir}/run; fi -} diff --git a/meta/recipes-devtools/qemu/qemu_2.1.0.bb b/meta/recipes-devtools/qemu/qemu_2.1.0.bb new file mode 100644 index 0000000000..abf8dfcf1c --- /dev/null +++ b/meta/recipes-devtools/qemu/qemu_2.1.0.bb @@ -0,0 +1,27 @@ +require qemu.inc + +LIC_FILES_CHKSUM = "file://COPYING;md5=441c28d2cf86e15a37fa47e15a72fbac \ + file://COPYING.LIB;endline=24;md5=c04def7ae38850e7d3ef548588159913" + +SRC_URI += "file://qemu-enlarge-env-entry-size.patch \ + file://Qemu-Arm-versatilepb-Add-memory-size-checking.patch \ + " + +SRC_URI_prepend = "http://wiki.qemu-project.org/download/${BP}.tar.bz2" +SRC_URI[md5sum] = "6726977292b448cbc7f89998fac6983b" +SRC_URI[sha256sum] = "397e23184f4bf613589a8fe0c6542461dc2afdf17ed337e97e6fd2f31e8f8802" + +COMPATIBLE_HOST_class-target_mips64 = "null" + +do_sanitize_sources() { + # These .git files point to a nonexistent path "../.git/modules" and will confuse git + # if it tries to recurse into those directories. + rm -f ${S}/dtc/.git ${S}/pixman/.git +} + +addtask sanitize_sources after do_unpack before do_patch + +do_install_append() { + # Prevent QA warnings about installed ${localstatedir}/run + if [ -d ${D}${localstatedir}/run ]; then rmdir ${D}${localstatedir}/run; fi +} -- cgit 1.2.3-korg