From 62de63b129bf5f05e6a1b28eabc4a270b66f0da6855ea733604d77f57d5cf369 Mon Sep 17 00:00:00 2001 From: OBS User buildservice-autocommit Date: Wed, 2 Feb 2011 00:43:45 +0000 Subject: [PATCH 1/3] Updating link to change in openSUSE:Factory/xen revision 115.0 OBS-URL: https://build.opensuse.org/package/show/Virtualization/xen?expand=0&rev=140c42732fbe50662d9f9e301896c8ac --- xen.changes | 2 +- xen.spec | 111 ++++++++++++++++++++++++++-------------------------- 2 files changed, 56 insertions(+), 57 deletions(-) diff --git a/xen.changes b/xen.changes index 3a63ecf..65c43d2 100644 --- a/xen.changes +++ b/xen.changes @@ -941,7 +941,7 @@ Fri Feb 19 09:49:56 MST 2010 - carnold@novell.com cpu-pools-docs.patch ------------------------------------------------------------------- -Thu Feb 18 15:18:59 - ksrinivasan@novell.com +Thu Feb 18 15:18:59 MST 2010 - ksrinivasan@novell.com - bnc#558760: Disable scsi devices when PV drivers are loaded. diff --git a/xen.spec b/xen.spec index 903da9c..13d932e 100644 --- a/xen.spec +++ b/xen.spec @@ -1,5 +1,5 @@ # -# spec file for package xen (Version 4.0.1_04) +# spec file for package xen # # Copyright (c) 2011 SUSE LINUX Products GmbH, Nuernberg, Germany. # @@ -26,35 +26,35 @@ ExclusiveArch: %ix86 x86_64 %define xen_build_dir xen-4.0.1-testing %define with_kmp 1 %define with_stubdom 1 -BuildRequires: LibVNCServer-devel -BuildRequires: SDL-devel -BuildRequires: automake -BuildRequires: bin86 -BuildRequires: curl-devel -BuildRequires: dev86 -BuildRequires: graphviz -BuildRequires: latex2html -BuildRequires: libjpeg-devel -BuildRequires: libxml2-devel -BuildRequires: ncurses-devel -BuildRequires: openssl -BuildRequires: openssl-devel -BuildRequires: pciutils-devel -BuildRequires: python-devel -BuildRequires: texinfo -BuildRequires: transfig +BuildRequires: LibVNCServer-devel +BuildRequires: SDL-devel +BuildRequires: automake +BuildRequires: bin86 +BuildRequires: curl-devel +BuildRequires: dev86 +BuildRequires: graphviz +BuildRequires: latex2html +BuildRequires: libjpeg-devel +BuildRequires: libxml2-devel +BuildRequires: ncurses-devel +BuildRequires: openssl +BuildRequires: openssl-devel +BuildRequires: pciutils-devel +BuildRequires: python-devel +BuildRequires: texinfo +BuildRequires: transfig %if %suse_version <= 1110 -BuildRequires: pmtools +BuildRequires: pmtools %else -BuildRequires: acpica +BuildRequires: acpica %endif %if %suse_version >= 1030 -BuildRequires: texlive -BuildRequires: texlive-latex +BuildRequires: texlive +BuildRequires: texlive-latex %else -BuildRequires: te_ams -BuildRequires: te_latex -BuildRequires: tetex +BuildRequires: te_ams +BuildRequires: te_latex +BuildRequires: tetex %endif %ifarch x86_64 BuildRequires: glibc-32bit glibc-devel-32bit @@ -71,7 +71,7 @@ BuildRequires: glibc-devel BuildRequires: kernel-source kernel-syms module-init-tools xorg-x11 %endif Version: 4.0.1_04 -Release: 1 +Release: 2 License: GPLv2+ Group: System/Kernel AutoReqProv: on @@ -255,7 +255,7 @@ Patch373: usb-list.patch Patch374: xend-devid-or-name.patch Patch375: 22326-cpu-pools-numa-placement.patch Patch376: 20158-revert.patch -Patch377: suspend_evtchn_lock.patch +Patch377: suspend_evtchn_lock.patch # Patches for snapshot support Patch400: snapshot-ioemu-save.patch Patch401: snapshot-ioemu-restore.patch @@ -314,35 +314,35 @@ Patch700: hv_extid_compatibility.patch # Build patch Patch999: tmp_build.patch # FATE 310510 -Patch902: hotplug-block-losetup-a.patch -Patch10001: xenpaging.tools_xenpaging_cleanup.patch -Patch10002: xenpaging.pageout_policy.patch -Patch10003: xenpaging.get_paged_frame.patch -Patch10004: xenpaging.makefile.patch -Patch10010: xenpaging.policy_linear.patch -Patch10011: xenpaging.pagefile.patch -Patch10012: xenpaging.xenpaging_init.patch -Patch10013: xenpaging.mem_paging_tool_qemu_flush_cache.patch -Patch10014: xenpaging.machine_to_phys_mapping.patch -Patch10015: xenpaging.populate_only_if_paged.patch -Patch10017: xenpaging.autostart.patch -Patch10018: xenpaging.signal_handling.patch -Patch10019: xenpaging.MRU_SIZE.patch -Patch10020: xenpaging.guest_remove_page.patch -Patch10021: xenpaging.mem_event_check_ring-free_requests.patch -Patch10022: xenpaging.blacklist.patch -Patch10023: xenpaging.autostart_delay.patch -Patch10024: xenpaging.page_already_populated.patch -Patch10025: xenpaging.notify_policy_only_once.patch -Patch10026: xenpaging.num_pages_equal_max_pages.patch -Patch10027: xenpaging.p2m_mem_paging_populate_if_p2m_ram_paged.patch -Patch10028: xenpaging.HVMCOPY_gfn_paged_out.patch -Patch10029: xenpaging.optimize_p2m_mem_paging_populate.patch -Patch10030: xenpaging.paging_prep_enomem.patch -Patch10031: xenpaging.print-arguments.patch -Patch10040: xenpaging.doc.patch +Patch902: hotplug-block-losetup-a.patch +Patch10001: xenpaging.tools_xenpaging_cleanup.patch +Patch10002: xenpaging.pageout_policy.patch +Patch10003: xenpaging.get_paged_frame.patch +Patch10004: xenpaging.makefile.patch +Patch10010: xenpaging.policy_linear.patch +Patch10011: xenpaging.pagefile.patch +Patch10012: xenpaging.xenpaging_init.patch +Patch10013: xenpaging.mem_paging_tool_qemu_flush_cache.patch +Patch10014: xenpaging.machine_to_phys_mapping.patch +Patch10015: xenpaging.populate_only_if_paged.patch +Patch10017: xenpaging.autostart.patch +Patch10018: xenpaging.signal_handling.patch +Patch10019: xenpaging.MRU_SIZE.patch +Patch10020: xenpaging.guest_remove_page.patch +Patch10021: xenpaging.mem_event_check_ring-free_requests.patch +Patch10022: xenpaging.blacklist.patch +Patch10023: xenpaging.autostart_delay.patch +Patch10024: xenpaging.page_already_populated.patch +Patch10025: xenpaging.notify_policy_only_once.patch +Patch10026: xenpaging.num_pages_equal_max_pages.patch +Patch10027: xenpaging.p2m_mem_paging_populate_if_p2m_ram_paged.patch +Patch10028: xenpaging.HVMCOPY_gfn_paged_out.patch +Patch10029: xenpaging.optimize_p2m_mem_paging_populate.patch +Patch10030: xenpaging.paging_prep_enomem.patch +Patch10031: xenpaging.print-arguments.patch +Patch10040: xenpaging.doc.patch # xenalyze -Patch20000: xenalyze.64bit.patch +Patch20000: xenalyze.64bit.patch Url: http://www.cl.cam.ac.uk/Research/SRG/netos/xen/ BuildRoot: %{_tmppath}/%{name}-%{version}-build #%define pysite %(python -c "import distutils.sysconfig; print distutils.sysconfig.get_python_lib()") @@ -900,7 +900,6 @@ tar xfj %{SOURCE2} -C $RPM_BUILD_DIR/%{xen_build_dir}/tools # %patch20000 -p1 - %build XEN_EXTRAVERSION=%version-%release XEN_EXTRAVERSION=${XEN_EXTRAVERSION#%{xvers}} From 0c76f22ef183f40e8c09c816209642e75b20e0791850382b5b735ee0d8e00308 Mon Sep 17 00:00:00 2001 From: Charles Arnold Date: Fri, 4 Feb 2011 21:19:54 +0000 Subject: [PATCH 2/3] - Update to Xen 4.0.2 rc2-pre, changeset 21443 - bnc#633573 - System fail to boot after running several warm reboot tests 22749-vtd-workarounds.patch - Upstream patches from Jan 22744-ept-pod-locking.patch 22777-vtd-ats-fixes.patch 22781-pod-hap-logdirty.patch 22782-x86-emul-smsw.patch 22789-i386-no-x2apic.patch 22790-svm-resume-migrate-pirqs.patch 22816-x86-pirq-drop-priv-check.patch OBS-URL: https://build.opensuse.org/package/show/Virtualization/xen?expand=0&rev=94 --- 20158-revert.patch | 14 +- 21089-x86-startup-irq-from-setup-gsi.patch | 22 +- 21235-crashkernel-advanced.patch | 18 +- 21271-x86-cache-flush-global.patch | 12 +- 21301-svm-lmsl.patch | 18 +- 21304-keyhandler-alternative.patch | 8 +- 21344-4.0-testing-xenstore-fd-leak.patch | 25 -- 21406-x86-microcode-quiet.patch | 6 +- ...ling.patch => 21421-vtd-ats-enabling.patch | 24 +- 21432-4.0-cpu-boot-failure.patch | 35 --- 21526-x86-nehalem-cpuid-mask.patch | 36 +-- 21542-amd-erratum-411.patch | 14 +- 21615-dont-save-xen-heap-pages.patch | 12 +- 21627-cpuidle-wrap.patch | 6 +- 21653-xend-mac-addr.patch | 6 +- 21678-xend-mac-fix.patch | 6 +- 21683-vtd-kill-timer-conditional.patch | 20 +- 21723-get-domu-state.patch | 24 +- 21810-x2apic-acpi.patch | 62 ++-- 21847-pscsi.patch | 24 +- 21866-xenapi.patch | 18 +- 21894-intel-unmask-cpuid.patch | 12 +- 21989-x2apic-resume.patch | 168 ----------- 22019-x86-cpuidle-online-check.patch | 6 +- 22045-python27-compat.patch | 55 ---- 22051-x86-forced-EOI.patch | 203 ------------- 22067-x86-irq-domain.patch | 31 -- 22068-vtd-irte-RH-bit.patch | 35 --- 22071-ept-get-entry-lock.patch | 45 --- 22084-x86-xsave-off.patch | 22 -- 22135-heap-lock.patch | 51 ---- 22148-serial-irq-dest.patch | 24 -- 22157-x86-debug-key-i.patch | 21 -- 22159-notify-evtchn-dying.patch | 27 -- 22160-Intel-C6-EOI.patch | 91 ------ 22174-x86-pmtimer-accuracy.patch | 68 ----- 22175-x86-irq-enter-exit.patch | 59 ---- 22177-i386-irq-safe-map_domain_page.patch | 92 ------ 22194-tmem-check-pv-mfn.patch | 240 --------------- 22213-x86-xsave-cpuid-check.patch | 50 ---- 22214-x86-msr-misc-enable.patch | 18 +- 22222-x86-timer-extint.patch | 70 ----- 22231-x86-pv-ucode-msr-intel.patch | 12 +- 22232-x86-64-lahf-lm-bios-workaround.patch | 89 ------ 22235-lxml-validator.patch | 12 +- 22280-kexec.patch | 71 ----- 22326-cpu-pools-numa-placement.patch | 12 +- ...ounds.patch => 22332-vtd-workarounds.patch | 269 +++++++++-------- 22337-vtd-scan-single-func.patch | 22 -- 22348-vtd-check-secbus-devfn.patch | 52 ---- 22369-xend-pci-passthru-fix.patch | 9 +- 22388-x2apic-panic.patch | 8 +- 22389-amd-iommu-decls.patch | 33 -- 22408-vpmu-nehalem.patch | 21 ++ 22416-acpi-check-mwait.patch | 21 -- 22417-vpmu-nehalem.patch | 123 -------- 22431-p2m-remove-bug-check.patch | 6 +- 22448-x86_64-gdt-ldt-fault-filter.patch | 57 ---- 22451-hvm-cap-clobber.patch | 43 --- 22452-x86-irq-migrate-directed-eoi.patch | 62 ---- 22466-x86-sis-apic-bug.patch | 36 --- 22470-vlapic-tick-loss.patch | 28 -- 22475-x2apic-cleanup.patch | 62 ++-- 22484-vlapic-tmcct-periodic.patch | 6 +- 22504-iommu-dom0-holes.patch | 11 + 22526-ept-access-once.patch | 123 -------- 22526-ept-get-entry-no-lock.patch | 49 +++ 22533-x86-32bit-apicid.patch | 38 ++- 22534-x86-max-local-apic.patch | 36 ++- 22535-x2apic-preenabled.patch | 24 +- 22538-keyhandler-relax.patch | 101 ------- 22540-32on64-hypercall-debug.patch | 21 -- 22549-vtd-map-page-leak.patch | 28 -- 22574-ept-skip-validation.patch | 29 -- 22632-vtd-print-entries.patch | 121 -------- 22645-amd-flush-filter.patch | 6 +- 22693-fam10-mmio-conf-base-protect.patch | 22 +- 22694-x86_64-no-weak.patch | 6 +- 22707-x2apic-preenabled-check.patch | 28 +- 22708-xenctx-misc.patch | 8 +- 22744-ept-pod-locking.patch | 47 +++ 22749-vtd-workarounds.patch | 264 ++++++++++++++++ 22777-vtd-ats-fixes.patch | 110 +++++++ 22781-pod-hap-logdirty.patch | 64 ++++ 22789-i386-no-x2apic.patch | 82 +++++ 22790-svm-resume-migrate-pirqs.patch | 24 ++ 32on64-extra-mem.patch | 6 +- 7410-qemu-alt-gr.patch | 30 +- 7426-xenfb-depth.patch | 6 +- 7433-qemu-altgr.patch | 96 ++++-- 7434-qemu-rlimit-as.patch | 6 +- altgr_2.patch | 6 +- bdrv_default_rwflag.patch | 6 +- bdrv_open2_fix_flags.patch | 18 +- bdrv_open2_flags_2.patch | 12 +- blktap-pv-cdrom.patch | 44 +-- blktap.patch | 14 +- blktap2.patch | 6 +- blktapctrl-default-to-ioemu.patch | 6 +- bridge-bonding.diff | 6 +- bridge-opensuse.patch | 6 +- bridge-record-creation.patch | 6 +- bridge-vlan.diff | 6 +- build-tapdisk-ioemu.patch | 24 +- capslock_enable.patch | 6 +- cdrom-removable.patch | 20 +- change_home_server.patch | 6 +- checkpoint-rename.patch | 6 +- cpu-pools-docs.patch | 30 +- cpu-pools-libxc.patch | 22 +- cpu-pools-libxen.patch | 60 ++-- cpu-pools-python.patch | 100 +++---- cpu-pools-xmtest.patch | 72 ++--- cpupools-core-fixup.patch | 32 +- cpupools-core.patch | 282 +++++++----------- del_usb_xend_entry.patch | 6 +- disable_emulated_device.diff | 8 +- dom-print.patch | 6 +- domu-usb-controller.patch | 6 +- dump-exec-state.patch | 48 +-- enable_more_nic_pxe.patch | 12 +- hibernate.patch | 6 +- hotplug-block-losetup-a.patch | 6 +- hv_extid_compatibility.patch | 18 +- ...7615-qcow2-fix-alloc_cluster_link_l2.patch | 6 +- ioemu-bdrv-open-CACHE_WB.patch | 6 +- ioemu-blktap-barriers.patch | 6 +- ioemu-blktap-fv-init.patch | 6 +- ioemu-blktap-image-format.patch | 12 +- ioemu-blktap-zero-size.patch | 12 +- ioemu-debuginfo.patch | 12 +- ioemu-disable-emulated-ide-if-pv.patch | 18 +- ioemu-disable-scsi.patch | 18 +- ioemu-vnc-resize.patch | 6 +- libxen_permissive.patch | 6 +- magic_ioport_compat.patch | 6 +- minios-fixups.patch | 18 +- multi-xvdp.patch | 21 +- network-nat-open-SuSEfirewall2-FORWARD.patch | 6 +- network-nat.patch | 6 +- network-route.patch | 6 +- popen2-argument-fix.patch | 6 +- pv-driver-build.patch | 6 +- pvdrv-import-shared-info.patch | 18 +- pvdrv_emulation_control.patch | 6 +- qemu-dm-segfault.patch | 6 +- qemu-fix-7433.patch | 22 -- qemu-security-etch1.diff | 12 +- serial-split.patch | 8 +- snapshot-ioemu-delete.patch | 18 +- snapshot-ioemu-restore.patch | 6 +- snapshot-ioemu-save.patch | 24 +- snapshot-without-pv-fix.patch | 36 +-- snapshot-xend.patch | 48 +-- stdvga-cache.patch | 6 +- supported_module.diff | 4 +- tapdisk-ioemu-logfile.patch | 6 +- tapdisk-ioemu-shutdown-fix.patch | 12 +- tmp_build.patch | 6 +- tools-gdbserver-build.diff | 6 +- tools-kboot.diff | 36 +-- tools-xc_kexec.diff | 78 ++--- udev-rules.patch | 6 +- usb-list.patch | 6 +- vif-bridge-no-iptables.patch | 6 +- vif-route-ifup.patch | 16 +- x86-cpufreq-report.patch | 14 +- x86-extra-trap-info.patch | 12 +- x86-ioapic-ack-default.patch | 10 +- x86-show-page-walk-early.patch | 46 +-- xen-4.0.1-testing-src.tar.bz2 | 3 - xen-4.0.2-testing-src.tar.bz2 | 3 + xen-api-auth.patch | 6 +- xen-changeset.diff | 6 +- xen-config.diff | 23 +- xen-destdir.diff | 36 +-- xen-disable-qemu-monitor.diff | 6 +- xen-domUloader.diff | 41 +-- xen-extra-fixes.patch | 6 +- xen-fixme-doc.diff | 12 +- xen-hvm-default-bridge.diff | 26 +- xen-hvm-default-pae.diff | 6 +- xen-ioemu-hvm-pv-support.diff | 6 +- xen-max-free-mem.diff | 24 +- xen-minimum-restart-time.patch | 6 +- xen-no-dummy-nfs-ip.diff | 6 +- xen-paths.diff | 18 +- xen-qemu-iscsi-fix.patch | 6 +- xen-rpmoptflags.diff | 12 +- xen-warnings.diff | 66 ++-- xen-xm-top-needs-root.diff | 6 +- xen-xmexample-vti.diff | 6 +- xen-xmexample.diff | 36 +-- xen.changes | 20 ++ xen.spec | 267 +++++++---------- xenalyze.64bit.patch | 6 +- xenapi-console-protocol.patch | 8 +- xend-config.diff | 12 +- xend-core-dump-loc.diff | 6 +- xend-devid-or-name.patch | 6 +- xend-domain-lock.patch | 40 +-- xend-sysconfig.patch | 6 +- xenpaging.HVMCOPY_gfn_paged_out.patch | 12 +- xenpaging.MRU_SIZE.patch | 6 +- xenpaging.autostart.patch | 48 +-- xenpaging.autostart_delay.patch | 6 +- xenpaging.blacklist.patch | 6 +- xenpaging.doc.patch | 4 +- xenpaging.get_paged_frame.patch | 6 +- xenpaging.guest_remove_page.patch | 38 +-- xenpaging.machine_to_phys_mapping.patch | 14 +- xenpaging.makefile.patch | 6 +- ...g.mem_event_check_ring-free_requests.patch | 10 +- ...ing.mem_paging_tool_qemu_flush_cache.patch | 6 +- xenpaging.notify_policy_only_once.patch | 14 +- xenpaging.num_pages_equal_max_pages.patch | 10 +- ...ing.optimize_p2m_mem_paging_populate.patch | 10 +- ...mem_paging_populate_if_p2m_ram_paged.patch | 8 +- xenpaging.page_already_populated.patch | 8 +- xenpaging.pagefile.patch | 10 +- xenpaging.pageout_policy.patch | 8 +- xenpaging.paging_prep_enomem.patch | 18 +- xenpaging.policy_linear.patch | 16 +- xenpaging.populate_only_if_paged.patch | 6 +- xenpaging.print-arguments.patch | 8 +- xenpaging.signal_handling.patch | 38 +-- xenpaging.tools_xenpaging_cleanup.patch | 10 +- xenpaging.xenpaging_init.patch | 18 +- xm-create-xflag.patch | 12 +- xm-save-check-file.patch | 18 +- xm-test-cleanup.diff | 6 +- 231 files changed, 2626 insertions(+), 4298 deletions(-) delete mode 100644 21344-4.0-testing-xenstore-fd-leak.patch rename 21421-vts-ats-enabling.patch => 21421-vtd-ats-enabling.patch (85%) delete mode 100644 21432-4.0-cpu-boot-failure.patch delete mode 100644 21989-x2apic-resume.patch delete mode 100644 22045-python27-compat.patch delete mode 100644 22051-x86-forced-EOI.patch delete mode 100644 22067-x86-irq-domain.patch delete mode 100644 22068-vtd-irte-RH-bit.patch delete mode 100644 22071-ept-get-entry-lock.patch delete mode 100644 22084-x86-xsave-off.patch delete mode 100644 22135-heap-lock.patch delete mode 100644 22148-serial-irq-dest.patch delete mode 100644 22157-x86-debug-key-i.patch delete mode 100644 22159-notify-evtchn-dying.patch delete mode 100644 22160-Intel-C6-EOI.patch delete mode 100644 22174-x86-pmtimer-accuracy.patch delete mode 100644 22175-x86-irq-enter-exit.patch delete mode 100644 22177-i386-irq-safe-map_domain_page.patch delete mode 100644 22194-tmem-check-pv-mfn.patch delete mode 100644 22213-x86-xsave-cpuid-check.patch delete mode 100644 22222-x86-timer-extint.patch delete mode 100644 22232-x86-64-lahf-lm-bios-workaround.patch delete mode 100644 22280-kexec.patch rename 22223-vtd-workarounds.patch => 22332-vtd-workarounds.patch (77%) delete mode 100644 22337-vtd-scan-single-func.patch delete mode 100644 22348-vtd-check-secbus-devfn.patch delete mode 100644 22389-amd-iommu-decls.patch create mode 100644 22408-vpmu-nehalem.patch delete mode 100644 22416-acpi-check-mwait.patch delete mode 100644 22417-vpmu-nehalem.patch delete mode 100644 22448-x86_64-gdt-ldt-fault-filter.patch delete mode 100644 22451-hvm-cap-clobber.patch delete mode 100644 22452-x86-irq-migrate-directed-eoi.patch delete mode 100644 22466-x86-sis-apic-bug.patch delete mode 100644 22470-vlapic-tick-loss.patch delete mode 100644 22526-ept-access-once.patch create mode 100644 22526-ept-get-entry-no-lock.patch delete mode 100644 22538-keyhandler-relax.patch delete mode 100644 22540-32on64-hypercall-debug.patch delete mode 100644 22549-vtd-map-page-leak.patch delete mode 100644 22574-ept-skip-validation.patch delete mode 100644 22632-vtd-print-entries.patch create mode 100644 22744-ept-pod-locking.patch create mode 100644 22749-vtd-workarounds.patch create mode 100644 22777-vtd-ats-fixes.patch create mode 100644 22781-pod-hap-logdirty.patch create mode 100644 22789-i386-no-x2apic.patch create mode 100644 22790-svm-resume-migrate-pirqs.patch delete mode 100644 qemu-fix-7433.patch delete mode 100644 xen-4.0.1-testing-src.tar.bz2 create mode 100644 xen-4.0.2-testing-src.tar.bz2 diff --git a/20158-revert.patch b/20158-revert.patch index 23121e2..a57c2b1 100644 --- a/20158-revert.patch +++ b/20158-revert.patch @@ -15,10 +15,10 @@ Note: Patch submitted upstream but not (yet) accepted since xend is on http://lists.xensource.com/archives/html/xen-devel/2010-12/msg01160.html -Index: xen-4.0.1-testing/tools/python/xen/util/blkif.py +Index: xen-4.0.2-testing/tools/python/xen/util/blkif.py =================================================================== ---- xen-4.0.1-testing.orig/tools/python/xen/util/blkif.py -+++ xen-4.0.1-testing/tools/python/xen/util/blkif.py +--- xen-4.0.2-testing.orig/tools/python/xen/util/blkif.py ++++ xen-4.0.2-testing/tools/python/xen/util/blkif.py @@ -79,13 +79,6 @@ def parse_uname(uname): if typ == "phy" and not fn.startswith("/"): fn = "/dev/%s" %(fn,) @@ -33,10 +33,10 @@ Index: xen-4.0.1-testing/tools/python/xen/util/blkif.py if typ in ("tap", "tap2"): (taptype, fn) = fn.split(":", 1) if taptype in ("tapdisk", "ioemu"): -Index: xen-4.0.1-testing/tools/python/xen/xend/XendDomainInfo.py +Index: xen-4.0.2-testing/tools/python/xen/xend/XendDomainInfo.py =================================================================== ---- xen-4.0.1-testing.orig/tools/python/xen/xend/XendDomainInfo.py -+++ xen-4.0.1-testing/tools/python/xen/xend/XendDomainInfo.py +--- xen-4.0.2-testing.orig/tools/python/xen/xend/XendDomainInfo.py ++++ xen-4.0.2-testing/tools/python/xen/xend/XendDomainInfo.py @@ -3283,15 +3283,6 @@ class XendDomainInfo: (fn, types) = parse_uname(disk) @@ -50,6 +50,6 @@ Index: xen-4.0.1-testing/tools/python/xen/xend/XendDomainInfo.py - if state == 'Secondary': - os.system('/sbin/drbdadm primary ' + diskname) - + mounted_vbd_uuid = 0 def _shouldMount(types): if types[0] in ('file', 'phy'): - return False diff --git a/21089-x86-startup-irq-from-setup-gsi.patch b/21089-x86-startup-irq-from-setup-gsi.patch index 63e9eee..a932993 100644 --- a/21089-x86-startup-irq-from-setup-gsi.patch +++ b/21089-x86-startup-irq-from-setup-gsi.patch @@ -54,11 +54,11 @@ up in order for it to be usable. Signed-off-by: Jan Beulich -Index: xen-4.0.1-testing/xen/arch/x86/io_apic.c +Index: xen-4.0.2-testing/xen/arch/x86/io_apic.c =================================================================== ---- xen-4.0.1-testing.orig/xen/arch/x86/io_apic.c -+++ xen-4.0.1-testing/xen/arch/x86/io_apic.c -@@ -2231,6 +2231,7 @@ int __init io_apic_get_redir_entries (in +--- xen-4.0.2-testing.orig/xen/arch/x86/io_apic.c ++++ xen-4.0.2-testing/xen/arch/x86/io_apic.c +@@ -2232,6 +2232,7 @@ int __init io_apic_get_redir_entries (in int io_apic_set_pci_routing (int ioapic, int pin, int irq, int edge_level, int active_high_low) { @@ -66,7 +66,7 @@ Index: xen-4.0.1-testing/xen/arch/x86/io_apic.c struct IO_APIC_route_entry entry; unsigned long flags; int vector; -@@ -2282,7 +2283,12 @@ int io_apic_set_pci_routing (int ioapic, +@@ -2283,7 +2284,12 @@ int io_apic_set_pci_routing (int ioapic, io_apic_write(ioapic, 0x11+2*pin, *(((int *)&entry)+1)); io_apic_write(ioapic, 0x10+2*pin, *(((int *)&entry)+0)); set_native_irq_info(irq, TARGET_CPUS); @@ -80,10 +80,10 @@ Index: xen-4.0.1-testing/xen/arch/x86/io_apic.c return 0; } -Index: xen-4.0.1-testing/xen/arch/x86/mpparse.c +Index: xen-4.0.2-testing/xen/arch/x86/mpparse.c =================================================================== ---- xen-4.0.1-testing.orig/xen/arch/x86/mpparse.c -+++ xen-4.0.1-testing/xen/arch/x86/mpparse.c +--- xen-4.0.2-testing.orig/xen/arch/x86/mpparse.c ++++ xen-4.0.2-testing/xen/arch/x86/mpparse.c @@ -1102,6 +1102,8 @@ int mp_register_gsi (u32 gsi, int trigge int ioapic = -1; int ioapic_pin = 0; @@ -93,9 +93,9 @@ Index: xen-4.0.1-testing/xen/arch/x86/mpparse.c /* * Mapping between Global System Interrups, which -@@ -1126,8 +1128,13 @@ int mp_register_gsi (u32 gsi, int trigge - if (ioapic_renumber_irq) - gsi = ioapic_renumber_irq(ioapic, gsi); +@@ -1123,8 +1125,13 @@ int mp_register_gsi (u32 gsi, int trigge + + ioapic_pin = gsi - mp_ioapic_routing[ioapic].gsi_base; - if (!(irq_to_desc(gsi)->status & IRQ_DISABLED)) + desc = irq_to_desc(gsi); diff --git a/21235-crashkernel-advanced.patch b/21235-crashkernel-advanced.patch index 09e7abe..d2be9ad 100644 --- a/21235-crashkernel-advanced.patch +++ b/21235-crashkernel-advanced.patch @@ -33,10 +33,10 @@ This still needs to be hooked up for ia64. Signed-off-by: Jan Beulich -Index: xen-4.0.1-testing/xen/arch/x86/setup.c +Index: xen-4.0.2-testing/xen/arch/x86/setup.c =================================================================== ---- xen-4.0.1-testing.orig/xen/arch/x86/setup.c -+++ xen-4.0.1-testing/xen/arch/x86/setup.c +--- xen-4.0.2-testing.orig/xen/arch/x86/setup.c ++++ xen-4.0.2-testing/xen/arch/x86/setup.c @@ -664,6 +664,11 @@ void __init __start_xen(unsigned long mb memcpy(&boot_e820, &e820, sizeof(e820)); @@ -49,10 +49,10 @@ Index: xen-4.0.1-testing/xen/arch/x86/setup.c kexec_reserve_area(&boot_e820); /* -Index: xen-4.0.1-testing/xen/common/kexec.c +Index: xen-4.0.2-testing/xen/common/kexec.c =================================================================== ---- xen-4.0.1-testing.orig/xen/common/kexec.c -+++ xen-4.0.1-testing/xen/common/kexec.c +--- xen-4.0.2-testing.orig/xen/common/kexec.c ++++ xen-4.0.2-testing/xen/common/kexec.c @@ -49,15 +49,109 @@ static unsigned char vmcoreinfo_data[VMC static size_t vmcoreinfo_size = 0; @@ -166,10 +166,10 @@ Index: xen-4.0.1-testing/xen/common/kexec.c static void one_cpu_only(void) { /* Only allow the first cpu to continue - force other cpus to spin */ -Index: xen-4.0.1-testing/xen/include/xen/kexec.h +Index: xen-4.0.2-testing/xen/include/xen/kexec.h =================================================================== ---- xen-4.0.1-testing.orig/xen/include/xen/kexec.h -+++ xen-4.0.1-testing/xen/include/xen/kexec.h +--- xen-4.0.2-testing.orig/xen/include/xen/kexec.h ++++ xen-4.0.2-testing/xen/include/xen/kexec.h @@ -12,6 +12,8 @@ typedef struct xen_kexec_reserve { extern xen_kexec_reserve_t kexec_crash_area; diff --git a/21271-x86-cache-flush-global.patch b/21271-x86-cache-flush-global.patch index e740f9a..5ca8447 100644 --- a/21271-x86-cache-flush-global.patch +++ b/21271-x86-cache-flush-global.patch @@ -12,10 +12,10 @@ the hypervisor. Add a new MMUEXT operation for this. Signed-off-by: Jan Beulich -Index: xen-4.0.1-testing/xen/arch/x86/mm.c +Index: xen-4.0.2-testing/xen/arch/x86/mm.c =================================================================== ---- xen-4.0.1-testing.orig/xen/arch/x86/mm.c -+++ xen-4.0.1-testing/xen/arch/x86/mm.c +--- xen-4.0.2-testing.orig/xen/arch/x86/mm.c ++++ xen-4.0.2-testing/xen/arch/x86/mm.c @@ -2889,6 +2889,27 @@ int do_mmuext_op( } break; @@ -44,10 +44,10 @@ Index: xen-4.0.1-testing/xen/arch/x86/mm.c case MMUEXT_SET_LDT: { unsigned long ptr = op.arg1.linear_addr; -Index: xen-4.0.1-testing/xen/include/public/xen.h +Index: xen-4.0.2-testing/xen/include/public/xen.h =================================================================== ---- xen-4.0.1-testing.orig/xen/include/public/xen.h -+++ xen-4.0.1-testing/xen/include/public/xen.h +--- xen-4.0.2-testing.orig/xen/include/public/xen.h ++++ xen-4.0.2-testing/xen/include/public/xen.h @@ -239,6 +239,10 @@ DEFINE_XEN_GUEST_HANDLE(xen_pfn_t); * * cmd: MMUEXT_FLUSH_CACHE diff --git a/21301-svm-lmsl.patch b/21301-svm-lmsl.patch index 68a95fc..a3c59f3 100644 --- a/21301-svm-lmsl.patch +++ b/21301-svm-lmsl.patch @@ -11,10 +11,10 @@ makes sense to also allow HVM guests to make use of it. Signed-off-by: Jan Beulich -Index: xen-4.0.1-testing/xen/arch/x86/hvm/hvm.c +Index: xen-4.0.2-testing/xen/arch/x86/hvm/hvm.c =================================================================== ---- xen-4.0.1-testing.orig/xen/arch/x86/hvm/hvm.c -+++ xen-4.0.1-testing/xen/arch/x86/hvm/hvm.c +--- xen-4.0.2-testing.orig/xen/arch/x86/hvm/hvm.c ++++ xen-4.0.2-testing/xen/arch/x86/hvm/hvm.c @@ -603,11 +603,12 @@ static int hvm_load_cpu_ctxt(struct doma return -EINVAL; } @@ -42,10 +42,10 @@ Index: xen-4.0.1-testing/xen/arch/x86/hvm/hvm.c (!cpu_has_ffxsr && (value & EFER_FFXSE)) ) { gdprintk(XENLOG_WARNING, "Trying to set reserved bit in " -Index: xen-4.0.1-testing/xen/arch/x86/hvm/svm/svm.c +Index: xen-4.0.2-testing/xen/arch/x86/hvm/svm/svm.c =================================================================== ---- xen-4.0.1-testing.orig/xen/arch/x86/hvm/svm/svm.c -+++ xen-4.0.1-testing/xen/arch/x86/hvm/svm/svm.c +--- xen-4.0.2-testing.orig/xen/arch/x86/hvm/svm/svm.c ++++ xen-4.0.2-testing/xen/arch/x86/hvm/svm/svm.c @@ -57,6 +57,9 @@ u32 svm_feature_flags; @@ -86,10 +86,10 @@ Index: xen-4.0.1-testing/xen/arch/x86/hvm/svm/svm.c return 1; } -Index: xen-4.0.1-testing/xen/include/asm-x86/hvm/hvm.h +Index: xen-4.0.2-testing/xen/include/asm-x86/hvm/hvm.h =================================================================== ---- xen-4.0.1-testing.orig/xen/include/asm-x86/hvm/hvm.h -+++ xen-4.0.1-testing/xen/include/asm-x86/hvm/hvm.h +--- xen-4.0.2-testing.orig/xen/include/asm-x86/hvm/hvm.h ++++ xen-4.0.2-testing/xen/include/asm-x86/hvm/hvm.h @@ -143,6 +143,7 @@ struct hvm_function_table { extern struct hvm_function_table hvm_funcs; diff --git a/21304-keyhandler-alternative.patch b/21304-keyhandler-alternative.patch index 7e2b065..79131bb 100644 --- a/21304-keyhandler-alternative.patch +++ b/21304-keyhandler-alternative.patch @@ -11,10 +11,10 @@ a tasklet-based alternative mechanism to handle Dom0 state dumps. Signed-off-by: Jan Beulich -Index: xen-4.0.1-testing/xen/common/keyhandler.c +Index: xen-4.0.2-testing/xen/common/keyhandler.c =================================================================== ---- xen-4.0.1-testing.orig/xen/common/keyhandler.c -+++ xen-4.0.1-testing/xen/common/keyhandler.c +--- xen-4.0.2-testing.orig/xen/common/keyhandler.c ++++ xen-4.0.2-testing/xen/common/keyhandler.c @@ -19,6 +19,7 @@ static struct keyhandler *key_table[256]; @@ -68,7 +68,7 @@ Index: xen-4.0.1-testing/xen/common/keyhandler.c } static struct keyhandler dump_dom0_registers_keyhandler = { -@@ -434,8 +465,28 @@ static struct keyhandler do_debug_key_ke +@@ -439,8 +470,28 @@ static struct keyhandler do_debug_key_ke .desc = "trap to xendbg" }; diff --git a/21344-4.0-testing-xenstore-fd-leak.patch b/21344-4.0-testing-xenstore-fd-leak.patch deleted file mode 100644 index f13a11f..0000000 --- a/21344-4.0-testing-xenstore-fd-leak.patch +++ /dev/null @@ -1,25 +0,0 @@ -# HG changeset patch -# User Keir Fraser -# Date 1284535198 -3600 -# Node ID 86b99b9ad6ef9492b66c98e2377105f3ea584cbf -# Parent 89605b79f56529d34d963d0d91c67c46294a7b7c -Fix fd leak in xenstore - -Missing from commit 'libxl: Backported stuff from unstable' -Without this change, xs_daemon_open/xs_daemon_close will leak -file descriptors. - -Signed-off-by: Olaf Hering - -diff -r 89605b79f565 -r 86b99b9ad6ef tools/xenstore/xs.c ---- a/tools/xenstore/xs.c Mon Sep 13 17:51:50 2010 +0100 -+++ b/tools/xenstore/xs.c Wed Sep 15 08:19:58 2010 +0100 -@@ -285,6 +285,8 @@ - mutex_unlock(&h->request_mutex); - mutex_unlock(&h->reply_mutex); - mutex_unlock(&h->watch_mutex); -+ -+ close_fds_free(h); - } - - static bool read_all(int fd, void *data, unsigned int len) diff --git a/21406-x86-microcode-quiet.patch b/21406-x86-microcode-quiet.patch index 78a22b2..8032015 100644 --- a/21406-x86-microcode-quiet.patch +++ b/21406-x86-microcode-quiet.patch @@ -7,8 +7,10 @@ x86: Quieten microcode.c during CPU hotplug Signed-off-by: Keir Fraser ---- a/xen/arch/x86/microcode.c -+++ b/xen/arch/x86/microcode.c +Index: xen-4.0.2-testing/xen/arch/x86/microcode.c +=================================================================== +--- xen-4.0.2-testing.orig/xen/arch/x86/microcode.c ++++ xen-4.0.2-testing/xen/arch/x86/microcode.c @@ -66,12 +66,10 @@ static void microcode_fini_cpu(int cpu) int microcode_resume_cpu(int cpu) diff --git a/21421-vts-ats-enabling.patch b/21421-vtd-ats-enabling.patch similarity index 85% rename from 21421-vts-ats-enabling.patch rename to 21421-vtd-ats-enabling.patch index 49d7db2..08deb16 100644 --- a/21421-vts-ats-enabling.patch +++ b/21421-vtd-ats-enabling.patch @@ -18,10 +18,10 @@ device is deassigned from a domain. Signed-off-by: Weidong Han -Index: xen-4.0.1-testing/xen/drivers/passthrough/vtd/ia64/ats.c +Index: xen-4.0.2-testing/xen/drivers/passthrough/vtd/ia64/ats.c =================================================================== ---- xen-4.0.1-testing.orig/xen/drivers/passthrough/vtd/ia64/ats.c -+++ xen-4.0.1-testing/xen/drivers/passthrough/vtd/ia64/ats.c +--- xen-4.0.2-testing.orig/xen/drivers/passthrough/vtd/ia64/ats.c ++++ xen-4.0.2-testing/xen/drivers/passthrough/vtd/ia64/ats.c @@ -47,6 +47,11 @@ int enable_ats_device(int seg, int bus, return 0; } @@ -34,11 +34,11 @@ Index: xen-4.0.1-testing/xen/drivers/passthrough/vtd/ia64/ats.c int dev_invalidate_iotlb(struct iommu *iommu, u16 did, u64 addr, unsigned int size_order, u64 type) { -Index: xen-4.0.1-testing/xen/drivers/passthrough/vtd/iommu.c +Index: xen-4.0.2-testing/xen/drivers/passthrough/vtd/iommu.c =================================================================== ---- xen-4.0.1-testing.orig/xen/drivers/passthrough/vtd/iommu.c -+++ xen-4.0.1-testing/xen/drivers/passthrough/vtd/iommu.c -@@ -1331,6 +1331,9 @@ static int domain_context_mapping(struct +--- xen-4.0.2-testing.orig/xen/drivers/passthrough/vtd/iommu.c ++++ xen-4.0.2-testing/xen/drivers/passthrough/vtd/iommu.c +@@ -1354,6 +1354,9 @@ static int domain_context_mapping(struct dprintk(VTDPREFIX, "d%d:PCIe: map bdf = %x:%x.%x\n", domain->domain_id, bus, PCI_SLOT(devfn), PCI_FUNC(devfn)); ret = domain_context_mapping_one(domain, drhd->iommu, bus, devfn); @@ -48,7 +48,7 @@ Index: xen-4.0.1-testing/xen/drivers/passthrough/vtd/iommu.c break; case DEV_TYPE_PCI: -@@ -1460,6 +1463,9 @@ static int domain_context_unmap(struct d +@@ -1476,6 +1479,9 @@ static int domain_context_unmap(struct d dprintk(VTDPREFIX, "d%d:PCIe: unmap bdf = %x:%x.%x\n", domain->domain_id, bus, PCI_SLOT(devfn), PCI_FUNC(devfn)); ret = domain_context_unmap_one(domain, iommu, bus, devfn); @@ -58,7 +58,7 @@ Index: xen-4.0.1-testing/xen/drivers/passthrough/vtd/iommu.c break; case DEV_TYPE_PCI: -@@ -1788,8 +1794,6 @@ static void setup_dom0_devices(struct do +@@ -1805,8 +1811,6 @@ static void setup_dom0_devices(struct do list_add(&pdev->domain_list, &d->arch.pdev_list); domain_context_mapping(d, pdev->bus, pdev->devfn); pci_enable_acs(pdev); @@ -67,10 +67,10 @@ Index: xen-4.0.1-testing/xen/drivers/passthrough/vtd/iommu.c } } spin_unlock(&pcidevs_lock); -Index: xen-4.0.1-testing/xen/drivers/passthrough/vtd/x86/ats.c +Index: xen-4.0.2-testing/xen/drivers/passthrough/vtd/x86/ats.c =================================================================== ---- xen-4.0.1-testing.orig/xen/drivers/passthrough/vtd/x86/ats.c -+++ xen-4.0.1-testing/xen/drivers/passthrough/vtd/x86/ats.c +--- xen-4.0.2-testing.orig/xen/drivers/passthrough/vtd/x86/ats.c ++++ xen-4.0.2-testing/xen/drivers/passthrough/vtd/x86/ats.c @@ -92,6 +92,9 @@ int ats_device(int seg, int bus, int dev pdev = pci_get_pdev(bus, devfn); diff --git a/21432-4.0-cpu-boot-failure.patch b/21432-4.0-cpu-boot-failure.patch deleted file mode 100644 index e6c6764..0000000 --- a/21432-4.0-cpu-boot-failure.patch +++ /dev/null @@ -1,35 +0,0 @@ -# HG changeset patch -# User Keir Fraser -# Date 1294742461 0 -# Node ID 7a203c60d588a7a15a28a6fb16c69feafd157e0d -# Parent 64bb7d9904a64cc4561c6d541d857acf46e42180 -x86: don't crash when a CPU cannot be brought online during boot -References: bnc#656369, bnc#658704 - -x86_cpu_to_apicid[] gets set to BAD_APICID when bringup of a secondary -CPU fails, yet srat_detect_node() wants to use this as array index. - -Signed-off-by: Jan Beulich - -Index: xen-4.0.1-testing/xen/arch/x86/setup.c -=================================================================== ---- xen-4.0.1-testing.orig/xen/arch/x86/setup.c -+++ xen-4.0.1-testing/xen/arch/x86/setup.c -@@ -1103,10 +1103,13 @@ void __init __start_xen(unsigned long mb - __cpu_up(i); - } - -- /* Set up cpu_to_node[]. */ -- srat_detect_node(i); -- /* Set up node_to_cpumask based on cpu_to_node[]. */ -- numa_add_cpu(i); -+ if ( cpu_online(i) ) -+ { -+ /* Set up cpu_to_node[]. */ -+ srat_detect_node(i); -+ /* Set up node_to_cpumask based on cpu_to_node[]. */ -+ numa_add_cpu(i); -+ } - } - - printk("Brought up %ld CPUs\n", (long)num_online_cpus()); diff --git a/21526-x86-nehalem-cpuid-mask.patch b/21526-x86-nehalem-cpuid-mask.patch index d876297..bcc6eee 100644 --- a/21526-x86-nehalem-cpuid-mask.patch +++ b/21526-x86-nehalem-cpuid-mask.patch @@ -31,10 +31,10 @@ consume these masks. Signed-off-by: Jan Beulich -Index: xen-4.0.1-testing/xen/arch/x86/cpu/amd.c +Index: xen-4.0.2-testing/xen/arch/x86/cpu/amd.c =================================================================== ---- xen-4.0.1-testing.orig/xen/arch/x86/cpu/amd.c -+++ xen-4.0.1-testing/xen/arch/x86/cpu/amd.c +--- xen-4.0.2-testing.orig/xen/arch/x86/cpu/amd.c ++++ xen-4.0.2-testing/xen/arch/x86/cpu/amd.c @@ -33,14 +33,6 @@ void start_svm(struct cpuinfo_x86 *c); static char opt_famrev[14]; string_param("cpuid_mask_cpu", opt_famrev); @@ -50,7 +50,7 @@ Index: xen-4.0.1-testing/xen/arch/x86/cpu/amd.c static inline void wrmsr_amd(unsigned int index, unsigned int lo, unsigned int hi) { -@@ -61,7 +53,7 @@ static inline void wrmsr_amd(unsigned in +@@ -102,7 +94,7 @@ static inline int wrmsr_amd_safe(unsigne * * The processor revision string parameter has precedene. */ @@ -59,7 +59,7 @@ Index: xen-4.0.1-testing/xen/arch/x86/cpu/amd.c { static unsigned int feat_ecx, feat_edx; static unsigned int extfeat_ecx, extfeat_edx; -@@ -76,12 +68,12 @@ static void __devinit set_cpuidmask(stru +@@ -117,12 +109,12 @@ static void __devinit set_cpuidmask(stru ASSERT((status == not_parsed) && (smp_processor_id() == 0)); status = no_mask; @@ -78,10 +78,10 @@ Index: xen-4.0.1-testing/xen/arch/x86/cpu/amd.c } else if (*opt_famrev == '\0') { return; } else if (!strcmp(opt_famrev, "fam_0f_rev_c")) { -Index: xen-4.0.1-testing/xen/arch/x86/cpu/common.c +Index: xen-4.0.2-testing/xen/arch/x86/cpu/common.c =================================================================== ---- xen-4.0.1-testing.orig/xen/arch/x86/cpu/common.c -+++ xen-4.0.1-testing/xen/arch/x86/cpu/common.c +--- xen-4.0.2-testing.orig/xen/arch/x86/cpu/common.c ++++ xen-4.0.2-testing/xen/arch/x86/cpu/common.c @@ -22,6 +22,15 @@ static int cachesize_override __cpuinitd static int disable_x86_fxsr __cpuinitdata; static int disable_x86_serial_nr __cpuinitdata; @@ -98,10 +98,10 @@ Index: xen-4.0.1-testing/xen/arch/x86/cpu/common.c struct cpu_dev * cpu_devs[X86_VENDOR_NUM] = {}; /* -Index: xen-4.0.1-testing/xen/arch/x86/cpu/cpu.h +Index: xen-4.0.2-testing/xen/arch/x86/cpu/cpu.h =================================================================== ---- xen-4.0.1-testing.orig/xen/arch/x86/cpu/cpu.h -+++ xen-4.0.1-testing/xen/arch/x86/cpu/cpu.h +--- xen-4.0.2-testing.orig/xen/arch/x86/cpu/cpu.h ++++ xen-4.0.2-testing/xen/arch/x86/cpu/cpu.h @@ -21,6 +21,9 @@ struct cpu_dev { extern struct cpu_dev * cpu_devs [X86_VENDOR_NUM]; @@ -112,10 +112,10 @@ Index: xen-4.0.1-testing/xen/arch/x86/cpu/cpu.h extern int get_model_name(struct cpuinfo_x86 *c); extern void display_cacheinfo(struct cpuinfo_x86 *c); -Index: xen-4.0.1-testing/xen/arch/x86/cpu/intel.c +Index: xen-4.0.2-testing/xen/arch/x86/cpu/intel.c =================================================================== ---- xen-4.0.1-testing.orig/xen/arch/x86/cpu/intel.c -+++ xen-4.0.1-testing/xen/arch/x86/cpu/intel.c +--- xen-4.0.2-testing.orig/xen/arch/x86/cpu/intel.c ++++ xen-4.0.2-testing/xen/arch/x86/cpu/intel.c @@ -20,16 +20,6 @@ extern int trap_init_f00f_bug(void); @@ -130,7 +130,7 @@ Index: xen-4.0.1-testing/xen/arch/x86/cpu/intel.c -integer_param("cpuid_mask_ecx", opt_cpuid_mask_ecx); -integer_param("cpuid_mask_edx", opt_cpuid_mask_edx); - - static int use_xsave = 1; + static int use_xsave; boolean_param("xsave", use_xsave); @@ -40,24 +30,57 @@ boolean_param("xsave", use_xsave); @@ -211,10 +211,10 @@ Index: xen-4.0.1-testing/xen/arch/x86/cpu/intel.c /* Work around errata */ Intel_errata_workarounds(c); -Index: xen-4.0.1-testing/xen/include/asm-x86/msr-index.h +Index: xen-4.0.2-testing/xen/include/asm-x86/msr-index.h =================================================================== ---- xen-4.0.1-testing.orig/xen/include/asm-x86/msr-index.h -+++ xen-4.0.1-testing/xen/include/asm-x86/msr-index.h +--- xen-4.0.2-testing.orig/xen/include/asm-x86/msr-index.h ++++ xen-4.0.2-testing/xen/include/asm-x86/msr-index.h @@ -156,8 +156,10 @@ #define MSR_P6_EVNTSEL0 0x00000186 #define MSR_P6_EVNTSEL1 0x00000187 diff --git a/21542-amd-erratum-411.patch b/21542-amd-erratum-411.patch index b22122c..bce9608 100644 --- a/21542-amd-erratum-411.patch +++ b/21542-amd-erratum-411.patch @@ -9,10 +9,10 @@ Clear APIC TMICT when we mask APIC LVTT. Signed-off-by: Wei Wang -Index: xen-4.0.1-testing/xen/arch/x86/apic.c +Index: xen-4.0.2-testing/xen/arch/x86/apic.c =================================================================== ---- xen-4.0.1-testing.orig/xen/arch/x86/apic.c -+++ xen-4.0.1-testing/xen/arch/x86/apic.c +--- xen-4.0.2-testing.orig/xen/arch/x86/apic.c ++++ xen-4.0.2-testing/xen/arch/x86/apic.c @@ -198,6 +198,9 @@ void clear_local_APIC(void) maxlvt = get_maxlvt(); @@ -23,7 +23,7 @@ Index: xen-4.0.1-testing/xen/arch/x86/apic.c /* * Masking an LVT entry on a P6 can trigger a local APIC error * if the vector is zero. Mask LVTERR first to prevent this. -@@ -1335,7 +1338,10 @@ void disable_APIC_timer(void) +@@ -1327,7 +1330,10 @@ void disable_APIC_timer(void) { if (using_apic_timer) { unsigned long v; @@ -35,10 +35,10 @@ Index: xen-4.0.1-testing/xen/arch/x86/apic.c v = apic_read(APIC_LVTT); apic_write_around(APIC_LVTT, v | APIC_LVT_MASKED); } -Index: xen-4.0.1-testing/xen/arch/x86/hpet.c +Index: xen-4.0.2-testing/xen/arch/x86/hpet.c =================================================================== ---- xen-4.0.1-testing.orig/xen/arch/x86/hpet.c -+++ xen-4.0.1-testing/xen/arch/x86/hpet.c +--- xen-4.0.2-testing.orig/xen/arch/x86/hpet.c ++++ xen-4.0.2-testing/xen/arch/x86/hpet.c @@ -659,8 +659,7 @@ void hpet_broadcast_enter(void) if ( hpet_attach_channel ) hpet_attach_channel(cpu, ch); diff --git a/21615-dont-save-xen-heap-pages.patch b/21615-dont-save-xen-heap-pages.patch index b6327cf..c1160af 100644 --- a/21615-dont-save-xen-heap-pages.patch +++ b/21615-dont-save-xen-heap-pages.patch @@ -17,10 +17,10 @@ guests, meaning that the input to these must be treated as GMFNs. Signed-off-by: Jan Beulich -Index: xen-4.0.1-testing/tools/libxc/xc_domain_save.c +Index: xen-4.0.2-testing/tools/libxc/xc_domain_save.c =================================================================== ---- xen-4.0.1-testing.orig/tools/libxc/xc_domain_save.c -+++ xen-4.0.1-testing/tools/libxc/xc_domain_save.c +--- xen-4.0.2-testing.orig/tools/libxc/xc_domain_save.c ++++ xen-4.0.2-testing/tools/libxc/xc_domain_save.c @@ -1282,58 +1282,64 @@ int xc_domain_save(int xc_handle, int io goto out; } @@ -124,10 +124,10 @@ Index: xen-4.0.1-testing/tools/libxc/xc_domain_save.c if ( write_exact(io_fd, &batch, sizeof(unsigned int)) ) { PERROR("Error when writing to state file (2)"); -Index: xen-4.0.1-testing/xen/arch/x86/domctl.c +Index: xen-4.0.2-testing/xen/arch/x86/domctl.c =================================================================== ---- xen-4.0.1-testing.orig/xen/arch/x86/domctl.c -+++ xen-4.0.1-testing/xen/arch/x86/domctl.c +--- xen-4.0.2-testing.orig/xen/arch/x86/domctl.c ++++ xen-4.0.2-testing/xen/arch/x86/domctl.c @@ -206,11 +206,12 @@ long arch_do_domctl( for ( j = 0; j < k; j++ ) diff --git a/21627-cpuidle-wrap.patch b/21627-cpuidle-wrap.patch index 004a9ea..1c97112 100644 --- a/21627-cpuidle-wrap.patch +++ b/21627-cpuidle-wrap.patch @@ -7,10 +7,10 @@ cpuidle: fix wrapped ticks calculation for pm timer. Signed-off-by: Wei Gang -Index: xen-4.0.1-testing/xen/arch/x86/acpi/cpu_idle.c +Index: xen-4.0.2-testing/xen/arch/x86/acpi/cpu_idle.c =================================================================== ---- xen-4.0.1-testing.orig/xen/arch/x86/acpi/cpu_idle.c -+++ xen-4.0.1-testing/xen/arch/x86/acpi/cpu_idle.c +--- xen-4.0.2-testing.orig/xen/arch/x86/acpi/cpu_idle.c ++++ xen-4.0.2-testing/xen/arch/x86/acpi/cpu_idle.c @@ -127,9 +127,9 @@ static inline u32 ticks_elapsed(u32 t1, if ( t2 >= t1 ) return (t2 - t1); diff --git a/21653-xend-mac-addr.patch b/21653-xend-mac-addr.patch index a1b8b5f..d70f1a8 100644 --- a/21653-xend-mac-addr.patch +++ b/21653-xend-mac-addr.patch @@ -16,10 +16,10 @@ validity before doing device_add, there will be no problem. Signed-off-by Chunyan Liu -Index: xen-4.0.1-testing/tools/python/xen/xend/XendDomainInfo.py +Index: xen-4.0.2-testing/tools/python/xen/xend/XendDomainInfo.py =================================================================== ---- xen-4.0.1-testing.orig/tools/python/xen/xend/XendDomainInfo.py -+++ xen-4.0.1-testing/tools/python/xen/xend/XendDomainInfo.py +--- xen-4.0.2-testing.orig/tools/python/xen/xend/XendDomainInfo.py ++++ xen-4.0.2-testing/tools/python/xen/xend/XendDomainInfo.py @@ -847,11 +847,6 @@ class XendDomainInfo: @type dev_config: SXP object (parsed config) """ diff --git a/21678-xend-mac-fix.patch b/21678-xend-mac-fix.patch index b452487..b4ed513 100644 --- a/21678-xend-mac-fix.patch +++ b/21678-xend-mac-fix.patch @@ -16,10 +16,10 @@ change manually as it had been mangled.) Signed-off-by: Ian Jackson Signed-off-by Chunyan Liu -Index: xen-4.0.1-testing/tools/python/xen/xend/XendDomainInfo.py +Index: xen-4.0.2-testing/tools/python/xen/xend/XendDomainInfo.py =================================================================== ---- xen-4.0.1-testing.orig/tools/python/xen/xend/XendDomainInfo.py -+++ xen-4.0.1-testing/tools/python/xen/xend/XendDomainInfo.py +--- xen-4.0.2-testing.orig/tools/python/xen/xend/XendDomainInfo.py ++++ xen-4.0.2-testing/tools/python/xen/xend/XendDomainInfo.py @@ -847,6 +847,8 @@ class XendDomainInfo: @type dev_config: SXP object (parsed config) """ diff --git a/21683-vtd-kill-timer-conditional.patch b/21683-vtd-kill-timer-conditional.patch index 77ee382..e1ef004 100644 --- a/21683-vtd-kill-timer-conditional.patch +++ b/21683-vtd-kill-timer-conditional.patch @@ -7,10 +7,10 @@ vtd: Only kill_timer() an init_timer()'ed timer. Signed-off-by: Keir Fraser -Index: xen-4.0.1-testing/xen/drivers/passthrough/io.c +Index: xen-4.0.2-testing/xen/drivers/passthrough/io.c =================================================================== ---- xen-4.0.1-testing.orig/xen/drivers/passthrough/io.c -+++ xen-4.0.1-testing/xen/drivers/passthrough/io.c +--- xen-4.0.2-testing.orig/xen/drivers/passthrough/io.c ++++ xen-4.0.2-testing/xen/drivers/passthrough/io.c @@ -27,7 +27,7 @@ static void hvm_dirq_assist(unsigned long _d); @@ -20,10 +20,10 @@ Index: xen-4.0.1-testing/xen/drivers/passthrough/io.c { return !(flags & (HVM_IRQ_DPCI_GUEST_MSI | HVM_IRQ_DPCI_TRANSLATE)); } -Index: xen-4.0.1-testing/xen/drivers/passthrough/pci.c +Index: xen-4.0.2-testing/xen/drivers/passthrough/pci.c =================================================================== ---- xen-4.0.1-testing.orig/xen/drivers/passthrough/pci.c -+++ xen-4.0.1-testing/xen/drivers/passthrough/pci.c +--- xen-4.0.2-testing.orig/xen/drivers/passthrough/pci.c ++++ xen-4.0.2-testing/xen/drivers/passthrough/pci.c @@ -257,7 +257,9 @@ static void pci_clean_dpci_irqs(struct d i = find_next_bit(hvm_irq_dpci->mapping, d->nr_pirqs, i + 1) ) { @@ -35,11 +35,11 @@ Index: xen-4.0.1-testing/xen/drivers/passthrough/pci.c list_for_each_safe ( digl_list, tmp, &hvm_irq_dpci->mirq[i].digl_list ) -Index: xen-4.0.1-testing/xen/include/xen/iommu.h +Index: xen-4.0.2-testing/xen/include/xen/iommu.h =================================================================== ---- xen-4.0.1-testing.orig/xen/include/xen/iommu.h -+++ xen-4.0.1-testing/xen/include/xen/iommu.h -@@ -103,6 +103,7 @@ void hvm_dpci_isairq_eoi(struct domain * +--- xen-4.0.2-testing.orig/xen/include/xen/iommu.h ++++ xen-4.0.2-testing/xen/include/xen/iommu.h +@@ -106,6 +106,7 @@ void hvm_dpci_isairq_eoi(struct domain * struct hvm_irq_dpci *domain_get_irq_dpci(struct domain *domain); int domain_set_irq_dpci(struct domain *domain, struct hvm_irq_dpci *dpci); void free_hvm_irq_dpci(struct hvm_irq_dpci *dpci); diff --git a/21723-get-domu-state.patch b/21723-get-domu-state.patch index df79dac..3bdd4d1 100644 --- a/21723-get-domu-state.patch +++ b/21723-get-domu-state.patch @@ -16,10 +16,10 @@ VM" or " API" Signed-off-by James (Song Wei) -Index: xen-4.0.1-testing/tools/python/xen/xend/XendDomain.py +Index: xen-4.0.2-testing/tools/python/xen/xend/XendDomain.py =================================================================== ---- xen-4.0.1-testing.orig/tools/python/xen/xend/XendDomain.py -+++ xen-4.0.1-testing/tools/python/xen/xend/XendDomain.py +--- xen-4.0.2-testing.orig/tools/python/xen/xend/XendDomain.py ++++ xen-4.0.2-testing/tools/python/xen/xend/XendDomain.py @@ -250,6 +250,18 @@ class XendDomain: @return: path to config file. """ @@ -39,10 +39,10 @@ Index: xen-4.0.1-testing/tools/python/xen/xend/XendDomain.py def _managed_check_point_path(self, domuuid): """Returns absolute path to check point file for managed domain. -Index: xen-4.0.1-testing/tools/python/xen/xend/XendDomainInfo.py +Index: xen-4.0.2-testing/tools/python/xen/xend/XendDomainInfo.py =================================================================== ---- xen-4.0.1-testing.orig/tools/python/xen/xend/XendDomainInfo.py -+++ xen-4.0.1-testing/tools/python/xen/xend/XendDomainInfo.py +--- xen-4.0.2-testing.orig/tools/python/xen/xend/XendDomainInfo.py ++++ xen-4.0.2-testing/tools/python/xen/xend/XendDomainInfo.py @@ -327,6 +327,8 @@ class XendDomainInfo: @type info: dictionary @ivar domid: Domain ID (if VM has started) @@ -60,10 +60,10 @@ Index: xen-4.0.1-testing/tools/python/xen/xend/XendDomainInfo.py maxmem = self.info.get('memory_static_max', 0) memory = self.info.get('memory_dynamic_max', 0) -Index: xen-4.0.1-testing/tools/python/xen/xend/server/SrvDomain.py +Index: xen-4.0.2-testing/tools/python/xen/xend/server/SrvDomain.py =================================================================== ---- xen-4.0.1-testing.orig/tools/python/xen/xend/server/SrvDomain.py -+++ xen-4.0.1-testing/tools/python/xen/xend/server/SrvDomain.py +--- xen-4.0.2-testing.orig/tools/python/xen/xend/server/SrvDomain.py ++++ xen-4.0.2-testing/tools/python/xen/xend/server/SrvDomain.py @@ -225,6 +225,20 @@ class SrvDomain(SrvDir): self.acceptCommand(req) return self.xd.domain_reset(self.dom.getName()) @@ -85,10 +85,10 @@ Index: xen-4.0.1-testing/tools/python/xen/xend/server/SrvDomain.py def op_usb_add(self, op, req): self.acceptCommand(req) return req.threadRequest(self.do_usb_add, op, req) -Index: xen-4.0.1-testing/tools/python/xen/xm/main.py +Index: xen-4.0.2-testing/tools/python/xen/xm/main.py =================================================================== ---- xen-4.0.1-testing.orig/tools/python/xen/xm/main.py -+++ xen-4.0.1-testing/tools/python/xen/xm/main.py +--- xen-4.0.2-testing.orig/tools/python/xen/xm/main.py ++++ xen-4.0.2-testing/tools/python/xen/xm/main.py @@ -165,6 +165,8 @@ SUBCOMMAND_HELP = { #usb 'usb-add' : (' <[host:bus.addr] [host:vendor_id:product_id]>','Add the usb device to FV VM.'), diff --git a/21810-x2apic-acpi.patch b/21810-x2apic-acpi.patch index 9ac67a7..9d79d35 100644 --- a/21810-x2apic-acpi.patch +++ b/21810-x2apic-acpi.patch @@ -26,8 +26,10 @@ needs to be fixed in future. Signed-off-by: Weidong Han ---- a/xen/arch/x86/acpi/boot.c -+++ b/xen/arch/x86/acpi/boot.c +Index: xen-4.0.2-testing/xen/arch/x86/acpi/boot.c +=================================================================== +--- xen-4.0.2-testing.orig/xen/arch/x86/acpi/boot.c ++++ xen-4.0.2-testing/xen/arch/x86/acpi/boot.c @@ -81,7 +81,7 @@ u8 acpi_enable_value, acpi_disable_value #warning ACPI uses CMPXCHG, i486 and later hardware #endif @@ -136,8 +138,10 @@ Signed-off-by: Weidong Han printk(KERN_ERR PREFIX "Error parsing LAPIC NMI entry\n"); /* TBD: Cleanup to allow fallback to MPS */ return count; ---- a/xen/arch/x86/mpparse.c -+++ b/xen/arch/x86/mpparse.c +Index: xen-4.0.2-testing/xen/arch/x86/mpparse.c +=================================================================== +--- xen-4.0.2-testing.orig/xen/arch/x86/mpparse.c ++++ xen-4.0.2-testing/xen/arch/x86/mpparse.c @@ -838,7 +838,7 @@ void __init mp_register_lapic_address ( @@ -147,8 +151,10 @@ Signed-off-by: Weidong Han u8 enabled) { struct mpc_config_processor processor; ---- a/xen/arch/x86/srat.c -+++ b/xen/arch/x86/srat.c +Index: xen-4.0.2-testing/xen/arch/x86/srat.c +=================================================================== +--- xen-4.0.2-testing.orig/xen/arch/x86/srat.c ++++ xen-4.0.2-testing/xen/arch/x86/srat.c @@ -164,6 +164,36 @@ void __init acpi_numa_slit_init(struct a } #endif @@ -186,8 +192,10 @@ Signed-off-by: Weidong Han /* Callback for Proximity Domain -> LAPIC mapping */ void __init acpi_numa_processor_affinity_init(struct acpi_srat_cpu_affinity *pa) ---- a/xen/drivers/acpi/numa.c -+++ b/xen/drivers/acpi/numa.c +Index: xen-4.0.2-testing/xen/drivers/acpi/numa.c +=================================================================== +--- xen-4.0.2-testing.orig/xen/drivers/acpi/numa.c ++++ xen-4.0.2-testing/xen/drivers/acpi/numa.c @@ -90,6 +90,21 @@ void __init acpi_table_print_srat_entry( #endif /* ACPI_DEBUG_OUTPUT */ break; @@ -253,8 +261,10 @@ Signed-off-by: Weidong Han acpi_table_parse_srat(ACPI_SRAT_PROCESSOR_AFFINITY, acpi_parse_processor_affinity, NR_CPUS); ---- a/xen/drivers/acpi/tables.c -+++ b/xen/drivers/acpi/tables.c +Index: xen-4.0.2-testing/xen/drivers/acpi/tables.c +=================================================================== +--- xen-4.0.2-testing.orig/xen/drivers/acpi/tables.c ++++ xen-4.0.2-testing/xen/drivers/acpi/tables.c @@ -63,6 +63,18 @@ void __init acpi_table_print_madt_entry( } break; @@ -274,10 +284,11 @@ Signed-off-by: Weidong Han case ACPI_MADT_TYPE_IO_APIC: { struct acpi_madt_io_apic *p = -@@ -117,6 +129,24 @@ void __init acpi_table_print_madt_entry( +@@ -116,6 +128,24 @@ void __init acpi_table_print_madt_entry( + p->lint); } break; - ++ + case ACPI_MADT_TYPE_LOCAL_X2APIC_NMI: + { + u16 polarity, trigger; @@ -295,12 +306,13 @@ Signed-off-by: Weidong Han + p->lint); + } + break; -+ + case ACPI_MADT_TYPE_LOCAL_APIC_OVERRIDE: { - struct acpi_madt_local_apic_override *p = ---- a/xen/include/acpi/actbl1.h -+++ b/xen/include/acpi/actbl1.h +Index: xen-4.0.2-testing/xen/include/acpi/actbl1.h +=================================================================== +--- xen-4.0.2-testing.orig/xen/include/acpi/actbl1.h ++++ xen-4.0.2-testing/xen/include/acpi/actbl1.h @@ -404,7 +404,9 @@ enum acpi_madt_type { ACPI_MADT_TYPE_IO_SAPIC = 6, ACPI_MADT_TYPE_LOCAL_SAPIC = 7, @@ -389,8 +401,10 @@ Signed-off-by: Weidong Han /******************************************************************************* * * TCPA - Trusted Computing Platform Alliance table ---- a/xen/include/asm-x86/acpi.h -+++ b/xen/include/asm-x86/acpi.h +Index: xen-4.0.2-testing/xen/include/asm-x86/acpi.h +=================================================================== +--- xen-4.0.2-testing.orig/xen/include/asm-x86/acpi.h ++++ xen-4.0.2-testing/xen/include/asm-x86/acpi.h @@ -151,7 +151,7 @@ struct acpi_sleep_info { #endif /* CONFIG_ACPI_SLEEP */ @@ -400,8 +414,10 @@ Signed-off-by: Weidong Han #define MAX_LOCAL_APIC 256 extern u32 pmtmr_ioport; ---- a/xen/include/asm-x86/mpspec.h -+++ b/xen/include/asm-x86/mpspec.h +Index: xen-4.0.2-testing/xen/include/asm-x86/mpspec.h +=================================================================== +--- xen-4.0.2-testing.orig/xen/include/asm-x86/mpspec.h ++++ xen-4.0.2-testing/xen/include/asm-x86/mpspec.h @@ -24,7 +24,7 @@ extern int pic_mode; extern int using_apic_timer; @@ -411,8 +427,10 @@ Signed-off-by: Weidong Han extern void mp_unregister_lapic(uint32_t apic_id, uint32_t cpu); extern void mp_register_lapic_address (u64 address); extern void mp_register_ioapic (u8 id, u32 address, u32 gsi_base); ---- a/xen/include/xen/acpi.h -+++ b/xen/include/xen/acpi.h +Index: xen-4.0.2-testing/xen/include/xen/acpi.h +=================================================================== +--- xen-4.0.2-testing.orig/xen/include/xen/acpi.h ++++ xen-4.0.2-testing/xen/include/xen/acpi.h @@ -57,6 +57,8 @@ enum acpi_madt_entry_id { ACPI_MADT_IOSAPIC, ACPI_MADT_LSAPIC, diff --git a/21847-pscsi.patch b/21847-pscsi.patch index 3ee6164..f4f9989 100644 --- a/21847-pscsi.patch +++ b/21847-pscsi.patch @@ -37,10 +37,10 @@ Signed-off-by: Lutz Dube Lutz.Dube@ts.fujitsu.com Comment from Masaki Kanno : "Well done" Committed-by: Ian Jackson -Index: xen-4.0.1-testing/tools/examples/xend-config.sxp +Index: xen-4.0.2-testing/tools/examples/xend-config.sxp =================================================================== ---- xen-4.0.1-testing.orig/tools/examples/xend-config.sxp -+++ xen-4.0.1-testing/tools/examples/xend-config.sxp +--- xen-4.0.2-testing.orig/tools/examples/xend-config.sxp ++++ xen-4.0.2-testing/tools/examples/xend-config.sxp @@ -277,3 +277,11 @@ # we have to realize this may incur security issue and we can't make sure the # device assignment could really work properly even after we do this. @@ -53,10 +53,10 @@ Index: xen-4.0.1-testing/tools/examples/xend-config.sxp +# command lsscsi, e.g. ('16:0:0:0' '15:0') +# (pscsi-device-mask ('*')) + -Index: xen-4.0.1-testing/tools/python/xen/util/vscsi_util.py +Index: xen-4.0.2-testing/tools/python/xen/util/vscsi_util.py =================================================================== ---- xen-4.0.1-testing.orig/tools/python/xen/util/vscsi_util.py -+++ xen-4.0.1-testing/tools/python/xen/util/vscsi_util.py +--- xen-4.0.2-testing.orig/tools/python/xen/util/vscsi_util.py ++++ xen-4.0.2-testing/tools/python/xen/util/vscsi_util.py @@ -148,11 +148,12 @@ def _vscsi_get_scsidevices_by_sysfs(): return devices @@ -85,10 +85,10 @@ Index: xen-4.0.1-testing/tools/python/xen/util/vscsi_util.py scsi_record = _make_scsi_record(scsi_info) scsi_records.append(scsi_record) return scsi_records -Index: xen-4.0.1-testing/tools/python/xen/xend/XendNode.py +Index: xen-4.0.2-testing/tools/python/xen/xend/XendNode.py =================================================================== ---- xen-4.0.1-testing.orig/tools/python/xen/xend/XendNode.py -+++ xen-4.0.1-testing/tools/python/xen/xend/XendNode.py +--- xen-4.0.2-testing.orig/tools/python/xen/xend/XendNode.py ++++ xen-4.0.2-testing/tools/python/xen/xend/XendNode.py @@ -323,7 +323,12 @@ class XendNode: pscsi_table = {} pscsi_HBA_table = {} @@ -103,10 +103,10 @@ Index: xen-4.0.1-testing/tools/python/xen/xend/XendNode.py scsi_id = pscsi_record['scsi_id'] if scsi_id: saved_HBA_uuid = None -Index: xen-4.0.1-testing/tools/python/xen/xend/XendOptions.py +Index: xen-4.0.2-testing/tools/python/xen/xend/XendOptions.py =================================================================== ---- xen-4.0.1-testing.orig/tools/python/xen/xend/XendOptions.py -+++ xen-4.0.1-testing/tools/python/xen/xend/XendOptions.py +--- xen-4.0.2-testing.orig/tools/python/xen/xend/XendOptions.py ++++ xen-4.0.2-testing/tools/python/xen/xend/XendOptions.py @@ -164,6 +164,9 @@ class XendOptions: """ print >>sys.stderr, "xend [ERROR]", fmt % args diff --git a/21866-xenapi.patch b/21866-xenapi.patch index 984d8e4..c1fa627 100644 --- a/21866-xenapi.patch +++ b/21866-xenapi.patch @@ -18,10 +18,10 @@ Signed-off-by: Lutz Dube Lutz.Dube@ts.fujitsu.com Acked-by: Jim Fehlig Committed-by: Ian Jackson -Index: xen-4.0.1-testing/tools/python/xen/xend/XendAPI.py +Index: xen-4.0.2-testing/tools/python/xen/xend/XendAPI.py =================================================================== ---- xen-4.0.1-testing.orig/tools/python/xen/xend/XendAPI.py -+++ xen-4.0.1-testing/tools/python/xen/xend/XendAPI.py +--- xen-4.0.2-testing.orig/tools/python/xen/xend/XendAPI.py ++++ xen-4.0.2-testing/tools/python/xen/xend/XendAPI.py @@ -1667,7 +1667,8 @@ class XendAPI(object): def VM_set_actions_after_crash(self, session, vm_ref, action): if action not in XEN_API_ON_CRASH_BEHAVIOUR: @@ -32,10 +32,10 @@ Index: xen-4.0.1-testing/tools/python/xen/xend/XendAPI.py def VM_set_HVM_boot_policy(self, session, vm_ref, value): if value != "" and value != "BIOS order": -Index: xen-4.0.1-testing/tools/python/xen/xend/XendAPIConstants.py +Index: xen-4.0.2-testing/tools/python/xen/xend/XendAPIConstants.py =================================================================== ---- xen-4.0.1-testing.orig/tools/python/xen/xend/XendAPIConstants.py -+++ xen-4.0.1-testing/tools/python/xen/xend/XendAPIConstants.py +--- xen-4.0.2-testing.orig/tools/python/xen/xend/XendAPIConstants.py ++++ xen-4.0.2-testing/tools/python/xen/xend/XendAPIConstants.py @@ -63,6 +63,18 @@ XEN_API_ON_CRASH_BEHAVIOUR_FILTER = { 'rename_restart' : 'rename_restart', } @@ -55,10 +55,10 @@ Index: xen-4.0.1-testing/tools/python/xen/xend/XendAPIConstants.py XEN_API_VBD_MODE = ['RO', 'RW'] XEN_API_VDI_TYPE = ['system', 'user', 'ephemeral'] XEN_API_VBD_TYPE = ['CD', 'Disk'] -Index: xen-4.0.1-testing/tools/python/xen/xend/XendConfig.py +Index: xen-4.0.2-testing/tools/python/xen/xend/XendConfig.py =================================================================== ---- xen-4.0.1-testing.orig/tools/python/xen/xend/XendConfig.py -+++ xen-4.0.1-testing/tools/python/xen/xend/XendConfig.py +--- xen-4.0.2-testing.orig/tools/python/xen/xend/XendConfig.py ++++ xen-4.0.2-testing/tools/python/xen/xend/XendConfig.py @@ -41,6 +41,7 @@ from xen.util.pci import pci_opts_list_f from xen.xend.XendSXPDev import dev_dict_to_sxp from xen.util import xsconstants diff --git a/21894-intel-unmask-cpuid.patch b/21894-intel-unmask-cpuid.patch index a6b7507..4d5a34d 100644 --- a/21894-intel-unmask-cpuid.patch +++ b/21894-intel-unmask-cpuid.patch @@ -13,8 +13,10 @@ etc. Signed-off-by: Wei Gang ---- a/xen/arch/x86/cpu/intel.c -+++ b/xen/arch/x86/cpu/intel.c +Index: xen-4.0.2-testing/xen/arch/x86/cpu/intel.c +=================================================================== +--- xen-4.0.2-testing.orig/xen/arch/x86/cpu/intel.c ++++ xen-4.0.2-testing/xen/arch/x86/cpu/intel.c @@ -90,6 +90,20 @@ void __devinit early_intel_workaround(st /* Netburst reports 64 bytes clflush size, but does IO in 128 bytes */ if (c->x86 == 15 && c->x86_cache_alignment == 64) @@ -36,8 +38,10 @@ Signed-off-by: Wei Gang } /* ---- a/xen/include/asm-x86/msr-index.h -+++ b/xen/include/asm-x86/msr-index.h +Index: xen-4.0.2-testing/xen/include/asm-x86/msr-index.h +=================================================================== +--- xen-4.0.2-testing.orig/xen/include/asm-x86/msr-index.h ++++ xen-4.0.2-testing/xen/include/asm-x86/msr-index.h @@ -324,6 +324,7 @@ #define MSR_IA32_MISC_ENABLE_BTS_UNAVAIL (1<<11) #define MSR_IA32_MISC_ENABLE_PEBS_UNAVAIL (1<<12) diff --git a/21989-x2apic-resume.patch b/21989-x2apic-resume.patch deleted file mode 100644 index e356b1e..0000000 --- a/21989-x2apic-resume.patch +++ /dev/null @@ -1,168 +0,0 @@ -# HG changeset patch -# User Keir Fraser -# Date 1281707886 -3600 -# Node ID 3cee41690fa26853acb0be65065c52f6029ca599 -# Parent 01d185dab39e9be399b203bec91870e04f576c23 -x2APIC: Improve x2APIC suspend/resume -References: bnc#656369, bnc#658704 - -x2apic depends on interrupt remapping, so it should disable interrupt -remapping behind x2apic disabling. And also this patch wraps -__enable_x2apic to get rid of duplicated code. - -Signed-off-by: Weidong Han - -Index: xen-4.0.1-testing/xen/arch/x86/apic.c -=================================================================== ---- xen-4.0.1-testing.orig/xen/arch/x86/apic.c -+++ xen-4.0.1-testing/xen/arch/x86/apic.c -@@ -496,9 +496,20 @@ static void apic_pm_activate(void) - apic_pm_state.active = 1; - } - -+static void __enable_x2apic(void) -+{ -+ u32 lo, hi; -+ -+ rdmsr(MSR_IA32_APICBASE, lo, hi); -+ if ( !(lo & MSR_IA32_APICBASE_EXTD) ) -+ { -+ lo |= MSR_IA32_APICBASE_ENABLE | MSR_IA32_APICBASE_EXTD; -+ wrmsr(MSR_IA32_APICBASE, lo, 0); -+ } -+} -+ - static void resume_x2apic(void) - { -- uint64_t msr_content; - struct IO_APIC_route_entry **ioapic_entries = NULL; - - ASSERT(x2apic_enabled); -@@ -520,14 +531,7 @@ static void resume_x2apic(void) - mask_IO_APIC_setup(ioapic_entries); - - iommu_enable_IR(); -- -- rdmsrl(MSR_IA32_APICBASE, msr_content); -- if ( !(msr_content & MSR_IA32_APICBASE_EXTD) ) -- { -- msr_content |= MSR_IA32_APICBASE_ENABLE | MSR_IA32_APICBASE_EXTD; -- msr_content = (uint32_t)msr_content; -- wrmsrl(MSR_IA32_APICBASE, msr_content); -- } -+ __enable_x2apic(); - - restore_IO_APIC_setup(ioapic_entries); - unmask_8259A(); -@@ -743,9 +747,10 @@ int lapic_suspend(void) - apic_pm_state.apic_tmict = apic_read(APIC_TMICT); - apic_pm_state.apic_tdcr = apic_read(APIC_TDCR); - apic_pm_state.apic_thmr = apic_read(APIC_LVTTHMR); -- -+ - local_irq_save(flags); - disable_local_APIC(); -+ iommu_disable_IR(); - local_irq_restore(flags); - return 0; - } -@@ -1042,15 +1047,8 @@ static void enable_bsp_x2apic(void) - - if ( !x2apic_preenabled ) - { -- u32 lo, hi; -- -- rdmsr(MSR_IA32_APICBASE, lo, hi); -- if ( !(lo & MSR_IA32_APICBASE_EXTD) ) -- { -- lo |= MSR_IA32_APICBASE_ENABLE | MSR_IA32_APICBASE_EXTD; -- wrmsr(MSR_IA32_APICBASE, lo, 0); -- printk("x2APIC mode enabled.\n"); -- } -+ __enable_x2apic(); -+ printk("x2APIC mode enabled.\n"); - } - - restore_out: -@@ -1064,19 +1062,12 @@ out: - - static void enable_ap_x2apic(void) - { -- u32 lo, hi; -- - ASSERT(smp_processor_id() != 0); - - /* APs only enable x2apic when BSP did so. */ - BUG_ON(!x2apic_enabled); - -- rdmsr(MSR_IA32_APICBASE, lo, hi); -- if ( !(lo & MSR_IA32_APICBASE_EXTD) ) -- { -- lo |= MSR_IA32_APICBASE_ENABLE | MSR_IA32_APICBASE_EXTD; -- wrmsr(MSR_IA32_APICBASE, lo, 0); -- } -+ __enable_x2apic(); - } - - void enable_x2apic(void) -Index: xen-4.0.1-testing/xen/drivers/passthrough/vtd/intremap.c -=================================================================== ---- xen-4.0.1-testing.orig/xen/drivers/passthrough/vtd/intremap.c -+++ xen-4.0.1-testing/xen/drivers/passthrough/vtd/intremap.c -@@ -873,6 +873,24 @@ int iommu_enable_IR(void) - } - - /* -+ * This function is used to disable Interrutp remapping when -+ * suspend local apic -+ */ -+void iommu_disable_IR(void) -+{ -+ struct acpi_drhd_unit *drhd; -+ -+ if ( !iommu_supports_eim() ) -+ return; -+ -+ for_each_drhd_unit ( drhd ) -+ disable_intremap(drhd->iommu); -+ -+ for_each_drhd_unit ( drhd ) -+ disable_qinval(drhd->iommu); -+} -+ -+/* - * Check if interrupt remapping is enabled or not - * return 1: enabled - * return 0: not enabled -Index: xen-4.0.1-testing/xen/drivers/passthrough/vtd/iommu.c -=================================================================== ---- xen-4.0.1-testing.orig/xen/drivers/passthrough/vtd/iommu.c -+++ xen-4.0.1-testing/xen/drivers/passthrough/vtd/iommu.c -@@ -2126,10 +2126,11 @@ static void vtd_suspend(void) - - iommu_disable_translation(iommu); - -- if ( iommu_intremap ) -- disable_intremap(iommu); -- -- if ( iommu_qinval ) -+ /* If interrupt remapping is enabled, queued invalidation -+ * will be disabled following interupt remapping disabling -+ * in local apic suspend -+ */ -+ if ( !iommu_intremap && iommu_qinval ) - disable_qinval(iommu); - } - } -Index: xen-4.0.1-testing/xen/include/xen/iommu.h -=================================================================== ---- xen-4.0.1-testing.orig/xen/include/xen/iommu.h -+++ xen-4.0.1-testing/xen/include/xen/iommu.h -@@ -59,6 +59,7 @@ struct iommu { - int iommu_setup(void); - int iommu_supports_eim(void); - int iommu_enable_IR(void); -+void iommu_disable_IR(void); - int intremap_enabled(void); - - int iommu_add_device(struct pci_dev *pdev); diff --git a/22019-x86-cpuidle-online-check.patch b/22019-x86-cpuidle-online-check.patch index 153900d..7e95d1e 100644 --- a/22019-x86-cpuidle-online-check.patch +++ b/22019-x86-cpuidle-online-check.patch @@ -13,8 +13,10 @@ patch fixed the issue. Signed-off-by: Uwe Dannowski Acked-by: Wei Huang ---- a/xen/arch/x86/acpi/cpuidle_menu.c -+++ b/xen/arch/x86/acpi/cpuidle_menu.c +Index: xen-4.0.2-testing/xen/arch/x86/acpi/cpuidle_menu.c +=================================================================== +--- xen-4.0.2-testing.orig/xen/arch/x86/acpi/cpuidle_menu.c ++++ xen-4.0.2-testing/xen/arch/x86/acpi/cpuidle_menu.c @@ -270,9 +270,10 @@ static void menu_reflect(struct acpi_pro static int menu_enable_device(struct acpi_processor_power *power) diff --git a/22045-python27-compat.patch b/22045-python27-compat.patch deleted file mode 100644 index 0b33d35..0000000 --- a/22045-python27-compat.patch +++ /dev/null @@ -1,55 +0,0 @@ -# HG changeset patch -# User Michael Young -# Date 1282234170 -3600 -# Node ID 2940165380de2348e0ea3f628dea35750a2b4c8f -# Parent 60746a2c14a6cc123892f973fbdd6acb73251d39 -tools/python: fix xm list for Python 2.7 - -This patch fixes - Unexpected error: -This is due to xmlrpc changes in Python 2.7. This patch should -fixe it for both old and new versions. - -Signed-off-by: Michael Young -Signed-off-by: Ian Jackson - -Index: xen-4.0.1-testing/tools/python/xen/util/xmlrpcclient.py -=================================================================== ---- xen-4.0.1-testing.orig/tools/python/xen/util/xmlrpcclient.py -+++ xen-4.0.1-testing/tools/python/xen/util/xmlrpcclient.py -@@ -22,6 +22,7 @@ import socket - import string - import xmlrpclib - from types import StringTypes -+from sys import hexversion - - - try: -@@ -54,7 +55,12 @@ class UnixTransport(xmlrpclib.Transport) - return xmlrpclib.Transport.request(self, host, '/RPC2', - request_body, verbose) - def make_connection(self, host): -- return HTTPUnix(self.__handler) -+ if hexversion < 0x02070000: -+ # python 2.6 or earlier -+ return HTTPUnix(self.__handler) -+ else: -+ # xmlrpclib.Transport changed in python 2.7 -+ return HTTPUnixConnection(self.__handler) - - - # We need our own transport for HTTPS, because xmlrpclib.SafeTransport is -Index: xen-4.0.1-testing/tools/python/xen/util/xmlrpclib2.py -=================================================================== ---- xen-4.0.1-testing.orig/tools/python/xen/util/xmlrpclib2.py -+++ xen-4.0.1-testing/tools/python/xen/util/xmlrpclib2.py -@@ -58,6 +58,9 @@ def stringify(value): - # some bugs in Keep-Alive handling and also enabled it by default - class XMLRPCRequestHandler(SimpleXMLRPCRequestHandler): - protocol_version = "HTTP/1.1" -+ # xend crashes in python 2.7 unless disable_nagle_algorithm = False -+ # it isn't used in earlier versions so it is harmless to set it generally -+ disable_nagle_algorithm = False - - def __init__(self, hosts_allowed, request, client_address, server): - self.hosts_allowed = hosts_allowed diff --git a/22051-x86-forced-EOI.patch b/22051-x86-forced-EOI.patch deleted file mode 100644 index 3bd96a5..0000000 --- a/22051-x86-forced-EOI.patch +++ /dev/null @@ -1,203 +0,0 @@ -# HG changeset patch -# User Keir Fraser -# Date 1282466228 -3600 -# Node ID 59ff5820534f4c5ec006d1ddca0f4356634c3b22 -# Parent f77261710856aad506dda92cfa3b92b923be4e15 -x86: Automatically EOI guest-bound interrupts if guest takes too long. - -Signed-off-by: Keir Fraser - -Includes the x86 IRQ specific parts of c/s 21508: - -# HG changeset patch -# User Keir Fraser -# Date 1275480791 -3600 -# Node ID 5aabc6f94df5f275647d55caa24780eff0c81355 -# Parent a3bdee5a20daf590ae7a440dad4e3b104b99c620 -timers: Track inactive timers and migrate them on cpu offline. - -Signed-off-by: Keir Fraser - ---- a/xen/arch/x86/irq.c -+++ b/xen/arch/x86/irq.c -@@ -46,8 +46,6 @@ static DECLARE_BITMAP(used_vectors, NR_V - - struct irq_cfg __read_mostly *irq_cfg = NULL; - --static struct timer *__read_mostly irq_guest_eoi_timer; -- - static DEFINE_SPINLOCK(vector_lock); - - DEFINE_PER_CPU(vector_irq_t, vector_irq) = { -@@ -274,18 +272,15 @@ int init_irq_data(void) - irq_desc = xmalloc_array(struct irq_desc, nr_irqs); - irq_cfg = xmalloc_array(struct irq_cfg, nr_irqs); - irq_status = xmalloc_array(int, nr_irqs); -- irq_guest_eoi_timer = xmalloc_array(struct timer, nr_irqs); - irq_vector = xmalloc_array(u8, nr_irqs_gsi); - -- if (!irq_desc || !irq_cfg || !irq_status ||! irq_vector || -- !irq_guest_eoi_timer) -+ if ( !irq_desc || !irq_cfg || !irq_status ||! irq_vector ) - return -ENOMEM; - - memset(irq_desc, 0, nr_irqs * sizeof(*irq_desc)); - memset(irq_cfg, 0, nr_irqs * sizeof(*irq_cfg)); - memset(irq_status, 0, nr_irqs * sizeof(*irq_status)); - memset(irq_vector, 0, nr_irqs_gsi * sizeof(*irq_vector)); -- memset(irq_guest_eoi_timer, 0, nr_irqs * sizeof(*irq_guest_eoi_timer)); - - for (irq = 0; irq < nr_irqs; irq++) { - desc = irq_to_desc(irq); -@@ -740,6 +735,7 @@ typedef struct { - #define ACKTYPE_UNMASK 1 /* Unmask PIC hardware (from any CPU) */ - #define ACKTYPE_EOI 2 /* EOI on the CPU that was interrupted */ - cpumask_t cpu_eoi_map; /* CPUs that need to EOI this interrupt */ -+ struct timer eoi_timer; - struct domain *guest[IRQ_MAX_GUESTS]; - } irq_guest_action_t; - -@@ -784,13 +780,55 @@ static void _irq_guest_eoi(struct irq_de - desc->handler->enable(irq); - } - -+static void set_eoi_ready(void *data); -+ - static void irq_guest_eoi_timer_fn(void *data) - { - struct irq_desc *desc = data; -+ unsigned int irq = desc - irq_desc; -+ irq_guest_action_t *action; -+ cpumask_t cpu_eoi_map; - unsigned long flags; - - spin_lock_irqsave(&desc->lock, flags); -- _irq_guest_eoi(desc); -+ -+ if ( !(desc->status & IRQ_GUEST) ) -+ goto out; -+ -+ action = (irq_guest_action_t *)desc->action; -+ -+ if ( action->ack_type != ACKTYPE_NONE ) -+ { -+ unsigned int i; -+ for ( i = 0; i < action->nr_guests; i++ ) -+ { -+ struct domain *d = action->guest[i]; -+ unsigned int pirq = domain_irq_to_pirq(d, irq); -+ if ( test_and_clear_bit(pirq, d->pirq_mask) ) -+ action->in_flight--; -+ } -+ } -+ -+ if ( action->in_flight != 0 ) -+ goto out; -+ -+ switch ( action->ack_type ) -+ { -+ case ACKTYPE_UNMASK: -+ desc->handler->end(irq); -+ break; -+ case ACKTYPE_EOI: -+ cpu_eoi_map = action->cpu_eoi_map; -+ spin_unlock_irq(&desc->lock); -+ on_selected_cpus(&cpu_eoi_map, set_eoi_ready, desc, 0); -+ spin_lock_irq(&desc->lock); -+ break; -+ case ACKTYPE_NONE: -+ _irq_guest_eoi(desc); -+ break; -+ } -+ -+ out: - spin_unlock_irqrestore(&desc->lock, flags); - } - -@@ -847,9 +885,11 @@ static void __do_IRQ_guest(int irq) - } - } - -- if ( already_pending == action->nr_guests ) -+ stop_timer(&action->eoi_timer); -+ -+ if ( (action->ack_type == ACKTYPE_NONE) && -+ (already_pending == action->nr_guests) ) - { -- stop_timer(&irq_guest_eoi_timer[irq]); - desc->handler->disable(irq); - desc->status |= IRQ_GUEST_EOI_PENDING; - for ( i = 0; i < already_pending; ++i ) -@@ -865,10 +905,10 @@ static void __do_IRQ_guest(int irq) - * - skip the timer setup below. - */ - } -- init_timer(&irq_guest_eoi_timer[irq], -- irq_guest_eoi_timer_fn, desc, smp_processor_id()); -- set_timer(&irq_guest_eoi_timer[irq], NOW() + MILLISECS(1)); - } -+ -+ migrate_timer(&action->eoi_timer, smp_processor_id()); -+ set_timer(&action->eoi_timer, NOW() + MILLISECS(1)); - } - - /* -@@ -978,7 +1018,7 @@ static void __pirq_guest_eoi(struct doma - if ( action->ack_type == ACKTYPE_NONE ) - { - ASSERT(!test_bit(pirq, d->pirq_mask)); -- stop_timer(&irq_guest_eoi_timer[irq]); -+ stop_timer(&action->eoi_timer); - _irq_guest_eoi(desc); - } - -@@ -1162,6 +1202,7 @@ int pirq_guest_bind(struct vcpu *v, int - action->shareable = will_share; - action->ack_type = pirq_acktype(v->domain, pirq); - cpus_clear(action->cpu_eoi_map); -+ init_timer(&action->eoi_timer, irq_guest_eoi_timer_fn, desc, 0); - - desc->depth = 0; - desc->status |= IRQ_GUEST; -@@ -1266,7 +1307,7 @@ static irq_guest_action_t *__pirq_guest_ - } - break; - case ACKTYPE_NONE: -- stop_timer(&irq_guest_eoi_timer[irq]); -+ stop_timer(&action->eoi_timer); - _irq_guest_eoi(desc); - break; - } -@@ -1306,9 +1347,7 @@ static irq_guest_action_t *__pirq_guest_ - BUG_ON(!cpus_empty(action->cpu_eoi_map)); - - desc->action = NULL; -- desc->status &= ~IRQ_GUEST; -- desc->status &= ~IRQ_INPROGRESS; -- kill_timer(&irq_guest_eoi_timer[irq]); -+ desc->status &= ~(IRQ_GUEST|IRQ_GUEST_EOI_PENDING|IRQ_INPROGRESS); - desc->handler->shutdown(irq); - - /* Caller frees the old guest descriptor block. */ -@@ -1342,7 +1381,10 @@ void pirq_guest_unbind(struct domain *d, - spin_unlock_irq(&desc->lock); - - if ( oldaction != NULL ) -+ { -+ kill_timer(&oldaction->eoi_timer); - xfree(oldaction); -+ } - } - - static int pirq_guest_force_unbind(struct domain *d, int irq) -@@ -1380,7 +1422,10 @@ static int pirq_guest_force_unbind(struc - spin_unlock_irq(&desc->lock); - - if ( oldaction != NULL ) -+ { -+ kill_timer(&oldaction->eoi_timer); - xfree(oldaction); -+ } - - return bound; - } diff --git a/22067-x86-irq-domain.patch b/22067-x86-irq-domain.patch deleted file mode 100644 index 62f548d..0000000 --- a/22067-x86-irq-domain.patch +++ /dev/null @@ -1,31 +0,0 @@ -# HG changeset patch -# User Keir Fraser -# Date 1282817774 -3600 -# Node ID 3eb5127e46365242401e37df292fbe290fa0a974 -# Parent eccfdeb41b803d07bcb4f7fa912a8341fdb19162 -Fix bind_irq_vector() destination - -The "mask" covered all online cpus in the "domain". It should be used -as destination later, instead of using "domain" directly. - -Signed-off-by: Sheng Yang - ---- a/xen/arch/x86/irq.c -+++ b/xen/arch/x86/irq.c -@@ -88,14 +88,14 @@ static int __bind_irq_vector(int irq, in - cpus_and(mask, domain, cpu_online_map); - if (cpus_empty(mask)) - return -EINVAL; -- if ((cfg->vector == vector) && cpus_equal(cfg->domain, domain)) -+ if ((cfg->vector == vector) && cpus_equal(cfg->domain, mask)) - return 0; - if (cfg->vector != IRQ_VECTOR_UNASSIGNED) - return -EBUSY; - for_each_cpu_mask(cpu, mask) - per_cpu(vector_irq, cpu)[vector] = irq; - cfg->vector = vector; -- cfg->domain = domain; -+ cfg->domain = mask; - irq_status[irq] = IRQ_USED; - if (IO_APIC_IRQ(irq)) - irq_vector[irq] = vector; diff --git a/22068-vtd-irte-RH-bit.patch b/22068-vtd-irte-RH-bit.patch deleted file mode 100644 index c95a972..0000000 --- a/22068-vtd-irte-RH-bit.patch +++ /dev/null @@ -1,35 +0,0 @@ -# HG changeset patch -# User Keir Fraser -# Date 1282817816 -3600 -# Node ID 3c4c3d48a8350994f4450314c6b759771c7ad4ef -# Parent 3eb5127e46365242401e37df292fbe290fa0a974 -VT-d: Hardware require RH bit to be set in IRTE when delivery mode is LPR - -Signed-off-by: Sheng Yang - ---- a/xen/drivers/passthrough/vtd/intremap.c -+++ b/xen/drivers/passthrough/vtd/intremap.c -@@ -318,9 +318,10 @@ static int ioapic_rte_to_remap_entry(str - *(((u32 *)&new_rte) + 0) = value; - new_ire.lo.fpd = 0; - new_ire.lo.dm = new_rte.dest_mode; -- new_ire.lo.rh = 0; - new_ire.lo.tm = new_rte.trigger; - new_ire.lo.dlm = new_rte.delivery_mode; -+ /* Hardware require RH = 1 for LPR delivery mode */ -+ new_ire.lo.rh = (new_ire.lo.dlm == dest_LowestPrio); - new_ire.lo.avail = 0; - new_ire.lo.res_1 = 0; - new_ire.lo.vector = new_rte.vector; -@@ -630,9 +631,10 @@ static int msi_msg_to_remap_entry( - /* Set interrupt remapping table entry */ - new_ire.lo.fpd = 0; - new_ire.lo.dm = (msg->address_lo >> MSI_ADDR_DESTMODE_SHIFT) & 0x1; -- new_ire.lo.rh = 0; - new_ire.lo.tm = (msg->data >> MSI_DATA_TRIGGER_SHIFT) & 0x1; - new_ire.lo.dlm = (msg->data >> MSI_DATA_DELIVERY_MODE_SHIFT) & 0x1; -+ /* Hardware require RH = 1 for LPR delivery mode */ -+ new_ire.lo.rh = (new_ire.lo.dlm == dest_LowestPrio); - new_ire.lo.avail = 0; - new_ire.lo.res_1 = 0; - new_ire.lo.vector = (msg->data >> MSI_DATA_VECTOR_SHIFT) & diff --git a/22071-ept-get-entry-lock.patch b/22071-ept-get-entry-lock.patch deleted file mode 100644 index fc621a7..0000000 --- a/22071-ept-get-entry-lock.patch +++ /dev/null @@ -1,45 +0,0 @@ -# HG changeset patch -# User Keir Fraser -# Date 1283153992 -3600 -# Node ID c5aed2e049bce2724b035dd6aa09c4c4e609c27c -# Parent 20920c12bc4815b1f755786c0924393809664807 -ept: Put locks around ept_get_entry - -There's a subtle race in ept_get_entry, such that if tries to read an -entry that ept_set_entry is modifying, it gets neither the old entry -nor the new entry, but empty. In the case of multi-cpu -populate-on-demand guests, this manifests as a guest crash when one -vcpu tries to read a page which another page is trying to populate, -and ept_get_entry returns p2m_mmio_dm. - -This bug can also be fixed by making both ept_set_entry and -ept_next_level access-once (i.e., ept_next_level reads full ept_entry -and then works with local value; ept_set_entry construct the entry -locally and then sets it in one write). But there doesn't seem to be -any major performance implications of just making ept_get_entry use -locks; so the simpler, the better. - -Signed-off-by: George Dunlap - ---- a/xen/arch/x86/mm/hap/p2m-ept.c -+++ b/xen/arch/x86/mm/hap/p2m-ept.c -@@ -387,6 +387,10 @@ static mfn_t ept_get_entry(struct domain - int i; - int ret = 0; - mfn_t mfn = _mfn(INVALID_MFN); -+ int do_locking = !p2m_locked_by_me(d->arch.p2m); -+ -+ if ( do_locking ) -+ p2m_lock(d->arch.p2m); - - *t = p2m_mmio_dm; - -@@ -464,6 +468,8 @@ static mfn_t ept_get_entry(struct domain - } - - out: -+ if ( do_locking ) -+ p2m_unlock(d->arch.p2m); - unmap_domain_page(table); - return mfn; - } diff --git a/22084-x86-xsave-off.patch b/22084-x86-xsave-off.patch deleted file mode 100644 index e3e476b..0000000 --- a/22084-x86-xsave-off.patch +++ /dev/null @@ -1,22 +0,0 @@ -# HG changeset patch -# User Keir Fraser -# Date 1283332754 -3600 -# Node ID ae0cd4e5cc0149ceb5d3dd61a003aadc008f036e -# Parent 972d90ff31349816cc8c785a8b2defb2f70ed441 -x86 intel: Disable XSAVE support. - -It breaks HVM save/restore. - -Signed-off-by: Keir Fraser - ---- a/xen/arch/x86/cpu/intel.c -+++ b/xen/arch/x86/cpu/intel.c -@@ -20,7 +20,7 @@ - - extern int trap_init_f00f_bug(void); - --static int use_xsave = 1; -+static int use_xsave; - boolean_param("xsave", use_xsave); - - #ifdef CONFIG_X86_INTEL_USERCOPY diff --git a/22135-heap-lock.patch b/22135-heap-lock.patch deleted file mode 100644 index bdc8a66..0000000 --- a/22135-heap-lock.patch +++ /dev/null @@ -1,51 +0,0 @@ -References: bnc#638465 - -# HG changeset patch -# User Keir Fraser -# Date 1284394111 -3600 -# Node ID 69e8bb164683c76e0cd787df21b98c73905a61e6 -# Parent e300bfa3c0323ac08e7b8cd9fb40f9f1ab548543 -page_alloc: Hold heap_lock while adjusting page states to/from PGC_state_free. - -This avoids races with buddy-merging logic in free_heap_pages(). - -Signed-off-by: Keir Fraser - ---- a/xen/common/page_alloc.c -+++ b/xen/common/page_alloc.c -@@ -378,8 +378,6 @@ static struct page_info *alloc_heap_page - total_avail_pages -= request; - ASSERT(total_avail_pages >= 0); - -- spin_unlock(&heap_lock); -- - cpus_clear(mask); - - for ( i = 0; i < (1 << order); i++ ) -@@ -401,6 +399,8 @@ static struct page_info *alloc_heap_page - page_set_owner(&pg[i], NULL); - } - -+ spin_unlock(&heap_lock); -+ - if ( unlikely(!cpus_empty(mask)) ) - { - perfc_incr(need_flush_tlb_flush); -@@ -496,6 +496,8 @@ static void free_heap_pages( - ASSERT(order <= MAX_ORDER); - ASSERT(node >= 0); - -+ spin_lock(&heap_lock); -+ - for ( i = 0; i < (1 << order); i++ ) - { - /* -@@ -523,8 +525,6 @@ static void free_heap_pages( - pg[i].tlbflush_timestamp = tlbflush_current_time(); - } - -- spin_lock(&heap_lock); -- - avail[node][zone] += 1 << order; - total_avail_pages += 1 << order; - diff --git a/22148-serial-irq-dest.patch b/22148-serial-irq-dest.patch deleted file mode 100644 index 3c7736b..0000000 --- a/22148-serial-irq-dest.patch +++ /dev/null @@ -1,24 +0,0 @@ -# HG changeset patch -# User Keir Fraser -# Date 1284395845 -3600 -# Node ID a254d1236c1a52264beb0253352ef64d65a98eb3 -# Parent f0a1229cb0a6505f3240ac59a3bb6ade2acfa1a2 -Fix serial interrupt's destination - -Lowest Priority can't use with invalid cpu_mask, and the default value -of CPU_MASK_ALL may cover CPU which wasn't online. - -From: "Yang, Sheng" -Signed-off-by: Keir Fraser - ---- a/xen/arch/x86/smpboot.c -+++ b/xen/arch/x86/smpboot.c -@@ -1602,7 +1602,7 @@ void __init smp_intr_init(void) - irq_vector[irq] = FIRST_HIPRIORITY_VECTOR + seridx + 1; - per_cpu(vector_irq, cpu)[FIRST_HIPRIORITY_VECTOR + seridx + 1] = irq; - irq_cfg[irq].vector = FIRST_HIPRIORITY_VECTOR + seridx + 1; -- irq_cfg[irq].domain = (cpumask_t)CPU_MASK_ALL; -+ irq_cfg[irq].domain = cpu_online_map; - } - - /* IPI for cleanuping vectors after irq move */ diff --git a/22157-x86-debug-key-i.patch b/22157-x86-debug-key-i.patch deleted file mode 100644 index 080e29f..0000000 --- a/22157-x86-debug-key-i.patch +++ /dev/null @@ -1,21 +0,0 @@ -# HG changeset patch -# User Keir Fraser -# Date 1284533274 -3600 -# Node ID d4976434b8bba469fd1d337dc16249a5abfc4e5a -# Parent 14ce571d157e060fdb390e70fa8d0c95b2fd9b76 -x86: fix debug key 'i' handling with no IO-APICs - -Signed-off-by: Jan Beulich - ---- a/xen/arch/x86/io_apic.c -+++ b/xen/arch/x86/io_apic.c -@@ -2463,6 +2463,9 @@ void dump_ioapic_irq_info(void) - unsigned int irq, pin, printed = 0; - unsigned long flags; - -+ if ( !irq_2_pin ) -+ return; -+ - for ( irq = 0; irq < nr_irqs_gsi; irq++ ) - { - entry = &irq_2_pin[irq]; diff --git a/22159-notify-evtchn-dying.patch b/22159-notify-evtchn-dying.patch deleted file mode 100644 index 1cf5c62..0000000 --- a/22159-notify-evtchn-dying.patch +++ /dev/null @@ -1,27 +0,0 @@ -# HG changeset patch -# User Keir Fraser -# Date 1284535133 -3600 -# Node ID 62edd2611cbbe4c50574b6f6f73dda2ae1136dde -# Parent 869a0fdf8686c3dada14122df6d22a38705c2401 -notify_via_xen_event_channel() should check for dying domain. - -Else we can fail on either ASSERTion in that function. - -From: Olaf Hering -Signed-off-by: Keir Fraser - ---- a/xen/common/event_channel.c -+++ b/xen/common/event_channel.c -@@ -994,6 +994,12 @@ void notify_via_xen_event_channel(struct - - spin_lock(&ld->event_lock); - -+ if ( unlikely(ld->is_dying) ) -+ { -+ spin_unlock(&ld->event_lock); -+ return; -+ } -+ - ASSERT(port_is_valid(ld, lport)); - lchn = evtchn_from_port(ld, lport); - ASSERT(lchn->consumer_is_xen); diff --git a/22160-Intel-C6-EOI.patch b/22160-Intel-C6-EOI.patch deleted file mode 100644 index 213916c..0000000 --- a/22160-Intel-C6-EOI.patch +++ /dev/null @@ -1,91 +0,0 @@ -# HG changeset patch -# User Keir Fraser -# Date 1284537635 -3600 -# Node ID 1087f9a03ab61d3a8bb0a1c65e5b09f82f3a4277 -# Parent 62edd2611cbbe4c50574b6f6f73dda2ae1136dde -C6 state with EOI issue fix for some Intel processors - -There is an errata in some of Intel processors. - -AAJ72. EOI Transaction May Not be Sent if Software Enters Core C6 -During an Interrupt Service Routine - -If core C6 is entered after the start of an interrupt service routine -but before a write to the APIC EOI register, the core may not send an -EOI transaction (if needed) and further interrupts from the same -priority level or lower may be blocked. - -This patch fix this issue, by checking if ISR is pending before enter -deep Cx state. If so, it would use power->safe_state instead of deep -Cx state to prevent the above issue happen. - -Signed-off-by: Sheng Yang -Signed-off-by: Keir Fraser - ---- a/xen/arch/x86/acpi/cpu_idle.c -+++ b/xen/arch/x86/acpi/cpu_idle.c -@@ -226,6 +226,31 @@ static int sched_has_urgent_vcpu(void) - return atomic_read(&this_cpu(schedule_data).urgent_count); - } - -+/* -+ * "AAJ72. EOI Transaction May Not be Sent if Software Enters Core C6 During -+ * an Interrupt Service Routine" -+ * -+ * There was an errata with some Core i7 processors that an EOI transaction -+ * may not be sent if software enters core C6 during an interrupt service -+ * routine. So we don't enter deep Cx state if there is an EOI pending. -+ */ -+bool_t errata_c6_eoi_workaround(void) -+{ -+ static bool_t fix_needed = -1; -+ -+ if ( unlikely(fix_needed == -1) ) -+ { -+ int model = boot_cpu_data.x86_model; -+ fix_needed = (cpu_has_apic && !directed_eoi_enabled && -+ (boot_cpu_data.x86_vendor == X86_VENDOR_INTEL) && -+ (boot_cpu_data.x86 == 6) && -+ ((model == 0x1a) || (model == 0x1e) || (model == 0x1f) || -+ (model == 0x25) || (model == 0x2c) || (model == 0x2f))); -+ } -+ -+ return (fix_needed && cpu_has_pending_apic_eoi()); -+} -+ - static void acpi_processor_idle(void) - { - struct acpi_processor_power *power = processor_powers[smp_processor_id()]; -@@ -277,6 +302,9 @@ static void acpi_processor_idle(void) - return; - } - -+ if ( (cx->type == ACPI_STATE_C3) && errata_c6_eoi_workaround() ) -+ cx = power->safe_state; -+ - power->last_state = cx; - - /* ---- a/xen/arch/x86/irq.c -+++ b/xen/arch/x86/irq.c -@@ -752,6 +752,11 @@ struct pending_eoi { - static DEFINE_PER_CPU(struct pending_eoi, pending_eoi[NR_DYNAMIC_VECTORS]); - #define pending_eoi_sp(p) ((p)[NR_DYNAMIC_VECTORS-1].vector) - -+bool_t cpu_has_pending_apic_eoi(void) -+{ -+ return (pending_eoi_sp(this_cpu(pending_eoi)) != 0); -+} -+ - static inline void set_pirq_eoi(struct domain *d, unsigned int irq) - { - if ( d->arch.pirq_eoi_map ) ---- a/xen/include/asm-x86/irq.h -+++ b/xen/include/asm-x86/irq.h -@@ -150,4 +150,6 @@ void irq_set_affinity(int irq, cpumask_t - #define domain_pirq_to_irq(d, pirq) ((d)->arch.pirq_irq[pirq]) - #define domain_irq_to_pirq(d, irq) ((d)->arch.irq_pirq[irq]) - -+bool_t cpu_has_pending_apic_eoi(void); -+ - #endif /* _ASM_HW_IRQ_H */ diff --git a/22174-x86-pmtimer-accuracy.patch b/22174-x86-pmtimer-accuracy.patch deleted file mode 100644 index 3de6dec..0000000 --- a/22174-x86-pmtimer-accuracy.patch +++ /dev/null @@ -1,68 +0,0 @@ -# HG changeset patch -# User Keir Fraser -# Date 1284739161 -3600 -# Node ID 632c02167f97bb2bd25571b2780425b9b75949b4 -# Parent 1b05090854ba83576aa8399fa70e481f5b602417 -hvm pmtimer: correct pmtimer accuracy - -Several seconds of backward time drift per minute can be seen on a -RHEL6 HVM guest by switching the clocksource to 'acpi_pm' and then -running gettimeofday() in a loop. This is due to the accumulation -of small inaccuracies that are caused by shifting out the lower 32 -bits when pmt_update_time() computes 'tmr_val'. - -The patch makes sure that the lower 32 bits of the computed value -are not lost. They are saved in a new field 'not_accounted' in the -PMTState structure and are accounted the next time pmt_update_time() -is called. - -From: Ulrich Obergfell -Signed-off-by: Keir Fraser - ---- a/xen/arch/x86/hvm/pmtimer.c -+++ b/xen/arch/x86/hvm/pmtimer.c -@@ -83,14 +83,16 @@ void hvm_acpi_sleep_button(struct domain - * since the last time we did that. */ - static void pmt_update_time(PMTState *s) - { -- uint64_t curr_gtime; -+ uint64_t curr_gtime, tmp; - uint32_t msb = s->pm.tmr_val & TMR_VAL_MSB; - - ASSERT(spin_is_locked(&s->lock)); - - /* Update the timer */ - curr_gtime = hvm_get_guest_time(s->vcpu); -- s->pm.tmr_val += ((curr_gtime - s->last_gtime) * s->scale) >> 32; -+ tmp = ((curr_gtime - s->last_gtime) * s->scale) + s->not_accounted; -+ s->not_accounted = (uint32_t)tmp; -+ s->pm.tmr_val += tmp >> 32; - s->pm.tmr_val &= TMR_VAL_MASK; - s->last_gtime = curr_gtime; - -@@ -257,6 +259,7 @@ static int pmtimer_load(struct domain *d - - /* Calculate future counter values from now. */ - s->last_gtime = hvm_get_guest_time(s->vcpu); -+ s->not_accounted = 0; - - /* Set the SCI state from the registers */ - pmt_update_sci(s); -@@ -276,6 +279,7 @@ void pmtimer_init(struct vcpu *v) - spin_lock_init(&s->lock); - - s->scale = ((uint64_t)FREQUENCE_PMTIMER << 32) / SYSTEM_TIME_HZ; -+ s->not_accounted = 0; - s->vcpu = v; - - /* Intercept port I/O (need two handlers because PM1a_CNT is between ---- a/xen/include/asm-x86/hvm/vpt.h -+++ b/xen/include/asm-x86/hvm/vpt.h -@@ -117,6 +117,7 @@ typedef struct PMTState { - struct hvm_hw_pmtimer pm; /* 32bit timer value */ - struct vcpu *vcpu; /* Keeps sync with this vcpu's guest-time */ - uint64_t last_gtime; /* Last (guest) time we updated the timer */ -+ uint32_t not_accounted; /* time not accounted at last update */ - uint64_t scale; /* Multiplier to get from tsc to timer ticks */ - struct timer timer; /* To make sure we send SCIs */ - spinlock_t lock; diff --git a/22175-x86-irq-enter-exit.patch b/22175-x86-irq-enter-exit.patch deleted file mode 100644 index e3c6167..0000000 --- a/22175-x86-irq-enter-exit.patch +++ /dev/null @@ -1,59 +0,0 @@ -# HG changeset patch -# User Keir Fraser -# Date 1284795115 -3600 -# Node ID ee3c640732311ef6bc5e2de56c3b4b753cb020fa -# Parent 632c02167f97bb2bd25571b2780425b9b75949b4 -x86: irq_enter()/irq_exit() covers all of do_IRQ(). - -Signed-off-by: Keir Fraser - ---- a/xen/arch/x86/irq.c -+++ b/xen/arch/x86/irq.c -@@ -535,6 +535,8 @@ asmlinkage void do_IRQ(struct cpu_user_r - return; - } - -+ irq_enter(); -+ - desc = irq_to_desc(irq); - - spin_lock(&desc->lock); -@@ -568,14 +570,10 @@ asmlinkage void do_IRQ(struct cpu_user_r - desc->rl_quantum_start = now; - } - -- irq_enter(); - tsc_in = tb_init_done ? get_cycles() : 0; - __do_IRQ_guest(irq); - TRACE_3D(TRC_TRACE_IRQ, irq, tsc_in, get_cycles()); -- irq_exit(); -- spin_unlock(&desc->lock); -- set_irq_regs(old_regs); -- return; -+ goto out_no_end; - } - - desc->status &= ~IRQ_REPLAY; -@@ -594,20 +592,20 @@ asmlinkage void do_IRQ(struct cpu_user_r - while ( desc->status & IRQ_PENDING ) - { - desc->status &= ~IRQ_PENDING; -- irq_enter(); - spin_unlock_irq(&desc->lock); - tsc_in = tb_init_done ? get_cycles() : 0; - action->handler(irq, action->dev_id, regs); - TRACE_3D(TRC_TRACE_IRQ, irq, tsc_in, get_cycles()); - spin_lock_irq(&desc->lock); -- irq_exit(); - } - - desc->status &= ~IRQ_INPROGRESS; - - out: - desc->handler->end(irq); -+ out_no_end: - spin_unlock(&desc->lock); -+ irq_exit(); - set_irq_regs(old_regs); - } - diff --git a/22177-i386-irq-safe-map_domain_page.patch b/22177-i386-irq-safe-map_domain_page.patch deleted file mode 100644 index fda402b..0000000 --- a/22177-i386-irq-safe-map_domain_page.patch +++ /dev/null @@ -1,92 +0,0 @@ -# HG changeset patch -# User Keir Fraser -# Date 1284796635 -3600 -# Node ID 7405e0ddb912a993982e4e4122856965b7c706dd -# Parent 0da4bfd2bc23937d2e1a8bfa6d259be0d9e482ad -x86_32: [un]map_domain_page() is now IRQ safe. - -Signed-off-by: Keir Fraser - ---- a/xen/arch/x86/x86_32/domain_page.c -+++ b/xen/arch/x86/x86_32/domain_page.c -@@ -42,15 +42,13 @@ static inline struct vcpu *mapcache_curr - - void *map_domain_page(unsigned long mfn) - { -- unsigned long va; -- unsigned int idx, i, flags; -+ unsigned long va, flags; -+ unsigned int idx, i; - struct vcpu *v; - struct mapcache_domain *dcache; - struct mapcache_vcpu *vcache; - struct vcpu_maphash_entry *hashent; - -- ASSERT(!in_irq()); -- - perfc_incr(map_domain_page_count); - - v = mapcache_current_vcpu(); -@@ -58,6 +56,8 @@ void *map_domain_page(unsigned long mfn) - dcache = &v->domain->arch.mapcache; - vcache = &v->arch.mapcache; - -+ local_irq_save(flags); -+ - hashent = &vcache->hash[MAPHASH_HASHFN(mfn)]; - if ( hashent->mfn == mfn ) - { -@@ -69,7 +69,7 @@ void *map_domain_page(unsigned long mfn) - goto out; - } - -- spin_lock_irqsave(&dcache->lock, flags); -+ spin_lock(&dcache->lock); - - /* Has some other CPU caused a wrap? We must flush if so. */ - if ( unlikely(dcache->epoch != vcache->shadow_epoch) ) -@@ -105,11 +105,12 @@ void *map_domain_page(unsigned long mfn) - set_bit(idx, dcache->inuse); - dcache->cursor = idx + 1; - -- spin_unlock_irqrestore(&dcache->lock, flags); -+ spin_unlock(&dcache->lock); - - l1e_write(&dcache->l1tab[idx], l1e_from_pfn(mfn, __PAGE_HYPERVISOR)); - - out: -+ local_irq_restore(flags); - va = MAPCACHE_VIRT_START + (idx << PAGE_SHIFT); - return (void *)va; - } -@@ -119,11 +120,9 @@ void unmap_domain_page(const void *va) - unsigned int idx; - struct vcpu *v; - struct mapcache_domain *dcache; -- unsigned long mfn; -+ unsigned long mfn, flags; - struct vcpu_maphash_entry *hashent; - -- ASSERT(!in_irq()); -- - ASSERT((void *)MAPCACHE_VIRT_START <= va); - ASSERT(va < (void *)MAPCACHE_VIRT_END); - -@@ -135,6 +134,8 @@ void unmap_domain_page(const void *va) - mfn = l1e_get_pfn(dcache->l1tab[idx]); - hashent = &v->arch.mapcache.hash[MAPHASH_HASHFN(mfn)]; - -+ local_irq_save(flags); -+ - if ( hashent->idx == idx ) - { - ASSERT(hashent->mfn == mfn); -@@ -163,6 +164,8 @@ void unmap_domain_page(const void *va) - /* /Second/, mark as garbage. */ - set_bit(idx, dcache->garbage); - } -+ -+ local_irq_restore(flags); - } - - void mapcache_domain_init(struct domain *d) diff --git a/22194-tmem-check-pv-mfn.patch b/22194-tmem-check-pv-mfn.patch deleted file mode 100644 index d23452f..0000000 --- a/22194-tmem-check-pv-mfn.patch +++ /dev/null @@ -1,240 +0,0 @@ -# HG changeset patch -# User Keir Fraser -# Date 1285142048 -3600 -# Node ID e8e3aeed3ebacac6faa5795f67b195a434562323 -# Parent 35a1a14c408e60eca608a67a79f38ae5fdf3ea19 -tmem: disallow bad gmfns from PV domains - -Mfns for PV domains were not properly checked, potentially -allowing a buggy or malicious PV guest to crash Xen. Also, -use get_page/put_page to claim a reference to the pages -so they can't disappear out from under tmem's feet. - -Signed-off-by: Dan Magenheimer - ---- a/xen/common/tmem_xen.c -+++ b/xen/common/tmem_xen.c -@@ -87,49 +87,88 @@ void tmh_copy_page(char *to, char*from) - } - - #ifdef __ia64__ --static inline void *cli_mfn_to_va(tmem_cli_mfn_t cmfn, unsigned long *pcli_mfn) -+static inline void *cli_get_page(tmem_cli_mfn_t cmfn, unsigned long *pcli_mfn, -+ pfp_t **pcli_pfp, bool_t cli_write) - { - ASSERT(0); - return NULL; - } --#define paging_mark_dirty(_x,_y) do {} while(0) -+ -+static inline void cli_put_page(void *cli_va, struct page_info *cli_pfp, -+ bool_t mark_dirty) -+{ -+ ASSERT(0); -+} - #else --static inline void *cli_mfn_to_va(tmem_cli_mfn_t cmfn, unsigned long *pcli_mfn) -+static inline void *cli_get_page(tmem_cli_mfn_t cmfn, unsigned long *pcli_mfn, -+ pfp_t **pcli_pfp, bool_t cli_write) - { - unsigned long cli_mfn; - p2m_type_t t; -+ struct page_info *page; -+ int ret; - - cli_mfn = mfn_x(gfn_to_mfn(current->domain, cmfn, &t)); -- if (t != p2m_ram_rw || cli_mfn == INVALID_MFN) -+ if ( t != p2m_ram_rw || !mfn_valid(cli_mfn) ) -+ return NULL; -+ page = mfn_to_page(cli_mfn); -+ if ( cli_write ) -+ ret = get_page_and_type(page, current->domain, PGT_writable_page); -+ else -+ ret = get_page(page, current->domain); -+ if ( !ret ) - return NULL; -- if (pcli_mfn != NULL) -- *pcli_mfn = cli_mfn; -+ *pcli_mfn = cli_mfn; -+ *pcli_pfp = (pfp_t *)page; - return map_domain_page(cli_mfn); - } -+ -+static inline void cli_put_page(void *cli_va, pfp_t *cli_pfp, -+ unsigned long cli_mfn, bool_t mark_dirty) -+{ -+ if ( mark_dirty ) -+ { -+ put_page_and_type((struct page_info *)cli_pfp); -+ paging_mark_dirty(current->domain,cli_mfn); -+ } -+ else -+ put_page((struct page_info *)cli_pfp); -+ unmap_domain_page(cli_va); -+} - #endif - - EXPORT int tmh_copy_from_client(pfp_t *pfp, - tmem_cli_mfn_t cmfn, pagesize_t tmem_offset, - pagesize_t pfn_offset, pagesize_t len, void *cli_va) - { -- unsigned long tmem_mfn; -+ unsigned long tmem_mfn, cli_mfn = 0; - void *tmem_va; -+ pfp_t *cli_pfp = NULL; -+ bool_t tmemc = cli_va != NULL; /* if true, cli_va is control-op buffer */ - - ASSERT(pfp != NULL); -- if ( tmem_offset || pfn_offset || len ) -- if ( (cli_va == NULL) && ((cli_va = cli_mfn_to_va(cmfn,NULL)) == NULL) ) -- return -EFAULT; - tmem_mfn = page_to_mfn(pfp); - tmem_va = map_domain_page(tmem_mfn); -- mb(); -- if (!len && !tmem_offset && !pfn_offset) -+ if ( tmem_offset == 0 && pfn_offset == 0 && len == 0 ) -+ { - memset(tmem_va, 0, PAGE_SIZE); -- else if (len == PAGE_SIZE && !tmem_offset && !pfn_offset) -+ unmap_domain_page(tmem_va); -+ return 1; -+ } -+ if ( !tmemc ) -+ { -+ cli_va = cli_get_page(cmfn, &cli_mfn, &cli_pfp, 0); -+ if ( cli_va == NULL ) -+ return -EFAULT; -+ } -+ mb(); -+ if (len == PAGE_SIZE && !tmem_offset && !pfn_offset) - tmh_copy_page(tmem_va, cli_va); - else if ( (tmem_offset+len <= PAGE_SIZE) && -- (pfn_offset+len <= PAGE_SIZE) ) -+ (pfn_offset+len <= PAGE_SIZE) ) - memcpy((char *)tmem_va+tmem_offset,(char *)cli_va+pfn_offset,len); -- unmap_domain_page(cli_va); -+ if ( !tmemc ) -+ cli_put_page(cli_va, cli_pfp, cli_mfn, 0); - unmap_domain_page(tmem_va); - return 1; - } -@@ -140,15 +179,24 @@ EXPORT int tmh_compress_from_client(tmem - int ret = 0; - unsigned char *dmem = this_cpu(dstmem); - unsigned char *wmem = this_cpu(workmem); -+ pfp_t *cli_pfp = NULL; -+ unsigned long cli_mfn = 0; -+ bool_t tmemc = cli_va != NULL; /* if true, cli_va is control-op buffer */ - -- if ( (cli_va == NULL) && (cli_va = cli_mfn_to_va(cmfn,NULL)) == NULL) -- return -EFAULT; - if ( dmem == NULL || wmem == NULL ) - return 0; /* no buffer, so can't compress */ -+ if ( !tmemc ) -+ { -+ cli_va = cli_get_page(cmfn, &cli_mfn, &cli_pfp, 0); -+ if ( cli_va == NULL ) -+ return -EFAULT; -+ } - mb(); - ret = lzo1x_1_compress(cli_va, PAGE_SIZE, dmem, out_len, wmem); - ASSERT(ret == LZO_E_OK); - *out_va = dmem; -+ if ( !tmemc ) -+ cli_put_page(cli_va, cli_pfp, cli_mfn, 0); - unmap_domain_page(cli_va); - return 1; - } -@@ -157,14 +205,17 @@ EXPORT int tmh_copy_to_client(tmem_cli_m - pagesize_t tmem_offset, pagesize_t pfn_offset, pagesize_t len, void *cli_va) - { - unsigned long tmem_mfn, cli_mfn = 0; -- int mark_dirty = 1; - void *tmem_va; -+ pfp_t *cli_pfp = NULL; -+ bool_t tmemc = cli_va != NULL; /* if true, cli_va is control-op buffer */ - - ASSERT(pfp != NULL); -- if ( cli_va != NULL ) -- mark_dirty = 0; -- else if ( (cli_va = cli_mfn_to_va(cmfn,&cli_mfn)) == NULL) -- return -EFAULT; -+ if ( !tmemc ) -+ { -+ cli_va = cli_get_page(cmfn, &cli_mfn, &cli_pfp, 1); -+ if ( cli_va == NULL ) -+ return -EFAULT; -+ } - tmem_mfn = page_to_mfn(pfp); - tmem_va = map_domain_page(tmem_mfn); - if (len == PAGE_SIZE && !tmem_offset && !pfn_offset) -@@ -172,11 +223,8 @@ EXPORT int tmh_copy_to_client(tmem_cli_m - else if ( (tmem_offset+len <= PAGE_SIZE) && (pfn_offset+len <= PAGE_SIZE) ) - memcpy((char *)cli_va+pfn_offset,(char *)tmem_va+tmem_offset,len); - unmap_domain_page(tmem_va); -- if ( mark_dirty ) -- { -- unmap_domain_page(cli_va); -- paging_mark_dirty(current->domain,cli_mfn); -- } -+ if ( !tmemc ) -+ cli_put_page(cli_va, cli_pfp, cli_mfn, 1); - mb(); - return 1; - } -@@ -185,22 +233,22 @@ EXPORT int tmh_decompress_to_client(tmem - size_t size, void *cli_va) - { - unsigned long cli_mfn = 0; -- int mark_dirty = 1; -+ pfp_t *cli_pfp = NULL; - size_t out_len = PAGE_SIZE; -+ bool_t tmemc = cli_va != NULL; /* if true, cli_va is control-op buffer */ - int ret; - -- if ( cli_va != NULL ) -- mark_dirty = 0; -- else if ( (cli_va = cli_mfn_to_va(cmfn,&cli_mfn)) == NULL) -- return -EFAULT; -+ if ( !tmemc ) -+ { -+ cli_va = cli_get_page(cmfn, &cli_mfn, &cli_pfp, 1); -+ if ( cli_va == NULL ) -+ return -EFAULT; -+ } - ret = lzo1x_decompress_safe(tmem_va, size, cli_va, &out_len); - ASSERT(ret == LZO_E_OK); - ASSERT(out_len == PAGE_SIZE); -- if ( mark_dirty ) -- { -- unmap_domain_page(cli_va); -- paging_mark_dirty(current->domain,cli_mfn); -- } -+ if ( !tmemc ) -+ cli_put_page(cli_va, cli_pfp, cli_mfn, 1); - mb(); - return 1; - } -@@ -210,18 +258,19 @@ EXPORT int tmh_copy_tze_to_client(tmem_c - { - void *cli_va; - unsigned long cli_mfn; -+ pfp_t *cli_pfp = NULL; - - ASSERT(!(len & (sizeof(uint64_t)-1))); - ASSERT(len <= PAGE_SIZE); - ASSERT(len > 0 || tmem_va == NULL); -- if ( (cli_va = cli_mfn_to_va(cmfn,&cli_mfn)) == NULL) -+ cli_va = cli_get_page(cmfn, &cli_mfn, &cli_pfp, 1); -+ if ( cli_va == NULL ) - return -EFAULT; - if ( len > 0 ) - memcpy((char *)cli_va,(char *)tmem_va,len); - if ( len < PAGE_SIZE ) - memset((char *)cli_va+len,0,PAGE_SIZE-len); -- unmap_domain_page(cli_va); -- paging_mark_dirty(current->domain,cli_mfn); -+ cli_put_page(cli_va, cli_pfp, cli_mfn, 1); - mb(); - return 1; - } diff --git a/22213-x86-xsave-cpuid-check.patch b/22213-x86-xsave-cpuid-check.patch deleted file mode 100644 index 34efeee..0000000 --- a/22213-x86-xsave-cpuid-check.patch +++ /dev/null @@ -1,50 +0,0 @@ -# HG changeset patch -# User Keir Fraser -# Date 1285340011 -3600 -# Node ID eb247ea9db8c8b541a7f8c9cdc51c064c4c9e41c -# Parent 105c938eacbbc250447a676bb2088f804033b82b -x86: check CPUID level before enabling xsave -References: bnc#640773 - -While not as relevant after c/s 21894, is still seems safer to check -the CPUID level here, just like Linux does. The is particularly -relevant for the 4.0 tree (which doesn't have said c/s), but also -possibly for nested environments where writing MSR_IA32_MISC_ENABLE -may not actually take effect (Xen itself ignores such writes). - -Signed-off-by: Jan Beulich - ---- a/xen/arch/x86/i387.c -+++ b/xen/arch/x86/i387.c -@@ -132,6 +132,8 @@ void restore_fpu(struct vcpu *v) - } - } - -+#define XSTATE_CPUID 0xd -+ - /* - * Maximum size (in byte) of the XSAVE/XRSTOR save area required by all - * the supported and enabled features on the processor, including the -@@ -148,7 +150,12 @@ void xsave_init(void) - int cpu = smp_processor_id(); - u32 min_size; - -- cpuid_count(0xd, 0, &eax, &ebx, &ecx, &edx); -+ if ( boot_cpu_data.cpuid_level < XSTATE_CPUID ) { -+ printk(XENLOG_ERR "XSTATE_CPUID missing\n"); -+ return; -+ } -+ -+ cpuid_count(XSTATE_CPUID, 0, &eax, &ebx, &ecx, &edx); - - printk("%s: cpu%d: cntxt_max_size: 0x%x and states: %08x:%08x\n", - __func__, cpu, ecx, edx, eax); -@@ -169,7 +176,7 @@ void xsave_init(void) - */ - set_in_cr4(X86_CR4_OSXSAVE); - set_xcr0(eax & XCNTXT_MASK); -- cpuid_count(0xd, 0, &eax, &ebx, &ecx, &edx); -+ cpuid_count(XSTATE_CPUID, 0, &eax, &ebx, &ecx, &edx); - clear_in_cr4(X86_CR4_OSXSAVE); - - if ( cpu == 0 ) diff --git a/22214-x86-msr-misc-enable.patch b/22214-x86-msr-misc-enable.patch index e1c3e98..b24cfdf 100644 --- a/22214-x86-msr-misc-enable.patch +++ b/22214-x86-msr-misc-enable.patch @@ -23,9 +23,11 @@ Further, the default case value-changed check can be simplified. Signed-off-by: Jan Beulich ---- a/xen/arch/x86/traps.c -+++ b/xen/arch/x86/traps.c -@@ -1661,6 +1661,16 @@ unsigned long guest_to_host_gpr_switch(u +Index: xen-4.0.2-testing/xen/arch/x86/traps.c +=================================================================== +--- xen-4.0.2-testing.orig/xen/arch/x86/traps.c ++++ xen-4.0.2-testing/xen/arch/x86/traps.c +@@ -1679,6 +1679,16 @@ unsigned long guest_to_host_gpr_switch(u void (*pv_post_outb_hook)(unsigned int port, u8 value); @@ -42,7 +44,7 @@ Signed-off-by: Jan Beulich /* Instruction fetch with error handling. */ #define insn_fetch(type, base, eip, limit) \ ({ unsigned long _rc, _ptr = (base) + (eip); \ -@@ -2258,6 +2268,13 @@ static int emulate_privileged_op(struct +@@ -2276,6 +2286,13 @@ static int emulate_privileged_op(struct if ( wrmsr_safe(MSR_FAM10H_MMIO_CONF_BASE, eax, edx) != 0 ) goto fail; break; @@ -56,7 +58,7 @@ Signed-off-by: Jan Beulich case MSR_IA32_MPERF: case MSR_IA32_APERF: if (( boot_cpu_data.x86_vendor != X86_VENDOR_INTEL ) && -@@ -2364,11 +2381,7 @@ static int emulate_privileged_op(struct +@@ -2382,11 +2399,7 @@ static int emulate_privileged_op(struct case MSR_IA32_MISC_ENABLE: if ( rdmsr_safe(regs->ecx, regs->eax, regs->edx) ) goto fail; @@ -69,8 +71,10 @@ Signed-off-by: Jan Beulich break; case MSR_EFER: case MSR_AMD_PATCHLEVEL: ---- a/xen/include/asm-x86/msr.h -+++ b/xen/include/asm-x86/msr.h +Index: xen-4.0.2-testing/xen/include/asm-x86/msr.h +=================================================================== +--- xen-4.0.2-testing.orig/xen/include/asm-x86/msr.h ++++ xen-4.0.2-testing/xen/include/asm-x86/msr.h @@ -39,7 +39,8 @@ static inline void wrmsrl(unsigned int m __asm__ __volatile__( \ "1: rdmsr\n2:\n" \ diff --git a/22222-x86-timer-extint.patch b/22222-x86-timer-extint.patch deleted file mode 100644 index d1722e3..0000000 --- a/22222-x86-timer-extint.patch +++ /dev/null @@ -1,70 +0,0 @@ -# HG changeset patch -# User Keir Fraser -# Date 1286028195 -3600 -# Node ID aed9fd361340158daf2d7160d1b367478b6312d6 -# Parent 3518149c4d5d0d8ce7402a24f95d3badbecc1c17 -x86: fix boot failure (regression from pre-4.0 IRQ handling changes) -References: bnc#583568, bnc#615206 - -With the change to index irq_desc[] by IRQ rather than by vector, the -prior implicit change of the used flow handler when altering the IRQ -routing path to go through the 8259A didn't work anymore, and hence -on boards needing the ExtINT delivery workaround failed to boot. - -Make make_8259A_irq() a real function again, thus allowing the flow -handler to be changed there. - -Also eliminate the generally superfluous and (at least theoretically) -dangerous hard coded setting of the flow handler for IRQ0: Earlier -code should have set this already based on information coming from -ACPI/MPS, and non-standard systems may e.g. have this IRQ level -triggered. - -Signed-off-by: Jan Beulich -Tested-by: Markus Schuster - ---- a/xen/arch/x86/i8259.c -+++ b/xen/arch/x86/i8259.c -@@ -367,6 +367,12 @@ void __devinit init_8259A(int auto_eoi) - spin_unlock_irqrestore(&i8259A_lock, flags); - } - -+void __init make_8259A_irq(unsigned int irq) -+{ -+ io_apic_irqs &= ~(1 << irq); -+ irq_to_desc(irq)->handler = &i8259A_irq_type; -+} -+ - static struct irqaction __read_mostly cascade = { no_action, "cascade", NULL}; - - void __init init_IRQ(void) ---- a/xen/arch/x86/io_apic.c -+++ b/xen/arch/x86/io_apic.c -@@ -38,9 +38,6 @@ - #include - #include - --/* Different to Linux: our implementation can be simpler. */ --#define make_8259A_irq(irq) (io_apic_irqs &= ~(1<<(irq))) -- - int (*ioapic_renumber_irq)(int ioapic, int irq); - atomic_t irq_mis_count; - -@@ -1929,7 +1926,6 @@ static inline void check_timer(void) - - irq_desc[0].depth = 0; - irq_desc[0].status &= ~IRQ_DISABLED; -- irq_desc[0].handler = &ioapic_edge_type; - - /* - * Subtle, code in do_timer_interrupt() expects an AEOI ---- a/xen/include/asm-x86/irq.h -+++ b/xen/include/asm-x86/irq.h -@@ -94,6 +94,7 @@ int i8259A_irq_pending(unsigned int irq) - void mask_8259A(void); - void unmask_8259A(void); - void init_8259A(int aeoi); -+void make_8259A_irq(unsigned int irq); - int i8259A_suspend(void); - int i8259A_resume(void); - diff --git a/22231-x86-pv-ucode-msr-intel.patch b/22231-x86-pv-ucode-msr-intel.patch index 3272c13..8edce4f 100644 --- a/22231-x86-pv-ucode-msr-intel.patch +++ b/22231-x86-pv-ucode-msr-intel.patch @@ -13,9 +13,11 @@ change. Signed-off-by: Jan Beulich ---- a/xen/arch/x86/traps.c -+++ b/xen/arch/x86/traps.c -@@ -2268,6 +2268,14 @@ static int emulate_privileged_op(struct +Index: xen-4.0.2-testing/xen/arch/x86/traps.c +=================================================================== +--- xen-4.0.2-testing.orig/xen/arch/x86/traps.c ++++ xen-4.0.2-testing/xen/arch/x86/traps.c +@@ -2286,6 +2286,14 @@ static int emulate_privileged_op(struct if ( wrmsr_safe(MSR_FAM10H_MMIO_CONF_BASE, eax, edx) != 0 ) goto fail; break; @@ -30,7 +32,7 @@ Signed-off-by: Jan Beulich case MSR_IA32_MISC_ENABLE: if ( rdmsr_safe(regs->ecx, l, h) ) goto invalid; -@@ -2375,16 +2383,21 @@ static int emulate_privileged_op(struct +@@ -2393,16 +2401,21 @@ static int emulate_privileged_op(struct regs->eax = regs->edx = 0; break; } @@ -57,7 +59,7 @@ Signed-off-by: Jan Beulich default: if ( rdmsr_hypervisor_regs(regs->ecx, &val) ) { -@@ -2400,6 +2413,8 @@ static int emulate_privileged_op(struct +@@ -2418,6 +2431,8 @@ static int emulate_privileged_op(struct if ( rc ) goto rdmsr_writeback; diff --git a/22232-x86-64-lahf-lm-bios-workaround.patch b/22232-x86-64-lahf-lm-bios-workaround.patch deleted file mode 100644 index a44be0a..0000000 --- a/22232-x86-64-lahf-lm-bios-workaround.patch +++ /dev/null @@ -1,89 +0,0 @@ -# HG changeset patch -# User Keir Fraser -# Date 1286784156 -3600 -# Node ID eb964c4b4f31c6b7bdfe8504839c4acac776f506 -# Parent a1405385db77c7c81aac27bd88d6c4b2d90b1389 -x86-64: workaround for BIOSes wrongly enabling LAHF_LM feature indicator - -This workaround is taken from Linux, and the main motivation (besides -such workarounds indeed belonging in the hypervisor rather than each -kernel) is to suppress the warnings in the Xen log each Linux guest -would cause due to the disallowed wrmsr. - -Signed-off-by: Jan Beulich - ---- a/xen/arch/x86/cpu/amd.c -+++ b/xen/arch/x86/cpu/amd.c -@@ -44,6 +44,47 @@ static inline void wrmsr_amd(unsigned in - ); - } - -+static inline int rdmsr_amd_safe(unsigned int msr, unsigned int *lo, -+ unsigned int *hi) -+{ -+ int err; -+ -+ asm volatile("1: rdmsr\n2:\n" -+ ".section .fixup,\"ax\"\n" -+ "3: movl %6,%2\n" -+ " jmp 2b\n" -+ ".previous\n" -+ ".section __ex_table,\"a\"\n" -+ __FIXUP_ALIGN "\n" -+ __FIXUP_WORD " 1b,3b\n" -+ ".previous\n" -+ : "=a" (*lo), "=d" (*hi), "=r" (err) -+ : "c" (msr), "D" (0x9c5a203a), "2" (0), "i" (-EFAULT)); -+ -+ return err; -+} -+ -+static inline int wrmsr_amd_safe(unsigned int msr, unsigned int lo, -+ unsigned int hi) -+{ -+ int err; -+ -+ asm volatile("1: wrmsr\n2:\n" -+ ".section .fixup,\"ax\"\n" -+ "3: movl %6,%0\n" -+ " jmp 2b\n" -+ ".previous\n" -+ ".section __ex_table,\"a\"\n" -+ __FIXUP_ALIGN "\n" -+ __FIXUP_WORD " 1b,3b\n" -+ ".previous\n" -+ : "=r" (err) -+ : "c" (msr), "a" (lo), "d" (hi), "D" (0x9c5a203a), -+ "0" (0), "i" (-EFAULT)); -+ -+ return err; -+} -+ - /* - * Mask the features and extended features returned by CPUID. Parameters are - * set from the boot line via two methods: -@@ -330,6 +371,24 @@ static void __devinit init_amd(struct cp - 3DNow is IDd by bit 31 in extended CPUID (1*32+31) anyway */ - clear_bit(0*32+31, c->x86_capability); - -+#ifdef CONFIG_X86_64 -+ if (c->x86 == 0xf && c->x86_model < 0x14 -+ && cpu_has(c, X86_FEATURE_LAHF_LM)) { -+ /* -+ * Some BIOSes incorrectly force this feature, but only K8 -+ * revision D (model = 0x14) and later actually support it. -+ * (AMD Erratum #110, docId: 25759). -+ */ -+ unsigned int lo, hi; -+ -+ clear_bit(X86_FEATURE_LAHF_LM, c->x86_capability); -+ if (!rdmsr_amd_safe(0xc001100d, &lo, &hi)) { -+ hi &= ~1; -+ wrmsr_amd_safe(0xc001100d, lo, hi); -+ } -+ } -+#endif -+ - r = get_model_name(c); - - switch(c->x86) diff --git a/22235-lxml-validator.patch b/22235-lxml-validator.patch index ef92c04..b141d1e 100644 --- a/22235-lxml-validator.patch +++ b/22235-lxml-validator.patch @@ -16,10 +16,10 @@ Signed-off-by: Stephan Peijnik Signed-off-by: Stefano Stabellini committer: Stefano Stabellini -Index: xen-4.0.1-testing/README +Index: xen-4.0.2-testing/README =================================================================== ---- xen-4.0.1-testing.orig/README -+++ xen-4.0.1-testing/README +--- xen-4.0.2-testing.orig/README ++++ xen-4.0.2-testing/README @@ -137,12 +137,15 @@ Python Runtime Libraries Xend (the Xen daemon) has the following runtime dependencies: @@ -50,10 +50,10 @@ Index: xen-4.0.1-testing/README Intel(R) Trusted Execution Technology Support -Index: xen-4.0.1-testing/tools/python/xen/xm/xenapi_create.py +Index: xen-4.0.2-testing/tools/python/xen/xm/xenapi_create.py =================================================================== ---- xen-4.0.1-testing.orig/tools/python/xen/xm/xenapi_create.py -+++ xen-4.0.1-testing/tools/python/xen/xm/xenapi_create.py +--- xen-4.0.2-testing.orig/tools/python/xen/xm/xenapi_create.py ++++ xen-4.0.2-testing/tools/python/xen/xm/xenapi_create.py @@ -14,13 +14,15 @@ # Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA #============================================================================ diff --git a/22280-kexec.patch b/22280-kexec.patch deleted file mode 100644 index b0281fe..0000000 --- a/22280-kexec.patch +++ /dev/null @@ -1,71 +0,0 @@ -# HG changeset patch -# User Keir Fraser -# Date 1287922506 -3600 -# Node ID d6e3cd10a9a6ab16d0cc772ee70b2ae99e8fac31 -# Parent 2208a036f8d9d932de8ab0aa0206f5c57dba8728 -x86/kexec: fix very old regression and make compatible with modern Linux -References: bnc#619122 - -c/s 13829 lost the (32-bit only) cpu_has_pae argument passed to the -primary kernel's stub (in the 32-bit Xen case only), and Linux -2.6.27/.30 (32-/64-bit) introduced a new argument (for KEXEC_JUMP) -which for now simply gets passed a hardcoded value. - -Signed-off-by: Jan Beulich - ---- a/xen/arch/x86/machine_kexec.c -+++ b/xen/arch/x86/machine_kexec.c -@@ -23,7 +23,11 @@ - typedef void (*relocate_new_kernel_t)( - unsigned long indirection_page, - unsigned long *page_list, -- unsigned long start_address); -+ unsigned long start_address, -+#ifdef __i386__ -+ unsigned int cpu_has_pae, -+#endif -+ unsigned int preserve_context); - - extern int machine_kexec_get_xen(xen_kexec_range_t *range); - -@@ -121,7 +125,11 @@ void machine_kexec(xen_kexec_image_t *im - - rnk = (relocate_new_kernel_t) image->page_list[1]; - (*rnk)(image->indirection_page, image->page_list, -- image->start_address); -+ image->start_address, -+#ifdef __i386__ -+ 1 /* cpu_has_pae */, -+#endif -+ 0 /* preserve_context */); - } - } - ---- a/xen/arch/x86/x86_64/compat_kexec.S -+++ b/xen/arch/x86/x86_64/compat_kexec.S -@@ -119,6 +119,7 @@ compatibility_mode: - movl %eax, %ss - - /* Push arguments onto stack. */ -+ pushl $0 /* 20(%esp) - preserve context */ - pushl $1 /* 16(%esp) - cpu has pae */ - pushl %ecx /* 12(%esp) - start address */ - pushl %edx /* 8(%esp) - page list */ ---- a/xen/include/asm-x86/cpufeature.h -+++ b/xen/include/asm-x86/cpufeature.h -@@ -138,7 +138,6 @@ - #define cpu_has_de boot_cpu_has(X86_FEATURE_DE) - #define cpu_has_pse boot_cpu_has(X86_FEATURE_PSE) - #define cpu_has_tsc boot_cpu_has(X86_FEATURE_TSC) --#define cpu_has_pae boot_cpu_has(X86_FEATURE_PAE) - #define cpu_has_pge boot_cpu_has(X86_FEATURE_PGE) - #define cpu_has_pat boot_cpu_has(X86_FEATURE_PAT) - #define cpu_has_apic boot_cpu_has(X86_FEATURE_APIC) -@@ -164,7 +163,6 @@ - #define cpu_has_de 1 - #define cpu_has_pse 1 - #define cpu_has_tsc 1 --#define cpu_has_pae 1 - #define cpu_has_pge 1 - #define cpu_has_pat 1 - #define cpu_has_apic boot_cpu_has(X86_FEATURE_APIC) diff --git a/22326-cpu-pools-numa-placement.patch b/22326-cpu-pools-numa-placement.patch index 5daca4c..613f716 100644 --- a/22326-cpu-pools-numa-placement.patch +++ b/22326-cpu-pools-numa-placement.patch @@ -12,10 +12,10 @@ numa placement should be handled by cpupool configuration instead. Signed-off-by: Juergen Gross Signed-off-by: Ian Jackson -Index: xen-4.0.1-testing/tools/python/xen/xend/XendCPUPool.py +Index: xen-4.0.2-testing/tools/python/xen/xend/XendCPUPool.py =================================================================== ---- xen-4.0.1-testing.orig/tools/python/xen/xend/XendCPUPool.py -+++ xen-4.0.1-testing/tools/python/xen/xend/XendCPUPool.py +--- xen-4.0.2-testing.orig/tools/python/xen/xend/XendCPUPool.py ++++ xen-4.0.2-testing/tools/python/xen/xend/XendCPUPool.py @@ -881,6 +881,11 @@ class XendCPUPool(XendBase): lookup_pool = classmethod(lookup_pool) @@ -28,10 +28,10 @@ Index: xen-4.0.1-testing/tools/python/xen/xend/XendCPUPool.py def _cpu_number_to_ref(cls, number): node = XendNode.instance() for cpu_ref in node.get_host_cpu_refs(): -Index: xen-4.0.1-testing/tools/python/xen/xend/XendDomainInfo.py +Index: xen-4.0.2-testing/tools/python/xen/xend/XendDomainInfo.py =================================================================== ---- xen-4.0.1-testing.orig/tools/python/xen/xend/XendDomainInfo.py -+++ xen-4.0.1-testing/tools/python/xen/xend/XendDomainInfo.py +--- xen-4.0.2-testing.orig/tools/python/xen/xend/XendDomainInfo.py ++++ xen-4.0.2-testing/tools/python/xen/xend/XendDomainInfo.py @@ -2790,7 +2790,7 @@ class XendDomainInfo: return map(lambda x: x[0], sorted(enumerate(nodeload), key=lambda x:x[1])) diff --git a/22223-vtd-workarounds.patch b/22332-vtd-workarounds.patch similarity index 77% rename from 22223-vtd-workarounds.patch rename to 22332-vtd-workarounds.patch index 841fe16..323590c 100644 --- a/22223-vtd-workarounds.patch +++ b/22332-vtd-workarounds.patch @@ -1,19 +1,3 @@ -# HG changeset patch -# User Keir Fraser -# Date 1286028261 -3600 -# Node ID 4beee577912215c734b79cb84bfe3fb20c1afbfc -# Parent aed9fd361340158daf2d7160d1b367478b6312d6 -Vt-d: fix dom0 graphics problem on Levnovo T410. -References: bnc#643477 - -The patch is derived from a similar quirk in Linux kernel by David -Woodhouse and Adam Jackson. It checks for VT enabling bit in IGD GGC -register. If VT is not enabled correctly in the IGD, Xen does not -enable VT-d translation for IGD VT-d engine. In case where iommu boot -parameter is set to force, Xen calls panic(). - -Signed-off-by: Allen Kay - # HG changeset patch # User Keir Fraser # Date 1288344554 -3600 @@ -41,43 +25,52 @@ enhancement. Signed-off-by: Allen Kay -Index: xen-4.0.1-testing/xen/drivers/passthrough/vtd/Makefile -=================================================================== ---- xen-4.0.1-testing.orig/xen/drivers/passthrough/vtd/Makefile -+++ xen-4.0.1-testing/xen/drivers/passthrough/vtd/Makefile +# HG changeset patch +# User Keir Fraser +# Date 1294221021 0 +# Node ID e635e6641c07ee2da66b16f46f45442c9a46821d +# Parent 76d897a06b316bf2278220b006d578faf31ce3fb +[VTD] added WLAN device ID on Fujitsu's platform in quirks.c + +Added WLAN device ID 0x422C that was found on Fujitsu's Calpella +system to WLAN quirk. + +Signed-off-by: Allen Kay + +--- a/xen/drivers/passthrough/vtd/Makefile ++++ b/xen/drivers/passthrough/vtd/Makefile @@ -6,3 +6,4 @@ obj-y += dmar.o obj-y += utils.o obj-y += qinval.o obj-y += intremap.o +obj-y += quirks.o -Index: xen-4.0.1-testing/xen/drivers/passthrough/vtd/dmar.c -=================================================================== ---- xen-4.0.1-testing.orig/xen/drivers/passthrough/vtd/dmar.c -+++ xen-4.0.1-testing/xen/drivers/passthrough/vtd/dmar.c -@@ -46,6 +46,7 @@ LIST_HEAD(acpi_rmrr_units); - LIST_HEAD(acpi_atsr_units); - LIST_HEAD(acpi_rhsa_units); +--- a/xen/drivers/passthrough/vtd/dmar.c ++++ b/xen/drivers/passthrough/vtd/dmar.c +@@ -242,7 +242,7 @@ struct acpi_rhsa_unit * drhd_to_rhsa(str -+static u64 igd_drhd_address; - u8 dmar_host_address_width; - - void dmar_scope_add_buses(struct dmar_scope *scope, u16 sec_bus, u16 sub_bus) -@@ -239,6 +240,11 @@ struct acpi_rhsa_unit * drhd_to_rhsa(str - return NULL; + int is_igd_drhd(struct acpi_drhd_unit *drhd) + { +- return ( drhd->address == igd_drhd_address ? 1 : 0); ++ return drhd && (drhd->address == igd_drhd_address); } -+int is_igd_drhd(struct acpi_drhd_unit *drhd) -+{ -+ return drhd && (drhd->address == igd_drhd_address); -+} -+ /* - * Count number of devices in device scope. Do not include PCI sub - * hierarchies. -@@ -333,6 +339,15 @@ static int __init acpi_parse_dev_scope(v +@@ -278,8 +278,7 @@ static int scope_device_count(void *star + + + static int __init acpi_parse_dev_scope(void *start, void *end, +- void *acpi_entry, int type, +- int *igd) ++ void *acpi_entry, int type) + { + struct dmar_scope *scope = acpi_entry; + struct acpi_ioapic_unit *acpi_ioapic_unit; +@@ -340,8 +339,15 @@ static int __init acpi_parse_dev_scope(v if ( iommu_verbose ) dprintk(VTDPREFIX, " endpoint: %x:%x.%x\n", bus, path->dev, path->fn); +- if ( (bus == 0) && (path->dev == 2) && (path->fn == 0) ) +- *igd = 1; + + if ( type == DMAR_TYPE ) + { @@ -90,21 +83,65 @@ Index: xen-4.0.1-testing/xen/drivers/passthrough/vtd/dmar.c break; case ACPI_DEV_IOAPIC: -Index: xen-4.0.1-testing/xen/drivers/passthrough/vtd/dmar.h -=================================================================== ---- xen-4.0.1-testing.orig/xen/drivers/passthrough/vtd/dmar.h -+++ xen-4.0.1-testing/xen/drivers/passthrough/vtd/dmar.h -@@ -114,5 +114,6 @@ void *map_to_nocache_virt(int nr_iommus, - int vtd_hw_check(void); - void disable_pmr(struct iommu *iommu); - int is_usb_device(u8 bus, u8 devfn); -+int is_igd_drhd(struct acpi_drhd_unit *drhd); +@@ -388,7 +394,7 @@ acpi_parse_one_drhd(struct acpi_dmar_ent + struct acpi_table_drhd * drhd = (struct acpi_table_drhd *)header; + void *dev_scope_start, *dev_scope_end; + struct acpi_drhd_unit *dmaru; +- int ret, igd = 0; ++ int ret; + static int include_all = 0; - #endif /* _DMAR_H_ */ -Index: xen-4.0.1-testing/xen/drivers/passthrough/vtd/extern.h -=================================================================== ---- xen-4.0.1-testing.orig/xen/drivers/passthrough/vtd/extern.h -+++ xen-4.0.1-testing/xen/drivers/passthrough/vtd/extern.h + if ( (ret = acpi_dmar_check_length(header, sizeof(*drhd))) != 0 ) +@@ -413,10 +419,7 @@ acpi_parse_one_drhd(struct acpi_dmar_ent + dev_scope_start = (void *)(drhd + 1); + dev_scope_end = ((void *)drhd) + header->length; + ret = acpi_parse_dev_scope(dev_scope_start, dev_scope_end, +- dmaru, DMAR_TYPE, &igd); +- +- if ( igd ) +- igd_drhd_address = dmaru->address; ++ dmaru, DMAR_TYPE); + + if ( dmaru->include_all ) + { +@@ -504,7 +507,7 @@ acpi_parse_one_rmrr(struct acpi_dmar_ent + struct acpi_rmrr_unit *rmrru; + void *dev_scope_start, *dev_scope_end; + u64 base_addr = rmrr->base_address, end_addr = rmrr->end_address; +- int ret, igd = 0; ++ int ret; + + if ( (ret = acpi_dmar_check_length(header, sizeof(*rmrr))) != 0 ) + return ret; +@@ -536,7 +539,7 @@ acpi_parse_one_rmrr(struct acpi_dmar_ent + dev_scope_start = (void *)(rmrr + 1); + dev_scope_end = ((void *)rmrr) + header->length; + ret = acpi_parse_dev_scope(dev_scope_start, dev_scope_end, +- rmrru, RMRR_TYPE, &igd); ++ rmrru, RMRR_TYPE); + + if ( ret || (rmrru->scope.devices_cnt == 0) ) + xfree(rmrru); +@@ -601,7 +604,7 @@ acpi_parse_one_atsr(struct acpi_dmar_ent + { + struct acpi_table_atsr *atsr = (struct acpi_table_atsr *)header; + struct acpi_atsr_unit *atsru; +- int ret, igd = 0; ++ int ret; + static int all_ports; + void *dev_scope_start, *dev_scope_end; + +@@ -622,7 +625,7 @@ acpi_parse_one_atsr(struct acpi_dmar_ent + dev_scope_start = (void *)(atsr + 1); + dev_scope_end = ((void *)atsr) + header->length; + ret = acpi_parse_dev_scope(dev_scope_start, dev_scope_end, +- atsru, ATSR_TYPE, &igd); ++ atsru, ATSR_TYPE); + } + else + { +--- a/xen/drivers/passthrough/vtd/extern.h ++++ b/xen/drivers/passthrough/vtd/extern.h @@ -26,6 +26,7 @@ extern int qinval_enabled; @@ -170,10 +207,8 @@ Index: xen-4.0.1-testing/xen/drivers/passthrough/vtd/extern.h +void me_wifi_quirk(struct domain *domain, u8 bus, u8 devfn, int map); #endif // _VTD_EXTERN_H_ -Index: xen-4.0.1-testing/xen/drivers/passthrough/vtd/iommu.c -=================================================================== ---- xen-4.0.1-testing.orig/xen/drivers/passthrough/vtd/iommu.c -+++ xen-4.0.1-testing/xen/drivers/passthrough/vtd/iommu.c +--- a/xen/drivers/passthrough/vtd/iommu.c ++++ b/xen/drivers/passthrough/vtd/iommu.c @@ -43,7 +43,6 @@ #endif @@ -247,35 +282,43 @@ Index: xen-4.0.1-testing/xen/drivers/passthrough/vtd/iommu.c } static void iommu_flush_all(void) -@@ -688,10 +716,26 @@ static int iommu_set_root_entry(struct i +@@ -688,24 +716,13 @@ static int iommu_set_root_entry(struct i return 0; } --static void iommu_enable_translation(struct iommu *iommu) -+static void iommu_enable_translation(struct acpi_drhd_unit *drhd) +-#define GGC 0x52 +-#define GGC_MEMORY_VT_ENABLED (0x8 << 8) +-static int is_igd_vt_enabled(void) +-{ +- unsigned short ggc; +- +- /* integrated graphics on Intel platforms is located at 0:2.0 */ +- ggc = pci_conf_read16(0, 2, 0, GGC); +- return ( ggc & GGC_MEMORY_VT_ENABLED ? 1 : 0 ); +-} +- + static void iommu_enable_translation(struct acpi_drhd_unit *drhd) { u32 sts; unsigned long flags; -+ struct iommu *iommu = drhd->iommu; -+ + struct iommu *iommu = drhd->iommu; + +- if ( !is_igd_vt_enabled() && is_igd_drhd(drhd) ) + if ( is_igd_drhd(drhd) && !is_igd_vt_enabled_quirk() ) -+ { -+ if ( force_iommu ) -+ panic("BIOS did not enable IGD for VT properly, crash Xen for security purpose!\n"); -+ else -+ { -+ dprintk(XENLOG_WARNING VTDPREFIX, -+ "BIOS did not enable IGD for VT properly. Disabling IGD VT-d engine.\n"); -+ return; -+ } -+ } -+ + { + if ( force_iommu ) + panic("BIOS did not enable IGD for VT properly, crash Xen for security purpose!\n"); +@@ -717,6 +734,9 @@ static void iommu_enable_translation(str + } + } + + /* apply platform specific errata workarounds */ + vtd_ops_preamble_quirk(iommu); - ++ if ( iommu_verbose ) dprintk(VTDPREFIX, -@@ -705,6 +749,9 @@ static void iommu_enable_translation(str + "iommu_enable_translation: iommu->reg = %p\n", iommu->reg); +@@ -729,6 +749,9 @@ static void iommu_enable_translation(str (sts & DMA_GSTS_TES), sts); spin_unlock_irqrestore(&iommu->register_lock, flags); @@ -285,7 +328,7 @@ Index: xen-4.0.1-testing/xen/drivers/passthrough/vtd/iommu.c /* Disable PMRs when VT-d engine takes effect per spec definition */ disable_pmr(iommu); } -@@ -714,6 +761,9 @@ static void iommu_disable_translation(st +@@ -738,6 +761,9 @@ static void iommu_disable_translation(st u32 sts; unsigned long flags; @@ -295,7 +338,7 @@ Index: xen-4.0.1-testing/xen/drivers/passthrough/vtd/iommu.c spin_lock_irqsave(&iommu->register_lock, flags); sts = dmar_readl(iommu->reg, DMAR_GSTS_REG); dmar_writel(iommu->reg, DMAR_GCMD_REG, sts & (~DMA_GCMD_TE)); -@@ -722,6 +772,9 @@ static void iommu_disable_translation(st +@@ -746,6 +772,9 @@ static void iommu_disable_translation(st IOMMU_WAIT_OP(iommu, DMAR_GSTS_REG, dmar_readl, !(sts & DMA_GSTS_TES), sts); spin_unlock_irqrestore(&iommu->register_lock, flags); @@ -305,7 +348,7 @@ Index: xen-4.0.1-testing/xen/drivers/passthrough/vtd/iommu.c } enum faulttype { -@@ -1065,6 +1118,7 @@ int __init iommu_alloc(struct acpi_drhd_ +@@ -1089,6 +1118,7 @@ int __init iommu_alloc(struct acpi_drhd_ xfree(iommu); return -ENOMEM; } @@ -313,21 +356,7 @@ Index: xen-4.0.1-testing/xen/drivers/passthrough/vtd/iommu.c iommu->reg = map_to_nocache_virt(nr_iommus, drhd->address); iommu->index = nr_iommus++; -@@ -1178,7 +1232,6 @@ static int intel_iommu_domain_init(struc - - static void intel_iommu_dom0_init(struct domain *d) - { -- struct iommu *iommu; - struct acpi_drhd_unit *drhd; - - if ( !iommu_passthrough && !need_iommu(d) ) -@@ -1194,12 +1247,11 @@ static void intel_iommu_dom0_init(struct - - for_each_drhd_unit ( drhd ) - { -- iommu = drhd->iommu; -- iommu_enable_translation(iommu); -+ iommu_enable_translation(drhd); +@@ -1221,7 +1251,7 @@ static void intel_iommu_dom0_init(struct } } @@ -336,7 +365,7 @@ Index: xen-4.0.1-testing/xen/drivers/passthrough/vtd/iommu.c struct domain *domain, struct iommu *iommu, u8 bus, u8 devfn) -@@ -1301,6 +1353,8 @@ static int domain_context_mapping_one( +@@ -1324,6 +1354,8 @@ static int domain_context_mapping_one( unmap_vtd_domain_page(context_entries); @@ -345,7 +374,7 @@ Index: xen-4.0.1-testing/xen/drivers/passthrough/vtd/iommu.c return 0; } -@@ -1382,7 +1436,7 @@ static int domain_context_mapping(struct +@@ -1398,7 +1430,7 @@ static int domain_context_mapping(struct return ret; } @@ -354,7 +383,7 @@ Index: xen-4.0.1-testing/xen/drivers/passthrough/vtd/iommu.c struct domain *domain, struct iommu *iommu, u8 bus, u8 devfn) -@@ -1430,6 +1484,8 @@ static int domain_context_unmap_one( +@@ -1446,6 +1478,8 @@ static int domain_context_unmap_one( spin_unlock(&iommu->lock); unmap_vtd_domain_page(context_entries); @@ -363,7 +392,7 @@ Index: xen-4.0.1-testing/xen/drivers/passthrough/vtd/iommu.c return 0; } -@@ -1928,19 +1984,6 @@ static void setup_dom0_rmrr(struct domai +@@ -1945,19 +1979,6 @@ static void setup_dom0_rmrr(struct domai spin_unlock(&pcidevs_lock); } @@ -383,7 +412,7 @@ Index: xen-4.0.1-testing/xen/drivers/passthrough/vtd/iommu.c int intel_vtd_setup(void) { struct acpi_drhd_unit *drhd; -@@ -1949,7 +1992,7 @@ int intel_vtd_setup(void) +@@ -1966,7 +1987,7 @@ int intel_vtd_setup(void) if ( list_empty(&acpi_drhd_units) ) return -ENODEV; @@ -392,19 +421,8 @@ Index: xen-4.0.1-testing/xen/drivers/passthrough/vtd/iommu.c irq_to_iommu = xmalloc_array(struct iommu*, nr_irqs); BUG_ON(!irq_to_iommu); -@@ -2164,7 +2207,7 @@ static void vtd_resume(void) - (u32) iommu_state[i][DMAR_FEUADDR_REG]); - spin_unlock_irqrestore(&iommu->register_lock, flags); - -- iommu_enable_translation(iommu); -+ iommu_enable_translation(drhd); - } - } - -Index: xen-4.0.1-testing/xen/drivers/passthrough/vtd/iommu.h -=================================================================== ---- xen-4.0.1-testing.orig/xen/drivers/passthrough/vtd/iommu.h -+++ xen-4.0.1-testing/xen/drivers/passthrough/vtd/iommu.h +--- a/xen/drivers/passthrough/vtd/iommu.h ++++ b/xen/drivers/passthrough/vtd/iommu.h @@ -501,6 +501,7 @@ struct intel_iommu { struct qi_ctrl qi_ctrl; struct ir_ctrl ir_ctrl; @@ -413,11 +431,9 @@ Index: xen-4.0.1-testing/xen/drivers/passthrough/vtd/iommu.h }; #endif -Index: xen-4.0.1-testing/xen/drivers/passthrough/vtd/quirks.c -=================================================================== --- /dev/null -+++ xen-4.0.1-testing/xen/drivers/passthrough/vtd/quirks.c -@@ -0,0 +1,262 @@ ++++ b/xen/drivers/passthrough/vtd/quirks.c +@@ -0,0 +1,263 @@ +/* + * Copyright (c) 2010, Intel Corporation. + * @@ -672,6 +688,7 @@ Index: xen-4.0.1-testing/xen/drivers/passthrough/vtd/quirks.c + case 0x00858086: + case 0x42388086: + case 0x422b8086: ++ case 0x422c8086: + map_me_phantom_function(domain, 22, map); + break; + default: @@ -680,10 +697,8 @@ Index: xen-4.0.1-testing/xen/drivers/passthrough/vtd/quirks.c + + } +} -Index: xen-4.0.1-testing/xen/drivers/passthrough/vtd/vtd.h -=================================================================== ---- xen-4.0.1-testing.orig/xen/drivers/passthrough/vtd/vtd.h -+++ xen-4.0.1-testing/xen/drivers/passthrough/vtd/vtd.h +--- a/xen/drivers/passthrough/vtd/vtd.h ++++ b/xen/drivers/passthrough/vtd/vtd.h @@ -23,6 +23,9 @@ #include @@ -713,10 +728,8 @@ Index: xen-4.0.1-testing/xen/drivers/passthrough/vtd/vtd.h -void iommu_free(struct acpi_drhd_unit *drhd); - #endif // _VTD_H_ -Index: xen-4.0.1-testing/xen/drivers/passthrough/vtd/x86/vtd.c -=================================================================== ---- xen-4.0.1-testing.orig/xen/drivers/passthrough/vtd/x86/vtd.c -+++ xen-4.0.1-testing/xen/drivers/passthrough/vtd/x86/vtd.c +--- a/xen/drivers/passthrough/vtd/x86/vtd.c ++++ b/xen/drivers/passthrough/vtd/x86/vtd.c @@ -27,6 +27,7 @@ #include "../iommu.h" #include "../dmar.h" @@ -725,10 +738,8 @@ Index: xen-4.0.1-testing/xen/drivers/passthrough/vtd/x86/vtd.c /* * iommu_inclusive_mapping: when set, all memory below 4GB is included in dom0 -Index: xen-4.0.1-testing/xen/include/asm-x86/fixmap.h -=================================================================== ---- xen-4.0.1-testing.orig/xen/include/asm-x86/fixmap.h -+++ xen-4.0.1-testing/xen/include/asm-x86/fixmap.h +--- a/xen/include/asm-x86/fixmap.h ++++ b/xen/include/asm-x86/fixmap.h @@ -52,6 +52,7 @@ enum fixed_addresses { FIX_MSIX_IO_RESERV_BASE, FIX_MSIX_IO_RESERV_END = FIX_MSIX_IO_RESERV_BASE + FIX_MSIX_MAX_PAGES -1, diff --git a/22337-vtd-scan-single-func.patch b/22337-vtd-scan-single-func.patch deleted file mode 100644 index a59267a..0000000 --- a/22337-vtd-scan-single-func.patch +++ /dev/null @@ -1,22 +0,0 @@ -# HG changeset patch -# User Keir Fraser -# Date 1288371977 -3600 -# Node ID 7afd8dd1d6cb97484d263311f3f0e6ab74d27ed3 -# Parent 49803ac994f4094719ec2c3b67d82561a24ba293 -VT-d: only scan secondary functions on multi-function devices - -Signed-off-by: Jan Beulich - ---- a/xen/drivers/passthrough/pci.c -+++ b/xen/drivers/passthrough/pci.c -@@ -442,6 +442,10 @@ int __init scan_pci_devices(void) - spin_unlock(&pcidevs_lock); - return -EINVAL; - } -+ -+ if ( !func && !(pci_conf_read8(bus, dev, func, -+ PCI_HEADER_TYPE) & 0x80) ) -+ break; - } - } - } diff --git a/22348-vtd-check-secbus-devfn.patch b/22348-vtd-check-secbus-devfn.patch deleted file mode 100644 index d57f620..0000000 --- a/22348-vtd-check-secbus-devfn.patch +++ /dev/null @@ -1,52 +0,0 @@ -# HG changeset patch -# User Keir Fraser -# Date 1288772331 0 -# Node ID 2dfba250c50bafac4e333d84450324daedf5ae2c -# Parent 16093532f384eee02518520662a38ad16915b063 -VT-d: fix device assignment failure (regression from Xen c/s 19805:2f1fa2215e60) -References: bnc#647681 - -If the device at :00.0 is the device the mapping operation was -initiated for, trying to map it a second time will fail, and hence -this second mapping attempt must be prevented (as was done prior to -said c/s). - -While at it, simplify the code a little, too. - -Signed-off-by: Jan Beulich -Acked-by: Weidong Han - ---- a/xen/drivers/passthrough/vtd/iommu.c -+++ b/xen/drivers/passthrough/vtd/iommu.c -@@ -1402,23 +1402,16 @@ static int domain_context_mapping(struct - if ( find_upstream_bridge(&bus, &devfn, &secbus) < 1 ) - break; - -- /* PCIe to PCI/PCIx bridge */ -- if ( pdev_type(bus, devfn) == DEV_TYPE_PCIe2PCI_BRIDGE ) -- { -- ret = domain_context_mapping_one(domain, drhd->iommu, bus, devfn); -- if ( ret ) -- return ret; -+ ret = domain_context_mapping_one(domain, drhd->iommu, bus, devfn); - -- /* -- * Devices behind PCIe-to-PCI/PCIx bridge may generate -- * different requester-id. It may originate from devfn=0 -- * on the secondary bus behind the bridge. Map that id -- * as well. -- */ -+ /* -+ * Devices behind PCIe-to-PCI/PCIx bridge may generate different -+ * requester-id. It may originate from devfn=0 on the secondary bus -+ * behind the bridge. Map that id as well if we didn't already. -+ */ -+ if ( !ret && pdev_type(bus, devfn) == DEV_TYPE_PCIe2PCI_BRIDGE && -+ (secbus != pdev->bus || pdev->devfn != 0) ) - ret = domain_context_mapping_one(domain, drhd->iommu, secbus, 0); -- } -- else /* Legacy PCI bridge */ -- ret = domain_context_mapping_one(domain, drhd->iommu, bus, devfn); - - break; - diff --git a/22369-xend-pci-passthru-fix.patch b/22369-xend-pci-passthru-fix.patch index f4a8be6..40be35c 100644 --- a/22369-xend-pci-passthru-fix.patch +++ b/22369-xend-pci-passthru-fix.patch @@ -38,10 +38,11 @@ I've done the same here. Signed-off-by: Jim Fehlig -diff -r 28a160746815 -r 461b9d3a643a tools/python/xen/util/pci.py ---- a/tools/python/xen/util/pci.py Wed Oct 27 12:24:28 2010 +0100 -+++ b/tools/python/xen/util/pci.py Thu Oct 28 15:27:09 2010 -0600 -@@ -240,10 +240,16 @@ +Index: xen-4.0.2-testing/tools/python/xen/util/pci.py +=================================================================== +--- xen-4.0.2-testing.orig/tools/python/xen/util/pci.py ++++ xen-4.0.2-testing/tools/python/xen/util/pci.py +@@ -240,10 +240,16 @@ def pci_convert_sxp_to_dict(dev_sxp): pci_dev_info = dict(pci_dev[1:]) if 'opts' in pci_dev_info: pci_dev_info['opts'] = pci_opts_list_from_sxp(pci_dev) diff --git a/22388-x2apic-panic.patch b/22388-x2apic-panic.patch index 34ff1f5..ab58647 100644 --- a/22388-x2apic-panic.patch +++ b/22388-x2apic-panic.patch @@ -16,9 +16,11 @@ depends on VT-d Interrupt remapping). Signed-off-by: Weidong Han ---- a/xen/arch/x86/apic.c -+++ b/xen/arch/x86/apic.c -@@ -1000,22 +1000,11 @@ static void enable_bsp_x2apic(void) +Index: xen-4.0.2-testing/xen/arch/x86/apic.c +=================================================================== +--- xen-4.0.2-testing.orig/xen/arch/x86/apic.c ++++ xen-4.0.2-testing/xen/arch/x86/apic.c +@@ -1001,22 +1001,11 @@ static void enable_bsp_x2apic(void) } else { diff --git a/22389-amd-iommu-decls.patch b/22389-amd-iommu-decls.patch deleted file mode 100644 index de6e7ab..0000000 --- a/22389-amd-iommu-decls.patch +++ /dev/null @@ -1,33 +0,0 @@ -# HG changeset patch -# User Keir Fraser -# Date 1289906913 0 -# Node ID 9b2ca938cfe6c0639471e24634bc4a48d889b412 -# Parent 87f248de52304bc96a80dc093250fed0197f37e0 -amd iommu: Fix HV crash with 32bit pv_ops kernel - -Signed-off-by: Wei Wang -Tested-by: Conny Seidel - ---- a/xen/include/asm-x86/hvm/svm/amd-iommu-proto.h -+++ b/xen/include/asm-x86/hvm/svm/amd-iommu-proto.h -@@ -32,9 +32,6 @@ - #define DMA_32BIT_MASK 0x00000000ffffffffULL - #define PAGE_ALIGN(addr) (((addr) + PAGE_SIZE - 1) & PAGE_MASK) - --extern int amd_iommu_debug; --extern int amd_iommu_perdev_intremap; -- - #define AMD_IOMMU_DEBUG(fmt, args...) \ - do \ - { \ ---- a/xen/include/xen/iommu.h -+++ b/xen/include/xen/iommu.h -@@ -30,6 +30,8 @@ extern bool_t iommu_enabled; - extern bool_t force_iommu, iommu_verbose; - extern bool_t iommu_workaround_bios_bug, iommu_passthrough; - extern bool_t iommu_snoop, iommu_qinval, iommu_intremap; -+extern bool_t amd_iommu_debug; -+extern bool_t amd_iommu_perdev_intremap; - - #define domain_hvm_iommu(d) (&d->arch.hvm_domain.hvm_iommu) - diff --git a/22408-vpmu-nehalem.patch b/22408-vpmu-nehalem.patch new file mode 100644 index 0000000..5de623d --- /dev/null +++ b/22408-vpmu-nehalem.patch @@ -0,0 +1,21 @@ +References: bnc#655438 + +# HG changeset patch +# User Keir Fraser +# Date 1290173202 0 +# Node ID b7ed352fa6100104374000cdbd845bbfc6478f08 +# Parent 437576a0f2026ded6dcc4b11558714dad1d1d042 +VPMU: Add the Intel CPU X7542 to the list of supported prcocessors + +Signed-off-by: Dietmar Hahn + +--- a/xen/arch/x86/hvm/vmx/vpmu.c ++++ b/xen/arch/x86/hvm/vmx/vpmu.c +@@ -96,6 +96,7 @@ void vpmu_initialise(struct vcpu *v) + case 23: + case 26: + case 29: ++ case 46: + vpmu->arch_vpmu_ops = &core2_vpmu_ops; + break; + } diff --git a/22416-acpi-check-mwait.patch b/22416-acpi-check-mwait.patch deleted file mode 100644 index d28d6e7..0000000 --- a/22416-acpi-check-mwait.patch +++ /dev/null @@ -1,21 +0,0 @@ -# HG changeset patch -# User Keir Fraser -# Date 1290453180 0 -# Node ID 0cc4ed1ce1f34ce442ed4da106e555931c895395 -# Parent 899131a8f9d2b99acc4bbe18593952d30446e71b -x86: Check for MWAIT in CPUID before using it in ACPI idle code. - -Signed-off-by: Keir Fraser - ---- a/xen/arch/x86/acpi/cpu_idle.c -+++ b/xen/arch/x86/acpi/cpu_idle.c -@@ -717,7 +717,8 @@ static void set_cx( - { - case ACPI_ADR_SPACE_FIXED_HARDWARE: - if ( xen_cx->reg.bit_width == VENDOR_INTEL && -- xen_cx->reg.bit_offset == NATIVE_CSTATE_BEYOND_HALT ) -+ xen_cx->reg.bit_offset == NATIVE_CSTATE_BEYOND_HALT && -+ boot_cpu_has(X86_FEATURE_MWAIT) ) - cx->entry_method = ACPI_CSTATE_EM_FFH; - else - cx->entry_method = ACPI_CSTATE_EM_HALT; diff --git a/22417-vpmu-nehalem.patch b/22417-vpmu-nehalem.patch deleted file mode 100644 index bfe2de2..0000000 --- a/22417-vpmu-nehalem.patch +++ /dev/null @@ -1,123 +0,0 @@ -References: bnc#655438 - -# HG changeset patch -# User Keir Fraser -# Date 1290453394 0 -# Node ID c0c1f5f0745e25af6f8b4a1006637d98a8d63581 -# Parent 0cc4ed1ce1f34ce442ed4da106e555931c895395 -x86 hvm: Fix VPMU issue on Nehalem cpus - -Fix an issue on Nehalem cpus where performance counter overflows may -lead to endless interrupt loops on this cpu. - -Signed-off-by: Dietmar Hahn - -# HG changeset patch -# User Keir Fraser -# Date 1290173202 0 -# Node ID b7ed352fa6100104374000cdbd845bbfc6478f08 -# Parent 437576a0f2026ded6dcc4b11558714dad1d1d042 -VPMU: Add the Intel CPU X7542 to the list of supported prcocessors - -Signed-off-by: Dietmar Hahn - ---- a/xen/arch/x86/hvm/vmx/vpmu.c -+++ b/xen/arch/x86/hvm/vmx/vpmu.c -@@ -96,6 +96,7 @@ void vpmu_initialise(struct vcpu *v) - case 23: - case 26: - case 29: -+ case 46: - vpmu->arch_vpmu_ops = &core2_vpmu_ops; - break; - } ---- a/xen/arch/x86/hvm/vmx/vpmu_core2.c -+++ b/xen/arch/x86/hvm/vmx/vpmu_core2.c -@@ -35,6 +35,68 @@ - #include - #include - -+/* -+ * QUIRK to workaround an issue on Nehalem processors currently seen -+ * on family 6 cpus E5520 (model 26) and X7542 (model 46). -+ * The issue leads to endless PMC interrupt loops on the processor. -+ * If the interrupt handler is running and a pmc reaches the value 0, this -+ * value remains forever and it triggers immediately a new interrupt after -+ * finishing the handler. -+ * A workaround is to read all flagged counters and if the value is 0 write -+ * 1 (or another value != 0) into it. -+ * There exist no errata and the real cause of this behaviour is unknown. -+ */ -+bool_t __read_mostly is_pmc_quirk; -+ -+static void check_pmc_quirk(void) -+{ -+ u8 family = current_cpu_data.x86; -+ u8 cpu_model = current_cpu_data.x86_model; -+ is_pmc_quirk = 0; -+ if ( family == 6 ) -+ { -+ if ( cpu_model == 46 || cpu_model == 26 ) -+ is_pmc_quirk = 1; -+ } -+} -+ -+static int core2_get_pmc_count(void); -+static void handle_pmc_quirk(u64 msr_content) -+{ -+ int num_gen_pmc = core2_get_pmc_count(); -+ int num_fix_pmc = 3; -+ int i; -+ u64 val; -+ -+ if ( !is_pmc_quirk ) -+ return; -+ -+ val = msr_content; -+ for ( i = 0; i < num_gen_pmc; i++ ) -+ { -+ if ( val & 0x1 ) -+ { -+ u64 cnt; -+ rdmsrl(MSR_P6_PERFCTR0 + i, cnt); -+ if ( cnt == 0 ) -+ wrmsrl(MSR_P6_PERFCTR0 + i, 1); -+ } -+ val >>= 1; -+ } -+ val = msr_content >> 32; -+ for ( i = 0; i < num_fix_pmc; i++ ) -+ { -+ if ( val & 0x1 ) -+ { -+ u64 cnt; -+ rdmsrl(MSR_CORE_PERF_FIXED_CTR0 + i, cnt); -+ if ( cnt == 0 ) -+ wrmsrl(MSR_CORE_PERF_FIXED_CTR0 + i, 1); -+ } -+ val >>= 1; -+ } -+} -+ - u32 core2_counters_msr[] = { - MSR_CORE_PERF_FIXED_CTR0, - MSR_CORE_PERF_FIXED_CTR1, -@@ -497,6 +559,10 @@ static int core2_vpmu_do_interrupt(struc - rdmsrl(MSR_CORE_PERF_GLOBAL_STATUS, msr_content); - if ( !msr_content ) - return 0; -+ -+ if ( is_pmc_quirk ) -+ handle_pmc_quirk(msr_content); -+ - core2_vpmu_cxt->global_ovf_status |= msr_content; - msr_content = 0xC000000700000000 | ((1 << core2_get_pmc_count()) - 1); - wrmsrl(MSR_CORE_PERF_GLOBAL_OVF_CTRL, msr_content); -@@ -518,6 +584,7 @@ static int core2_vpmu_do_interrupt(struc - - static void core2_vpmu_initialise(struct vcpu *v) - { -+ check_pmc_quirk(); - } - - static void core2_vpmu_destroy(struct vcpu *v) diff --git a/22431-p2m-remove-bug-check.patch b/22431-p2m-remove-bug-check.patch index d7ba909..1797e2e 100644 --- a/22431-p2m-remove-bug-check.patch +++ b/22431-p2m-remove-bug-check.patch @@ -9,8 +9,10 @@ and is explicitly _not_ seeing the MFN that's known to be owned. Signed-off-by: Tim Deegan ---- a/xen/arch/x86/mm/p2m.c -+++ b/xen/arch/x86/mm/p2m.c +Index: xen-4.0.2-testing/xen/arch/x86/mm/p2m.c +=================================================================== +--- xen-4.0.2-testing.orig/xen/arch/x86/mm/p2m.c ++++ xen-4.0.2-testing/xen/arch/x86/mm/p2m.c @@ -2186,9 +2186,6 @@ guest_physmap_add_entry(struct domain *d P2M_DEBUG("aliased! mfn=%#lx, old gfn=%#lx, new gfn=%#lx\n", mfn + i, ogfn, gfn + i); diff --git a/22448-x86_64-gdt-ldt-fault-filter.patch b/22448-x86_64-gdt-ldt-fault-filter.patch deleted file mode 100644 index ad1f0e2..0000000 --- a/22448-x86_64-gdt-ldt-fault-filter.patch +++ /dev/null @@ -1,57 +0,0 @@ -# HG changeset patch -# User Keir Fraser -# Date 1291041272 0 -# Node ID 5cd9612db2bba51f63ff7897aca4c72cc4b8e8c2 -# Parent aba70e59a90dcb0cacc2c6834a6ce19d03d88601 -x86-64: don't crash Xen upon direct pv guest access to GDT/LDT mapping area - -handle_gdt_ldt_mapping_fault() is intended to deal with indirect -accesses (i.e. those caused by descriptor loads) to the GDT/LDT -mapping area only. While for 32-bit segment limits indeed prevent the -function being entered for direct accesses (i.e. a #GP fault will be -raised even before the address translation gets done, on 64-bit even -user mode accesses would lead to control reaching the BUG_ON() at the -beginning of that function. - -Fortunately the fix is simple: Since the guest kernel runs in ring 3, -any guest direct access will have the "user mode" bit set, whereas -descriptor loads always do the translations to access the actual -descriptors as kernel mode ones. - -Signed-off-by: Jan Beulich - -Further, relax the BUG_ON() in handle_gdt_ldt_mapping_fault() to a -check-and-bail. This avoids any problems in future, if we don't -execute x86_64 guest kernels in ring 3 (e.g., because we use a -lightweight HVM container). - -Signed-off-by: Keir Fraser - ---- a/xen/arch/x86/traps.c -+++ b/xen/arch/x86/traps.c -@@ -1051,8 +1051,14 @@ static int handle_gdt_ldt_mapping_fault( - unsigned int is_ldt_area = (offset >> (GDT_LDT_VCPU_VA_SHIFT-1)) & 1; - unsigned int vcpu_area = (offset >> GDT_LDT_VCPU_VA_SHIFT); - -- /* Should never fault in another vcpu's area. */ -- BUG_ON(vcpu_area != curr->vcpu_id); -+ /* -+ * If the fault is in another vcpu's area, it cannot be due to -+ * a GDT/LDT descriptor load. Thus we can reasonably exit immediately, and -+ * indeed we have to since map_ldt_shadow_page() works correctly only on -+ * accesses to a vcpu's own area. -+ */ -+ if ( vcpu_area != curr->vcpu_id ) -+ return 0; - - /* Byte offset within the gdt/ldt sub-area. */ - offset &= (1UL << (GDT_LDT_VCPU_VA_SHIFT-1)) - 1UL; -@@ -1223,7 +1229,7 @@ static int fixup_page_fault(unsigned lon - - if ( unlikely(IN_HYPERVISOR_RANGE(addr)) ) - { -- if ( !(regs->error_code & PFEC_reserved_bit) && -+ if ( !(regs->error_code & (PFEC_user_mode | PFEC_reserved_bit)) && - (addr >= GDT_LDT_VIRT_START) && (addr < GDT_LDT_VIRT_END) ) - return handle_gdt_ldt_mapping_fault( - addr - GDT_LDT_VIRT_START, regs); diff --git a/22451-hvm-cap-clobber.patch b/22451-hvm-cap-clobber.patch deleted file mode 100644 index 93335b7..0000000 --- a/22451-hvm-cap-clobber.patch +++ /dev/null @@ -1,43 +0,0 @@ -# HG changeset patch -# User Keir Fraser -# Date 1291116848 0 -# Node ID 8420b82c22c2cad54860ffdbe8bcec21c65c86be -# Parent d281061e6ec06bbbf8e2b0fadbeb9d1a04bc32e2 -x86 hvm: Do not overwrite boot-cpu capability data on VMX/SVM startup. - -Apparently required back in the earliest days of Xen, we now properly -initialise CPU capabilities early during bootstrap. Re-writing -capability data later now causes problems if specific features have -been deliberately masked out. - -Thanks to Weidong Han at Intel for finding such a bug where XSAVE -feature is masked out by default, but then erroneously written back -during VMX initialisation. This would cause memory corruption problems -during boot for XSAVE-capable systems. - -Signed-off-by: Keir Fraser - ---- a/xen/arch/x86/hvm/svm/svm.c -+++ b/xen/arch/x86/hvm/svm/svm.c -@@ -915,9 +915,6 @@ void start_svm(struct cpuinfo_x86 *c) - return; - } - -- /* Xen does not fill x86_capability words except 0. */ -- boot_cpu_data.x86_capability[5] = cpuid_ecx(0x80000001); -- - if ( !test_bit(X86_FEATURE_SVME, &boot_cpu_data.x86_capability) ) - return; - ---- a/xen/arch/x86/hvm/vmx/vmx.c -+++ b/xen/arch/x86/hvm/vmx/vmx.c -@@ -1433,9 +1433,6 @@ void start_vmx(void) - return; - } - -- /* Xen does not fill x86_capability words except 0. */ -- boot_cpu_data.x86_capability[4] = cpuid_ecx(1); -- - if ( !test_bit(X86_FEATURE_VMXE, &boot_cpu_data.x86_capability) ) - return; - diff --git a/22452-x86-irq-migrate-directed-eoi.patch b/22452-x86-irq-migrate-directed-eoi.patch deleted file mode 100644 index 23cc1a0..0000000 --- a/22452-x86-irq-migrate-directed-eoi.patch +++ /dev/null @@ -1,62 +0,0 @@ -# HG changeset patch -# User Keir Fraser -# Date 1291234227 0 -# Node ID 62bf12040b0f4d802dc7e1cd61294776c8a41a89 -# Parent 8420b82c22c2cad54860ffdbe8bcec21c65c86be -x86: fix IRQ migration when using directed EOI (broken with c/s 20465) - -In directed-EOI mode, there is no chance to do the migration in -mask_and_ack_level_ioapic_irq(), as the remote IRR bit can't possibly -be clear after issuing the EOI to the LAPIC. Consequently, there's no -point to even try. Instead, migration must be done in -end_level_ioapic_irq(), and it requires masking the interrupt source -prior to issuing the EOI to the IO-APIC. - -Signed-off-by: Jan Beulich - ---- a/xen/arch/x86/io_apic.c -+++ b/xen/arch/x86/io_apic.c -@@ -1642,11 +1642,14 @@ static void mask_and_ack_level_ioapic_ir - - ack_APIC_irq(); - -+ if ( directed_eoi_enabled ) -+ return; -+ - if ((irq_desc[irq].status & IRQ_MOVE_PENDING) && - !io_apic_level_ack_pending(irq)) -- move_native_irq(irq); -+ move_masked_irq(irq); - -- if (!directed_eoi_enabled && !(v & (1 << (i & 0x1f)))) { -+ if ( !(v & (1 << (i & 0x1f))) ) { - atomic_inc(&irq_mis_count); - spin_lock(&ioapic_lock); - __edge_IO_APIC_irq(irq); -@@ -1662,12 +1665,22 @@ static void end_level_ioapic_irq (unsign - - if ( !ioapic_ack_new ) - { -- if ( irq_desc[irq].status & IRQ_DISABLED ) -- return; -- - if ( directed_eoi_enabled ) -+ { -+ if ( !(irq_desc[irq].status & (IRQ_DISABLED|IRQ_MOVE_PENDING)) ) -+ { -+ eoi_IO_APIC_irq(irq); -+ return; -+ } -+ -+ mask_IO_APIC_irq(irq); - eoi_IO_APIC_irq(irq); -- else -+ if ( (irq_desc[irq].status & IRQ_MOVE_PENDING) && -+ !io_apic_level_ack_pending(irq) ) -+ move_masked_irq(irq); -+ } -+ -+ if ( !(irq_desc[irq].status & IRQ_DISABLED) ) - unmask_IO_APIC_irq(irq); - - return; diff --git a/22466-x86-sis-apic-bug.patch b/22466-x86-sis-apic-bug.patch deleted file mode 100644 index 4d3e671..0000000 --- a/22466-x86-sis-apic-bug.patch +++ /dev/null @@ -1,36 +0,0 @@ -# HG changeset patch -# User Keir Fraser -# Date 1291746724 0 -# Node ID bfd13358b8bf3a6ca49702d773435a67f1ea5551 -# Parent d4b35162b3a11f7d9c28501192b7e231609e561d -x86: remove BUG_ON() from QUIRK_IOAPIC_*_REGSEL handler -References: bnc#657692 - -Since (non-pvops, 32-bit only up to 2.6.27) Linux would report "BAD" -unconditionally on all SiS chipset versions (it only looks for a PCI -device at 0000:00:00.0 with SiS as the vendor), we must not crash if -the report on a 64-bit hypervisor doesn't match the #define (which is -zero). - -While we could honor the quirk indication even on 64-bit, it doesn't -seem worthwhile, as there's no evidence that newer SiS chipsets -(supporting 64-bit CPUs) are actually affected. - -This should also address bug 1687 (mis-reported, however, afaict). - -Signed-off-by: Jan Beulich - ---- a/xen/arch/x86/platform_hypercall.c -+++ b/xen/arch/x86/platform_hypercall.c -@@ -192,7 +192,10 @@ ret_t do_platform_op(XEN_GUEST_HANDLE(xe - dprintk(XENLOG_INFO, "Domain 0 says that IO-APIC REGSEL is %s\n", - sis_apic_bug ? "bad" : "good"); - #else -- BUG_ON(sis_apic_bug != (quirk_id == QUIRK_IOAPIC_BAD_REGSEL)); -+ if ( sis_apic_bug != (quirk_id == QUIRK_IOAPIC_BAD_REGSEL) ) -+ dprintk(XENLOG_WARNING, -+ "Domain 0 thinks that IO-APIC REGSEL is %s\n", -+ sis_apic_bug ? "good" : "bad"); - #endif - break; - default: diff --git a/22470-vlapic-tick-loss.patch b/22470-vlapic-tick-loss.patch deleted file mode 100644 index 1149589..0000000 --- a/22470-vlapic-tick-loss.patch +++ /dev/null @@ -1,28 +0,0 @@ -# HG changeset patch -# User Keir Fraser -# Date 1291883699 0 -# Node ID 0c97247c64d61511acff37d1903cb304b387f397 -# Parent 84a72f957fe9e1a5af3dfb8f53334faa555e22f8 -x86:vlapic: Fix possible guest tick losing after save/restore - -Guest vcpu may totally lose all ticks if the vlapic->pt.irq was not -restored during save/restore process. Fix it. - -Signed-off-by: Wei Gang - ---- a/xen/arch/x86/hvm/vlapic.c -+++ b/xen/arch/x86/hvm/vlapic.c -@@ -863,12 +863,12 @@ static void lapic_rearm(struct vlapic *s - unsigned long tmict = vlapic_get_reg(s, APIC_TMICT); - uint64_t period; - -+ s->pt.irq = vlapic_get_reg(s, APIC_LVTT) & APIC_VECTOR_MASK; - if ( (tmict = vlapic_get_reg(s, APIC_TMICT)) == 0 ) - return; - - period = ((uint64_t)APIC_BUS_CYCLE_NS * - (uint32_t)tmict * s->hw.timer_divisor); -- s->pt.irq = vlapic_get_reg(s, APIC_LVTT) & APIC_VECTOR_MASK; - create_periodic_time(vlapic_vcpu(s), &s->pt, period, - vlapic_lvtt_period(s) ? period : 0, - s->pt.irq, vlapic_pt_cb, diff --git a/22475-x2apic-cleanup.patch b/22475-x2apic-cleanup.patch index 433e9f9..46588d0 100644 --- a/22475-x2apic-cleanup.patch +++ b/22475-x2apic-cleanup.patch @@ -8,9 +8,11 @@ References: bnc#656369, bnc#658704 Signed-off-by: Keir Fraser ---- a/xen/arch/x86/apic.c -+++ b/xen/arch/x86/apic.c -@@ -67,12 +67,12 @@ static int enable_local_apic __initdata +Index: xen-4.0.2-testing/xen/arch/x86/apic.c +=================================================================== +--- xen-4.0.2-testing.orig/xen/arch/x86/apic.c ++++ xen-4.0.2-testing/xen/arch/x86/apic.c +@@ -67,12 +67,12 @@ static int enable_local_apic __initdata */ int apic_verbosity; @@ -26,7 +28,7 @@ Signed-off-by: Keir Fraser /* * The following vectors are part of the Linux architecture, there * is no hardware IRQ pin equivalent for them, they are triggered -@@ -944,30 +944,24 @@ no_apic: +@@ -945,30 +945,24 @@ no_apic: return -1; } @@ -68,7 +70,7 @@ Signed-off-by: Keir Fraser { /* * Interrupt remapping should be also enabled by BIOS when -@@ -977,39 +971,33 @@ static void enable_bsp_x2apic(void) +@@ -978,39 +972,33 @@ static void enable_bsp_x2apic(void) if ( !intremap_enabled() ) panic("Interrupt remapping is not enabled by BIOS while " "x2APIC is already enabled by BIOS!\n"); @@ -125,7 +127,7 @@ Signed-off-by: Keir Fraser { printk("Allocate ioapic_entries failed\n"); goto out; -@@ -1031,13 +1019,13 @@ static void enable_bsp_x2apic(void) +@@ -1032,13 +1020,13 @@ static void enable_bsp_x2apic(void) goto restore_out; } @@ -142,7 +144,7 @@ Signed-off-by: Keir Fraser } restore_out: -@@ -1049,24 +1037,6 @@ out: +@@ -1050,24 +1038,6 @@ out: free_ioapic_entries(ioapic_entries); } @@ -167,8 +169,10 @@ Signed-off-by: Keir Fraser void __init init_apic_mappings(void) { unsigned long apic_phys; ---- a/xen/arch/x86/cpu/common.c -+++ b/xen/arch/x86/cpu/common.c +Index: xen-4.0.2-testing/xen/arch/x86/cpu/common.c +=================================================================== +--- xen-4.0.2-testing.orig/xen/arch/x86/cpu/common.c ++++ xen-4.0.2-testing/xen/arch/x86/cpu/common.c @@ -250,8 +250,8 @@ static void __init early_cpu_detect(void c->x86 = 4; @@ -194,8 +198,10 @@ Signed-off-by: Keir Fraser } } ---- a/xen/arch/x86/genapic/x2apic.c -+++ b/xen/arch/x86/genapic/x2apic.c +Index: xen-4.0.2-testing/xen/arch/x86/genapic/x2apic.c +=================================================================== +--- xen-4.0.2-testing.orig/xen/arch/x86/genapic/x2apic.c ++++ xen-4.0.2-testing/xen/arch/x86/genapic/x2apic.c @@ -23,89 +23,44 @@ #include #include @@ -305,7 +311,7 @@ Signed-off-by: Keir Fraser { unsigned int cpu, cfg; unsigned long flags; -@@ -148,3 +103,34 @@ void send_IPI_mask_x2apic_cluster(const +@@ -148,3 +103,34 @@ void send_IPI_mask_x2apic_cluster(const local_irq_restore(flags); } @@ -340,8 +346,10 @@ Signed-off-by: Keir Fraser +{ + return x2apic_phys ? &apic_x2apic_phys : &apic_x2apic_cluster; +} ---- a/xen/arch/x86/setup.c -+++ b/xen/arch/x86/setup.c +Index: xen-4.0.2-testing/xen/arch/x86/setup.c +=================================================================== +--- xen-4.0.2-testing.orig/xen/arch/x86/setup.c ++++ xen-4.0.2-testing/xen/arch/x86/setup.c @@ -1006,9 +1006,6 @@ void __init __start_xen(unsigned long mb tboot_probe(); @@ -362,8 +370,10 @@ Signed-off-by: Keir Fraser percpu_free_unused_areas(); ---- a/xen/arch/x86/smpboot.c -+++ b/xen/arch/x86/smpboot.c +Index: xen-4.0.2-testing/xen/arch/x86/smpboot.c +=================================================================== +--- xen-4.0.2-testing.orig/xen/arch/x86/smpboot.c ++++ xen-4.0.2-testing/xen/arch/x86/smpboot.c @@ -325,8 +325,7 @@ void __devinit smp_callin(void) */ wait_for_init_deassert(&init_deasserted); @@ -374,8 +384,10 @@ Signed-off-by: Keir Fraser /* * (This works even if the APIC is not enabled.) ---- a/xen/drivers/passthrough/vtd/intremap.c -+++ b/xen/drivers/passthrough/vtd/intremap.c +Index: xen-4.0.2-testing/xen/drivers/passthrough/vtd/intremap.c +=================================================================== +--- xen-4.0.2-testing.orig/xen/drivers/passthrough/vtd/intremap.c ++++ xen-4.0.2-testing/xen/drivers/passthrough/vtd/intremap.c @@ -129,15 +129,10 @@ int iommu_supports_eim(void) struct acpi_drhd_unit *drhd; int apic; @@ -394,8 +406,10 @@ Signed-off-by: Keir Fraser /* We MUST have a DRHD unit for each IOAPIC. */ for ( apic = 0; apic < nr_ioapics; apic++ ) if ( !ioapic_to_drhd(IO_APIC_ID(apic)) ) ---- a/xen/include/asm-x86/apic.h -+++ b/xen/include/asm-x86/apic.h +Index: xen-4.0.2-testing/xen/include/asm-x86/apic.h +=================================================================== +--- xen-4.0.2-testing.orig/xen/include/asm-x86/apic.h ++++ xen-4.0.2-testing/xen/include/asm-x86/apic.h @@ -25,21 +25,8 @@ extern int apic_verbosity; extern int x2apic_enabled; extern int directed_eoi_enabled; @@ -420,9 +434,11 @@ Signed-off-by: Keir Fraser /* * Define the default level of output to be very little ---- a/xen/include/asm-x86/genapic.h -+++ b/xen/include/asm-x86/genapic.h -@@ -49,8 +49,6 @@ struct genapic { +Index: xen-4.0.2-testing/xen/include/asm-x86/genapic.h +=================================================================== +--- xen-4.0.2-testing.orig/xen/include/asm-x86/genapic.h ++++ xen-4.0.2-testing/xen/include/asm-x86/genapic.h +@@ -49,8 +49,6 @@ struct genapic { APICFUNC(acpi_madt_oem_check) extern const struct genapic *genapic; diff --git a/22484-vlapic-tmcct-periodic.patch b/22484-vlapic-tmcct-periodic.patch index 6bd805f..bff15e5 100644 --- a/22484-vlapic-tmcct-periodic.patch +++ b/22484-vlapic-tmcct-periodic.patch @@ -7,8 +7,10 @@ hvm vlapic: Fix tmcct read logic when in periodic mode. Signed-off-by: Keir Fraser ---- a/xen/arch/x86/hvm/vlapic.c -+++ b/xen/arch/x86/hvm/vlapic.c +Index: xen-4.0.2-testing/xen/arch/x86/hvm/vlapic.c +=================================================================== +--- xen-4.0.2-testing.orig/xen/arch/x86/hvm/vlapic.c ++++ xen-4.0.2-testing/xen/arch/x86/hvm/vlapic.c @@ -428,12 +428,19 @@ int vlapic_ipi( static uint32_t vlapic_get_tmcct(struct vlapic *vlapic) { diff --git a/22504-iommu-dom0-holes.patch b/22504-iommu-dom0-holes.patch index 19225ed..1889b6a 100644 --- a/22504-iommu-dom0-holes.patch +++ b/22504-iommu-dom0-holes.patch @@ -19,6 +19,17 @@ sitting beyond the end of RAM. Signed-off-by: Jan Beulich +--- a/xen/arch/x86/domain_build.c ++++ b/xen/arch/x86/domain_build.c +@@ -194,7 +194,7 @@ static unsigned long __init compute_dom0 + unsigned int s; + + for ( s = 9; s < BITS_PER_LONG; s += 9 ) +- avail -= max_page >> s; ++ avail -= max_pdx >> s; + } + + /* --- a/xen/drivers/passthrough/amd/pci_amd_iommu.c +++ b/xen/drivers/passthrough/amd/pci_amd_iommu.c @@ -239,8 +239,16 @@ static void amd_iommu_dom0_init(struct d diff --git a/22526-ept-access-once.patch b/22526-ept-access-once.patch deleted file mode 100644 index d4ff994..0000000 --- a/22526-ept-access-once.patch +++ /dev/null @@ -1,123 +0,0 @@ -# HG changeset patch -# User Keir Fraser -# Date 1292410025 0 -# Node ID 7a5ee380041707177ca9c78e800095d1f5f3d373 -# Parent 01f3b350902385627d1fa9e8cd1c231953e7610c -ept: Remove lock in ept_get_entry, replace with access-once semantics. - -This mirrors the RVI/shadow situation, where p2m read access is -lockless because it's done in the hardware (linear map of the p2m -table). - -This fixes the original bug (call it bug A) without introducing bug B -(a deadlock). - -Bug A was caused by a race when updating p2m entries: between testing -if it's valid, and testing if it's populate-on-demand, it may have -been changed from populate-on-demand to valid. - -My original patch simply introduced a lock into ept_get_entry, but -that caused bug B, caused by circular locking order: p2m_change_type -[grabs p2m lock] -> set_p2m_entry -> ept_set_entry -> -ept_set_middle_level -> p2m_alloc [grabs hap lock] write cr4 -> -hap_update_paging_modes [grabes hap lock] -> hap_update_cr3 -> -gfn_to_mfn -> ept_get_entry -> [grabs p2m lock] - -Signed-off-by: George Dunlap - ---- a/xen/arch/x86/mm/hap/p2m-ept.c -+++ b/xen/arch/x86/mm/hap/p2m-ept.c -@@ -137,7 +137,7 @@ static int ept_next_level(struct domain - ept_entry_t **table, unsigned long *gfn_remainder, - u32 shift) - { -- ept_entry_t *ept_entry; -+ ept_entry_t *ept_entry, e; - ept_entry_t *next; - u32 index; - -@@ -145,9 +145,11 @@ static int ept_next_level(struct domain - - ept_entry = (*table) + index; - -- if ( !is_epte_present(ept_entry) ) -+ e=*ept_entry; -+ -+ if ( !is_epte_present(&e) ) - { -- if ( ept_entry->avail1 == p2m_populate_on_demand ) -+ if ( e.avail1 == p2m_populate_on_demand ) - return GUEST_TABLE_POD_PAGE; - - if ( read_only ) -@@ -155,15 +157,17 @@ static int ept_next_level(struct domain - - if ( !ept_set_middle_entry(d, ept_entry) ) - return GUEST_TABLE_MAP_FAILED; -+ else -+ e=*ept_entry; - } - - /* The only time sp would be set here is if we had hit a superpage */ -- if ( is_epte_superpage(ept_entry) ) -+ if ( is_epte_superpage(&e) ) - return GUEST_TABLE_SUPER_PAGE; - else - { - *gfn_remainder &= (1UL << shift) - 1; -- next = map_domain_page(ept_entry->mfn); -+ next = map_domain_page(e.mfn); - unmap_domain_page(*table); - *table = next; - return GUEST_TABLE_NORMAL_PAGE; -@@ -235,35 +239,39 @@ ept_set_entry(struct domain *d, unsigned - if ( mfn_valid(mfn_x(mfn)) || direct_mmio || p2m_is_paged(p2mt) || - (p2mt == p2m_ram_paging_in_start) ) - { -- ept_entry->emt = epte_get_entry_emt(d, gfn, mfn, &ipat, -+ ept_entry_t new_entry; -+ -+ new_entry.emt = epte_get_entry_emt(d, gfn, mfn, &ipat, - direct_mmio); -- ept_entry->ipat = ipat; -- ept_entry->sp = order ? 1 : 0; -+ new_entry.ipat = ipat; -+ new_entry.sp = order ? 1 : 0; - - if ( ret == GUEST_TABLE_SUPER_PAGE ) - { -- if ( ept_entry->mfn == (mfn_x(mfn) - offset) ) -+ if ( new_entry.mfn == (mfn_x(mfn) - offset) ) - need_modify_vtd_table = 0; - else -- ept_entry->mfn = mfn_x(mfn) - offset; -+ new_entry.mfn = mfn_x(mfn) - offset; - -- if ( (ept_entry->avail1 == p2m_ram_logdirty) -+ if ( (new_entry.avail1 == p2m_ram_logdirty) - && (p2mt == p2m_ram_rw) ) - for ( i = 0; i < 512; i++ ) - paging_mark_dirty(d, mfn_x(mfn) - offset + i); - } - else - { -- if ( ept_entry->mfn == mfn_x(mfn) ) -+ if ( new_entry.mfn == mfn_x(mfn) ) - need_modify_vtd_table = 0; - else -- ept_entry->mfn = mfn_x(mfn); -+ new_entry.mfn = mfn_x(mfn); - } - -- ept_entry->avail1 = p2mt; -- ept_entry->avail2 = 0; -+ new_entry.avail1 = p2mt; -+ new_entry.avail2 = 0; -+ -+ ept_p2m_type_to_flags(&new_entry, p2mt); - -- ept_p2m_type_to_flags(ept_entry, p2mt); -+ ept_entry->epte = new_entry.epte; - } - else - ept_entry->epte = 0; diff --git a/22526-ept-get-entry-no-lock.patch b/22526-ept-get-entry-no-lock.patch new file mode 100644 index 0000000..0ccc6fd --- /dev/null +++ b/22526-ept-get-entry-no-lock.patch @@ -0,0 +1,49 @@ +# HG changeset patch +# User Keir Fraser +# Date 1292410025 0 +# Node ID 7a5ee380041707177ca9c78e800095d1f5f3d373 +# Parent 01f3b350902385627d1fa9e8cd1c231953e7610c +ept: Remove lock in ept_get_entry, replace with access-once semantics. + +This mirrors the RVI/shadow situation, where p2m read access is +lockless because it's done in the hardware (linear map of the p2m +table). + +This fixes the original bug (call it bug A) without introducing bug B +(a deadlock). + +Bug A was caused by a race when updating p2m entries: between testing +if it's valid, and testing if it's populate-on-demand, it may have +been changed from populate-on-demand to valid. + +My original patch simply introduced a lock into ept_get_entry, but +that caused bug B, caused by circular locking order: p2m_change_type +[grabs p2m lock] -> set_p2m_entry -> ept_set_entry -> +ept_set_middle_level -> p2m_alloc [grabs hap lock] write cr4 -> +hap_update_paging_modes [grabes hap lock] -> hap_update_cr3 -> +gfn_to_mfn -> ept_get_entry -> [grabs p2m lock] + +Signed-off-by: George Dunlap + +--- a/xen/arch/x86/mm/hap/p2m-ept.c ++++ b/xen/arch/x86/mm/hap/p2m-ept.c +@@ -395,10 +395,6 @@ static mfn_t ept_get_entry(struct domain + int i; + int ret = 0; + mfn_t mfn = _mfn(INVALID_MFN); +- int do_locking = !p2m_locked_by_me(d->arch.p2m); +- +- if ( do_locking ) +- p2m_lock(d->arch.p2m); + + *t = p2m_mmio_dm; + +@@ -476,8 +472,6 @@ static mfn_t ept_get_entry(struct domain + } + + out: +- if ( do_locking ) +- p2m_unlock(d->arch.p2m); + unmap_domain_page(table); + return mfn; + } diff --git a/22533-x86-32bit-apicid.patch b/22533-x86-32bit-apicid.patch index 9714c14..2acca77 100644 --- a/22533-x86-32bit-apicid.patch +++ b/22533-x86-32bit-apicid.patch @@ -21,8 +21,10 @@ systems, but at least allows some build time control). Signed-off-by: Jan Beulich ---- a/xen/arch/x86/acpi/cpu_idle.c -+++ b/xen/arch/x86/acpi/cpu_idle.c +Index: xen-4.0.2-testing/xen/arch/x86/acpi/cpu_idle.c +=================================================================== +--- xen-4.0.2-testing.orig/xen/arch/x86/acpi/cpu_idle.c ++++ xen-4.0.2-testing/xen/arch/x86/acpi/cpu_idle.c @@ -742,7 +742,7 @@ static void set_cx( int get_cpu_id(u8 acpi_id) { @@ -32,9 +34,11 @@ Signed-off-by: Jan Beulich apic_id = x86_acpiid_to_apicid[acpi_id]; if ( apic_id == 0xff ) ---- a/xen/arch/x86/mpparse.c -+++ b/xen/arch/x86/mpparse.c -@@ -99,7 +99,8 @@ static int mpc_record; +Index: xen-4.0.2-testing/xen/arch/x86/mpparse.c +=================================================================== +--- xen-4.0.2-testing.orig/xen/arch/x86/mpparse.c ++++ xen-4.0.2-testing/xen/arch/x86/mpparse.c +@@ -99,7 +99,8 @@ static int mpc_record; static struct mpc_config_translation *translation_table[MAX_MPC_ENTRY] __initdata; /* Return xen's logical cpu_id of the new added cpu or <0 if error */ @@ -105,8 +109,10 @@ Signed-off-by: Jan Beulich } void mp_unregister_lapic(uint32_t apic_id, uint32_t cpu) ---- a/xen/common/sched_sedf.c -+++ b/xen/common/sched_sedf.c +Index: xen-4.0.2-testing/xen/common/sched_sedf.c +=================================================================== +--- xen-4.0.2-testing.orig/xen/common/sched_sedf.c ++++ xen-4.0.2-testing/xen/common/sched_sedf.c @@ -124,7 +124,6 @@ struct sedf_cpu_info { #define PERIOD_BEGIN(inf) ((inf)->deadl_abs - (inf)->period) @@ -115,8 +121,10 @@ Signed-off-by: Jan Beulich #define DIV_UP(x,y) (((x) + (y) - 1) / y) #define extra_runs(inf) ((inf->status) & 6) ---- a/xen/include/asm-x86/mach-generic/mach_apic.h -+++ b/xen/include/asm-x86/mach-generic/mach_apic.h +Index: xen-4.0.2-testing/xen/include/asm-x86/mach-generic/mach_apic.h +=================================================================== +--- xen-4.0.2-testing.orig/xen/include/asm-x86/mach-generic/mach_apic.h ++++ xen-4.0.2-testing/xen/include/asm-x86/mach-generic/mach_apic.h @@ -26,15 +26,15 @@ static inline void enable_apic_mode(void extern u32 bios_cpu_apicid[]; @@ -136,8 +144,10 @@ Signed-off-by: Jan Beulich } static inline void setup_portio_remap(void) ---- a/xen/include/asm-x86/mpspec_def.h -+++ b/xen/include/asm-x86/mpspec_def.h +Index: xen-4.0.2-testing/xen/include/asm-x86/mpspec_def.h +=================================================================== +--- xen-4.0.2-testing.orig/xen/include/asm-x86/mpspec_def.h ++++ xen-4.0.2-testing/xen/include/asm-x86/mpspec_def.h @@ -14,7 +14,7 @@ #define SMP_MAGIC_IDENT (('_'<<24)|('P'<<16)|('M'<<8)|'_') @@ -147,8 +157,10 @@ Signed-off-by: Jan Beulich struct intel_mp_floating { ---- a/xen/include/xen/kernel.h -+++ b/xen/include/xen/kernel.h +Index: xen-4.0.2-testing/xen/include/xen/kernel.h +=================================================================== +--- xen-4.0.2-testing.orig/xen/include/xen/kernel.h ++++ xen-4.0.2-testing/xen/include/xen/kernel.h @@ -33,6 +33,13 @@ #define max_t(type,x,y) \ ({ type __x = (x); type __y = (y); __x > __y ? __x: __y; }) diff --git a/22534-x86-max-local-apic.patch b/22534-x86-max-local-apic.patch index 3ae3fe4..bb0e432 100644 --- a/22534-x86-max-local-apic.patch +++ b/22534-x86-max-local-apic.patch @@ -24,8 +24,10 @@ appear to be to make the macros depend on __XEN_INTERFACE_VERSION__. Signed-off-by: Jan Beulich ---- a/xen/arch/x86/acpi/boot.c -+++ b/xen/arch/x86/acpi/boot.c +Index: xen-4.0.2-testing/xen/arch/x86/acpi/boot.c +=================================================================== +--- xen-4.0.2-testing.orig/xen/arch/x86/acpi/boot.c ++++ xen-4.0.2-testing/xen/arch/x86/acpi/boot.c @@ -82,7 +82,7 @@ u8 acpi_enable_value, acpi_disable_value #endif @@ -59,8 +61,10 @@ Signed-off-by: Jan Beulich - return 0xff; + return INVALID_ACPIID; } ---- a/xen/arch/x86/acpi/cpu_idle.c -+++ b/xen/arch/x86/acpi/cpu_idle.c +Index: xen-4.0.2-testing/xen/arch/x86/acpi/cpu_idle.c +=================================================================== +--- xen-4.0.2-testing.orig/xen/arch/x86/acpi/cpu_idle.c ++++ xen-4.0.2-testing/xen/arch/x86/acpi/cpu_idle.c @@ -745,7 +745,7 @@ int get_cpu_id(u8 acpi_id) u32 apic_id; @@ -70,8 +74,10 @@ Signed-off-by: Jan Beulich return -1; for ( i = 0; i < NR_CPUS; i++ ) ---- a/xen/arch/x86/smpboot.c -+++ b/xen/arch/x86/smpboot.c +Index: xen-4.0.2-testing/xen/arch/x86/smpboot.c +=================================================================== +--- xen-4.0.2-testing.orig/xen/arch/x86/smpboot.c ++++ xen-4.0.2-testing/xen/arch/x86/smpboot.c @@ -96,7 +96,7 @@ struct cpuinfo_x86 cpu_data[NR_CPUS]; EXPORT_SYMBOL(cpu_data); @@ -99,8 +105,10 @@ Signed-off-by: Jan Beulich mp_unregister_lapic(apic_id, cpu); spin_unlock(&cpu_add_remove_lock); return node; ---- a/xen/include/asm-x86/acpi.h -+++ b/xen/include/asm-x86/acpi.h +Index: xen-4.0.2-testing/xen/include/asm-x86/acpi.h +=================================================================== +--- xen-4.0.2-testing.orig/xen/include/asm-x86/acpi.h ++++ xen-4.0.2-testing/xen/include/asm-x86/acpi.h @@ -150,9 +150,11 @@ struct acpi_sleep_info { #endif /* CONFIG_ACPI_SLEEP */ @@ -115,8 +123,10 @@ Signed-off-by: Jan Beulich extern u32 pmtmr_ioport; ---- a/xen/include/asm-x86/numa.h -+++ b/xen/include/asm-x86/numa.h +Index: xen-4.0.2-testing/xen/include/asm-x86/numa.h +=================================================================== +--- xen-4.0.2-testing.orig/xen/include/asm-x86/numa.h ++++ xen-4.0.2-testing/xen/include/asm-x86/numa.h @@ -39,7 +39,7 @@ extern int setup_node(int pxm); extern void srat_detect_node(int cpu); @@ -126,8 +136,10 @@ Signed-off-by: Jan Beulich #ifdef CONFIG_NUMA extern void __init init_cpu_to_node(void); ---- a/xen/include/public/vcpu.h -+++ b/xen/include/public/vcpu.h +Index: xen-4.0.2-testing/xen/include/public/vcpu.h +=================================================================== +--- xen-4.0.2-testing.orig/xen/include/public/vcpu.h ++++ xen-4.0.2-testing/xen/include/public/vcpu.h @@ -187,8 +187,7 @@ DEFINE_XEN_GUEST_HANDLE(vcpu_register_vc /* * Get the physical ID information for a pinned vcpu's underlying physical diff --git a/22535-x2apic-preenabled.patch b/22535-x2apic-preenabled.patch index d84510f..67a9b0a 100644 --- a/22535-x2apic-preenabled.patch +++ b/22535-x2apic-preenabled.patch @@ -15,9 +15,11 @@ intremap_enabled() with its only caller gone. Signed-off-by: Jan Beulich ---- a/xen/arch/x86/apic.c -+++ b/xen/arch/x86/apic.c -@@ -963,15 +963,6 @@ void x2apic_setup(void) +Index: xen-4.0.2-testing/xen/arch/x86/apic.c +=================================================================== +--- xen-4.0.2-testing.orig/xen/arch/x86/apic.c ++++ xen-4.0.2-testing/xen/arch/x86/apic.c +@@ -964,15 +964,6 @@ void x2apic_setup(void) rdmsr(MSR_IA32_APICBASE, lo, hi); if ( lo & MSR_IA32_APICBASE_EXTD ) { @@ -33,7 +35,7 @@ Signed-off-by: Jan Beulich printk("x2APIC mode is already enabled by BIOS.\n"); x2apic_enabled = 1; } -@@ -1014,6 +1005,10 @@ void x2apic_setup(void) +@@ -1015,6 +1006,10 @@ void x2apic_setup(void) if ( iommu_enable_IR() ) { @@ -44,9 +46,11 @@ Signed-off-by: Jan Beulich printk("Would not enable x2APIC due to interrupt remapping " "cannot be enabled.\n"); goto restore_out; ---- a/xen/drivers/passthrough/vtd/intremap.c -+++ b/xen/drivers/passthrough/vtd/intremap.c -@@ -884,23 +884,3 @@ void iommu_disable_IR(void) +Index: xen-4.0.2-testing/xen/drivers/passthrough/vtd/intremap.c +=================================================================== +--- xen-4.0.2-testing.orig/xen/drivers/passthrough/vtd/intremap.c ++++ xen-4.0.2-testing/xen/drivers/passthrough/vtd/intremap.c +@@ -892,23 +892,3 @@ void iommu_disable_IR(void) for_each_drhd_unit ( drhd ) disable_qinval(drhd->iommu); } @@ -70,8 +74,10 @@ Signed-off-by: Jan Beulich - - return 1; -} ---- a/xen/include/xen/iommu.h -+++ b/xen/include/xen/iommu.h +Index: xen-4.0.2-testing/xen/include/xen/iommu.h +=================================================================== +--- xen-4.0.2-testing.orig/xen/include/xen/iommu.h ++++ xen-4.0.2-testing/xen/include/xen/iommu.h @@ -62,7 +62,6 @@ int iommu_setup(void); int iommu_supports_eim(void); int iommu_enable_IR(void); diff --git a/22538-keyhandler-relax.patch b/22538-keyhandler-relax.patch deleted file mode 100644 index ddf1c44..0000000 --- a/22538-keyhandler-relax.patch +++ /dev/null @@ -1,101 +0,0 @@ -# HG changeset patch -# User Keir Fraser -# Date 1292414674 0 -# Node ID a3a29e67aa7e75a094e1b4237b10a68cf829b542 -# Parent 16673224c1cc2ca3bb9730f1d7c84fe4d96e5323 -Reduce side effects of handling '*' debug key -References: bnc#659284 - -NMI watchdog should be suppressed when dumping IRQ handlers. Softirqs -should be handled periodically while processing non-IRQ handlers. - -Signed-off-by: Jan Beulich - -# HG changeset patch -# User Keir Fraser -# Date 1293185578 0 -# Node ID dca1b7cf2e2c27cd160bd1d1d284e3f810d4936c -# Parent e8acb9753ff1a5cd3d6a45eda5f4c6f0059c281a -re-add calls accidentally deleted from run_all_nonirq_keyhandlers() - -c/s 22538:a3a29e67aa7e, having got applied in a form different from -the one submitted, resulted in the calls to -console_{start,end}_log_everything() getting removed without -replacement. Add them back since, other than run_all_keyhandlers(), -this doesn't run with log-everything already in effect. - -Signed-off-by: Jan Beulich - ---- a/xen/common/keyhandler.c -+++ b/xen/common/keyhandler.c -@@ -407,14 +407,17 @@ static void run_all_nonirq_keyhandlers(u - int k; - - console_start_log_everything(); -+ - for ( k = 0; k < ARRAY_SIZE(key_table); k++ ) - { -+ process_pending_softirqs_nested(); - h = key_table[k]; - if ( (h == NULL) || !h->diagnostic || h->irq_callback ) - continue; - printk("[%c: %s]\n", k, h->desc); - (*h->u.fn)(k); - } -+ - console_end_log_everything(); - } - -@@ -426,10 +429,11 @@ static void run_all_keyhandlers(unsigned - struct keyhandler *h; - int k; - -+ watchdog_disable(); -+ - printk("'%c' pressed -> firing all diagnostic keyhandlers\n", key); - - /* Fire all the IRQ-context diangostic keyhandlers now */ -- console_start_log_everything(); - for ( k = 0; k < ARRAY_SIZE(key_table); k++ ) - { - h = key_table[k]; -@@ -438,7 +442,8 @@ static void run_all_keyhandlers(unsigned - printk("[%c: %s]\n", k, h->desc); - (*h->u.irq_fn)(k, regs); - } -- console_end_log_everything(); -+ -+ watchdog_enable(); - - /* Trigger the others from a tasklet in non-IRQ context */ - tasklet_schedule(&run_all_keyhandlers_tasklet); ---- a/xen/common/softirq.c -+++ b/xen/common/softirq.c -@@ -54,6 +54,16 @@ void process_pending_softirqs(void) - __do_softirq(1ul< -# Date 1292415031 0 -# Node ID d8279118b4bbb3bb3689b9c20abb25d0c09e2b69 -# Parent 20c65aa19075b1a696adb56325827412596ac0d4 -x86/32on64: zero-extend hypercall index before use in memory access (debug mode only) - -Signed-off-by: Jan Beulich - ---- a/xen/arch/x86/x86_64/compat/entry.S -+++ b/xen/arch/x86/x86_64/compat/entry.S -@@ -36,7 +36,8 @@ ENTRY(compat_hypercall) - pushq UREGS_rbx(%rsp); pushq %rcx; pushq %rdx; pushq %rsi; pushq %rdi - pushq UREGS_rbp+5*8(%rsp) - leaq compat_hypercall_args_table(%rip),%r10 -- movq $6,%rcx -+ movl %eax,%eax -+ movl $6,%ecx - subb (%r10,%rax,1),%cl - movq %rsp,%rdi - movl $0xDEADBEEF,%eax diff --git a/22549-vtd-map-page-leak.patch b/22549-vtd-map-page-leak.patch deleted file mode 100644 index 4257a28..0000000 --- a/22549-vtd-map-page-leak.patch +++ /dev/null @@ -1,28 +0,0 @@ -# HG changeset patch -# User Keir Fraser -# Date 1292513937 0 -# Node ID aa18b8ddaf05084aef3f8cff11d92248a8b6fac8 -# Parent f46f46bbb69a788037f866025c88743d55dde416 -vtd: Require unmap_vtd_domain_page() on a couple of early exit paths. - -From: Jan Beulich -Signed-off-by: Keir Fraser - ---- a/xen/drivers/passthrough/vtd/iommu.c -+++ b/xen/drivers/passthrough/vtd/iommu.c -@@ -1330,6 +1330,7 @@ int domain_context_mapping_one( - if ( context_set_domain_id(context, domain, iommu) ) - { - spin_unlock(&iommu->lock); -+ unmap_vtd_domain_page(context_entries); - return -EFAULT; - } - -@@ -1671,6 +1672,7 @@ static int intel_iommu_map_page( - if ( old.val == new.val ) - { - spin_unlock(&hd->mapping_lock); -+ unmap_vtd_domain_page(page); - return 0; - } - *pte = new; diff --git a/22574-ept-skip-validation.patch b/22574-ept-skip-validation.patch deleted file mode 100644 index 49be640..0000000 --- a/22574-ept-skip-validation.patch +++ /dev/null @@ -1,29 +0,0 @@ -# HG changeset patch -# User Keir Fraser -# Date 1292954974 0 -# Node ID b5418c045d029e8bf5eadfd4e1ef0b1822da7186 -# Parent ff1b80ccecd9ed049cc694ab117100e83eab179f -x86 hvm ept: Remove EPT guest linear address validation - -For EPT violation resulting from an attempt to load the guest PDPTEs -as part of the execution of the MOV CR instruction, the EPT_GLA_VALID -is not valid. This situation should not happen in most situation, -since we always populate guest memory. But this is not ture for PAE -guest under the PoD/Page sharing situation. In that situation, a page -pointed by CR3 may be un-populated, and we need handle it in such -situation. - -Signed-off-by: Jiang, Yunhong - ---- a/xen/arch/x86/hvm/vmx/vmx.c -+++ b/xen/arch/x86/hvm/vmx/vmx.c -@@ -2129,8 +2129,7 @@ static void ept_handle_violation(unsigne - __trace_var(TRC_HVM_NPF, 0, sizeof(_d), (unsigned char *)&_d); - } - -- if ( (qualification & EPT_GLA_VALID) && -- hvm_hap_nested_page_fault(gfn) ) -+ if ( hvm_hap_nested_page_fault(gfn) ) - return; - - /* Everything else is an error. */ diff --git a/22632-vtd-print-entries.patch b/22632-vtd-print-entries.patch deleted file mode 100644 index 54d5d54..0000000 --- a/22632-vtd-print-entries.patch +++ /dev/null @@ -1,121 +0,0 @@ -# HG changeset patch -# User Keir Fraser -# Date 1293185641 0 -# Node ID 7cc87dcf30a13bcf600077aa661694caeb0c290c -# Parent dca1b7cf2e2c27cd160bd1d1d284e3f810d4936c -VT-d: fix and improve print_vtd_entries() - -Fix leaking of mapped domain pages (root_entry and ctxt_entry when -falling out of the level traversing loop). Do this by re-arranging -things slightly so that a mapping is retained only as long as it -really is needed. - -Fix the failure to use map_domain_page() in the level traversing loop -of the function. - -Add a mssing return statement in one of the error paths. - -Also I wonder whether not being able to call print_vtd_entries() from -iommu_page_fault_do_one() in ix86 is still correct, now that -map_domain_page() is IRQ safe. - -Signed-off-by: Jan Beulich - ---- a/xen/drivers/passthrough/vtd/utils.c -+++ b/xen/drivers/passthrough/vtd/utils.c -@@ -99,7 +99,7 @@ void print_vtd_entries(struct iommu *iom - struct context_entry *ctxt_entry; - struct root_entry *root_entry; - struct dma_pte pte; -- u64 *l; -+ u64 *l, val; - u32 l_index, level; - - printk("print_vtd_entries: iommu = %p bdf = %x:%x.%x gmfn = %"PRIx64"\n", -@@ -112,6 +112,11 @@ void print_vtd_entries(struct iommu *iom - } - - root_entry = (struct root_entry *)map_vtd_domain_page(iommu->root_maddr); -+ if ( root_entry == NULL ) -+ { -+ printk(" root_entry == NULL\n"); -+ return; -+ } - - printk(" root_entry = %p\n", root_entry); - printk(" root_entry[%x] = %"PRIx64"\n", bus, root_entry[bus].val); -@@ -122,61 +127,57 @@ void print_vtd_entries(struct iommu *iom - return; - } - -- ctxt_entry = -- (struct context_entry *)map_vtd_domain_page(root_entry[bus].val); -+ val = root_entry[bus].val; -+ unmap_vtd_domain_page(root_entry); -+ ctxt_entry = map_vtd_domain_page(val); - if ( ctxt_entry == NULL ) - { -- unmap_vtd_domain_page(root_entry); - printk(" ctxt_entry == NULL\n"); - return; - } - - printk(" context = %p\n", ctxt_entry); -+ val = ctxt_entry[devfn].lo; - printk(" context[%x] = %"PRIx64"_%"PRIx64"\n", -- devfn, ctxt_entry[devfn].hi, ctxt_entry[devfn].lo); -+ devfn, ctxt_entry[devfn].hi, val); - if ( !context_present(ctxt_entry[devfn]) ) - { - unmap_vtd_domain_page(ctxt_entry); -- unmap_vtd_domain_page(root_entry); - printk(" ctxt_entry[%x] not present\n", devfn); - return; - } - - level = agaw_to_level(context_address_width(ctxt_entry[devfn])); -+ unmap_vtd_domain_page(ctxt_entry); - if ( level != VTD_PAGE_TABLE_LEVEL_3 && - level != VTD_PAGE_TABLE_LEVEL_4) - { -- unmap_vtd_domain_page(ctxt_entry); -- unmap_vtd_domain_page(root_entry); - printk("Unsupported VTD page table level (%d)!\n", level); -+ return; - } - -- l = maddr_to_virt(ctxt_entry[devfn].lo); - do - { -- l = (u64*)(((unsigned long)l >> PAGE_SHIFT_4K) << PAGE_SHIFT_4K); -+ l = map_vtd_domain_page(val); - printk(" l%d = %p\n", level, l); - if ( l == NULL ) - { -- unmap_vtd_domain_page(ctxt_entry); -- unmap_vtd_domain_page(root_entry); - printk(" l%d == NULL\n", level); - break; - } - l_index = get_level_index(gmfn, level); - printk(" l%d_index = %x\n", level, l_index); -- printk(" l%d[%x] = %"PRIx64"\n", level, l_index, l[l_index]); - -- pte.val = l[l_index]; -+ pte.val = val = l[l_index]; -+ unmap_vtd_domain_page(l); -+ printk(" l%d[%x] = %"PRIx64"\n", level, l_index, val); -+ -+ pte.val = val; - if ( !dma_pte_present(pte) ) - { -- unmap_vtd_domain_page(ctxt_entry); -- unmap_vtd_domain_page(root_entry); - printk(" l%d[%x] not present\n", level, l_index); - break; - } -- -- l = maddr_to_virt(l[l_index]); - } while ( --level ); - } - diff --git a/22645-amd-flush-filter.patch b/22645-amd-flush-filter.patch index 72ddbb6..afc2f2d 100644 --- a/22645-amd-flush-filter.patch +++ b/22645-amd-flush-filter.patch @@ -11,8 +11,10 @@ command-line config option. Remove it. Signed-off-by: Keir Fraser ---- a/xen/arch/x86/cpu/amd.c -+++ b/xen/arch/x86/cpu/amd.c +Index: xen-4.0.2-testing/xen/arch/x86/cpu/amd.c +=================================================================== +--- xen-4.0.2-testing.orig/xen/arch/x86/cpu/amd.c ++++ xen-4.0.2-testing/xen/arch/x86/cpu/amd.c @@ -237,20 +237,6 @@ int cpu_has_amd_erratum(const struct cpu return 0; } diff --git a/22693-fam10-mmio-conf-base-protect.patch b/22693-fam10-mmio-conf-base-protect.patch index 7ea63de..32cf722 100644 --- a/22693-fam10-mmio-conf-base-protect.patch +++ b/22693-fam10-mmio-conf-base-protect.patch @@ -19,9 +19,11 @@ use is ourselves, not only when we enabled it. Signed-off-by: Jan Beulich ---- a/xen/arch/x86/traps.c -+++ b/xen/arch/x86/traps.c -@@ -1704,6 +1704,10 @@ static int is_cpufreq_controller(struct +Index: xen-4.0.2-testing/xen/arch/x86/traps.c +=================================================================== +--- xen-4.0.2-testing.orig/xen/arch/x86/traps.c ++++ xen-4.0.2-testing/xen/arch/x86/traps.c +@@ -1716,6 +1716,10 @@ static int is_cpufreq_controller(struct (d->domain_id == 0)); } @@ -32,7 +34,7 @@ Signed-off-by: Jan Beulich static int emulate_privileged_op(struct cpu_user_regs *regs) { struct vcpu *v = current; -@@ -2263,7 +2267,13 @@ static int emulate_privileged_op(struct +@@ -2275,7 +2279,13 @@ static int emulate_privileged_op(struct goto fail; if ( !IS_PRIV(v->domain) ) break; @@ -47,8 +49,10 @@ Signed-off-by: Jan Beulich (((((u64)h << 32) | l) ^ val) & ~( FAM10H_MMIO_CONF_ENABLE | (FAM10H_MMIO_CONF_BUSRANGE_MASK << ---- a/xen/arch/x86/x86_64/mmconfig.h -+++ b/xen/arch/x86/x86_64/mmconfig.h +Index: xen-4.0.2-testing/xen/arch/x86/x86_64/mmconfig.h +=================================================================== +--- xen-4.0.2-testing.orig/xen/arch/x86/x86_64/mmconfig.h ++++ xen-4.0.2-testing/xen/arch/x86/x86_64/mmconfig.h @@ -34,6 +34,8 @@ #define PCI_VENDOR_ID_NVIDIA 0x10de @@ -58,8 +62,10 @@ Signed-off-by: Jan Beulich /* * AMD Fam10h CPUs are buggy, and cannot access MMIO config space * on their northbrige except through the * %eax register. As such, you MUST ---- a/xen/arch/x86/x86_64/mmconfig-shared.c -+++ b/xen/arch/x86/x86_64/mmconfig-shared.c +Index: xen-4.0.2-testing/xen/arch/x86/x86_64/mmconfig-shared.c +=================================================================== +--- xen-4.0.2-testing.orig/xen/arch/x86/x86_64/mmconfig-shared.c ++++ xen-4.0.2-testing/xen/arch/x86/x86_64/mmconfig-shared.c @@ -24,7 +24,7 @@ #include "mmconfig.h" diff --git a/22694-x86_64-no-weak.patch b/22694-x86_64-no-weak.patch index 0306577..6e58518 100644 --- a/22694-x86_64-no-weak.patch +++ b/22694-x86_64-no-weak.patch @@ -22,8 +22,10 @@ we cannot trust. Signed-off-by: Keir Fraser ---- a/xen/drivers/acpi/numa.c -+++ b/xen/drivers/acpi/numa.c +Index: xen-4.0.2-testing/xen/drivers/acpi/numa.c +=================================================================== +--- xen-4.0.2-testing.orig/xen/drivers/acpi/numa.c ++++ xen-4.0.2-testing/xen/drivers/acpi/numa.c @@ -120,14 +120,15 @@ static int __init acpi_parse_slit(struct return 0; } diff --git a/22707-x2apic-preenabled-check.patch b/22707-x2apic-preenabled-check.patch index d3ce783..1b1922b 100644 --- a/22707-x2apic-preenabled-check.patch +++ b/22707-x2apic-preenabled-check.patch @@ -17,9 +17,11 @@ Restore the functionality, now calling it from generic_apic_probe(). Signed-off-by: Jan Beulich ---- a/xen/arch/x86/apic.c -+++ b/xen/arch/x86/apic.c -@@ -947,7 +947,6 @@ no_apic: +Index: xen-4.0.2-testing/xen/arch/x86/apic.c +=================================================================== +--- xen-4.0.2-testing.orig/xen/arch/x86/apic.c ++++ xen-4.0.2-testing/xen/arch/x86/apic.c +@@ -948,7 +948,6 @@ no_apic: void x2apic_setup(void) { struct IO_APIC_route_entry **ioapic_entries = NULL; @@ -27,7 +29,7 @@ Signed-off-by: Jan Beulich if ( smp_processor_id() != 0 ) { -@@ -959,14 +958,6 @@ void x2apic_setup(void) +@@ -960,14 +959,6 @@ void x2apic_setup(void) if ( !cpu_has_x2apic ) return; @@ -42,8 +44,10 @@ Signed-off-by: Jan Beulich if ( !opt_x2apic ) { if ( !x2apic_enabled ) ---- a/xen/arch/x86/genapic/probe.c -+++ b/xen/arch/x86/genapic/probe.c +Index: xen-4.0.2-testing/xen/arch/x86/genapic/probe.c +=================================================================== +--- xen-4.0.2-testing.orig/xen/arch/x86/genapic/probe.c ++++ xen-4.0.2-testing/xen/arch/x86/genapic/probe.c @@ -59,8 +59,10 @@ custom_param("apic", genapic_apic_force) void __init generic_apic_probe(void) @@ -57,8 +61,10 @@ Signed-off-by: Jan Beulich for (i = 0; !changed && apic_probe[i]; i++) { if (apic_probe[i]->probe()) { ---- a/xen/arch/x86/genapic/x2apic.c -+++ b/xen/arch/x86/genapic/x2apic.c +Index: xen-4.0.2-testing/xen/arch/x86/genapic/x2apic.c +=================================================================== +--- xen-4.0.2-testing.orig/xen/arch/x86/genapic/x2apic.c ++++ xen-4.0.2-testing/xen/arch/x86/genapic/x2apic.c @@ -20,6 +20,8 @@ #include #include @@ -89,8 +95,10 @@ Signed-off-by: Jan Beulich + genapic = apic_x2apic_probe(); + } +} ---- a/xen/include/asm-x86/apic.h -+++ b/xen/include/asm-x86/apic.h +Index: xen-4.0.2-testing/xen/include/asm-x86/apic.h +=================================================================== +--- xen-4.0.2-testing.orig/xen/include/asm-x86/apic.h ++++ xen-4.0.2-testing/xen/include/asm-x86/apic.h @@ -25,6 +25,7 @@ extern int apic_verbosity; extern int x2apic_enabled; extern int directed_eoi_enabled; diff --git a/22708-xenctx-misc.patch b/22708-xenctx-misc.patch index 18e60ca..ba87f99 100644 --- a/22708-xenctx-misc.patch +++ b/22708-xenctx-misc.patch @@ -12,8 +12,10 @@ xenctx: misc adjustments Signed-off-by: Jan Beulich ---- a/tools/xentrace/xenctx.c -+++ b/tools/xentrace/xenctx.c +Index: xen-4.0.2-testing/tools/xentrace/xenctx.c +=================================================================== +--- xen-4.0.2-testing.orig/tools/xentrace/xenctx.c ++++ xen-4.0.2-testing/tools/xentrace/xenctx.c @@ -19,6 +19,7 @@ #include #include @@ -30,7 +32,7 @@ Signed-off-by: Jan Beulich char *name; struct symbol *next; } *symbol_table = NULL; -@@ -112,12 +112,12 @@ static void insert_symbol(struct symbol +@@ -112,12 +112,12 @@ static void insert_symbol(struct symbol /* The System.map is usually already sorted... */ if (prev diff --git a/22744-ept-pod-locking.patch b/22744-ept-pod-locking.patch new file mode 100644 index 0000000..173cd5b --- /dev/null +++ b/22744-ept-pod-locking.patch @@ -0,0 +1,47 @@ +# HG changeset patch +# User Tim Deegan +# Date 1294933573 0 +# Node ID b01ef59c8c805df751a8f6ae63cdd5c6a4565255 +# Parent 54e91dcae649e23fd267d7afe623fbd52b1b4283 +x86/mm: fix EPT PoD locking to match the normal p2m case. + +This recursive-locking bug was fixed in the main p2m code in +20269:fd3d5d66c446 (in October 2009) but has lurked unseen in +the EPT side since then. Copy the fix across. + +Signed-off-by: Tim Deegan + +Index: xen-4.0.2-testing/xen/arch/x86/mm/hap/p2m-ept.c +=================================================================== +--- xen-4.0.2-testing.orig/xen/arch/x86/mm/hap/p2m-ept.c ++++ xen-4.0.2-testing/xen/arch/x86/mm/hap/p2m-ept.c +@@ -37,19 +37,26 @@ static int ept_pod_check_and_populate(st + ept_entry_t *entry, int order, + p2m_query_t q) + { ++ /* Only take the lock if we don't already have it. Otherwise it ++ * wouldn't be safe to do p2m lookups with the p2m lock held */ ++ int do_locking = !p2m_locked_by_me(d->arch.p2m); + int r; +- p2m_lock(d->arch.p2m); ++ ++ if ( do_locking ) ++ p2m_lock(d->arch.p2m); + + /* Check to make sure this is still PoD */ + if ( entry->avail1 != p2m_populate_on_demand ) + { +- p2m_unlock(d->arch.p2m); ++ if ( do_locking ) ++ p2m_unlock(d->arch.p2m); + return 0; + } + + r = p2m_pod_demand_populate(d, gfn, order, q); + +- p2m_unlock(d->arch.p2m); ++ if ( do_locking ) ++ p2m_unlock(d->arch.p2m); + + return r; + } diff --git a/22749-vtd-workarounds.patch b/22749-vtd-workarounds.patch new file mode 100644 index 0000000..a961dc2 --- /dev/null +++ b/22749-vtd-workarounds.patch @@ -0,0 +1,264 @@ +References: bnc#633573 + +# HG changeset patch +# User Allen Kay +# Date 1294992706 0 +# Node ID 93e7bf0e1845f1a82441fb740522a9b9cb32beda +# Parent 47713825a3f910fc7cf7571947e8b3b4eab23d5f +vt-d: quirks for Sandybridge errata workaround, WLAN, VT-d fault escalation + +Adding errata workaround for newly released Sandybridge processor +graphics, additional WLAN device ID's for WLAN quirk, a quirk for +masking VT-d fault escalation to IOH HW that can cause system hangs on +some OEM hardware where the BIOS erroneously escalates VT-d faults to +the platform. + +Signed-off-by: Allen Kay + +# HG changeset patch +# User Keir Fraser +# Date 1295625672 0 +# Node ID 1637fdbfc21e2c732eca29136943a568f8f341cd +# Parent 43592043cefc8357e6e6a0ab9ba85ca480968cb1 +[VTD][QUIRK] turn off Sandybridge IGD quirk by default + +Turn off Sandybridge IGD quirk by default until potential issues such +as MMIO register conflict with OS device driver and proper locking in +preamble and postamble functions are addressed. + +Signed-off-by: Allen Kay + +# HG changeset patch +# User Allen Kay +# Date 1296587456 0 +# Node ID 3edd21ffe407ac0e853d51aa8302d9bdb4068749 +# Parent 0e2c8b75f7d233f15f8bb49d9db0579e7a350964 +passthrough/vtd: disable 64-bit MMCFG quirk on 32-bit Xen + +Attached patch disables pci_vtd_quirk for 32-bit Xen since 32-bit xen +does not support MMCFG access. + +Signed-off-by: Allen Kay +Committed-by: Ian Jackson + +--- a/xen/drivers/passthrough/vtd/extern.h ++++ b/xen/drivers/passthrough/vtd/extern.h +@@ -87,5 +87,6 @@ void __init platform_quirks_init(void); + void vtd_ops_preamble_quirk(struct iommu* iommu); + void vtd_ops_postamble_quirk(struct iommu* iommu); + void me_wifi_quirk(struct domain *domain, u8 bus, u8 devfn, int map); ++void pci_vtd_quirk(struct pci_dev *pdev); + + #endif // _VTD_EXTERN_H_ +--- a/xen/drivers/passthrough/vtd/iommu.c ++++ b/xen/drivers/passthrough/vtd/iommu.c +@@ -1845,6 +1845,7 @@ static void setup_dom0_devices(struct do + list_add(&pdev->domain_list, &d->arch.pdev_list); + domain_context_mapping(d, pdev->bus, pdev->devfn); + pci_enable_acs(pdev); ++ pci_vtd_quirk(pdev); + } + } + spin_unlock(&pcidevs_lock); +--- a/xen/drivers/passthrough/vtd/quirks.c ++++ b/xen/drivers/passthrough/vtd/quirks.c +@@ -47,11 +47,13 @@ + #define IS_CTG(id) (id == 0x2a408086) + #define IS_ILK(id) (id == 0x00408086 || id == 0x00448086 || id== 0x00628086 || id == 0x006A8086) + #define IS_CPT(id) (id == 0x01008086 || id == 0x01048086) ++#define IS_SNB_GFX(id) (id == 0x01068086 || id == 0x01168086 || id == 0x01268086 || id == 0x01028086 || id == 0x01128086 || id == 0x01228086 || id == 0x010A8086) + + u32 ioh_id; + u32 igd_id; + bool_t rwbf_quirk; + static int is_cantiga_b3; ++static int is_snb_gfx; + static u8 *igd_reg_va; + + /* +@@ -92,6 +94,12 @@ static void cantiga_b3_errata_init(void) + is_cantiga_b3 = 1; + } + ++/* check for Sandybridge IGD device ID's */ ++static void snb_errata_init(void) ++{ ++ is_snb_gfx = IS_SNB_GFX(igd_id); ++} ++ + /* + * QUIRK to workaround Cantiga IGD VT-d low power errata. + * This errata impacts IGD assignment on Cantiga systems +@@ -104,12 +112,15 @@ static void cantiga_b3_errata_init(void) + /* + * map IGD MMIO+0x2000 page to allow Xen access to IGD 3D register. + */ +-static void map_igd_reg(void) ++static void *map_igd_reg(void) + { + u64 igd_mmio, igd_reg; + +- if ( !is_cantiga_b3 || igd_reg_va != NULL ) +- return; ++ if ( !is_cantiga_b3 && !is_snb_gfx ) ++ return NULL; ++ ++ if ( igd_reg_va ) ++ return igd_reg_va; + + /* get IGD mmio address in PCI BAR */ + igd_mmio = ((u64)pci_conf_read32(0, IGD_DEV, 0, 0x14) << 32) + +@@ -121,6 +132,7 @@ static void map_igd_reg(void) + /* ioremap this physical page */ + set_fixmap_nocache(FIX_IGD_MMIO, igd_reg); + igd_reg_va = (u8 *)fix_to_virt(FIX_IGD_MMIO); ++ return igd_reg_va; + } + + /* +@@ -134,6 +146,9 @@ static int cantiga_vtd_ops_preamble(stru + if ( !is_igd_drhd(drhd) || !is_cantiga_b3 ) + return 0; + ++ if ( !map_igd_reg() ) ++ return 0; ++ + /* + * read IGD register at IGD MMIO + 0x20A4 to force IGD + * to exit low power state. Since map_igd_reg() +@@ -144,11 +159,69 @@ static int cantiga_vtd_ops_preamble(stru + } + + /* ++ * Sandybridge RC6 power management inhibit state erratum. ++ * This can cause power high power consumption. ++ * Workaround is to prevent graphics get into RC6 ++ * state when doing VT-d IOTLB operations, do the VT-d ++ * IOTLB operation, and then re-enable RC6 state. ++ */ ++static void snb_vtd_ops_preamble(struct iommu* iommu) ++{ ++ struct intel_iommu *intel = iommu->intel; ++ struct acpi_drhd_unit *drhd = intel ? intel->drhd : NULL; ++ s_time_t start_time; ++ ++ if ( !is_igd_drhd(drhd) || !is_snb_gfx ) ++ return; ++ ++ if ( !map_igd_reg() ) ++ return; ++ ++ *((volatile u32 *)(igd_reg_va + 0x54)) = 0x000FFFFF; ++ *((volatile u32 *)(igd_reg_va + 0x700)) = 0; ++ ++ start_time = NOW(); ++ while ( (*((volatile u32 *)(igd_reg_va + 0x2AC)) & 0xF) != 0 ) ++ { ++ if ( NOW() > start_time + DMAR_OPERATION_TIMEOUT ) ++ { ++ dprintk(XENLOG_INFO VTDPREFIX, ++ "snb_vtd_ops_preamble: failed to disable idle handshake\n"); ++ break; ++ } ++ cpu_relax(); ++ } ++ ++ *((volatile u32*)(igd_reg_va + 0x50)) = 0x10001; ++} ++ ++static void snb_vtd_ops_postamble(struct iommu* iommu) ++{ ++ struct intel_iommu *intel = iommu->intel; ++ struct acpi_drhd_unit *drhd = intel ? intel->drhd : NULL; ++ ++ if ( !is_igd_drhd(drhd) || !is_snb_gfx ) ++ return; ++ ++ if ( !map_igd_reg() ) ++ return; ++ ++ *((volatile u32 *)(igd_reg_va + 0x54)) = 0xA; ++ *((volatile u32 *)(igd_reg_va + 0x50)) = 0x10000; ++} ++ ++/* + * call before VT-d translation enable and IOTLB flush operations. + */ ++ ++static int snb_igd_quirk; ++boolean_param("snb_igd_quirk", snb_igd_quirk); ++ + void vtd_ops_preamble_quirk(struct iommu* iommu) + { + cantiga_vtd_ops_preamble(iommu); ++ if ( snb_igd_quirk ) ++ snb_vtd_ops_preamble(iommu); + } + + /* +@@ -156,7 +229,8 @@ void vtd_ops_preamble_quirk(struct iommu + */ + void vtd_ops_postamble_quirk(struct iommu* iommu) + { +- return; ++ if ( snb_igd_quirk ) ++ snb_vtd_ops_postamble(iommu); + } + + /* initialize platform identification flags */ +@@ -175,6 +249,8 @@ void __init platform_quirks_init(void) + /* initialize cantiga B3 identification */ + cantiga_b3_errata_init(); + ++ snb_errata_init(); ++ + /* ioremap IGD MMIO+0x2000 page */ + map_igd_reg(); + } +@@ -246,11 +322,14 @@ void me_wifi_quirk(struct domain *domain + id = pci_conf_read32(bus, PCI_SLOT(devfn), PCI_FUNC(devfn), 0); + switch (id) + { +- case 0x00878086: ++ case 0x00878086: /* Kilmer Peak */ + case 0x00898086: +- case 0x00828086: ++ case 0x00828086: /* Taylor Peak */ + case 0x00858086: +- case 0x42388086: ++ case 0x008F8086: /* Rainbow Peak */ ++ case 0x00908086: ++ case 0x00918086: ++ case 0x42388086: /* Puma Peak */ + case 0x422b8086: + case 0x422c8086: + map_me_phantom_function(domain, 22, map); +@@ -258,6 +337,28 @@ void me_wifi_quirk(struct domain *domain + default: + break; + } ++ } ++} + ++/* ++ * Mask reporting Intel VT-d faults to IOH core logic: ++ * - Some platform escalates VT-d faults to platform errors ++ * - This can cause system failure upon non-fatal VT-d faults ++ * - Potential security issue if malicious guest trigger VT-d faults ++ */ ++void pci_vtd_quirk(struct pci_dev *pdev) ++{ ++#ifdef CONFIG_X86_64 ++ int bus = pdev->bus; ++ int dev = PCI_SLOT(pdev->devfn); ++ int func = PCI_FUNC(pdev->devfn); ++ int id, val; ++ ++ id = pci_conf_read32(bus, dev, func, 0); ++ if ( id == 0x342e8086 || id == 0x3c288086 ) ++ { ++ val = pci_conf_read32(bus, dev, func, 0x1AC); ++ pci_conf_write32(bus, dev, func, 0x1AC, val | (1 << 31)); + } ++#endif + } diff --git a/22777-vtd-ats-fixes.patch b/22777-vtd-ats-fixes.patch new file mode 100644 index 0000000..9b514c7 --- /dev/null +++ b/22777-vtd-ats-fixes.patch @@ -0,0 +1,110 @@ +# HG changeset patch +# User Jan Beulich +# Date 1295353690 0 +# Node ID 1e7594758b28706c2b72358598ecf632ddda247b +# Parent 78e2e5a50daa1702e3fd9dbceada700cdaefd511 +VT-d/ATS: misc fixes + +First of all there were three places potentially de-referencing NULL +(two after an allocation failure, and one after a failed lookup). + +Second, if ATS_ENABLE was already set, the device would not have got +added to the ats_devices list, potentially resulting in +dev_invalidate_iotlb() doing an incomplete job. + +Signed-off-by: Jan Beulich + +Index: xen-4.0.2-testing/xen/drivers/passthrough/vtd/x86/ats.c +=================================================================== +--- xen-4.0.2-testing.orig/xen/drivers/passthrough/vtd/x86/ats.c ++++ xen-4.0.2-testing/xen/drivers/passthrough/vtd/x86/ats.c +@@ -91,6 +91,9 @@ int ats_device(int seg, int bus, int dev + return 0; + + pdev = pci_get_pdev(bus, devfn); ++ if ( !pdev ) ++ return 0; ++ + drhd = acpi_find_matched_drhd_unit(pdev); + if ( !drhd ) + return 0; +@@ -108,6 +111,8 @@ int ats_device(int seg, int bus, int dev + if ( pos && (ats_drhd == NULL) ) + { + new_drhd = xmalloc(struct acpi_drhd_unit); ++ if ( !new_drhd ) ++ return 0; + memcpy(new_drhd, drhd, sizeof(struct acpi_drhd_unit)); + list_add_tail(&new_drhd->list, &ats_dev_drhd_units); + } +@@ -116,9 +121,8 @@ int ats_device(int seg, int bus, int dev + + int enable_ats_device(int seg, int bus, int devfn) + { +- struct pci_ats_dev *pdev; ++ struct pci_ats_dev *pdev = NULL; + u32 value; +- u16 queue_depth; + int pos; + + if ( !acpi_find_matched_atsr_unit(bus, devfn) ) +@@ -142,26 +146,43 @@ int enable_ats_device(int seg, int bus, + + /* BUGBUG: add back seg when multi-seg platform support is enabled */ + value = pci_conf_read16(bus, PCI_SLOT(devfn), +- PCI_FUNC(devfn), pos + ATS_REG_CAP); +- queue_depth = value & ATS_QUEUE_DEPTH_MASK; +- +- value = pci_conf_read16(bus, PCI_SLOT(devfn), + PCI_FUNC(devfn), pos + ATS_REG_CTL); + if ( value & ATS_ENABLE ) +- return 0; ++ { ++ list_for_each_entry ( pdev, &ats_devices, list ) ++ { ++ if ( pdev->bus == bus && pdev->devfn == devfn ) ++ { ++ pos = 0; ++ break; ++ } ++ } ++ } ++ if ( pos ) ++ pdev = xmalloc(struct pci_ats_dev); ++ if ( !pdev ) ++ return -ENOMEM; ++ ++ if ( !(value & ATS_ENABLE) ) ++ { ++ value |= ATS_ENABLE; ++ pci_conf_write16(bus, PCI_SLOT(devfn), PCI_FUNC(devfn), ++ pos + ATS_REG_CTL, value); ++ } ++ ++ if ( pos ) ++ { ++ pdev->bus = bus; ++ pdev->devfn = devfn; ++ value = pci_conf_read16(bus, PCI_SLOT(devfn), ++ PCI_FUNC(devfn), pos + ATS_REG_CAP); ++ pdev->ats_queue_depth = value & ATS_QUEUE_DEPTH_MASK; ++ list_add(&pdev->list, &ats_devices); ++ } + +- value |= ATS_ENABLE; +- pci_conf_write16(bus, PCI_SLOT(devfn), PCI_FUNC(devfn), +- pos + ATS_REG_CTL, value); +- +- pdev = xmalloc(struct pci_ats_dev); +- pdev->bus = bus; +- pdev->devfn = devfn; +- pdev->ats_queue_depth = queue_depth; +- list_add(&(pdev->list), &ats_devices); + if ( iommu_verbose ) +- dprintk(XENLOG_INFO VTDPREFIX, "%x:%x.%x: ATS is enabled\n", +- bus, PCI_SLOT(devfn), PCI_FUNC(devfn)); ++ dprintk(XENLOG_INFO VTDPREFIX, "%x:%x.%x: ATS %s enabled\n", ++ bus, PCI_SLOT(devfn), PCI_FUNC(devfn), pos ? "is" : "was"); + + return pos; + } diff --git a/22781-pod-hap-logdirty.patch b/22781-pod-hap-logdirty.patch new file mode 100644 index 0000000..aae6044 --- /dev/null +++ b/22781-pod-hap-logdirty.patch @@ -0,0 +1,64 @@ +# HG changeset patch +# User George Dunlap +# Date 1295274541 0 +# Node ID 3decd02e0b18ae21fb926c6bad96a4cd02c48272 +# Parent 97ab84aca65cdcbce2ddccc51629fb24adb056cf +PoD,hap: Fix logdirty mode when using hardware assisted paging + +When writing a writable p2m entry for a pfn, we need to mark the pfn +dirty to avoid corruption when doing live migration. + +Marking the page dirty exposes another issue, where there are +excessive sweeps for zero pages if there's a mismatch between PoD +entries and cache entries. Only sweep for zero pages if we actually +need more memory. + +Signed-off-by: George Dunlap +Acked-by: Tim Deegan + +Index: xen-4.0.2-testing/xen/arch/x86/mm/p2m.c +=================================================================== +--- xen-4.0.2-testing.orig/xen/arch/x86/mm/p2m.c ++++ xen-4.0.2-testing/xen/arch/x86/mm/p2m.c +@@ -1064,14 +1064,22 @@ p2m_pod_demand_populate(struct domain *d + if ( unlikely(d->is_dying) ) + goto out_fail; + +- /* If we're low, start a sweep */ +- if ( order == 9 && page_list_empty(&p2md->pod.super) ) +- p2m_pod_emergency_sweep_super(d); +- +- if ( page_list_empty(&p2md->pod.single) && +- ( ( order == 0 ) +- || (order == 9 && page_list_empty(&p2md->pod.super) ) ) ) +- p2m_pod_emergency_sweep(d); ++ /* Once we've ballooned down enough that we can fill the remaining ++ * PoD entries from the cache, don't sweep even if the particular ++ * list we want to use is empty: that can lead to thrashing zero pages ++ * through the cache for no good reason. */ ++ if ( p2md->pod.entry_count > p2md->pod.count ) ++ { ++ ++ /* If we're low, start a sweep */ ++ if ( order == 9 && page_list_empty(&p2md->pod.super) ) ++ p2m_pod_emergency_sweep_super(d); ++ ++ if ( page_list_empty(&p2md->pod.single) && ++ ( ( order == 0 ) ++ || (order == 9 && page_list_empty(&p2md->pod.super) ) ) ) ++ p2m_pod_emergency_sweep(d); ++ } + + /* Keep track of the highest gfn demand-populated by a guest fault */ + if ( q == p2m_guest && gfn > p2md->pod.max_guest ) +@@ -1098,7 +1106,10 @@ p2m_pod_demand_populate(struct domain *d + set_p2m_entry(d, gfn_aligned, mfn, order, p2m_ram_rw); + + for( i = 0 ; i < (1UL << order) ; i++ ) ++ { + set_gpfn_from_mfn(mfn_x(mfn) + i, gfn_aligned + i); ++ paging_mark_dirty(d, mfn_x(mfn) + i); ++ } + + p2md->pod.entry_count -= (1 << order); /* Lock: p2m */ + BUG_ON(p2md->pod.entry_count < 0); diff --git a/22789-i386-no-x2apic.patch b/22789-i386-no-x2apic.patch new file mode 100644 index 0000000..2fc031c --- /dev/null +++ b/22789-i386-no-x2apic.patch @@ -0,0 +1,82 @@ +# HG changeset patch +# User Keir Fraser +# Date 1295625507 0 +# Node ID 9bd5f65050f8014de7d0fcf9d89ed8c441f261fa +# Parent 5852612cd4c461e5219db73cc52de0c643c414e8 +x86:x2apic: Disable x2apic on x86-32 permanently + +x2apic initialization on x86_32 uses vcpu pointer before it is +initialized. As x2apic is unlikely to be used on x86_32, this patch +disables x2apic permanently on x86_32. It also asserts the sanity of +vcpu pointer before dereference to prevent further misuse. + +Signed-off-by: Fengzhe Zhang + +jb: Moved logic into check_x2apic_preenabled(), disabled dead code on + x86_32. + +Index: xen-4.0.2-testing/xen/arch/x86/apic.c +=================================================================== +--- xen-4.0.2-testing.orig/xen/arch/x86/apic.c ++++ xen-4.0.2-testing/xen/arch/x86/apic.c +@@ -959,6 +959,10 @@ void x2apic_setup(void) + if ( !cpu_has_x2apic ) + return; + ++#ifdef __i386__ ++ BUG(); ++#else ++ + if ( !opt_x2apic ) + { + if ( !x2apic_enabled ) +@@ -1020,6 +1024,7 @@ restore_out: + unmask_8259A(); + + out: ++#endif /* !__i386__ */ + if ( ioapic_entries ) + free_ioapic_entries(ioapic_entries); + } +Index: xen-4.0.2-testing/xen/arch/x86/genapic/x2apic.c +=================================================================== +--- xen-4.0.2-testing.orig/xen/arch/x86/genapic/x2apic.c ++++ xen-4.0.2-testing/xen/arch/x86/genapic/x2apic.c +@@ -25,6 +25,8 @@ + #include + #include + ++#ifndef __i386__ ++ + static int x2apic_phys; /* By default we use logical cluster mode. */ + boolean_param("x2apic_phys", x2apic_phys); + +@@ -137,6 +139,8 @@ const struct genapic *apic_x2apic_probe( + return x2apic_phys ? &apic_x2apic_phys : &apic_x2apic_cluster; + } + ++#endif /* !__i386__ */ ++ + void __init check_x2apic_preenabled(void) + { + u32 lo, hi; +@@ -149,7 +153,19 @@ void __init check_x2apic_preenabled(void + if ( lo & MSR_IA32_APICBASE_EXTD ) + { + printk("x2APIC mode is already enabled by BIOS.\n"); ++#ifndef __i386__ + x2apic_enabled = 1; + genapic = apic_x2apic_probe(); ++#else ++ lo &= ~(MSR_IA32_APICBASE_ENABLE | MSR_IA32_APICBASE_EXTD); ++ wrmsr(MSR_IA32_APICBASE, lo, hi); ++ lo |= MSR_IA32_APICBASE_ENABLE; ++ wrmsr(MSR_IA32_APICBASE, lo, hi); ++ printk("x2APIC disabled permanently on x86_32.\n"); ++#endif + } ++ ++#ifdef __i386__ ++ clear_bit(X86_FEATURE_X2APIC, boot_cpu_data.x86_capability); ++#endif + } diff --git a/22790-svm-resume-migrate-pirqs.patch b/22790-svm-resume-migrate-pirqs.patch new file mode 100644 index 0000000..9964be3 --- /dev/null +++ b/22790-svm-resume-migrate-pirqs.patch @@ -0,0 +1,24 @@ +# HG changeset patch +# User Keir Fraser +# Date 1295625605 0 +# Node ID 43592043cefc8357e6e6a0ab9ba85ca480968cb1 +# Parent 9bd5f65050f8014de7d0fcf9d89ed8c441f261fa +svm: migrate pirq with vcpu + +hvm_migrate_pirqs() is missing in svm_do_resume(). + +Signed-off-by: Wei Wang + +Index: xen-4.0.2-testing/xen/arch/x86/hvm/svm/svm.c +=================================================================== +--- xen-4.0.2-testing.orig/xen/arch/x86/hvm/svm/svm.c ++++ xen-4.0.2-testing/xen/arch/x86/hvm/svm/svm.c +@@ -704,7 +704,7 @@ static void svm_do_resume(struct vcpu *v + { + v->arch.hvm_svm.launch_core = smp_processor_id(); + hvm_migrate_timers(v); +- ++ hvm_migrate_pirqs(v); + /* Migrating to another ASID domain. Request a new ASID. */ + hvm_asid_flush_vcpu(v); + } diff --git a/32on64-extra-mem.patch b/32on64-extra-mem.patch index 87bf052..dd04837 100644 --- a/32on64-extra-mem.patch +++ b/32on64-extra-mem.patch @@ -1,7 +1,7 @@ -Index: xen-4.0.1-testing/tools/python/xen/xend/XendDomainInfo.py +Index: xen-4.0.2-testing/tools/python/xen/xend/XendDomainInfo.py =================================================================== ---- xen-4.0.1-testing.orig/tools/python/xen/xend/XendDomainInfo.py -+++ xen-4.0.1-testing/tools/python/xen/xend/XendDomainInfo.py +--- xen-4.0.2-testing.orig/tools/python/xen/xend/XendDomainInfo.py ++++ xen-4.0.2-testing/tools/python/xen/xend/XendDomainInfo.py @@ -2919,7 +2919,7 @@ class XendDomainInfo: self.guest_bitsize = self.image.getBitSize() diff --git a/7410-qemu-alt-gr.patch b/7410-qemu-alt-gr.patch index e41ba7a..6f861fe 100644 --- a/7410-qemu-alt-gr.patch +++ b/7410-qemu-alt-gr.patch @@ -20,10 +20,11 @@ Signed-off-by: Chunyan Liu committer: Ian Jackson git-commit-id: f95d202ed6444dacb15fbea4dee185eb0e048d9a -diff -r 080b5a094d4e -r f71a4c18e34e keymaps.c ---- a/tools/ioemu-qemu-xen/keymaps.c Wed Sep 08 16:38:09 2010 +0100 -+++ b//tools/ioemu-qemu-xen/keymaps.c Tue Sep 14 17:31:43 2010 +0100 -@@ -51,6 +51,7 @@ +Index: xen-4.0.2-testing/tools/ioemu-qemu-xen/keymaps.c +=================================================================== +--- xen-4.0.2-testing.orig/tools/ioemu-qemu-xen/keymaps.c ++++ xen-4.0.2-testing/tools/ioemu-qemu-xen/keymaps.c +@@ -51,6 +51,7 @@ typedef struct { struct key_range *numlock_range; struct key_range *shift_range; struct key_range *localstate_range; @@ -31,20 +32,18 @@ diff -r 080b5a094d4e -r f71a4c18e34e keymaps.c } kbd_layout_t; static void add_to_key_range(struct key_range **krp, int code) { -@@ -133,7 +134,11 @@ +@@ -133,6 +134,10 @@ static kbd_layout_t *parse_keyboard_layo add_to_key_range(&k->localstate_range, keycode); //fprintf(stderr, "localstate keysym %04x keycode %d\n", keysym, keycode); } -- + if (rest && strstr(rest, "altgr")) { + add_to_key_range(&k->altgr_range, keysym); + //fprintf(stderr, "altgr keysym %04x keycode %d\n", keysym, keycode); + } -+ + /* if(keycode&0x80) keycode=(keycode<<8)^0x80e0; */ - if (keysym < MAX_NORMAL_KEYCODE) { -@@ -233,3 +238,16 @@ +@@ -233,3 +238,16 @@ static inline int keycode_is_shiftable(v return 0; return 1; } @@ -61,10 +60,11 @@ diff -r 080b5a094d4e -r f71a4c18e34e keymaps.c + return 0; +} + -diff -r 080b5a094d4e -r f71a4c18e34e vnc.c ---- a/tools/ioemu-qemu-xen/vnc.c Wed Sep 08 16:38:09 2010 +0100 -+++ b/tools/ioemu-qemu-xen/vnc.c Tue Sep 14 17:31:43 2010 +0100 -@@ -1274,12 +1274,27 @@ +Index: xen-4.0.2-testing/tools/ioemu-qemu-xen/vnc.c +=================================================================== +--- xen-4.0.2-testing.orig/tools/ioemu-qemu-xen/vnc.c ++++ xen-4.0.2-testing/tools/ioemu-qemu-xen/vnc.c +@@ -1274,12 +1274,27 @@ static void press_key_shift_up(VncState } } @@ -92,7 +92,7 @@ diff -r 080b5a094d4e -r f71a4c18e34e vnc.c if (is_graphic_console()) { if (sym >= 'A' && sym <= 'Z') { -@@ -1289,8 +1304,11 @@ +@@ -1289,8 +1304,11 @@ static void do_key_event(VncState *vs, i else { shift = keysym_is_shift(vs->kbd_layout, sym & 0xFFFF); } @@ -104,7 +104,7 @@ diff -r 080b5a094d4e -r f71a4c18e34e vnc.c keycode = keysym2scancode(vs->kbd_layout, sym & 0xFFFF); if (keycode == 0) { -@@ -1357,6 +1375,11 @@ +@@ -1357,6 +1375,11 @@ static void do_key_event(VncState *vs, i } if (is_graphic_console()) { diff --git a/7426-xenfb-depth.patch b/7426-xenfb-depth.patch index 1d5ae4b..e5c5f14 100644 --- a/7426-xenfb-depth.patch +++ b/7426-xenfb-depth.patch @@ -1,7 +1,7 @@ -Index: xen-4.0.1-testing/tools/ioemu-qemu-xen/hw/xenfb.c +Index: xen-4.0.2-testing/tools/ioemu-qemu-xen/hw/xenfb.c =================================================================== ---- xen-4.0.1-testing.orig/tools/ioemu-qemu-xen/hw/xenfb.c -+++ xen-4.0.1-testing/tools/ioemu-qemu-xen/hw/xenfb.c +--- xen-4.0.2-testing.orig/tools/ioemu-qemu-xen/hw/xenfb.c ++++ xen-4.0.2-testing/tools/ioemu-qemu-xen/hw/xenfb.c @@ -622,6 +622,18 @@ static void xenfb_guest_copy(struct XenF oops = 1; } diff --git a/7433-qemu-altgr.patch b/7433-qemu-altgr.patch index e75f9c6..32f3ff8 100644 --- a/7433-qemu-altgr.patch +++ b/7433-qemu-altgr.patch @@ -1,38 +1,97 @@ ---- a/tools/ioemu-qemu-xen/keymaps.c Wed Jan 05 23:16:54 2011 +0000 -+++ b/tools/ioemu-qemu-xen/keymaps.c Wed Jan 05 23:48:36 2011 +0000 -@@ -53,6 +53,20 @@ typedef struct { - struct key_range *localstate_range; +# HG changeset patch +# User Chun Yan Liu +# Date 1294271316 0 +# Node ID a283996796c91dd29ecff444b78798e0ce902047 +# Parent 39df13908a3ad54e79dd3b53ed307e57f12f6d3d +fix '|' key display problem in en-us with altgr processing + +Commit f95d202ed644 handles altgr-insert problem. Unfortunately, with +that patch, there is a problem in En-us keyboard: '|' (bar) cannot be +displayed. After checking keymap files, we found there are two +definitions to "bar" in en-us: bar 0x56 altgr (in "common") bar 0x2b +shift (in "en-us") First line is actually invalid in en-us +lanuage. The 2nd definition will cover the 1st one. + +The previous change in didn't consider multi-definition case. It scans +keymap files, if keysym needs altgr, it will records that, after that, +if keysym is pressed but altgr not pressed, it will add an altgr press +opeartion. It is correct if all keysyms are unique and valid. But in +the above multi-definition case, there is problem: when reading bar +0x56 altgr (in "common") it will record altgr needed, but in fact, +that definition won't be used, it always use the 2nd definition and +won't need altgr. Then if the keysym is pressed, the code will still +add an altgr press operation, that will cause problem. + +So, if we cannot avoid multi-definition in keymap files, the altgr +flag (whether altgr needed or not) should also be refreshed according +to the 2nd defintion. In the above case, when reading the 1st line, it +records altgr needed; then reading 2nd line, 2nd definition will cover +the 1st, meanwhile the altgr flag should be reset (the 2nd definition +doesn't need altgr, so altgr flag should be removed.) + +Following patch supplements f95d202ed644, and solve the +problem. + +Signed-off-by: Chun Yan Liu +Signed-off-by: Ian Jackson + +committer: Ian Jackson +git-commit-id: 99d53fbb69d3e03be61ae10506a304a3d08d792f + +# HG changeset patch +# User Jan Beulich +# Date 1295287237 0 +# Node ID b47bf8f7a5e1959d6f5c62febaef9e81dc3231a0 +# Parent b6bbe8be0afa54774a19ef43767a029ebddb2666 +keymaps.c: fix use after free in del_key_range + +Commit 99d53fbb69d3e03be61ae10506a304a3d08d792f introduced this, and +the compiler indirectly warned about it. + +The patch is only compile tested (I don't even know how to reproduce +the original problem), but I suppose worth applying regardless. + +Signed-off-by: Jan Beulich +Cc: Chun Yan Liu + +committer: Ian Jackson +git-commit-id: fdb22f24bc8adb3455b771d804496e11b4570085 + +Index: xen-4.0.2-testing/tools/ioemu-qemu-xen/keymaps.c +=================================================================== +--- xen-4.0.2-testing.orig/tools/ioemu-qemu-xen/keymaps.c ++++ xen-4.0.2-testing/tools/ioemu-qemu-xen/keymaps.c +@@ -54,6 +54,17 @@ typedef struct { struct key_range *altgr_range; } kbd_layout_t; -+ + +static void del_key_range(struct key_range **krp, int code) { + struct key_range *kr; -+ struct key_range *kr_pr; -+ for (kr = *krp; kr; kr_pr = kr, kr = kr->next) { ++ while ((kr = *krp) != NULL) { + if (code >= kr->start && code <= kr->end) { -+ if (kr == *krp) -+ *krp = kr->next; -+ else -+ kr_pr->next = kr->next; ++ *krp = kr->next; + qemu_free(kr); -+ } ++ } else ++ krp = &kr->next; + } +} - ++ static void add_to_key_range(struct key_range **krp, int code) { struct key_range *kr; -@@ -137,6 +151,8 @@ static kbd_layout_t *parse_keyboard_layo + for (kr = *krp; kr; kr = kr->next) { +@@ -137,6 +148,8 @@ static kbd_layout_t *parse_keyboard_layo if (rest && strstr(rest, "altgr")) { add_to_key_range(&k->altgr_range, keysym); //fprintf(stderr, "altgr keysym %04x keycode %d\n", keysym, keycode); + } else { + del_key_range(&k->altgr_range, keysym); } - + /* if(keycode&0x80) - ---- a/tools/ioemu-qemu-xen/vnc.c Wed Jan 05 23:16:54 2011 +0000 -+++ b/tools/ioemu-qemu-xen/vnc.c Wed Jan 05 23:48:36 2011 +0000 +Index: xen-4.0.2-testing/tools/ioemu-qemu-xen/vnc.c +=================================================================== +--- xen-4.0.2-testing.orig/tools/ioemu-qemu-xen/vnc.c ++++ xen-4.0.2-testing/tools/ioemu-qemu-xen/vnc.c @@ -1279,11 +1279,9 @@ static void press_key_altgr_down(VncStat kbd_put_keycode(0xe0); if (down){ @@ -44,3 +103,4 @@ - vs->modifiers_state[0xb8] = 0; } } + diff --git a/7434-qemu-rlimit-as.patch b/7434-qemu-rlimit-as.patch index cad3bdb..5a5090c 100644 --- a/7434-qemu-rlimit-as.patch +++ b/7434-qemu-rlimit-as.patch @@ -16,8 +16,10 @@ committer: Ian Jackson git-commit-id: 2aa36d470e97f4baa219f78df82e2d3fe3d9f96d ---- a/tools/ioemu-qemu-xen/vl.c -+++ b/tools/ioemu-qemu-xen/vl.c +Index: xen-4.0.2-testing/tools/ioemu-qemu-xen/vl.c +=================================================================== +--- xen-4.0.2-testing.orig/tools/ioemu-qemu-xen/vl.c ++++ xen-4.0.2-testing/tools/ioemu-qemu-xen/vl.c @@ -4845,6 +4845,13 @@ int main(int argc, char **argv, char **e rl.rlim_cur = rl.rlim_max; if (setrlimit(RLIMIT_DATA, &rl) != 0) diff --git a/altgr_2.patch b/altgr_2.patch index 108b652..d6160b8 100644 --- a/altgr_2.patch +++ b/altgr_2.patch @@ -29,10 +29,10 @@ keycodes up and down events and make sure the intentionally added altgr keycode Signed-off by Chunyan Liu (cyliu@novell.com) -Index: xen-4.0.1-testing/tools/ioemu-qemu-xen/vnc.c +Index: xen-4.0.2-testing/tools/ioemu-qemu-xen/vnc.c =================================================================== ---- xen-4.0.1-testing.orig/tools/ioemu-qemu-xen/vnc.c -+++ xen-4.0.1-testing/tools/ioemu-qemu-xen/vnc.c +--- xen-4.0.2-testing.orig/tools/ioemu-qemu-xen/vnc.c ++++ xen-4.0.2-testing/tools/ioemu-qemu-xen/vnc.c @@ -1308,6 +1308,9 @@ static void do_key_event(VncState *vs, i shift_keys = vs->modifiers_state[0x2a] | vs->modifiers_state[0x36]; altgr_keys = vs->modifiers_state[0xb8]; diff --git a/bdrv_default_rwflag.patch b/bdrv_default_rwflag.patch index 33a6956..8b91b50 100644 --- a/bdrv_default_rwflag.patch +++ b/bdrv_default_rwflag.patch @@ -1,10 +1,10 @@ Subject: modify default read/write flag in bdrv_init. Signed-off by Chunyan Liu -Index: xen-4.0.1-testing/tools/ioemu-qemu-xen/vl.c +Index: xen-4.0.2-testing/tools/ioemu-qemu-xen/vl.c =================================================================== ---- xen-4.0.1-testing.orig/tools/ioemu-qemu-xen/vl.c -+++ xen-4.0.1-testing/tools/ioemu-qemu-xen/vl.c +--- xen-4.0.2-testing.orig/tools/ioemu-qemu-xen/vl.c ++++ xen-4.0.2-testing/tools/ioemu-qemu-xen/vl.c @@ -2612,6 +2612,8 @@ int drive_init(struct drive_opt *arg, in strncpy(drives_table[nb_drives].serial, serial, sizeof(serial)); nb_drives++; diff --git a/bdrv_open2_fix_flags.patch b/bdrv_open2_fix_flags.patch index 0ab9c3d..225606c 100644 --- a/bdrv_open2_fix_flags.patch +++ b/bdrv_open2_fix_flags.patch @@ -1,7 +1,7 @@ -Index: xen-4.0.1-testing/tools/ioemu-qemu-xen/block.c +Index: xen-4.0.2-testing/tools/ioemu-qemu-xen/block.c =================================================================== ---- xen-4.0.1-testing.orig/tools/ioemu-qemu-xen/block.c -+++ xen-4.0.1-testing/tools/ioemu-qemu-xen/block.c +--- xen-4.0.2-testing.orig/tools/ioemu-qemu-xen/block.c ++++ xen-4.0.2-testing/tools/ioemu-qemu-xen/block.c @@ -350,7 +350,7 @@ int bdrv_file_open(BlockDriverState **pb int bdrv_open(BlockDriverState *bs, const char *filename, int flags) @@ -28,10 +28,10 @@ Index: xen-4.0.1-testing/tools/ioemu-qemu-xen/block.c ret = drv->bdrv_open(bs, filename, open_flags); if ((ret == -EACCES || ret == -EPERM) && !(flags & BDRV_O_FILE)) { ret = drv->bdrv_open(bs, filename, open_flags & ~BDRV_O_RDWR); -Index: xen-4.0.1-testing/tools/ioemu-qemu-xen/hw/usb-msd.c +Index: xen-4.0.2-testing/tools/ioemu-qemu-xen/hw/usb-msd.c =================================================================== ---- xen-4.0.1-testing.orig/tools/ioemu-qemu-xen/hw/usb-msd.c -+++ xen-4.0.1-testing/tools/ioemu-qemu-xen/hw/usb-msd.c +--- xen-4.0.2-testing.orig/tools/ioemu-qemu-xen/hw/usb-msd.c ++++ xen-4.0.2-testing/tools/ioemu-qemu-xen/hw/usb-msd.c @@ -551,7 +551,7 @@ USBDevice *usb_msd_init(const char *file s = qemu_mallocz(sizeof(MSDState)); @@ -41,10 +41,10 @@ Index: xen-4.0.1-testing/tools/ioemu-qemu-xen/hw/usb-msd.c goto fail; s->bs = bdrv; *pbs = bdrv; -Index: xen-4.0.1-testing/tools/ioemu-qemu-xen/qemu-img.c +Index: xen-4.0.2-testing/tools/ioemu-qemu-xen/qemu-img.c =================================================================== ---- xen-4.0.1-testing.orig/tools/ioemu-qemu-xen/qemu-img.c -+++ xen-4.0.1-testing/tools/ioemu-qemu-xen/qemu-img.c +--- xen-4.0.2-testing.orig/tools/ioemu-qemu-xen/qemu-img.c ++++ xen-4.0.2-testing/tools/ioemu-qemu-xen/qemu-img.c @@ -32,7 +32,7 @@ #endif diff --git a/bdrv_open2_flags_2.patch b/bdrv_open2_flags_2.patch index e5fbb73..906b1c5 100644 --- a/bdrv_open2_flags_2.patch +++ b/bdrv_open2_flags_2.patch @@ -1,7 +1,7 @@ -Index: xen-4.0.1-testing/tools/ioemu-qemu-xen/hw/xen_blktap.c +Index: xen-4.0.2-testing/tools/ioemu-qemu-xen/hw/xen_blktap.c =================================================================== ---- xen-4.0.1-testing.orig/tools/ioemu-qemu-xen/hw/xen_blktap.c -+++ xen-4.0.1-testing/tools/ioemu-qemu-xen/hw/xen_blktap.c +--- xen-4.0.2-testing.orig/tools/ioemu-qemu-xen/hw/xen_blktap.c ++++ xen-4.0.2-testing/tools/ioemu-qemu-xen/hw/xen_blktap.c @@ -237,6 +237,7 @@ static int open_disk(struct td_state *s, BlockDriver* drv; char* devname; @@ -19,10 +19,10 @@ Index: xen-4.0.1-testing/tools/ioemu-qemu-xen/hw/xen_blktap.c fprintf(stderr, "Could not open image file %s\n", path); return -ENOMEM; } -Index: xen-4.0.1-testing/tools/ioemu-qemu-xen/xenstore.c +Index: xen-4.0.2-testing/tools/ioemu-qemu-xen/xenstore.c =================================================================== ---- xen-4.0.1-testing.orig/tools/ioemu-qemu-xen/xenstore.c -+++ xen-4.0.1-testing/tools/ioemu-qemu-xen/xenstore.c +--- xen-4.0.2-testing.orig/tools/ioemu-qemu-xen/xenstore.c ++++ xen-4.0.2-testing/tools/ioemu-qemu-xen/xenstore.c @@ -136,7 +136,8 @@ static void insert_media(void *opaque) else format = &bdrv_raw; diff --git a/blktap-pv-cdrom.patch b/blktap-pv-cdrom.patch index 6a0b6f1..7beb692 100644 --- a/blktap-pv-cdrom.patch +++ b/blktap-pv-cdrom.patch @@ -1,7 +1,7 @@ -Index: xen-4.0.1-testing/tools/blktap/drivers/block-cdrom.c +Index: xen-4.0.2-testing/tools/blktap/drivers/block-cdrom.c =================================================================== --- /dev/null -+++ xen-4.0.1-testing/tools/blktap/drivers/block-cdrom.c ++++ xen-4.0.2-testing/tools/blktap/drivers/block-cdrom.c @@ -0,0 +1,535 @@ +/* block-cdrom.c + * @@ -538,10 +538,10 @@ Index: xen-4.0.1-testing/tools/blktap/drivers/block-cdrom.c + .td_get_parent_id = tdcdrom_get_parent_id, + .td_validate_parent = tdcdrom_validate_parent +}; -Index: xen-4.0.1-testing/xen/include/public/io/cdromif.h +Index: xen-4.0.2-testing/xen/include/public/io/cdromif.h =================================================================== --- /dev/null -+++ xen-4.0.1-testing/xen/include/public/io/cdromif.h ++++ xen-4.0.2-testing/xen/include/public/io/cdromif.h @@ -0,0 +1,122 @@ +/****************************************************************************** + * cdromif.h @@ -665,10 +665,10 @@ Index: xen-4.0.1-testing/xen/include/public/io/cdromif.h + sizeof(struct vcd_generic_command) - sizeof(struct request_sense)) + +#endif -Index: xen-4.0.1-testing/tools/blktap/drivers/Makefile +Index: xen-4.0.2-testing/tools/blktap/drivers/Makefile =================================================================== ---- xen-4.0.1-testing.orig/tools/blktap/drivers/Makefile -+++ xen-4.0.1-testing/tools/blktap/drivers/Makefile +--- xen-4.0.2-testing.orig/tools/blktap/drivers/Makefile ++++ xen-4.0.2-testing/tools/blktap/drivers/Makefile @@ -28,8 +28,9 @@ CFLAGS += -DMEMSHR MEMSHRLIBS += $(MEMSHR_DIR)/libmemshr.a endif @@ -689,10 +689,10 @@ Index: xen-4.0.1-testing/tools/blktap/drivers/Makefile BLK-OBJS-y += aes.o BLK-OBJS-y += tapaio.o BLK-OBJS-$(CONFIG_Linux) += blk_linux.o -Index: xen-4.0.1-testing/tools/blktap/drivers/tapdisk.h +Index: xen-4.0.2-testing/tools/blktap/drivers/tapdisk.h =================================================================== ---- xen-4.0.1-testing.orig/tools/blktap/drivers/tapdisk.h -+++ xen-4.0.1-testing/tools/blktap/drivers/tapdisk.h +--- xen-4.0.2-testing.orig/tools/blktap/drivers/tapdisk.h ++++ xen-4.0.2-testing/tools/blktap/drivers/tapdisk.h @@ -137,6 +137,9 @@ struct tap_disk { int (*td_get_parent_id) (struct disk_driver *dd, struct disk_id *id); int (*td_validate_parent)(struct disk_driver *dd, @@ -737,10 +737,10 @@ Index: xen-4.0.1-testing/tools/blktap/drivers/tapdisk.h }; typedef struct driver_list_entry { -Index: xen-4.0.1-testing/tools/blktap/lib/blktaplib.h +Index: xen-4.0.2-testing/tools/blktap/lib/blktaplib.h =================================================================== ---- xen-4.0.1-testing.orig/tools/blktap/lib/blktaplib.h -+++ xen-4.0.1-testing/tools/blktap/lib/blktaplib.h +--- xen-4.0.2-testing.orig/tools/blktap/lib/blktaplib.h ++++ xen-4.0.2-testing/tools/blktap/lib/blktaplib.h @@ -225,6 +225,7 @@ typedef struct msg_pid { #define DISK_TYPE_RAM 3 #define DISK_TYPE_QCOW 4 @@ -749,10 +749,10 @@ Index: xen-4.0.1-testing/tools/blktap/lib/blktaplib.h /* xenstore/xenbus: */ #define DOMNAME "Domain-0" -Index: xen-4.0.1-testing/xen/include/public/io/blkif.h +Index: xen-4.0.2-testing/xen/include/public/io/blkif.h =================================================================== ---- xen-4.0.1-testing.orig/xen/include/public/io/blkif.h -+++ xen-4.0.1-testing/xen/include/public/io/blkif.h +--- xen-4.0.2-testing.orig/xen/include/public/io/blkif.h ++++ xen-4.0.2-testing/xen/include/public/io/blkif.h @@ -76,6 +76,10 @@ * "feature-flush-cache" node! */ @@ -764,10 +764,10 @@ Index: xen-4.0.1-testing/xen/include/public/io/blkif.h /* * Maximum scatter/gather segments per request. -Index: xen-4.0.1-testing/tools/blktap/drivers/tapdisk.c +Index: xen-4.0.2-testing/tools/blktap/drivers/tapdisk.c =================================================================== ---- xen-4.0.1-testing.orig/tools/blktap/drivers/tapdisk.c -+++ xen-4.0.1-testing/tools/blktap/drivers/tapdisk.c +--- xen-4.0.2-testing.orig/tools/blktap/drivers/tapdisk.c ++++ xen-4.0.2-testing/tools/blktap/drivers/tapdisk.c @@ -735,6 +735,22 @@ static void get_io_request(struct td_sta goto out; } @@ -791,10 +791,10 @@ Index: xen-4.0.1-testing/tools/blktap/drivers/tapdisk.c default: DPRINTF("Unknown block operation\n"); break; -Index: xen-4.0.1-testing/tools/python/xen/xend/server/BlktapController.py +Index: xen-4.0.2-testing/tools/python/xen/xend/server/BlktapController.py =================================================================== ---- xen-4.0.1-testing.orig/tools/python/xen/xend/server/BlktapController.py -+++ xen-4.0.1-testing/tools/python/xen/xend/server/BlktapController.py +--- xen-4.0.2-testing.orig/tools/python/xen/xend/server/BlktapController.py ++++ xen-4.0.2-testing/tools/python/xen/xend/server/BlktapController.py @@ -21,6 +21,7 @@ blktap1_disk_types = [ 'ram', 'qcow', diff --git a/blktap.patch b/blktap.patch index eefcac8..7c7ac67 100644 --- a/blktap.patch +++ b/blktap.patch @@ -1,11 +1,11 @@ bug #239173 bug #242953 -Index: xen-4.0.1-testing/tools/python/xen/xend/XendDomainInfo.py +Index: xen-4.0.2-testing/tools/python/xen/xend/XendDomainInfo.py =================================================================== ---- xen-4.0.1-testing.orig/tools/python/xen/xend/XendDomainInfo.py -+++ xen-4.0.1-testing/tools/python/xen/xend/XendDomainInfo.py -@@ -3290,7 +3290,7 @@ class XendDomainInfo: +--- xen-4.0.2-testing.orig/tools/python/xen/xend/XendDomainInfo.py ++++ xen-4.0.2-testing/tools/python/xen/xend/XendDomainInfo.py +@@ -3291,7 +3291,7 @@ class XendDomainInfo: (fn, BOOTLOADER_LOOPBACK_DEVICE)) vbd = { @@ -14,10 +14,10 @@ Index: xen-4.0.1-testing/tools/python/xen/xend/XendDomainInfo.py 'device': BOOTLOADER_LOOPBACK_DEVICE, } -Index: xen-4.0.1-testing/tools/ioemu-qemu-xen/xenstore.c +Index: xen-4.0.2-testing/tools/ioemu-qemu-xen/xenstore.c =================================================================== ---- xen-4.0.1-testing.orig/tools/ioemu-qemu-xen/xenstore.c -+++ xen-4.0.1-testing/tools/ioemu-qemu-xen/xenstore.c +--- xen-4.0.2-testing.orig/tools/ioemu-qemu-xen/xenstore.c ++++ xen-4.0.2-testing/tools/ioemu-qemu-xen/xenstore.c @@ -397,9 +397,9 @@ void xenstore_parse_domain_config(int hv { char **e_danger = NULL; diff --git a/blktap2.patch b/blktap2.patch index 9d5c3b0..61738d5 100644 --- a/blktap2.patch +++ b/blktap2.patch @@ -3,10 +3,10 @@ Change it to VmError. Signed-off-by ChunyanLiu -Index: xen-4.0.1-testing/tools/python/xen/xend/server/BlktapController.py +Index: xen-4.0.2-testing/tools/python/xen/xend/server/BlktapController.py =================================================================== ---- xen-4.0.1-testing.orig/tools/python/xen/xend/server/BlktapController.py -+++ xen-4.0.1-testing/tools/python/xen/xend/server/BlktapController.py +--- xen-4.0.2-testing.orig/tools/python/xen/xend/server/BlktapController.py ++++ xen-4.0.2-testing/tools/python/xen/xend/server/BlktapController.py @@ -4,6 +4,7 @@ import string, re from xen.xend.server.blkif import BlkifController from xen.xend.XendLogging import log diff --git a/blktapctrl-default-to-ioemu.patch b/blktapctrl-default-to-ioemu.patch index 6c79a4d..e7f3126 100644 --- a/blktapctrl-default-to-ioemu.patch +++ b/blktapctrl-default-to-ioemu.patch @@ -1,7 +1,7 @@ -Index: xen-4.0.1-testing/tools/blktap/drivers/tapdisk.h +Index: xen-4.0.2-testing/tools/blktap/drivers/tapdisk.h =================================================================== ---- xen-4.0.1-testing.orig/tools/blktap/drivers/tapdisk.h -+++ xen-4.0.1-testing/tools/blktap/drivers/tapdisk.h +--- xen-4.0.2-testing.orig/tools/blktap/drivers/tapdisk.h ++++ xen-4.0.2-testing/tools/blktap/drivers/tapdisk.h @@ -168,7 +168,7 @@ static disk_info_t aio_disk = { "raw image (aio)", "aio", diff --git a/bridge-bonding.diff b/bridge-bonding.diff index c9b0e6e..12f4655 100644 --- a/bridge-bonding.diff +++ b/bridge-bonding.diff @@ -1,7 +1,7 @@ -Index: xen-4.0.1-testing/tools/hotplug/Linux/network-bridge +Index: xen-4.0.2-testing/tools/hotplug/Linux/network-bridge =================================================================== ---- xen-4.0.1-testing.orig/tools/hotplug/Linux/network-bridge -+++ xen-4.0.1-testing/tools/hotplug/Linux/network-bridge +--- xen-4.0.2-testing.orig/tools/hotplug/Linux/network-bridge ++++ xen-4.0.2-testing/tools/hotplug/Linux/network-bridge @@ -245,6 +245,9 @@ op_start () { claim_lock "network-bridge" diff --git a/bridge-opensuse.patch b/bridge-opensuse.patch index 2c3ed96..0e742fe 100644 --- a/bridge-opensuse.patch +++ b/bridge-opensuse.patch @@ -1,7 +1,7 @@ -Index: xen-4.0.1-testing/tools/hotplug/Linux/network-bridge +Index: xen-4.0.2-testing/tools/hotplug/Linux/network-bridge =================================================================== ---- xen-4.0.1-testing.orig/tools/hotplug/Linux/network-bridge -+++ xen-4.0.1-testing/tools/hotplug/Linux/network-bridge +--- xen-4.0.2-testing.orig/tools/hotplug/Linux/network-bridge ++++ xen-4.0.2-testing/tools/hotplug/Linux/network-bridge @@ -270,19 +270,19 @@ op_stop () { transfer_addrs ${bridge} ${pdev} if ! ifdown ${bridge}; then diff --git a/bridge-record-creation.patch b/bridge-record-creation.patch index 870f007..965db3c 100644 --- a/bridge-record-creation.patch +++ b/bridge-record-creation.patch @@ -1,7 +1,7 @@ -Index: xen-4.0.1-testing/tools/hotplug/Linux/network-bridge +Index: xen-4.0.2-testing/tools/hotplug/Linux/network-bridge =================================================================== ---- xen-4.0.1-testing.orig/tools/hotplug/Linux/network-bridge -+++ xen-4.0.1-testing/tools/hotplug/Linux/network-bridge +--- xen-4.0.2-testing.orig/tools/hotplug/Linux/network-bridge ++++ xen-4.0.2-testing/tools/hotplug/Linux/network-bridge @@ -253,6 +253,11 @@ op_start () { create_bridge ${tdev} diff --git a/bridge-vlan.diff b/bridge-vlan.diff index 897daab..bbe5ecc 100644 --- a/bridge-vlan.diff +++ b/bridge-vlan.diff @@ -1,7 +1,7 @@ -Index: xen-4.0.1-testing/tools/hotplug/Linux/network-bridge +Index: xen-4.0.2-testing/tools/hotplug/Linux/network-bridge =================================================================== ---- xen-4.0.1-testing.orig/tools/hotplug/Linux/network-bridge -+++ xen-4.0.1-testing/tools/hotplug/Linux/network-bridge +--- xen-4.0.2-testing.orig/tools/hotplug/Linux/network-bridge ++++ xen-4.0.2-testing/tools/hotplug/Linux/network-bridge @@ -193,6 +193,28 @@ antispoofing () { iptables -A FORWARD -m physdev --physdev-in ${pdev} -j ACCEPT } diff --git a/build-tapdisk-ioemu.patch b/build-tapdisk-ioemu.patch index 9b9c70d..344e36d 100644 --- a/build-tapdisk-ioemu.patch +++ b/build-tapdisk-ioemu.patch @@ -15,10 +15,10 @@ Signed-off-by: Kevin Wolf tapdisk-ioemu.c | 17 ----------------- 4 files changed, 17 insertions(+), 26 deletions(-) -Index: xen-4.0.1-testing/tools/ioemu-qemu-xen/Makefile +Index: xen-4.0.2-testing/tools/ioemu-qemu-xen/Makefile =================================================================== ---- xen-4.0.1-testing.orig/tools/ioemu-qemu-xen/Makefile -+++ xen-4.0.1-testing/tools/ioemu-qemu-xen/Makefile +--- xen-4.0.2-testing.orig/tools/ioemu-qemu-xen/Makefile ++++ xen-4.0.2-testing/tools/ioemu-qemu-xen/Makefile @@ -46,14 +46,6 @@ $(filter %-user,$(SUBDIR_RULES)): libqem recurse-all: $(SUBDIR_RULES) @@ -56,10 +56,10 @@ Index: xen-4.0.1-testing/tools/ioemu-qemu-xen/Makefile ###################################################################### # libqemu_common.a: Target independent part of system emulation. The # long term path is to suppress *all* target specific code in case of -Index: xen-4.0.1-testing/tools/ioemu-qemu-xen/configure +Index: xen-4.0.2-testing/tools/ioemu-qemu-xen/configure =================================================================== ---- xen-4.0.1-testing.orig/tools/ioemu-qemu-xen/configure -+++ xen-4.0.1-testing/tools/ioemu-qemu-xen/configure +--- xen-4.0.2-testing.orig/tools/ioemu-qemu-xen/configure ++++ xen-4.0.2-testing/tools/ioemu-qemu-xen/configure @@ -1511,7 +1511,7 @@ bsd) ;; esac @@ -69,10 +69,10 @@ Index: xen-4.0.1-testing/tools/ioemu-qemu-xen/configure if test `expr "$target_list" : ".*softmmu.*"` != 0 ; then tools="qemu-img\$(EXESUF) $tools" if [ "$linux" = "yes" ] ; then -Index: xen-4.0.1-testing/tools/ioemu-qemu-xen/qemu-tool.c +Index: xen-4.0.2-testing/tools/ioemu-qemu-xen/qemu-tool.c =================================================================== ---- xen-4.0.1-testing.orig/tools/ioemu-qemu-xen/qemu-tool.c -+++ xen-4.0.1-testing/tools/ioemu-qemu-xen/qemu-tool.c +--- xen-4.0.2-testing.orig/tools/ioemu-qemu-xen/qemu-tool.c ++++ xen-4.0.2-testing/tools/ioemu-qemu-xen/qemu-tool.c @@ -68,7 +68,7 @@ void qemu_bh_delete(QEMUBH *bh) qemu_free(bh); } @@ -82,10 +82,10 @@ Index: xen-4.0.1-testing/tools/ioemu-qemu-xen/qemu-tool.c IOCanRWHandler *fd_read_poll, IOHandler *fd_read, IOHandler *fd_write, -Index: xen-4.0.1-testing/tools/ioemu-qemu-xen/tapdisk-ioemu.c +Index: xen-4.0.2-testing/tools/ioemu-qemu-xen/tapdisk-ioemu.c =================================================================== ---- xen-4.0.1-testing.orig/tools/ioemu-qemu-xen/tapdisk-ioemu.c -+++ xen-4.0.1-testing/tools/ioemu-qemu-xen/tapdisk-ioemu.c +--- xen-4.0.2-testing.orig/tools/ioemu-qemu-xen/tapdisk-ioemu.c ++++ xen-4.0.2-testing/tools/ioemu-qemu-xen/tapdisk-ioemu.c @@ -12,34 +12,12 @@ extern void qemu_aio_init(void); diff --git a/capslock_enable.patch b/capslock_enable.patch index 3becaa5..67b55c3 100644 --- a/capslock_enable.patch +++ b/capslock_enable.patch @@ -1,7 +1,7 @@ -Index: xen-4.0.1-testing/tools/ioemu-qemu-xen/vnc.c +Index: xen-4.0.2-testing/tools/ioemu-qemu-xen/vnc.c =================================================================== ---- xen-4.0.1-testing.orig/tools/ioemu-qemu-xen/vnc.c -+++ xen-4.0.1-testing/tools/ioemu-qemu-xen/vnc.c +--- xen-4.0.2-testing.orig/tools/ioemu-qemu-xen/vnc.c ++++ xen-4.0.2-testing/tools/ioemu-qemu-xen/vnc.c @@ -1342,6 +1342,11 @@ static void do_key_event(VncState *vs, i } break; diff --git a/cdrom-removable.patch b/cdrom-removable.patch index a879052..f4cda8c 100644 --- a/cdrom-removable.patch +++ b/cdrom-removable.patch @@ -1,7 +1,7 @@ -Index: xen-4.0.1-testing/tools/python/xen/xend/server/HalDaemon.py +Index: xen-4.0.2-testing/tools/python/xen/xend/server/HalDaemon.py =================================================================== --- /dev/null -+++ xen-4.0.1-testing/tools/python/xen/xend/server/HalDaemon.py ++++ xen-4.0.2-testing/tools/python/xen/xend/server/HalDaemon.py @@ -0,0 +1,243 @@ +#!/usr/bin/env python +# -*- mode: python; -*- @@ -246,10 +246,10 @@ Index: xen-4.0.1-testing/tools/python/xen/xend/server/HalDaemon.py + print 'Falling off end' + + -Index: xen-4.0.1-testing/tools/python/xen/xend/server/Hald.py +Index: xen-4.0.2-testing/tools/python/xen/xend/server/Hald.py =================================================================== --- /dev/null -+++ xen-4.0.1-testing/tools/python/xen/xend/server/Hald.py ++++ xen-4.0.2-testing/tools/python/xen/xend/server/Hald.py @@ -0,0 +1,125 @@ +#============================================================================ +# This library is free software; you can redistribute it and/or @@ -376,10 +376,10 @@ Index: xen-4.0.1-testing/tools/python/xen/xend/server/Hald.py + watcher.run() + time.sleep(10) + watcher.shutdown() -Index: xen-4.0.1-testing/tools/python/xen/xend/server/SrvServer.py +Index: xen-4.0.2-testing/tools/python/xen/xend/server/SrvServer.py =================================================================== ---- xen-4.0.1-testing.orig/tools/python/xen/xend/server/SrvServer.py -+++ xen-4.0.1-testing/tools/python/xen/xend/server/SrvServer.py +--- xen-4.0.2-testing.orig/tools/python/xen/xend/server/SrvServer.py ++++ xen-4.0.2-testing/tools/python/xen/xend/server/SrvServer.py @@ -56,6 +56,7 @@ from xen.web.SrvDir import SrvDir from SrvRoot import SrvRoot @@ -397,10 +397,10 @@ Index: xen-4.0.1-testing/tools/python/xen/xend/server/SrvServer.py def create(): root = SrvDir() -Index: xen-4.0.1-testing/tools/ioemu-qemu-xen/xenstore.c +Index: xen-4.0.2-testing/tools/ioemu-qemu-xen/xenstore.c =================================================================== ---- xen-4.0.1-testing.orig/tools/ioemu-qemu-xen/xenstore.c -+++ xen-4.0.1-testing/tools/ioemu-qemu-xen/xenstore.c +--- xen-4.0.2-testing.orig/tools/ioemu-qemu-xen/xenstore.c ++++ xen-4.0.2-testing/tools/ioemu-qemu-xen/xenstore.c @@ -18,6 +18,7 @@ #include "exec-all.h" #include "sysemu.h" diff --git a/change_home_server.patch b/change_home_server.patch index a51d8de..5a6e7d5 100644 --- a/change_home_server.patch +++ b/change_home_server.patch @@ -1,7 +1,7 @@ -Index: xen-4.0.1-testing/tools/python/xen/xend/XendDomainInfo.py +Index: xen-4.0.2-testing/tools/python/xen/xend/XendDomainInfo.py =================================================================== ---- xen-4.0.1-testing.orig/tools/python/xen/xend/XendDomainInfo.py -+++ xen-4.0.1-testing/tools/python/xen/xend/XendDomainInfo.py +--- xen-4.0.2-testing.orig/tools/python/xen/xend/XendDomainInfo.py ++++ xen-4.0.2-testing/tools/python/xen/xend/XendDomainInfo.py @@ -3135,6 +3135,11 @@ class XendDomainInfo: self._cleanup_phantom_devs(paths) self._cleanupVm() diff --git a/checkpoint-rename.patch b/checkpoint-rename.patch index a6032d5..a2b5663 100644 --- a/checkpoint-rename.patch +++ b/checkpoint-rename.patch @@ -1,7 +1,7 @@ -Index: xen-4.0.1-testing/tools/python/xen/xend/XendCheckpoint.py +Index: xen-4.0.2-testing/tools/python/xen/xend/XendCheckpoint.py =================================================================== ---- xen-4.0.1-testing.orig/tools/python/xen/xend/XendCheckpoint.py -+++ xen-4.0.1-testing/tools/python/xen/xend/XendCheckpoint.py +--- xen-4.0.2-testing.orig/tools/python/xen/xend/XendCheckpoint.py ++++ xen-4.0.2-testing/tools/python/xen/xend/XendCheckpoint.py @@ -165,7 +165,7 @@ def save(fd, dominfo, network, live, dst dominfo.destroy() dominfo.testDeviceComplete() diff --git a/cpu-pools-docs.patch b/cpu-pools-docs.patch index a04e4ce..1433af0 100644 --- a/cpu-pools-docs.patch +++ b/cpu-pools-docs.patch @@ -1,7 +1,7 @@ -Index: xen-4.0.1-testing/docs/xen-api/coversheet.tex +Index: xen-4.0.2-testing/docs/xen-api/coversheet.tex =================================================================== ---- xen-4.0.1-testing.orig/docs/xen-api/coversheet.tex -+++ xen-4.0.1-testing/docs/xen-api/coversheet.tex +--- xen-4.0.2-testing.orig/docs/xen-api/coversheet.tex ++++ xen-4.0.2-testing/docs/xen-api/coversheet.tex @@ -52,6 +52,7 @@ Mike Day, IBM & Daniel Veillard, Red Hat Jim Fehlig, Novell & Tom Wilkie, University of Cambridge \\ Jon Harrop, XenSource & Yosuke Iwamatsu, NEC \\ @@ -10,10 +10,10 @@ Index: xen-4.0.1-testing/docs/xen-api/coversheet.tex \end{tabular} \end{large} -Index: xen-4.0.1-testing/docs/xen-api/revision-history.tex +Index: xen-4.0.2-testing/docs/xen-api/revision-history.tex =================================================================== ---- xen-4.0.1-testing.orig/docs/xen-api/revision-history.tex -+++ xen-4.0.1-testing/docs/xen-api/revision-history.tex +--- xen-4.0.2-testing.orig/docs/xen-api/revision-history.tex ++++ xen-4.0.2-testing/docs/xen-api/revision-history.tex @@ -50,6 +50,12 @@ between classes. Added host.PSCSI\_HBAs and VM.DSCSI\_HBAs fields.\tabularnewline @@ -27,10 +27,10 @@ Index: xen-4.0.1-testing/docs/xen-api/revision-history.tex \end{tabular} \end{center} \end{flushleft} -Index: xen-4.0.1-testing/docs/xen-api/xenapi-coversheet.tex +Index: xen-4.0.2-testing/docs/xen-api/xenapi-coversheet.tex =================================================================== ---- xen-4.0.1-testing.orig/docs/xen-api/xenapi-coversheet.tex -+++ xen-4.0.1-testing/docs/xen-api/xenapi-coversheet.tex +--- xen-4.0.2-testing.orig/docs/xen-api/xenapi-coversheet.tex ++++ xen-4.0.2-testing/docs/xen-api/xenapi-coversheet.tex @@ -17,12 +17,12 @@ \newcommand{\coversheetlogo}{xen.eps} @@ -46,10 +46,10 @@ Index: xen-4.0.1-testing/docs/xen-api/xenapi-coversheet.tex %% Document authors \newcommand{\docauthors}{ -Index: xen-4.0.1-testing/docs/xen-api/xenapi-datamodel-graph.dot +Index: xen-4.0.2-testing/docs/xen-api/xenapi-datamodel-graph.dot =================================================================== ---- xen-4.0.1-testing.orig/docs/xen-api/xenapi-datamodel-graph.dot -+++ xen-4.0.1-testing/docs/xen-api/xenapi-datamodel-graph.dot +--- xen-4.0.2-testing.orig/docs/xen-api/xenapi-datamodel-graph.dot ++++ xen-4.0.2-testing/docs/xen-api/xenapi-datamodel-graph.dot @@ -14,7 +14,7 @@ fontname="Verdana"; node [ shape=box ]; session VM host network VIF PIF SR VDI VBD PBD user; @@ -67,10 +67,10 @@ Index: xen-4.0.1-testing/docs/xen-api/xenapi-datamodel-graph.dot +cpu_pool -> VM [ arrowhead="crow", arrowtail="none" ] +host -> cpu_pool [ arrowhead="crow", arrowtail="none" ] } -Index: xen-4.0.1-testing/docs/xen-api/xenapi-datamodel.tex +Index: xen-4.0.2-testing/docs/xen-api/xenapi-datamodel.tex =================================================================== ---- xen-4.0.1-testing.orig/docs/xen-api/xenapi-datamodel.tex -+++ xen-4.0.1-testing/docs/xen-api/xenapi-datamodel.tex +--- xen-4.0.2-testing.orig/docs/xen-api/xenapi-datamodel.tex ++++ xen-4.0.2-testing/docs/xen-api/xenapi-datamodel.tex @@ -56,6 +56,7 @@ Name & Description \\ {\tt debug} & A basic class for testing \\ {\tt XSPolicy} & A class for handling Xen Security Policies \\ diff --git a/cpu-pools-libxc.patch b/cpu-pools-libxc.patch index 7dafe02..a265d06 100644 --- a/cpu-pools-libxc.patch +++ b/cpu-pools-libxc.patch @@ -1,7 +1,7 @@ -Index: xen-4.0.1-testing/tools/libxc/Makefile +Index: xen-4.0.2-testing/tools/libxc/Makefile =================================================================== ---- xen-4.0.1-testing.orig/tools/libxc/Makefile -+++ xen-4.0.1-testing/tools/libxc/Makefile +--- xen-4.0.2-testing.orig/tools/libxc/Makefile ++++ xen-4.0.2-testing/tools/libxc/Makefile @@ -8,6 +8,7 @@ CTRL_SRCS-y := CTRL_SRCS-y += xc_core.c CTRL_SRCS-$(CONFIG_X86) += xc_core_x86.c @@ -10,10 +10,10 @@ Index: xen-4.0.1-testing/tools/libxc/Makefile CTRL_SRCS-y += xc_domain.c CTRL_SRCS-y += xc_evtchn.c CTRL_SRCS-y += xc_misc.c -Index: xen-4.0.1-testing/tools/libxc/xc_cpupool.c +Index: xen-4.0.2-testing/tools/libxc/xc_cpupool.c =================================================================== --- /dev/null -+++ xen-4.0.1-testing/tools/libxc/xc_cpupool.c ++++ xen-4.0.2-testing/tools/libxc/xc_cpupool.c @@ -0,0 +1,165 @@ +/****************************************************************************** + * xc_cpupool.c @@ -180,10 +180,10 @@ Index: xen-4.0.1-testing/tools/libxc/xc_cpupool.c + + return 0; +} -Index: xen-4.0.1-testing/tools/libxc/xc_domain.c +Index: xen-4.0.2-testing/tools/libxc/xc_domain.c =================================================================== ---- xen-4.0.1-testing.orig/tools/libxc/xc_domain.c -+++ xen-4.0.1-testing/tools/libxc/xc_domain.c +--- xen-4.0.2-testing.orig/tools/libxc/xc_domain.c ++++ xen-4.0.2-testing/tools/libxc/xc_domain.c @@ -220,6 +220,7 @@ int xc_domain_getinfo(int xc_handle, info->cpu_time = domctl.u.getdomaininfo.cpu_time; info->nr_online_vcpus = domctl.u.getdomaininfo.nr_online_vcpus; @@ -192,10 +192,10 @@ Index: xen-4.0.1-testing/tools/libxc/xc_domain.c memcpy(info->handle, domctl.u.getdomaininfo.handle, sizeof(xen_domain_handle_t)); -Index: xen-4.0.1-testing/tools/libxc/xenctrl.h +Index: xen-4.0.2-testing/tools/libxc/xenctrl.h =================================================================== ---- xen-4.0.1-testing.orig/tools/libxc/xenctrl.h -+++ xen-4.0.1-testing/tools/libxc/xenctrl.h +--- xen-4.0.2-testing.orig/tools/libxc/xenctrl.h ++++ xen-4.0.2-testing/tools/libxc/xenctrl.h @@ -161,6 +161,7 @@ typedef struct xc_dominfo { unsigned int nr_online_vcpus; unsigned int max_vcpu_id; diff --git a/cpu-pools-libxen.patch b/cpu-pools-libxen.patch index 14d4be7..280afd2 100644 --- a/cpu-pools-libxen.patch +++ b/cpu-pools-libxen.patch @@ -1,17 +1,17 @@ -Index: xen-4.0.1-testing/tools/libxen/include/xen/api/xen_all.h +Index: xen-4.0.2-testing/tools/libxen/include/xen/api/xen_all.h =================================================================== ---- xen-4.0.1-testing.orig/tools/libxen/include/xen/api/xen_all.h -+++ xen-4.0.1-testing/tools/libxen/include/xen/api/xen_all.h +--- xen-4.0.2-testing.orig/tools/libxen/include/xen/api/xen_all.h ++++ xen-4.0.2-testing/tools/libxen/include/xen/api/xen_all.h @@ -37,4 +37,5 @@ #include #include #include +#include #endif -Index: xen-4.0.1-testing/tools/libxen/include/xen/api/xen_cpu_pool.h +Index: xen-4.0.2-testing/tools/libxen/include/xen/api/xen_cpu_pool.h =================================================================== --- /dev/null -+++ xen-4.0.1-testing/tools/libxen/include/xen/api/xen_cpu_pool.h ++++ xen-4.0.2-testing/tools/libxen/include/xen/api/xen_cpu_pool.h @@ -0,0 +1,424 @@ +/* + * Copyright (c) 2006-2007, XenSource Inc. @@ -437,10 +437,10 @@ Index: xen-4.0.1-testing/tools/libxen/include/xen/api/xen_cpu_pool.h + + +#endif -Index: xen-4.0.1-testing/tools/libxen/include/xen/api/xen_cpu_pool_decl.h +Index: xen-4.0.2-testing/tools/libxen/include/xen/api/xen_cpu_pool_decl.h =================================================================== --- /dev/null -+++ xen-4.0.1-testing/tools/libxen/include/xen/api/xen_cpu_pool_decl.h ++++ xen-4.0.2-testing/tools/libxen/include/xen/api/xen_cpu_pool_decl.h @@ -0,0 +1,30 @@ +/* + * Copyright (c) 2006-2007, XenSource Inc. @@ -472,10 +472,10 @@ Index: xen-4.0.1-testing/tools/libxen/include/xen/api/xen_cpu_pool_decl.h +struct xen_cpu_pool_record_opt_set; + +#endif -Index: xen-4.0.1-testing/tools/libxen/include/xen/api/xen_host.h +Index: xen-4.0.2-testing/tools/libxen/include/xen/api/xen_host.h =================================================================== ---- xen-4.0.1-testing.orig/tools/libxen/include/xen/api/xen_host.h -+++ xen-4.0.1-testing/tools/libxen/include/xen/api/xen_host.h +--- xen-4.0.2-testing.orig/tools/libxen/include/xen/api/xen_host.h ++++ xen-4.0.2-testing/tools/libxen/include/xen/api/xen_host.h @@ -29,7 +29,7 @@ #include #include @@ -505,10 +505,10 @@ Index: xen-4.0.1-testing/tools/libxen/include/xen/api/xen_host.h + xen_host host); + #endif -Index: xen-4.0.1-testing/tools/libxen/include/xen/api/xen_host_cpu.h +Index: xen-4.0.2-testing/tools/libxen/include/xen/api/xen_host_cpu.h =================================================================== ---- xen-4.0.1-testing.orig/tools/libxen/include/xen/api/xen_host_cpu.h -+++ xen-4.0.1-testing/tools/libxen/include/xen/api/xen_host_cpu.h +--- xen-4.0.2-testing.orig/tools/libxen/include/xen/api/xen_host_cpu.h ++++ xen-4.0.2-testing/tools/libxen/include/xen/api/xen_host_cpu.h @@ -22,6 +22,7 @@ #include #include @@ -544,10 +544,10 @@ Index: xen-4.0.1-testing/tools/libxen/include/xen/api/xen_host_cpu.h + + #endif -Index: xen-4.0.1-testing/tools/libxen/include/xen/api/xen_vm.h +Index: xen-4.0.2-testing/tools/libxen/include/xen/api/xen_vm.h =================================================================== ---- xen-4.0.1-testing.orig/tools/libxen/include/xen/api/xen_vm.h -+++ xen-4.0.1-testing/tools/libxen/include/xen/api/xen_vm.h +--- xen-4.0.2-testing.orig/tools/libxen/include/xen/api/xen_vm.h ++++ xen-4.0.2-testing/tools/libxen/include/xen/api/xen_vm.h @@ -34,6 +34,7 @@ #include #include @@ -599,10 +599,10 @@ Index: xen-4.0.1-testing/tools/libxen/include/xen/api/xen_vm.h +xen_vm_cpu_pool_migrate(xen_session *session, xen_vm vm, xen_cpu_pool cpu_pool); + #endif -Index: xen-4.0.1-testing/tools/libxen/src/xen_cpu_pool.c +Index: xen-4.0.2-testing/tools/libxen/src/xen_cpu_pool.c =================================================================== --- /dev/null -+++ xen-4.0.1-testing/tools/libxen/src/xen_cpu_pool.c ++++ xen-4.0.2-testing/tools/libxen/src/xen_cpu_pool.c @@ -0,0 +1,671 @@ +/* + * Copyright (c) 2006-2007, XenSource Inc. @@ -1275,10 +1275,10 @@ Index: xen-4.0.1-testing/tools/libxen/src/xen_cpu_pool.c + return session->ok; +} + -Index: xen-4.0.1-testing/tools/libxen/src/xen_host.c +Index: xen-4.0.2-testing/tools/libxen/src/xen_host.c =================================================================== ---- xen-4.0.1-testing.orig/tools/libxen/src/xen_host.c -+++ xen-4.0.1-testing/tools/libxen/src/xen_host.c +--- xen-4.0.2-testing.orig/tools/libxen/src/xen_host.c ++++ xen-4.0.2-testing/tools/libxen/src/xen_host.c @@ -30,6 +30,7 @@ #include #include @@ -1330,10 +1330,10 @@ Index: xen-4.0.1-testing/tools/libxen/src/xen_host.c + return session->ok; +} + -Index: xen-4.0.1-testing/tools/libxen/src/xen_host_cpu.c +Index: xen-4.0.2-testing/tools/libxen/src/xen_host_cpu.c =================================================================== ---- xen-4.0.1-testing.orig/tools/libxen/src/xen_host_cpu.c -+++ xen-4.0.1-testing/tools/libxen/src/xen_host_cpu.c +--- xen-4.0.2-testing.orig/tools/libxen/src/xen_host_cpu.c ++++ xen-4.0.2-testing/tools/libxen/src/xen_host_cpu.c @@ -24,6 +24,7 @@ #include #include @@ -1397,10 +1397,10 @@ Index: xen-4.0.1-testing/tools/libxen/src/xen_host_cpu.c + + + -Index: xen-4.0.1-testing/tools/libxen/src/xen_vm.c +Index: xen-4.0.2-testing/tools/libxen/src/xen_vm.c =================================================================== ---- xen-4.0.1-testing.orig/tools/libxen/src/xen_vm.c -+++ xen-4.0.1-testing/tools/libxen/src/xen_vm.c +--- xen-4.0.2-testing.orig/tools/libxen/src/xen_vm.c ++++ xen-4.0.2-testing/tools/libxen/src/xen_vm.c @@ -36,6 +36,7 @@ #include #include @@ -1504,10 +1504,10 @@ Index: xen-4.0.1-testing/tools/libxen/src/xen_vm.c +} + + -Index: xen-4.0.1-testing/tools/libxen/test/test_bindings.c +Index: xen-4.0.2-testing/tools/libxen/test/test_bindings.c =================================================================== ---- xen-4.0.1-testing.orig/tools/libxen/test/test_bindings.c -+++ xen-4.0.1-testing/tools/libxen/test/test_bindings.c +--- xen-4.0.2-testing.orig/tools/libxen/test/test_bindings.c ++++ xen-4.0.2-testing/tools/libxen/test/test_bindings.c @@ -28,6 +28,7 @@ #include diff --git a/cpu-pools-python.patch b/cpu-pools-python.patch index 6d48773..404c259 100644 --- a/cpu-pools-python.patch +++ b/cpu-pools-python.patch @@ -1,7 +1,7 @@ -Index: xen-4.0.1-testing/tools/python/xen/lowlevel/xc/xc.c +Index: xen-4.0.2-testing/tools/python/xen/lowlevel/xc/xc.c =================================================================== ---- xen-4.0.1-testing.orig/tools/python/xen/lowlevel/xc/xc.c -+++ xen-4.0.1-testing/tools/python/xen/lowlevel/xc/xc.c +--- xen-4.0.2-testing.orig/tools/python/xen/lowlevel/xc/xc.c ++++ xen-4.0.2-testing/tools/python/xen/lowlevel/xc/xc.c @@ -106,8 +106,8 @@ static PyObject *pyxc_domain_create(XcOb static char *kwd_list[] = { "domid", "ssidref", "handle", "flags", "target", NULL }; @@ -289,10 +289,10 @@ Index: xen-4.0.1-testing/tools/python/xen/lowlevel/xc/xc.c { NULL, NULL, 0, NULL } }; -Index: xen-4.0.1-testing/tools/python/xen/util/sxputils.py +Index: xen-4.0.2-testing/tools/python/xen/util/sxputils.py =================================================================== --- /dev/null -+++ xen-4.0.1-testing/tools/python/xen/util/sxputils.py ++++ xen-4.0.2-testing/tools/python/xen/util/sxputils.py @@ -0,0 +1,64 @@ +#============================================================================ +# This library is free software; you can redistribute it and/or @@ -358,10 +358,10 @@ Index: xen-4.0.1-testing/tools/python/xen/util/sxputils.py + return sxphash + + -Index: xen-4.0.1-testing/tools/python/xen/xend/XendAPI.py +Index: xen-4.0.2-testing/tools/python/xen/xend/XendAPI.py =================================================================== ---- xen-4.0.1-testing.orig/tools/python/xen/xend/XendAPI.py -+++ xen-4.0.1-testing/tools/python/xen/xend/XendAPI.py +--- xen-4.0.2-testing.orig/tools/python/xen/xend/XendAPI.py ++++ xen-4.0.2-testing/tools/python/xen/xend/XendAPI.py @@ -51,6 +51,7 @@ from XendDPCI import XendDPCI from XendPSCSI import XendPSCSI, XendPSCSI_HBA from XendDSCSI import XendDSCSI, XendDSCSI_HBA @@ -553,10 +553,10 @@ Index: xen-4.0.1-testing/tools/python/xen/xend/XendAPI.py # Xen API: Class VBD # ---------------------------------------------------------------- -Index: xen-4.0.1-testing/tools/python/xen/xend/XendCPUPool.py +Index: xen-4.0.2-testing/tools/python/xen/xend/XendCPUPool.py =================================================================== --- /dev/null -+++ xen-4.0.1-testing/tools/python/xen/xend/XendCPUPool.py ++++ xen-4.0.2-testing/tools/python/xen/xend/XendCPUPool.py @@ -0,0 +1,903 @@ +#============================================================================ +# This library is free software; you can redistribute it and/or @@ -1461,10 +1461,10 @@ Index: xen-4.0.1-testing/tools/python/xen/xend/XendCPUPool.py + + unbound_cpus = classmethod(unbound_cpus) + -Index: xen-4.0.1-testing/tools/python/xen/xend/XendConfig.py +Index: xen-4.0.2-testing/tools/python/xen/xend/XendConfig.py =================================================================== ---- xen-4.0.1-testing.orig/tools/python/xen/xend/XendConfig.py -+++ xen-4.0.1-testing/tools/python/xen/xend/XendConfig.py +--- xen-4.0.2-testing.orig/tools/python/xen/xend/XendConfig.py ++++ xen-4.0.2-testing/tools/python/xen/xend/XendConfig.py @@ -134,6 +134,7 @@ XENAPI_CFG_TO_LEGACY_CFG = { 'PV_bootloader': 'bootloader', 'PV_bootloader_args': 'bootloader_args', @@ -1505,10 +1505,10 @@ Index: xen-4.0.1-testing/tools/python/xen/xend/XendConfig.py 'superpages': 0, 'description': '', } -Index: xen-4.0.1-testing/tools/python/xen/xend/XendConstants.py +Index: xen-4.0.2-testing/tools/python/xen/xend/XendConstants.py =================================================================== ---- xen-4.0.1-testing.orig/tools/python/xen/xend/XendConstants.py -+++ xen-4.0.1-testing/tools/python/xen/xend/XendConstants.py +--- xen-4.0.2-testing.orig/tools/python/xen/xend/XendConstants.py ++++ xen-4.0.2-testing/tools/python/xen/xend/XendConstants.py @@ -133,6 +133,8 @@ VTPM_DELETE_SCRIPT = auxbin.scripts_dir( XS_VMROOT = "/vm/" @@ -1518,10 +1518,10 @@ Index: xen-4.0.1-testing/tools/python/xen/xend/XendConstants.py NR_PCI_FUNC = 8 NR_PCI_DEV = 32 NR_PCI_DEVFN = NR_PCI_FUNC * NR_PCI_DEV -Index: xen-4.0.1-testing/tools/python/xen/xend/XendDomainInfo.py +Index: xen-4.0.2-testing/tools/python/xen/xend/XendDomainInfo.py =================================================================== ---- xen-4.0.1-testing.orig/tools/python/xen/xend/XendDomainInfo.py -+++ xen-4.0.1-testing/tools/python/xen/xend/XendDomainInfo.py +--- xen-4.0.2-testing.orig/tools/python/xen/xend/XendDomainInfo.py ++++ xen-4.0.2-testing/tools/python/xen/xend/XendDomainInfo.py @@ -60,6 +60,7 @@ from xen.xend.xenstore.xsutil import Get from xen.xend.xenstore.xswatch import xswatch from xen.xend.XendConstants import * @@ -1562,7 +1562,7 @@ Index: xen-4.0.1-testing/tools/python/xen/xend/XendDomainInfo.py self.dompath = GetDomainPath(self.domid) self._recreateDom() -@@ -3617,6 +3636,11 @@ class XendDomainInfo: +@@ -3618,6 +3637,11 @@ class XendDomainInfo: retval = xc.sched_credit_domain_get(self.getDomid()) return retval @@ -1574,10 +1574,10 @@ Index: xen-4.0.1-testing/tools/python/xen/xend/XendDomainInfo.py def get_power_state(self): return XEN_API_VM_POWER_STATE[self._stateGet()] def get_platform(self): -Index: xen-4.0.1-testing/tools/python/xen/xend/XendError.py +Index: xen-4.0.2-testing/tools/python/xen/xend/XendError.py =================================================================== ---- xen-4.0.1-testing.orig/tools/python/xen/xend/XendError.py -+++ xen-4.0.1-testing/tools/python/xen/xend/XendError.py +--- xen-4.0.2-testing.orig/tools/python/xen/xend/XendError.py ++++ xen-4.0.2-testing/tools/python/xen/xend/XendError.py @@ -18,6 +18,7 @@ from xmlrpclib import Fault @@ -1613,10 +1613,10 @@ Index: xen-4.0.1-testing/tools/python/xen/xend/XendError.py class VDIError(XendAPIError): def __init__(self, error, vdi): XendAPIError.__init__(self) -Index: xen-4.0.1-testing/tools/python/xen/xend/XendNode.py +Index: xen-4.0.2-testing/tools/python/xen/xend/XendNode.py =================================================================== ---- xen-4.0.1-testing.orig/tools/python/xen/xend/XendNode.py -+++ xen-4.0.1-testing/tools/python/xen/xend/XendNode.py +--- xen-4.0.2-testing.orig/tools/python/xen/xend/XendNode.py ++++ xen-4.0.2-testing/tools/python/xen/xend/XendNode.py @@ -43,6 +43,7 @@ from XendStateStore import XendStateStor from XendMonitor import XendMonitor from XendPPCI import XendPPCI @@ -1690,10 +1690,10 @@ Index: xen-4.0.1-testing/tools/python/xen/xend/XendNode.py 'max_free_memory', 'max_para_memory', 'max_hvm_memory', -Index: xen-4.0.1-testing/tools/python/xen/xend/server/SrvServer.py +Index: xen-4.0.2-testing/tools/python/xen/xend/server/SrvServer.py =================================================================== ---- xen-4.0.1-testing.orig/tools/python/xen/xend/server/SrvServer.py -+++ xen-4.0.1-testing/tools/python/xen/xend/server/SrvServer.py +--- xen-4.0.2-testing.orig/tools/python/xen/xend/server/SrvServer.py ++++ xen-4.0.2-testing/tools/python/xen/xend/server/SrvServer.py @@ -52,6 +52,7 @@ from xen.xend import XendNode, XendOptio from xen.xend.XendLogging import log from xen.xend.XendClient import XEN_API_SOCKET @@ -1715,10 +1715,10 @@ Index: xen-4.0.1-testing/tools/python/xen/xend/server/SrvServer.py # Reaching this point means we can auto start domains try: xenddomain().autostart_domains() -Index: xen-4.0.1-testing/tools/python/xen/xend/server/XMLRPCServer.py +Index: xen-4.0.2-testing/tools/python/xen/xend/server/XMLRPCServer.py =================================================================== ---- xen-4.0.1-testing.orig/tools/python/xen/xend/server/XMLRPCServer.py -+++ xen-4.0.1-testing/tools/python/xen/xend/server/XMLRPCServer.py +--- xen-4.0.2-testing.orig/tools/python/xen/xend/server/XMLRPCServer.py ++++ xen-4.0.2-testing/tools/python/xen/xend/server/XMLRPCServer.py @@ -33,6 +33,7 @@ from xen.xend.XendClient import XML_RPC_ from xen.xend.XendConstants import DOM_STATE_RUNNING from xen.xend.XendLogging import log @@ -1750,10 +1750,10 @@ Index: xen-4.0.1-testing/tools/python/xen/xend/server/XMLRPCServer.py # Functions in XendNode and XendDmesg for type, lst, n in [(XendNode, ['info', 'pciinfo', 'send_debug_keys', -Index: xen-4.0.1-testing/tools/python/xen/xm/create.dtd +Index: xen-4.0.2-testing/tools/python/xen/xm/create.dtd =================================================================== ---- xen-4.0.1-testing.orig/tools/python/xen/xm/create.dtd -+++ xen-4.0.1-testing/tools/python/xen/xm/create.dtd +--- xen-4.0.2-testing.orig/tools/python/xen/xm/create.dtd ++++ xen-4.0.2-testing/tools/python/xen/xm/create.dtd @@ -50,6 +50,7 @@ s3_integrity CDATA #REQUIRED vcpus_max CDATA #REQUIRED @@ -1762,10 +1762,10 @@ Index: xen-4.0.1-testing/tools/python/xen/xm/create.dtd actions_after_shutdown %NORMAL_EXIT; #REQUIRED actions_after_reboot %NORMAL_EXIT; #REQUIRED actions_after_crash %CRASH_BEHAVIOUR; #REQUIRED -Index: xen-4.0.1-testing/tools/python/xen/xm/create.py +Index: xen-4.0.2-testing/tools/python/xen/xm/create.py =================================================================== ---- xen-4.0.1-testing.orig/tools/python/xen/xm/create.py -+++ xen-4.0.1-testing/tools/python/xen/xm/create.py +--- xen-4.0.2-testing.orig/tools/python/xen/xm/create.py ++++ xen-4.0.2-testing/tools/python/xen/xm/create.py @@ -659,6 +659,10 @@ gopts.var('suppress_spurious_page_faults fn=set_bool, default=None, use="""Do not inject spurious page faults into this guest""") @@ -1786,10 +1786,10 @@ Index: xen-4.0.1-testing/tools/python/xen/xm/create.py config_image = configure_image(vals) if vals.bootloader: -Index: xen-4.0.1-testing/tools/python/xen/xm/main.py +Index: xen-4.0.2-testing/tools/python/xen/xm/main.py =================================================================== ---- xen-4.0.1-testing.orig/tools/python/xen/xm/main.py -+++ xen-4.0.1-testing/tools/python/xen/xm/main.py +--- xen-4.0.2-testing.orig/tools/python/xen/xm/main.py ++++ xen-4.0.2-testing/tools/python/xen/xm/main.py @@ -56,6 +56,7 @@ from xen.util.xmlrpcclient import Server import xen.util.xsm.xsm as security from xen.util.xsm.xsm import XSMError @@ -2155,10 +2155,10 @@ Index: xen-4.0.1-testing/tools/python/xen/xm/main.py ] for c in IMPORTED_COMMANDS: -Index: xen-4.0.1-testing/tools/python/xen/xm/pool-create.py +Index: xen-4.0.2-testing/tools/python/xen/xm/pool-create.py =================================================================== --- /dev/null -+++ xen-4.0.1-testing/tools/python/xen/xm/pool-create.py ++++ xen-4.0.2-testing/tools/python/xen/xm/pool-create.py @@ -0,0 +1,51 @@ +#============================================================================ +# This library is free software; you can redistribute it and/or @@ -2211,10 +2211,10 @@ Index: xen-4.0.1-testing/tools/python/xen/xm/pool-create.py +if __name__ == '__main__': + main(sys.argv) + -Index: xen-4.0.1-testing/tools/python/xen/xm/pool-new.py +Index: xen-4.0.2-testing/tools/python/xen/xm/pool-new.py =================================================================== --- /dev/null -+++ xen-4.0.1-testing/tools/python/xen/xm/pool-new.py ++++ xen-4.0.2-testing/tools/python/xen/xm/pool-new.py @@ -0,0 +1,50 @@ +#============================================================================ +# This library is free software; you can redistribute it and/or @@ -2266,10 +2266,10 @@ Index: xen-4.0.1-testing/tools/python/xen/xm/pool-new.py +if __name__ == '__main__': + main(sys.argv) + -Index: xen-4.0.1-testing/tools/python/xen/xm/pool.py +Index: xen-4.0.2-testing/tools/python/xen/xm/pool.py =================================================================== --- /dev/null -+++ xen-4.0.1-testing/tools/python/xen/xm/pool.py ++++ xen-4.0.2-testing/tools/python/xen/xm/pool.py @@ -0,0 +1,236 @@ +#============================================================================ +# This library is free software; you can redistribute it and/or @@ -2507,10 +2507,10 @@ Index: xen-4.0.1-testing/tools/python/xen/xm/pool.py +def help(): + return str(GOPTS) + -Index: xen-4.0.1-testing/tools/python/xen/xm/xenapi_create.py +Index: xen-4.0.2-testing/tools/python/xen/xm/xenapi_create.py =================================================================== ---- xen-4.0.1-testing.orig/tools/python/xen/xm/xenapi_create.py -+++ xen-4.0.1-testing/tools/python/xen/xm/xenapi_create.py +--- xen-4.0.2-testing.orig/tools/python/xen/xm/xenapi_create.py ++++ xen-4.0.2-testing/tools/python/xen/xm/xenapi_create.py @@ -309,6 +309,8 @@ class xenapi_create: get_child_nodes_as_dict(vm, "platform", "key", "value"), "other_config": diff --git a/cpu-pools-xmtest.patch b/cpu-pools-xmtest.patch index 8501b53..3bebaae 100644 --- a/cpu-pools-xmtest.patch +++ b/cpu-pools-xmtest.patch @@ -1,7 +1,7 @@ -Index: xen-4.0.1-testing/tools/xm-test/configure.ac +Index: xen-4.0.2-testing/tools/xm-test/configure.ac =================================================================== ---- xen-4.0.1-testing.orig/tools/xm-test/configure.ac -+++ xen-4.0.1-testing/tools/xm-test/configure.ac +--- xen-4.0.2-testing.orig/tools/xm-test/configure.ac ++++ xen-4.0.2-testing/tools/xm-test/configure.ac @@ -161,6 +161,7 @@ AC_CONFIG_FILES([ tests/vtpm/Makefile tests/xapi/Makefile @@ -10,16 +10,16 @@ Index: xen-4.0.1-testing/tools/xm-test/configure.ac lib/XmTestReport/xmtest.py lib/XmTestLib/config.py ]) -Index: xen-4.0.1-testing/tools/xm-test/grouptest/cpupool +Index: xen-4.0.2-testing/tools/xm-test/grouptest/cpupool =================================================================== --- /dev/null -+++ xen-4.0.1-testing/tools/xm-test/grouptest/cpupool ++++ xen-4.0.2-testing/tools/xm-test/grouptest/cpupool @@ -0,0 +1 @@ +cpupool -Index: xen-4.0.1-testing/tools/xm-test/lib/XmTestLib/NetConfig.py +Index: xen-4.0.2-testing/tools/xm-test/lib/XmTestLib/NetConfig.py =================================================================== ---- xen-4.0.1-testing.orig/tools/xm-test/lib/XmTestLib/NetConfig.py -+++ xen-4.0.1-testing/tools/xm-test/lib/XmTestLib/NetConfig.py +--- xen-4.0.2-testing.orig/tools/xm-test/lib/XmTestLib/NetConfig.py ++++ xen-4.0.2-testing/tools/xm-test/lib/XmTestLib/NetConfig.py @@ -56,17 +56,21 @@ def getXendNetConfig(): val = pin.get_val() while val[0] != 'network-script': @@ -51,10 +51,10 @@ Index: xen-4.0.1-testing/tools/xm-test/lib/XmTestLib/NetConfig.py configfile.close() return netenv -Index: xen-4.0.1-testing/tools/xm-test/lib/XmTestLib/XenDomain.py +Index: xen-4.0.2-testing/tools/xm-test/lib/XmTestLib/XenDomain.py =================================================================== ---- xen-4.0.1-testing.orig/tools/xm-test/lib/XmTestLib/XenDomain.py -+++ xen-4.0.1-testing/tools/xm-test/lib/XmTestLib/XenDomain.py +--- xen-4.0.2-testing.orig/tools/xm-test/lib/XmTestLib/XenDomain.py ++++ xen-4.0.2-testing/tools/xm-test/lib/XmTestLib/XenDomain.py @@ -181,6 +181,7 @@ class XenDomain: if not self.isManaged: @@ -63,10 +63,10 @@ Index: xen-4.0.1-testing/tools/xm-test/lib/XmTestLib/XenDomain.py else: ret, output = traceCommand("xm new %s" % self.config) if ret != 0: -Index: xen-4.0.1-testing/tools/xm-test/runtest.sh +Index: xen-4.0.2-testing/tools/xm-test/runtest.sh =================================================================== ---- xen-4.0.1-testing.orig/tools/xm-test/runtest.sh -+++ xen-4.0.1-testing/tools/xm-test/runtest.sh +--- xen-4.0.2-testing.orig/tools/xm-test/runtest.sh ++++ xen-4.0.2-testing/tools/xm-test/runtest.sh @@ -91,7 +91,7 @@ runnable_tests() { echo "Error: ramdisk/initrd.img is from an old version, or is not for this " echo "architecture ($ARCH)." @@ -76,10 +76,10 @@ Index: xen-4.0.1-testing/tools/xm-test/runtest.sh fi # See if xend is running -Index: xen-4.0.1-testing/tools/xm-test/tests/Makefile.am +Index: xen-4.0.2-testing/tools/xm-test/tests/Makefile.am =================================================================== ---- xen-4.0.1-testing.orig/tools/xm-test/tests/Makefile.am -+++ xen-4.0.1-testing/tools/xm-test/tests/Makefile.am +--- xen-4.0.2-testing.orig/tools/xm-test/tests/Makefile.am ++++ xen-4.0.2-testing/tools/xm-test/tests/Makefile.am @@ -28,7 +28,8 @@ SUBDIRS = \ vcpu-pin \ vtpm \ @@ -90,10 +90,10 @@ Index: xen-4.0.1-testing/tools/xm-test/tests/Makefile.am EXTRA_DIST = $(SUBDIRS) Makefile.am.template -Index: xen-4.0.1-testing/tools/xm-test/tests/cpupool/01_cpupool_basic_pos.py +Index: xen-4.0.2-testing/tools/xm-test/tests/cpupool/01_cpupool_basic_pos.py =================================================================== --- /dev/null -+++ xen-4.0.1-testing/tools/xm-test/tests/cpupool/01_cpupool_basic_pos.py ++++ xen-4.0.2-testing/tools/xm-test/tests/cpupool/01_cpupool_basic_pos.py @@ -0,0 +1,72 @@ +#!/usr/bin/python + @@ -167,10 +167,10 @@ Index: xen-4.0.1-testing/tools/xm-test/tests/cpupool/01_cpupool_basic_pos.py +destroyAllDomUs() + + -Index: xen-4.0.1-testing/tools/xm-test/tests/cpupool/02_cpupool_manage_pos.py +Index: xen-4.0.2-testing/tools/xm-test/tests/cpupool/02_cpupool_manage_pos.py =================================================================== --- /dev/null -+++ xen-4.0.1-testing/tools/xm-test/tests/cpupool/02_cpupool_manage_pos.py ++++ xen-4.0.2-testing/tools/xm-test/tests/cpupool/02_cpupool_manage_pos.py @@ -0,0 +1,152 @@ +#!/usr/bin/python + @@ -324,10 +324,10 @@ Index: xen-4.0.1-testing/tools/xm-test/tests/cpupool/02_cpupool_manage_pos.py + FAIL("'Pool-1' not deleted") + + -Index: xen-4.0.1-testing/tools/xm-test/tests/cpupool/03_cpupool_domain.py +Index: xen-4.0.2-testing/tools/xm-test/tests/cpupool/03_cpupool_domain.py =================================================================== --- /dev/null -+++ xen-4.0.1-testing/tools/xm-test/tests/cpupool/03_cpupool_domain.py ++++ xen-4.0.2-testing/tools/xm-test/tests/cpupool/03_cpupool_domain.py @@ -0,0 +1,126 @@ +#!/usr/bin/python + @@ -455,10 +455,10 @@ Index: xen-4.0.1-testing/tools/xm-test/tests/cpupool/03_cpupool_domain.py +for pool in pool_names: + destroyPool(pool, True) + -Index: xen-4.0.1-testing/tools/xm-test/tests/cpupool/04_cpupool_migrate.py +Index: xen-4.0.2-testing/tools/xm-test/tests/cpupool/04_cpupool_migrate.py =================================================================== --- /dev/null -+++ xen-4.0.1-testing/tools/xm-test/tests/cpupool/04_cpupool_migrate.py ++++ xen-4.0.2-testing/tools/xm-test/tests/cpupool/04_cpupool_migrate.py @@ -0,0 +1,84 @@ +#!/usr/bin/python + @@ -544,10 +544,10 @@ Index: xen-4.0.1-testing/tools/xm-test/tests/cpupool/04_cpupool_migrate.py +# +cleanupPoolsDomains() + -Index: xen-4.0.1-testing/tools/xm-test/tests/cpupool/Makefile.am +Index: xen-4.0.2-testing/tools/xm-test/tests/cpupool/Makefile.am =================================================================== --- /dev/null -+++ xen-4.0.1-testing/tools/xm-test/tests/cpupool/Makefile.am ++++ xen-4.0.2-testing/tools/xm-test/tests/cpupool/Makefile.am @@ -0,0 +1,22 @@ +SUBDIRS = + @@ -571,16 +571,16 @@ Index: xen-4.0.1-testing/tools/xm-test/tests/cpupool/Makefile.am + rm -f *log + rm -f *~ + -Index: xen-4.0.1-testing/tools/xm-test/tests/cpupool/pool1.cfg +Index: xen-4.0.2-testing/tools/xm-test/tests/cpupool/pool1.cfg =================================================================== --- /dev/null -+++ xen-4.0.1-testing/tools/xm-test/tests/cpupool/pool1.cfg ++++ xen-4.0.2-testing/tools/xm-test/tests/cpupool/pool1.cfg @@ -0,0 +1 @@ +name="Pool-1" -Index: xen-4.0.1-testing/tools/xm-test/tests/cpupool/pools.py +Index: xen-4.0.2-testing/tools/xm-test/tests/cpupool/pools.py =================================================================== --- /dev/null -+++ xen-4.0.1-testing/tools/xm-test/tests/cpupool/pools.py ++++ xen-4.0.2-testing/tools/xm-test/tests/cpupool/pools.py @@ -0,0 +1,78 @@ +#!/usr/bin/python + @@ -660,10 +660,10 @@ Index: xen-4.0.1-testing/tools/xm-test/tests/cpupool/pools.py + break + time.sleep(1) + -Index: xen-4.0.1-testing/tools/xm-test/tests/xapi/20_xapi-cpu_pool_basic.py +Index: xen-4.0.2-testing/tools/xm-test/tests/xapi/20_xapi-cpu_pool_basic.py =================================================================== --- /dev/null -+++ xen-4.0.1-testing/tools/xm-test/tests/xapi/20_xapi-cpu_pool_basic.py ++++ xen-4.0.2-testing/tools/xm-test/tests/xapi/20_xapi-cpu_pool_basic.py @@ -0,0 +1,157 @@ +#!/usr/bin/python + @@ -822,10 +822,10 @@ Index: xen-4.0.1-testing/tools/xm-test/tests/xapi/20_xapi-cpu_pool_basic.py +if pool1 in session.xenapi.cpu_pool.get_all(): + FAIL("cpu_pool.destroy() has not removed pool") + -Index: xen-4.0.1-testing/tools/xm-test/tests/xapi/Makefile.am +Index: xen-4.0.2-testing/tools/xm-test/tests/xapi/Makefile.am =================================================================== ---- xen-4.0.1-testing.orig/tools/xm-test/tests/xapi/Makefile.am -+++ xen-4.0.1-testing/tools/xm-test/tests/xapi/Makefile.am +--- xen-4.0.2-testing.orig/tools/xm-test/tests/xapi/Makefile.am ++++ xen-4.0.2-testing/tools/xm-test/tests/xapi/Makefile.am @@ -3,7 +3,8 @@ SUBDIRS = TESTS = 01_xapi-vm_basic.test \ 02_xapi-vbd_basic.test \ diff --git a/cpupools-core-fixup.patch b/cpupools-core-fixup.patch index 239bf00..943711d 100644 --- a/cpupools-core-fixup.patch +++ b/cpupools-core-fixup.patch @@ -9,10 +9,10 @@ missing adjustments get detected at build time) - remove boot time per-CPU pool assignment messages (bnc#572146) -Index: xen-4.0.1-testing/xen/arch/x86/domain.c +Index: xen-4.0.2-testing/xen/arch/x86/domain.c =================================================================== ---- xen-4.0.1-testing.orig/xen/arch/x86/domain.c -+++ xen-4.0.1-testing/xen/arch/x86/domain.c +--- xen-4.0.2-testing.orig/xen/arch/x86/domain.c ++++ xen-4.0.2-testing/xen/arch/x86/domain.c @@ -1585,6 +1585,7 @@ int continue_hypercall_on_cpu(int cpu, v v->arch.schedule_tail = continue_hypercall_on_cpu_helper; @@ -31,10 +31,10 @@ Index: xen-4.0.1-testing/xen/arch/x86/domain.c raise_softirq(SCHEDULE_SOFTIRQ); /* Dummy return value will be overwritten by new schedule_tail. */ -Index: xen-4.0.1-testing/xen/common/sched_credit.c +Index: xen-4.0.2-testing/xen/common/sched_credit.c =================================================================== ---- xen-4.0.1-testing.orig/xen/common/sched_credit.c -+++ xen-4.0.1-testing/xen/common/sched_credit.c +--- xen-4.0.2-testing.orig/xen/common/sched_credit.c ++++ xen-4.0.2-testing/xen/common/sched_credit.c @@ -176,7 +176,6 @@ struct csched_private { /* * Global variables @@ -43,7 +43,7 @@ Index: xen-4.0.1-testing/xen/common/sched_credit.c static struct csched_private *csched_priv0 = NULL; static void csched_tick(void *_cpu); -@@ -1517,11 +1516,13 @@ static void csched_tick_resume(struct sc +@@ -1527,11 +1526,13 @@ static void csched_tick_resume(struct sc } } @@ -58,10 +58,10 @@ Index: xen-4.0.1-testing/xen/common/sched_credit.c .init_domain = csched_dom_init, .destroy_domain = csched_dom_destroy, -Index: xen-4.0.1-testing/xen/common/softirq.c +Index: xen-4.0.2-testing/xen/common/softirq.c =================================================================== ---- xen-4.0.1-testing.orig/xen/common/softirq.c -+++ xen-4.0.1-testing/xen/common/softirq.c +--- xen-4.0.2-testing.orig/xen/common/softirq.c ++++ xen-4.0.2-testing/xen/common/softirq.c @@ -114,12 +114,15 @@ static void tasklet_schedule_list(struct { BUG_ON(!list_empty(&t->list)); @@ -105,10 +105,10 @@ Index: xen-4.0.1-testing/xen/common/softirq.c } /* -Index: xen-4.0.1-testing/xen/include/public/domctl.h +Index: xen-4.0.2-testing/xen/include/public/domctl.h =================================================================== ---- xen-4.0.1-testing.orig/xen/include/public/domctl.h -+++ xen-4.0.1-testing/xen/include/public/domctl.h +--- xen-4.0.2-testing.orig/xen/include/public/domctl.h ++++ xen-4.0.2-testing/xen/include/public/domctl.h @@ -35,7 +35,7 @@ #include "xen.h" #include "grant_table.h" @@ -118,10 +118,10 @@ Index: xen-4.0.1-testing/xen/include/public/domctl.h struct xenctl_cpumap { XEN_GUEST_HANDLE_64(uint8) bitmap; -Index: xen-4.0.1-testing/xen/include/xen/softirq.h +Index: xen-4.0.2-testing/xen/include/xen/softirq.h =================================================================== ---- xen-4.0.1-testing.orig/xen/include/xen/softirq.h -+++ xen-4.0.1-testing/xen/include/xen/softirq.h +--- xen-4.0.2-testing.orig/xen/include/xen/softirq.h ++++ xen-4.0.2-testing/xen/include/xen/softirq.h @@ -52,15 +52,17 @@ struct tasklet bool_t is_scheduled; bool_t is_running; diff --git a/cpupools-core.patch b/cpupools-core.patch index 265539d..f2b80bc 100644 --- a/cpupools-core.patch +++ b/cpupools-core.patch @@ -1,10 +1,8 @@ From: Juergen Gross -Index: xen-4.0.1-testing/xen/arch/x86/acpi/power.c -=================================================================== ---- xen-4.0.1-testing.orig/xen/arch/x86/acpi/power.c -+++ xen-4.0.1-testing/xen/arch/x86/acpi/power.c -@@ -234,7 +234,7 @@ static int enter_state(u32 state) +--- a/xen/arch/x86/acpi/power.c ++++ b/xen/arch/x86/acpi/power.c +@@ -236,7 +236,7 @@ static int enter_state(u32 state) return error; } @@ -13,7 +11,7 @@ Index: xen-4.0.1-testing/xen/arch/x86/acpi/power.c { struct acpi_sleep_info *sinfo = (struct acpi_sleep_info *)data; return enter_state(sinfo->sleep_state); -@@ -265,7 +265,7 @@ int acpi_enter_sleep(struct xenpf_enter_ +@@ -267,7 +267,7 @@ int acpi_enter_sleep(struct xenpf_enter_ acpi_sinfo.pm1b_cnt_val = sleep->pm1b_cnt_val; acpi_sinfo.sleep_state = sleep->sleep_state; @@ -22,10 +20,8 @@ Index: xen-4.0.1-testing/xen/arch/x86/acpi/power.c } static int acpi_get_wake_status(void) -Index: xen-4.0.1-testing/xen/arch/x86/domain.c -=================================================================== ---- xen-4.0.1-testing.orig/xen/arch/x86/domain.c -+++ xen-4.0.1-testing/xen/arch/x86/domain.c +--- a/xen/arch/x86/domain.c ++++ b/xen/arch/x86/domain.c @@ -1522,42 +1522,52 @@ void sync_vcpu_execstate(struct vcpu *v) } @@ -139,10 +135,8 @@ Index: xen-4.0.1-testing/xen/arch/x86/domain.c return 0; } -Index: xen-4.0.1-testing/xen/arch/x86/domain_build.c -=================================================================== ---- xen-4.0.1-testing.orig/xen/arch/x86/domain_build.c -+++ xen-4.0.1-testing/xen/arch/x86/domain_build.c +--- a/xen/arch/x86/domain_build.c ++++ b/xen/arch/x86/domain_build.c @@ -9,6 +9,7 @@ #include #include @@ -183,10 +177,8 @@ Index: xen-4.0.1-testing/xen/arch/x86/domain_build.c /* Set up CR3 value for write_ptbase */ if ( paging_mode_enabled(d) ) -Index: xen-4.0.1-testing/xen/arch/x86/microcode.c -=================================================================== ---- xen-4.0.1-testing.orig/xen/arch/x86/microcode.c -+++ xen-4.0.1-testing/xen/arch/x86/microcode.c +--- a/xen/arch/x86/microcode.c ++++ b/xen/arch/x86/microcode.c @@ -114,7 +114,7 @@ static int microcode_update_cpu(const vo return err; } @@ -214,10 +206,8 @@ Index: xen-4.0.1-testing/xen/arch/x86/microcode.c + return continue_hypercall_on_cpu(info->cpu, NULL, + do_microcode_update, info); } -Index: xen-4.0.1-testing/xen/arch/x86/mm.c -=================================================================== ---- xen-4.0.1-testing.orig/xen/arch/x86/mm.c -+++ xen-4.0.1-testing/xen/arch/x86/mm.c +--- a/xen/arch/x86/mm.c ++++ b/xen/arch/x86/mm.c @@ -243,7 +243,7 @@ void __init arch_init_memory(void) * Any Xen-heap pages that we will allow to be mapped will have * their domain field set to dom_xen. @@ -244,10 +234,8 @@ Index: xen-4.0.1-testing/xen/arch/x86/mm.c BUG_ON(dom_cow == NULL); /* First 1MB of RAM is historically marked as I/O. */ -Index: xen-4.0.1-testing/xen/arch/x86/platform_hypercall.c -=================================================================== ---- xen-4.0.1-testing.orig/xen/arch/x86/platform_hypercall.c -+++ xen-4.0.1-testing/xen/arch/x86/platform_hypercall.c +--- a/xen/arch/x86/platform_hypercall.c ++++ b/xen/arch/x86/platform_hypercall.c @@ -48,12 +48,12 @@ static DEFINE_PER_CPU(uint64_t, freq); extern int set_px_pminfo(uint32_t cpu, struct xen_processor_performance *perf); extern long set_cx_pminfo(uint32_t cpu, struct xen_processor_power *power); @@ -272,7 +260,7 @@ Index: xen-4.0.1-testing/xen/arch/x86/platform_hypercall.c cpu_frequency_change_helper, NULL); break; -@@ -473,7 +473,7 @@ ret_t do_platform_op(XEN_GUEST_HANDLE(xe +@@ -472,7 +472,7 @@ ret_t do_platform_op(XEN_GUEST_HANDLE(xe break; } ret = continue_hypercall_on_cpu( @@ -281,10 +269,8 @@ Index: xen-4.0.1-testing/xen/arch/x86/platform_hypercall.c break; } break; -Index: xen-4.0.1-testing/xen/arch/x86/setup.c -=================================================================== ---- xen-4.0.1-testing.orig/xen/arch/x86/setup.c -+++ xen-4.0.1-testing/xen/arch/x86/setup.c +--- a/xen/arch/x86/setup.c ++++ b/xen/arch/x86/setup.c @@ -2,6 +2,7 @@ #include #include @@ -297,8 +283,8 @@ Index: xen-4.0.1-testing/xen/arch/x86/setup.c /* Domain creation requires that scheduler structures are initialised. */ scheduler_init(); -- idle_domain = domain_create(IDLE_DOMAIN_ID, 0, 0); -+ idle_domain = domain_create(IDLE_DOMAIN_ID, CPUPOOLID_NONE, 0, 0); +- idle_domain = domain_create(DOMID_IDLE, 0, 0); ++ idle_domain = domain_create(DOMID_IDLE, CPUPOOLID_NONE, 0, 0); if ( idle_domain == NULL ) BUG(); idle_domain->vcpu = idle_vcpu; @@ -317,10 +303,8 @@ Index: xen-4.0.1-testing/xen/arch/x86/setup.c if ( (dom0 == NULL) || (alloc_dom0_vcpu0() == NULL) ) panic("Error creating domain 0\n"); -Index: xen-4.0.1-testing/xen/arch/x86/smpboot.c -=================================================================== ---- xen-4.0.1-testing.orig/xen/arch/x86/smpboot.c -+++ xen-4.0.1-testing/xen/arch/x86/smpboot.c +--- a/xen/arch/x86/smpboot.c ++++ b/xen/arch/x86/smpboot.c @@ -39,6 +39,7 @@ #include #include @@ -389,10 +373,8 @@ Index: xen-4.0.1-testing/xen/arch/x86/smpboot.c cpufreq_add_cpu(cpu); return 0; } -Index: xen-4.0.1-testing/xen/arch/x86/sysctl.c -=================================================================== ---- xen-4.0.1-testing.orig/xen/arch/x86/sysctl.c -+++ xen-4.0.1-testing/xen/arch/x86/sysctl.c +--- a/xen/arch/x86/sysctl.c ++++ b/xen/arch/x86/sysctl.c @@ -29,7 +29,7 @@ #define get_xen_guest_handle(val, hnd) do { val = (hnd).p; } while (0) @@ -411,10 +393,8 @@ Index: xen-4.0.1-testing/xen/arch/x86/sysctl.c break; case XEN_SYSCTL_CPU_HOTPLUG_STATUS: ret = 0; -Index: xen-4.0.1-testing/xen/common/Makefile -=================================================================== ---- xen-4.0.1-testing.orig/xen/common/Makefile -+++ xen-4.0.1-testing/xen/common/Makefile +--- a/xen/common/Makefile ++++ b/xen/common/Makefile @@ -1,5 +1,6 @@ obj-y += bitmap.o obj-y += cpu.o @@ -422,10 +402,8 @@ Index: xen-4.0.1-testing/xen/common/Makefile obj-y += domctl.o obj-y += domain.o obj-y += event_channel.o -Index: xen-4.0.1-testing/xen/common/cpupool.c -=================================================================== --- /dev/null -+++ xen-4.0.1-testing/xen/common/cpupool.c ++++ b/xen/common/cpupool.c @@ -0,0 +1,609 @@ +/****************************************************************************** + * cpupool.c @@ -1036,10 +1014,8 @@ Index: xen-4.0.1-testing/xen/common/cpupool.c + * indent-tabs-mode: nil + * End: + */ -Index: xen-4.0.1-testing/xen/common/domain.c -=================================================================== ---- xen-4.0.1-testing.orig/xen/common/domain.c -+++ xen-4.0.1-testing/xen/common/domain.c +--- a/xen/common/domain.c ++++ b/xen/common/domain.c @@ -209,7 +209,7 @@ static void __init parse_extra_guest_irq custom_param("extra_guest_irqs", parse_extra_guest_irqs); @@ -1068,10 +1044,8 @@ Index: xen-4.0.1-testing/xen/common/domain.c sched_destroy_domain(d); /* Free page used by xen oprofile buffer. */ -Index: xen-4.0.1-testing/xen/common/domctl.c -=================================================================== ---- xen-4.0.1-testing.orig/xen/common/domctl.c -+++ xen-4.0.1-testing/xen/common/domctl.c +--- a/xen/common/domctl.c ++++ b/xen/common/domctl.c @@ -11,6 +11,7 @@ #include #include @@ -1147,11 +1121,9 @@ Index: xen-4.0.1-testing/xen/common/domctl.c if ( alloc_vcpu(d, i, cpu) == NULL ) goto maxvcpu_out; -Index: xen-4.0.1-testing/xen/common/kexec.c -=================================================================== ---- xen-4.0.1-testing.orig/xen/common/kexec.c -+++ xen-4.0.1-testing/xen/common/kexec.c -@@ -235,7 +235,7 @@ void kexec_crash(void) +--- a/xen/common/kexec.c ++++ b/xen/common/kexec.c +@@ -228,7 +228,7 @@ void kexec_crash(void) BUG(); } @@ -1160,19 +1132,17 @@ Index: xen-4.0.1-testing/xen/common/kexec.c { xen_kexec_image_t *image = _image; -@@ -584,7 +584,7 @@ static int kexec_exec(XEN_GUEST_HANDLE(v - { +@@ -582,7 +582,7 @@ static int kexec_exec(XEN_GUEST_HANDLE(v case KEXEC_TYPE_DEFAULT: image = &kexec_image[base + pos]; + #ifdef CONFIG_X86 - ret = continue_hypercall_on_cpu(0, kexec_reboot, image); + ret = continue_hypercall_on_cpu(0, NULL, kexec_reboot, image); - break; - case KEXEC_TYPE_CRASH: - kexec_crash(); /* Does not return */ -Index: xen-4.0.1-testing/xen/common/sched_credit.c -=================================================================== ---- xen-4.0.1-testing.orig/xen/common/sched_credit.c -+++ xen-4.0.1-testing/xen/common/sched_credit.c + #else + one_cpu_only(); + machine_reboot_kexec(image); /* Does not return */ +--- a/xen/common/sched_credit.c ++++ b/xen/common/sched_credit.c @@ -70,11 +70,15 @@ /* * Useful macros @@ -1364,7 +1334,7 @@ Index: xen-4.0.1-testing/xen/common/sched_credit.c cpu_set(cpu, idlers); cpus_and(cpus, cpus, idlers); cpu_clear(cpu, cpus); -@@ -456,18 +507,18 @@ _csched_cpu_pick(struct vcpu *vc, bool_t +@@ -466,18 +517,18 @@ _csched_cpu_pick(struct vcpu *vc, bool_t } static int @@ -1387,7 +1357,7 @@ Index: xen-4.0.1-testing/xen/common/sched_credit.c if ( list_empty(&svc->active_vcpu_elem) ) { -@@ -478,16 +529,17 @@ __csched_vcpu_acct_start(struct csched_v +@@ -488,16 +539,17 @@ __csched_vcpu_acct_start(struct csched_v list_add(&svc->active_vcpu_elem, &sdom->active_vcpu); if ( list_empty(&sdom->active_sdom_elem) ) { @@ -1409,7 +1379,7 @@ Index: xen-4.0.1-testing/xen/common/sched_credit.c { struct csched_dom * const sdom = svc->sdom; -@@ -500,16 +552,17 @@ __csched_vcpu_acct_stop_locked(struct cs +@@ -510,16 +562,17 @@ __csched_vcpu_acct_stop_locked(struct cs list_del_init(&svc->active_vcpu_elem); if ( list_empty(&sdom->active_vcpu) ) { @@ -1430,7 +1400,7 @@ Index: xen-4.0.1-testing/xen/common/sched_credit.c ASSERT( current->processor == cpu ); ASSERT( svc->sdom != NULL ); -@@ -538,9 +591,9 @@ csched_vcpu_acct(unsigned int cpu) +@@ -548,9 +601,9 @@ csched_vcpu_acct(unsigned int cpu) */ if ( list_empty(&svc->active_vcpu_elem) ) { @@ -1442,7 +1412,7 @@ Index: xen-4.0.1-testing/xen/common/sched_credit.c { CSCHED_VCPU_STAT_CRANK(svc, migrate_r); CSCHED_STAT_CRANK(migrate_running); -@@ -549,66 +602,75 @@ csched_vcpu_acct(unsigned int cpu) +@@ -559,66 +612,75 @@ csched_vcpu_acct(unsigned int cpu) } } @@ -1547,7 +1517,7 @@ Index: xen-4.0.1-testing/xen/common/sched_credit.c { struct csched_vcpu * const svc = CSCHED_VCPU(vc); -@@ -623,7 +685,7 @@ csched_vcpu_sleep(struct vcpu *vc) +@@ -633,7 +695,7 @@ csched_vcpu_sleep(struct vcpu *vc) } static void @@ -1556,7 +1526,7 @@ Index: xen-4.0.1-testing/xen/common/sched_credit.c { struct csched_vcpu * const svc = CSCHED_VCPU(vc); const unsigned int cpu = vc->processor; -@@ -679,10 +741,12 @@ csched_vcpu_wake(struct vcpu *vc) +@@ -689,10 +751,12 @@ csched_vcpu_wake(struct vcpu *vc) static int csched_dom_cntl( @@ -1569,7 +1539,7 @@ Index: xen-4.0.1-testing/xen/common/sched_credit.c unsigned long flags; if ( op->cmd == XEN_DOMCTL_SCHEDOP_getinfo ) -@@ -694,14 +758,14 @@ csched_dom_cntl( +@@ -704,14 +768,14 @@ csched_dom_cntl( { ASSERT(op->cmd == XEN_DOMCTL_SCHEDOP_putinfo); @@ -1587,7 +1557,7 @@ Index: xen-4.0.1-testing/xen/common/sched_credit.c } sdom->weight = op->u.credit.weight; } -@@ -709,25 +773,20 @@ csched_dom_cntl( +@@ -719,25 +783,20 @@ csched_dom_cntl( if ( op->u.credit.cap != (uint16_t)~0U ) sdom->cap = op->u.credit.cap; @@ -1617,7 +1587,7 @@ Index: xen-4.0.1-testing/xen/common/sched_credit.c memset(sdom, 0, sizeof(*sdom)); /* Initialize credit and weight */ -@@ -737,16 +796,40 @@ csched_dom_init(struct domain *dom) +@@ -747,16 +806,40 @@ csched_dom_init(struct domain *dom) sdom->dom = dom; sdom->weight = CSCHED_DEFAULT_WEIGHT; sdom->cap = 0U; @@ -1660,7 +1630,7 @@ Index: xen-4.0.1-testing/xen/common/sched_credit.c } /* -@@ -757,7 +840,7 @@ csched_dom_destroy(struct domain *dom) +@@ -767,7 +850,7 @@ csched_dom_destroy(struct domain *dom) * remember the last UNDER to make the move up operation O(1). */ static void @@ -1669,7 +1639,7 @@ Index: xen-4.0.1-testing/xen/common/sched_credit.c { struct csched_pcpu * const spc = CSCHED_PCPU(cpu); struct list_head *runq, *elem, *next, *last_under; -@@ -765,7 +848,7 @@ csched_runq_sort(unsigned int cpu) +@@ -775,7 +858,7 @@ csched_runq_sort(unsigned int cpu) unsigned long flags; int sort_epoch; @@ -1678,7 +1648,7 @@ Index: xen-4.0.1-testing/xen/common/sched_credit.c if ( sort_epoch == spc->runq_sort_last ) return; -@@ -802,6 +885,7 @@ csched_runq_sort(unsigned int cpu) +@@ -812,6 +895,7 @@ csched_runq_sort(unsigned int cpu) static void csched_acct(void* dummy) { @@ -1686,7 +1656,7 @@ Index: xen-4.0.1-testing/xen/common/sched_credit.c unsigned long flags; struct list_head *iter_vcpu, *next_vcpu; struct list_head *iter_sdom, *next_sdom; -@@ -818,22 +902,22 @@ csched_acct(void* dummy) +@@ -828,22 +912,22 @@ csched_acct(void* dummy) int credit; @@ -1716,7 +1686,7 @@ Index: xen-4.0.1-testing/xen/common/sched_credit.c CSCHED_STAT_CRANK(acct_no_work); goto out; } -@@ -845,7 +929,7 @@ csched_acct(void* dummy) +@@ -855,7 +939,7 @@ csched_acct(void* dummy) credit_xtra = 0; credit_cap = 0U; @@ -1725,7 +1695,7 @@ Index: xen-4.0.1-testing/xen/common/sched_credit.c { sdom = list_entry(iter_sdom, struct csched_dom, active_sdom_elem); -@@ -865,9 +949,9 @@ csched_acct(void* dummy) +@@ -875,9 +959,9 @@ csched_acct(void* dummy) * only when the system-wide credit balance is negative. */ credit_peak = sdom->active_vcpu_count * CSCHED_CREDITS_PER_ACCT; @@ -1737,7 +1707,7 @@ Index: xen-4.0.1-testing/xen/common/sched_credit.c (weight_total - 1) ) / weight_total; } -@@ -909,7 +993,7 @@ csched_acct(void* dummy) +@@ -919,7 +1003,7 @@ csched_acct(void* dummy) */ CSCHED_STAT_CRANK(acct_reorder); list_del(&sdom->active_sdom_elem); @@ -1746,7 +1716,7 @@ Index: xen-4.0.1-testing/xen/common/sched_credit.c } credit_fair = credit_peak; -@@ -975,7 +1059,7 @@ csched_acct(void* dummy) +@@ -985,7 +1069,7 @@ csched_acct(void* dummy) /* Upper bound on credits means VCPU stops earning */ if ( credit > CSCHED_CREDITS_PER_TSLICE ) { @@ -1755,7 +1725,7 @@ Index: xen-4.0.1-testing/xen/common/sched_credit.c credit = 0; atomic_set(&svc->credit, credit); } -@@ -987,15 +1071,15 @@ csched_acct(void* dummy) +@@ -997,15 +1081,15 @@ csched_acct(void* dummy) } } @@ -1775,7 +1745,7 @@ Index: xen-4.0.1-testing/xen/common/sched_credit.c MILLISECS(CSCHED_MSECS_PER_TICK) * CSCHED_TICKS_PER_ACCT ); } -@@ -1004,6 +1088,7 @@ csched_tick(void *_cpu) +@@ -1014,6 +1098,7 @@ csched_tick(void *_cpu) { unsigned int cpu = (unsigned long)_cpu; struct csched_pcpu *spc = CSCHED_PCPU(cpu); @@ -1783,7 +1753,7 @@ Index: xen-4.0.1-testing/xen/common/sched_credit.c spc->tick++; -@@ -1011,7 +1096,7 @@ csched_tick(void *_cpu) +@@ -1021,7 +1106,7 @@ csched_tick(void *_cpu) * Accounting for running VCPU */ if ( !is_idle_vcpu(current) ) @@ -1792,7 +1762,7 @@ Index: xen-4.0.1-testing/xen/common/sched_credit.c /* * Check if runq needs to be sorted -@@ -1020,7 +1105,7 @@ csched_tick(void *_cpu) +@@ -1030,7 +1115,7 @@ csched_tick(void *_cpu) * modified priorities. This is a special O(n) sort and runs at most * once per accounting period (currently 30 milliseconds). */ @@ -1801,7 +1771,7 @@ Index: xen-4.0.1-testing/xen/common/sched_credit.c set_timer(&spc->ticker, NOW() + MILLISECS(CSCHED_MSECS_PER_TICK)); } -@@ -1073,16 +1158,19 @@ csched_runq_steal(int peer_cpu, int cpu, +@@ -1083,16 +1168,19 @@ csched_runq_steal(int peer_cpu, int cpu, } static struct csched_vcpu * @@ -1823,7 +1793,7 @@ Index: xen-4.0.1-testing/xen/common/sched_credit.c goto out; if ( snext->pri == CSCHED_PRI_IDLE ) -@@ -1096,7 +1184,7 @@ csched_load_balance(int cpu, struct csch +@@ -1106,7 +1194,7 @@ csched_load_balance(int cpu, struct csch * Peek at non-idling CPUs in the system, starting with our * immediate neighbour. */ @@ -1832,7 +1802,7 @@ Index: xen-4.0.1-testing/xen/common/sched_credit.c cpu_clear(cpu, workers); peer_cpu = cpu; -@@ -1138,11 +1226,12 @@ csched_load_balance(int cpu, struct csch +@@ -1148,11 +1236,12 @@ csched_load_balance(int cpu, struct csch * fast for the common case. */ static struct task_slice @@ -1846,7 +1816,7 @@ Index: xen-4.0.1-testing/xen/common/sched_credit.c struct csched_vcpu *snext; struct task_slice ret; -@@ -1177,7 +1266,7 @@ csched_schedule(s_time_t now) +@@ -1187,7 +1276,7 @@ csched_schedule(s_time_t now) if ( snext->pri > CSCHED_PRI_TS_OVER ) __runq_remove(snext); else @@ -1855,7 +1825,7 @@ Index: xen-4.0.1-testing/xen/common/sched_credit.c /* * Update idlers mask if necessary. When we're idling, other CPUs -@@ -1185,12 +1274,12 @@ csched_schedule(s_time_t now) +@@ -1195,12 +1284,12 @@ csched_schedule(s_time_t now) */ if ( snext->pri == CSCHED_PRI_IDLE ) { @@ -1872,7 +1842,7 @@ Index: xen-4.0.1-testing/xen/common/sched_credit.c } if ( !is_idle_vcpu(snext->vcpu) ) -@@ -1237,7 +1326,7 @@ csched_dump_vcpu(struct csched_vcpu *svc +@@ -1247,7 +1336,7 @@ csched_dump_vcpu(struct csched_vcpu *svc } static void @@ -1881,7 +1851,7 @@ Index: xen-4.0.1-testing/xen/common/sched_credit.c { struct list_head *runq, *iter; struct csched_pcpu *spc; -@@ -1275,9 +1364,10 @@ csched_dump_pcpu(int cpu) +@@ -1285,9 +1374,10 @@ csched_dump_pcpu(int cpu) } static void @@ -1893,7 +1863,7 @@ Index: xen-4.0.1-testing/xen/common/sched_credit.c int loop; #define idlers_buf keyhandler_scratch -@@ -1294,12 +1384,12 @@ csched_dump(void) +@@ -1304,12 +1394,12 @@ csched_dump(void) "\tticks per tslice = %d\n" "\tticks per acct = %d\n" "\tmigration delay = %uus\n", @@ -1912,7 +1882,7 @@ Index: xen-4.0.1-testing/xen/common/sched_credit.c CSCHED_DEFAULT_WEIGHT, CSCHED_MSECS_PER_TICK, CSCHED_CREDITS_PER_MSEC, -@@ -1307,12 +1397,12 @@ csched_dump(void) +@@ -1317,12 +1407,12 @@ csched_dump(void) CSCHED_TICKS_PER_ACCT, vcpu_migration_delay); @@ -1927,7 +1897,7 @@ Index: xen-4.0.1-testing/xen/common/sched_credit.c { struct csched_dom *sdom; sdom = list_entry(iter_sdom, struct csched_dom, active_sdom_elem); -@@ -1329,18 +1419,30 @@ csched_dump(void) +@@ -1339,18 +1429,30 @@ csched_dump(void) #undef idlers_buf } @@ -1969,7 +1939,7 @@ Index: xen-4.0.1-testing/xen/common/sched_credit.c } /* Tickers cannot be kicked until SMP subsystem is alive. */ -@@ -1350,54 +1452,81 @@ static __init int csched_start_tickers(v +@@ -1360,54 +1462,81 @@ static __init int csched_start_tickers(v unsigned int cpu; /* Is the credit scheduler initialised? */ @@ -2061,7 +2031,7 @@ Index: xen-4.0.1-testing/xen/common/sched_credit.c .destroy_vcpu = csched_vcpu_destroy, .sleep = csched_vcpu_sleep, -@@ -1411,6 +1540,13 @@ const struct scheduler sched_credit_def +@@ -1421,6 +1550,13 @@ const struct scheduler sched_credit_def .dump_cpu_state = csched_dump_pcpu, .dump_settings = csched_dump, .init = csched_init, @@ -2075,10 +2045,8 @@ Index: xen-4.0.1-testing/xen/common/sched_credit.c .tick_suspend = csched_tick_suspend, .tick_resume = csched_tick_resume, -Index: xen-4.0.1-testing/xen/common/sched_sedf.c -=================================================================== ---- xen-4.0.1-testing.orig/xen/common/sched_sedf.c -+++ xen-4.0.1-testing/xen/common/sched_sedf.c +--- a/xen/common/sched_sedf.c ++++ b/xen/common/sched_sedf.c @@ -21,6 +21,9 @@ printk(_a ); \ } while ( 0 ) @@ -2344,7 +2312,7 @@ Index: xen-4.0.1-testing/xen/common/sched_sedf.c .name = "Simple EDF Scheduler", .opt_name = "sedf", .sched_id = XEN_SCHEDULER_SEDF, -@@ -1463,9 +1508,15 @@ const struct scheduler sched_sedf_def = +@@ -1463,9 +1508,15 @@ const struct scheduler sched_sedf_def = .init_domain = sedf_init_domain, .destroy_domain = sedf_destroy_domain, @@ -2361,10 +2329,8 @@ Index: xen-4.0.1-testing/xen/common/sched_sedf.c .do_schedule = sedf_do_schedule, .pick_cpu = sedf_pick_cpu, .dump_cpu_state = sedf_dump_cpu_state, -Index: xen-4.0.1-testing/xen/common/schedule.c -=================================================================== ---- xen-4.0.1-testing.orig/xen/common/schedule.c -+++ xen-4.0.1-testing/xen/common/schedule.c +--- a/xen/common/schedule.c ++++ b/xen/common/schedule.c @@ -53,10 +53,11 @@ static void poll_timer_fn(void *data); /* This is global for now so that private implementations can reach it */ @@ -2399,7 +2365,7 @@ Index: xen-4.0.1-testing/xen/common/schedule.c static inline void trace_runstate_change(struct vcpu *v, int new_state) { -@@ -207,7 +214,86 @@ int sched_init_vcpu(struct vcpu *v, unsi +@@ -206,7 +213,86 @@ int sched_init_vcpu(struct vcpu *v, unsi TRACE_2D(TRC_SCHED_DOM_ADD, v->domain->domain_id, v->vcpu_id); @@ -2487,7 +2453,7 @@ Index: xen-4.0.1-testing/xen/common/schedule.c } void sched_destroy_vcpu(struct vcpu *v) -@@ -217,17 +303,17 @@ void sched_destroy_vcpu(struct vcpu *v) +@@ -216,17 +302,17 @@ void sched_destroy_vcpu(struct vcpu *v) kill_timer(&v->poll_timer); if ( test_and_clear_bool(v->is_urgent) ) atomic_dec(&per_cpu(schedule_data, v->processor).urgent_count); @@ -2508,7 +2474,7 @@ Index: xen-4.0.1-testing/xen/common/schedule.c } void vcpu_sleep_nosync(struct vcpu *v) -@@ -241,7 +327,7 @@ void vcpu_sleep_nosync(struct vcpu *v) +@@ -240,7 +326,7 @@ void vcpu_sleep_nosync(struct vcpu *v) if ( v->runstate.state == RUNSTATE_runnable ) vcpu_runstate_change(v, RUNSTATE_offline, NOW()); @@ -2517,7 +2483,7 @@ Index: xen-4.0.1-testing/xen/common/schedule.c } vcpu_schedule_unlock_irqrestore(v, flags); -@@ -269,7 +355,7 @@ void vcpu_wake(struct vcpu *v) +@@ -268,7 +354,7 @@ void vcpu_wake(struct vcpu *v) { if ( v->runstate.state >= RUNSTATE_blocked ) vcpu_runstate_change(v, RUNSTATE_runnable, NOW()); @@ -2526,7 +2492,7 @@ Index: xen-4.0.1-testing/xen/common/schedule.c } else if ( !test_bit(_VPF_blocked, &v->pause_flags) ) { -@@ -324,7 +410,7 @@ static void vcpu_migrate(struct vcpu *v) +@@ -323,7 +409,7 @@ static void vcpu_migrate(struct vcpu *v) /* Select new CPU. */ old_cpu = v->processor; @@ -2535,7 +2501,7 @@ Index: xen-4.0.1-testing/xen/common/schedule.c /* * Transfer urgency status to new CPU before switching CPUs, as once -@@ -367,22 +453,32 @@ void vcpu_force_reschedule(struct vcpu * +@@ -366,22 +452,32 @@ void vcpu_force_reschedule(struct vcpu * } /* @@ -2572,7 +2538,7 @@ Index: xen-4.0.1-testing/xen/common/schedule.c if ( (cpus_weight(v->cpu_affinity) == 1) && cpu_isset(cpu, v->cpu_affinity) ) { -@@ -396,39 +492,51 @@ void cpu_disable_scheduler(void) +@@ -395,39 +491,51 @@ void cpu_disable_scheduler(void) * be chosen when the timer is next re-set. */ if ( v->singleshot_timer.cpu == cpu ) @@ -2638,7 +2604,7 @@ Index: xen-4.0.1-testing/xen/common/schedule.c old_affinity = v->cpu_affinity; v->cpu_affinity = *affinity; *affinity = old_affinity; -@@ -446,36 +554,6 @@ static int __vcpu_set_affinity( +@@ -445,36 +553,6 @@ static int __vcpu_set_affinity( return 0; } @@ -2675,7 +2641,7 @@ Index: xen-4.0.1-testing/xen/common/schedule.c /* Block the currently-executing domain until a pertinent event occurs. */ static long do_block(void) { -@@ -783,7 +861,7 @@ long sched_adjust(struct domain *d, stru +@@ -782,7 +860,7 @@ long sched_adjust(struct domain *d, stru struct vcpu *v; long ret; @@ -2684,7 +2650,7 @@ Index: xen-4.0.1-testing/xen/common/schedule.c ((op->cmd != XEN_DOMCTL_SCHEDOP_putinfo) && (op->cmd != XEN_DOMCTL_SCHEDOP_getinfo)) ) return -EINVAL; -@@ -810,7 +888,7 @@ long sched_adjust(struct domain *d, stru +@@ -809,7 +887,7 @@ long sched_adjust(struct domain *d, stru if ( d == current->domain ) vcpu_schedule_lock_irq(current); @@ -2693,7 +2659,7 @@ Index: xen-4.0.1-testing/xen/common/schedule.c TRACE_1D(TRC_SCHED_ADJDOM, d->domain_id); if ( d == current->domain ) -@@ -857,6 +935,7 @@ static void schedule(void) +@@ -856,6 +934,7 @@ static void schedule(void) { struct vcpu *prev = current, *next = NULL; s_time_t now = NOW(); @@ -2701,7 +2667,7 @@ Index: xen-4.0.1-testing/xen/common/schedule.c struct schedule_data *sd; struct task_slice next_slice; -@@ -872,7 +951,7 @@ static void schedule(void) +@@ -871,7 +950,7 @@ static void schedule(void) stop_timer(&sd->s_timer); /* get policy-specific decision on scheduling... */ @@ -2710,7 +2676,7 @@ Index: xen-4.0.1-testing/xen/common/schedule.c next = next_slice.task; -@@ -978,6 +1057,19 @@ static void poll_timer_fn(void *data) +@@ -977,6 +1056,19 @@ static void poll_timer_fn(void *data) vcpu_unblock(v); } @@ -2730,7 +2696,7 @@ Index: xen-4.0.1-testing/xen/common/schedule.c /* Initialise the data structures. */ void __init scheduler_init(void) { -@@ -985,12 +1077,6 @@ void __init scheduler_init(void) +@@ -984,12 +1076,6 @@ void __init scheduler_init(void) open_softirq(SCHEDULE_SOFTIRQ, schedule); @@ -2743,7 +2709,7 @@ Index: xen-4.0.1-testing/xen/common/schedule.c for ( i = 0; schedulers[i] != NULL; i++ ) { ops = *schedulers[i]; -@@ -1004,43 +1090,123 @@ void __init scheduler_init(void) +@@ -1003,43 +1089,123 @@ void __init scheduler_init(void) ops = *schedulers[0]; } @@ -2883,10 +2849,8 @@ Index: xen-4.0.1-testing/xen/common/schedule.c } #ifdef CONFIG_COMPAT -Index: xen-4.0.1-testing/xen/common/softirq.c -=================================================================== ---- xen-4.0.1-testing.orig/xen/common/softirq.c -+++ xen-4.0.1-testing/xen/common/softirq.c +--- a/xen/common/softirq.c ++++ b/xen/common/softirq.c @@ -98,9 +98,11 @@ void raise_softirq(unsigned int nr) } @@ -2980,10 +2944,8 @@ Index: xen-4.0.1-testing/xen/common/softirq.c open_softirq(TASKLET_SOFTIRQ, tasklet_action); } -Index: xen-4.0.1-testing/xen/common/sysctl.c -=================================================================== ---- xen-4.0.1-testing.orig/xen/common/sysctl.c -+++ xen-4.0.1-testing/xen/common/sysctl.c +--- a/xen/common/sysctl.c ++++ b/xen/common/sysctl.c @@ -314,6 +314,14 @@ long do_sysctl(XEN_GUEST_HANDLE(xen_sysc } break; @@ -2999,10 +2961,8 @@ Index: xen-4.0.1-testing/xen/common/sysctl.c default: ret = arch_do_sysctl(op, u_sysctl); break; -Index: xen-4.0.1-testing/xen/include/asm-x86/domain.h -=================================================================== ---- xen-4.0.1-testing.orig/xen/include/asm-x86/domain.h -+++ xen-4.0.1-testing/xen/include/asm-x86/domain.h +--- a/xen/include/asm-x86/domain.h ++++ b/xen/include/asm-x86/domain.h @@ -458,7 +458,8 @@ struct arch_vcpu #define hvm_svm hvm_vcpu.u.svm @@ -3013,10 +2973,8 @@ Index: xen-4.0.1-testing/xen/include/asm-x86/domain.h void vcpu_show_execution_state(struct vcpu *); void vcpu_show_registers(const struct vcpu *); -Index: xen-4.0.1-testing/xen/include/public/domctl.h -=================================================================== ---- xen-4.0.1-testing.orig/xen/include/public/domctl.h -+++ xen-4.0.1-testing/xen/include/public/domctl.h +--- a/xen/include/public/domctl.h ++++ b/xen/include/public/domctl.h @@ -60,10 +60,10 @@ struct xen_domctl_createdomain { /* Should domain memory integrity be verifed by tboot during Sx? */ #define _XEN_DOMCTL_CDF_s3_integrity 2 @@ -3045,10 +3003,8 @@ Index: xen-4.0.1-testing/xen/include/public/domctl.h struct xen_domctl { uint32_t cmd; #define XEN_DOMCTL_createdomain 1 -Index: xen-4.0.1-testing/xen/include/public/sysctl.h -=================================================================== ---- xen-4.0.1-testing.orig/xen/include/public/sysctl.h -+++ xen-4.0.1-testing/xen/include/public/sysctl.h +--- a/xen/include/public/sysctl.h ++++ b/xen/include/public/sysctl.h @@ -491,6 +491,28 @@ struct xen_sysctl_lockprof_op { typedef struct xen_sysctl_lockprof_op xen_sysctl_lockprof_op_t; DEFINE_XEN_GUEST_HANDLE(xen_sysctl_lockprof_op_t); @@ -3086,10 +3042,8 @@ Index: xen-4.0.1-testing/xen/include/public/sysctl.h uint8_t pad[128]; } u; }; -Index: xen-4.0.1-testing/xen/include/xen/sched-if.h -=================================================================== ---- xen-4.0.1-testing.orig/xen/include/xen/sched-if.h -+++ xen-4.0.1-testing/xen/include/xen/sched-if.h +--- a/xen/include/xen/sched-if.h ++++ b/xen/include/xen/sched-if.h @@ -10,16 +10,26 @@ #include @@ -3181,10 +3135,8 @@ Index: xen-4.0.1-testing/xen/include/xen/sched-if.h +struct scheduler *scheduler_get_by_id(unsigned int id); + #endif /* __XEN_SCHED_IF_H__ */ -Index: xen-4.0.1-testing/xen/include/xen/sched.h -=================================================================== ---- xen-4.0.1-testing.orig/xen/include/xen/sched.h -+++ xen-4.0.1-testing/xen/include/xen/sched.h +--- a/xen/include/xen/sched.h ++++ b/xen/include/xen/sched.h @@ -9,6 +9,7 @@ #include #include @@ -3193,7 +3145,7 @@ Index: xen-4.0.1-testing/xen/include/xen/sched.h #include #include #include -@@ -132,8 +133,6 @@ struct vcpu +@@ -132,8 +133,6 @@ struct vcpu bool_t defer_shutdown; /* VCPU is paused following shutdown request (d->is_shutting_down)? */ bool_t paused_for_shutdown; @@ -3202,7 +3154,7 @@ Index: xen-4.0.1-testing/xen/include/xen/sched.h /* * > 0: a single port is being polled; -@@ -209,6 +208,7 @@ struct domain +@@ -200,6 +199,7 @@ struct domain /* Scheduling. */ void *sched_priv; /* scheduler-specific data */ @@ -3210,7 +3162,7 @@ Index: xen-4.0.1-testing/xen/include/xen/sched.h struct domain *next_in_list; struct domain *next_in_hashbucket; -@@ -381,7 +381,7 @@ static inline struct domain *get_current +@@ -371,7 +371,7 @@ static inline struct domain *get_current } struct domain *domain_create( @@ -3219,7 +3171,7 @@ Index: xen-4.0.1-testing/xen/include/xen/sched.h /* DOMCRF_hvm: Create an HVM domain, as opposed to a PV domain. */ #define _DOMCRF_hvm 0 #define DOMCRF_hvm (1U<<_DOMCRF_hvm) -@@ -469,6 +469,7 @@ int sched_init_vcpu(struct vcpu *v, uns +@@ -459,6 +459,7 @@ int sched_init_vcpu(struct vcpu *v, uns void sched_destroy_vcpu(struct vcpu *v); int sched_init_domain(struct domain *d); void sched_destroy_domain(struct domain *d); @@ -3227,7 +3179,7 @@ Index: xen-4.0.1-testing/xen/include/xen/sched.h long sched_adjust(struct domain *, struct xen_domctl_scheduler_op *); int sched_id(void); void sched_tick_suspend(void); -@@ -576,12 +577,14 @@ void domain_pause_by_systemcontroller(st +@@ -569,12 +570,14 @@ void domain_pause_by_systemcontroller(st void domain_unpause_by_systemcontroller(struct domain *d); void cpu_init(void); @@ -3246,7 +3198,7 @@ Index: xen-4.0.1-testing/xen/include/xen/sched.h void vcpu_runstate_get(struct vcpu *v, struct vcpu_runstate_info *runstate); uint64_t get_cpu_idle_time(unsigned int cpu); -@@ -604,6 +607,19 @@ extern enum cpufreq_controller { +@@ -599,6 +602,19 @@ extern enum cpufreq_controller { FREQCTL_none, FREQCTL_dom0_kernel, FREQCTL_xen } cpufreq_controller; @@ -3266,10 +3218,8 @@ Index: xen-4.0.1-testing/xen/include/xen/sched.h #endif /* __SCHED_H__ */ /* -Index: xen-4.0.1-testing/xen/include/xen/softirq.h -=================================================================== ---- xen-4.0.1-testing.orig/xen/include/xen/softirq.h -+++ xen-4.0.1-testing/xen/include/xen/softirq.h +--- a/xen/include/xen/softirq.h ++++ b/xen/include/xen/softirq.h @@ -60,6 +60,7 @@ struct tasklet struct tasklet name = { LIST_HEAD_INIT(name.list), 0, 0, 0, func, data } diff --git a/del_usb_xend_entry.patch b/del_usb_xend_entry.patch index ee7b62d..bcd5092 100644 --- a/del_usb_xend_entry.patch +++ b/del_usb_xend_entry.patch @@ -1,7 +1,7 @@ -Index: xen-4.0.1-testing/tools/python/xen/xend/XendDomainInfo.py +Index: xen-4.0.2-testing/tools/python/xen/xend/XendDomainInfo.py =================================================================== ---- xen-4.0.1-testing.orig/tools/python/xen/xend/XendDomainInfo.py -+++ xen-4.0.1-testing/tools/python/xen/xend/XendDomainInfo.py +--- xen-4.0.2-testing.orig/tools/python/xen/xend/XendDomainInfo.py ++++ xen-4.0.2-testing/tools/python/xen/xend/XendDomainInfo.py @@ -1312,8 +1312,15 @@ class XendDomainInfo: frontpath = self.getDeviceController(deviceClass).frontendPath(dev) backpath = xstransact.Read(frontpath, "backend") diff --git a/disable_emulated_device.diff b/disable_emulated_device.diff index 892dbb7..9dccad5 100644 --- a/disable_emulated_device.diff +++ b/disable_emulated_device.diff @@ -1,8 +1,8 @@ -Index: xen-4.0.1-testing/unmodified_drivers/linux-2.6/platform-pci/platform-pci.c +Index: xen-4.0.2-testing/unmodified_drivers/linux-2.6/platform-pci/platform-pci.c =================================================================== ---- xen-4.0.1-testing.orig/unmodified_drivers/linux-2.6/platform-pci/platform-pci.c -+++ xen-4.0.1-testing/unmodified_drivers/linux-2.6/platform-pci/platform-pci.c -@@ -401,6 +401,11 @@ static int __devinit platform_pci_init(s +--- xen-4.0.2-testing.orig/unmodified_drivers/linux-2.6/platform-pci/platform-pci.c ++++ xen-4.0.2-testing/unmodified_drivers/linux-2.6/platform-pci/platform-pci.c +@@ -396,6 +396,11 @@ static int __devinit platform_pci_init(s platform_mmio = mmio_addr; platform_mmiolen = mmio_len; diff --git a/dom-print.patch b/dom-print.patch index c918676..251dd67 100644 --- a/dom-print.patch +++ b/dom-print.patch @@ -1,7 +1,7 @@ -Index: xen-4.0.1-testing/xen/arch/x86/domain.c +Index: xen-4.0.2-testing/xen/arch/x86/domain.c =================================================================== ---- xen-4.0.1-testing.orig/xen/arch/x86/domain.c -+++ xen-4.0.1-testing/xen/arch/x86/domain.c +--- xen-4.0.2-testing.orig/xen/arch/x86/domain.c ++++ xen-4.0.2-testing/xen/arch/x86/domain.c @@ -144,15 +144,30 @@ void dump_pageframe_info(struct domain * printk("Memory pages belonging to domain %u:\n", d->domain_id); diff --git a/domu-usb-controller.patch b/domu-usb-controller.patch index db697e0..c847b80 100644 --- a/domu-usb-controller.patch +++ b/domu-usb-controller.patch @@ -1,7 +1,7 @@ -Index: xen-4.0.1-testing/tools/python/xen/xend/XendConfig.py +Index: xen-4.0.2-testing/tools/python/xen/xend/XendConfig.py =================================================================== ---- xen-4.0.1-testing.orig/tools/python/xen/xend/XendConfig.py -+++ xen-4.0.1-testing/tools/python/xen/xend/XendConfig.py +--- xen-4.0.2-testing.orig/tools/python/xen/xend/XendConfig.py ++++ xen-4.0.2-testing/tools/python/xen/xend/XendConfig.py @@ -1861,7 +1861,14 @@ class XendConfig(dict): ports = sxp.child(dev_sxp, 'port') for port in ports[1:]: diff --git a/dump-exec-state.patch b/dump-exec-state.patch index b18425f..885eb3d 100644 --- a/dump-exec-state.patch +++ b/dump-exec-state.patch @@ -1,7 +1,7 @@ -Index: xen-4.0.1-testing/xen/arch/ia64/linux-xen/smp.c +Index: xen-4.0.2-testing/xen/arch/ia64/linux-xen/smp.c =================================================================== ---- xen-4.0.1-testing.orig/xen/arch/ia64/linux-xen/smp.c -+++ xen-4.0.1-testing/xen/arch/ia64/linux-xen/smp.c +--- xen-4.0.2-testing.orig/xen/arch/ia64/linux-xen/smp.c ++++ xen-4.0.2-testing/xen/arch/ia64/linux-xen/smp.c @@ -94,6 +94,7 @@ static volatile struct call_data_struct #define IPI_CALL_FUNC 0 @@ -34,10 +34,10 @@ Index: xen-4.0.1-testing/xen/arch/ia64/linux-xen/smp.c int __init setup_profiling_timer (unsigned int multiplier) { -Index: xen-4.0.1-testing/xen/arch/x86/smp.c +Index: xen-4.0.2-testing/xen/arch/x86/smp.c =================================================================== ---- xen-4.0.1-testing.orig/xen/arch/x86/smp.c -+++ xen-4.0.1-testing/xen/arch/x86/smp.c +--- xen-4.0.2-testing.orig/xen/arch/x86/smp.c ++++ xen-4.0.2-testing/xen/arch/x86/smp.c @@ -375,11 +375,24 @@ void smp_send_nmi_allbutself(void) send_IPI_mask(&cpu_online_map, APIC_DM_NMI); } @@ -63,10 +63,10 @@ Index: xen-4.0.1-testing/xen/arch/x86/smp.c set_irq_regs(old_regs); } -Index: xen-4.0.1-testing/xen/common/keyhandler.c +Index: xen-4.0.2-testing/xen/common/keyhandler.c =================================================================== ---- xen-4.0.1-testing.orig/xen/common/keyhandler.c -+++ xen-4.0.1-testing/xen/common/keyhandler.c +--- xen-4.0.2-testing.orig/xen/common/keyhandler.c ++++ xen-4.0.2-testing/xen/common/keyhandler.c @@ -71,19 +71,52 @@ static struct keyhandler show_handlers_k .desc = "show this message" }; @@ -157,10 +157,10 @@ Index: xen-4.0.1-testing/xen/common/keyhandler.c printk("\n"); -Index: xen-4.0.1-testing/xen/include/asm-ia64/linux-xen/asm/ptrace.h +Index: xen-4.0.2-testing/xen/include/asm-ia64/linux-xen/asm/ptrace.h =================================================================== ---- xen-4.0.1-testing.orig/xen/include/asm-ia64/linux-xen/asm/ptrace.h -+++ xen-4.0.1-testing/xen/include/asm-ia64/linux-xen/asm/ptrace.h +--- xen-4.0.2-testing.orig/xen/include/asm-ia64/linux-xen/asm/ptrace.h ++++ xen-4.0.2-testing/xen/include/asm-ia64/linux-xen/asm/ptrace.h @@ -278,7 +278,7 @@ struct switch_stack { # define ia64_task_regs(t) (((struct pt_regs *) ((char *) (t) + IA64_STK_OFFSET)) - 1) # define ia64_psr(regs) ((struct ia64_psr *) &(regs)->cr_ipsr) @@ -170,10 +170,10 @@ Index: xen-4.0.1-testing/xen/include/asm-ia64/linux-xen/asm/ptrace.h # define guest_kernel_mode(regs) (ia64_psr(regs)->cpl == CONFIG_CPL0_EMUL) # define vmx_guest_kernel_mode(regs) (ia64_psr(regs)->cpl == 0) # define regs_increment_iip(regs) \ -Index: xen-4.0.1-testing/xen/include/asm-x86/hardirq.h +Index: xen-4.0.2-testing/xen/include/asm-x86/hardirq.h =================================================================== ---- xen-4.0.1-testing.orig/xen/include/asm-x86/hardirq.h -+++ xen-4.0.1-testing/xen/include/asm-x86/hardirq.h +--- xen-4.0.2-testing.orig/xen/include/asm-x86/hardirq.h ++++ xen-4.0.2-testing/xen/include/asm-x86/hardirq.h @@ -8,6 +8,7 @@ typedef struct { unsigned long __softirq_pending; unsigned int __local_irq_count; @@ -182,10 +182,10 @@ Index: xen-4.0.1-testing/xen/include/asm-x86/hardirq.h } __cacheline_aligned irq_cpustat_t; #include /* Standard mappings for irq_cpustat_t above */ -Index: xen-4.0.1-testing/xen/include/xen/irq_cpustat.h +Index: xen-4.0.2-testing/xen/include/xen/irq_cpustat.h =================================================================== ---- xen-4.0.1-testing.orig/xen/include/xen/irq_cpustat.h -+++ xen-4.0.1-testing/xen/include/xen/irq_cpustat.h +--- xen-4.0.2-testing.orig/xen/include/xen/irq_cpustat.h ++++ xen-4.0.2-testing/xen/include/xen/irq_cpustat.h @@ -26,5 +26,6 @@ extern irq_cpustat_t irq_stat[]; #define softirq_pending(cpu) __IRQ_STAT((cpu), __softirq_pending) #define local_irq_count(cpu) __IRQ_STAT((cpu), __local_irq_count) @@ -193,10 +193,10 @@ Index: xen-4.0.1-testing/xen/include/xen/irq_cpustat.h +#define state_dump_pending(cpu) __IRQ_STAT((cpu), __state_dump_pending) #endif /* __irq_cpustat_h */ -Index: xen-4.0.1-testing/xen/include/xen/lib.h +Index: xen-4.0.2-testing/xen/include/xen/lib.h =================================================================== ---- xen-4.0.1-testing.orig/xen/include/xen/lib.h -+++ xen-4.0.1-testing/xen/include/xen/lib.h +--- xen-4.0.2-testing.orig/xen/include/xen/lib.h ++++ xen-4.0.2-testing/xen/include/xen/lib.h @@ -116,4 +116,7 @@ extern int tainted; extern char *print_tainted(char *str); extern void add_taint(unsigned); @@ -205,10 +205,10 @@ Index: xen-4.0.1-testing/xen/include/xen/lib.h +void dump_execstate(struct cpu_user_regs *); + #endif /* __LIB_H__ */ -Index: xen-4.0.1-testing/xen/include/xen/smp.h +Index: xen-4.0.2-testing/xen/include/xen/smp.h =================================================================== ---- xen-4.0.1-testing.orig/xen/include/xen/smp.h -+++ xen-4.0.1-testing/xen/include/xen/smp.h +--- xen-4.0.2-testing.orig/xen/include/xen/smp.h ++++ xen-4.0.2-testing/xen/include/xen/smp.h @@ -13,6 +13,8 @@ extern void smp_send_event_check_mask(co #define smp_send_event_check_cpu(cpu) \ smp_send_event_check_mask(cpumask_of(cpu)) diff --git a/enable_more_nic_pxe.patch b/enable_more_nic_pxe.patch index b62bc81..caf33d8 100644 --- a/enable_more_nic_pxe.patch +++ b/enable_more_nic_pxe.patch @@ -1,7 +1,7 @@ -Index: xen-4.0.1-testing/tools/firmware/etherboot/Config +Index: xen-4.0.2-testing/tools/firmware/etherboot/Config =================================================================== ---- xen-4.0.1-testing.orig/tools/firmware/etherboot/Config -+++ xen-4.0.1-testing/tools/firmware/etherboot/Config +--- xen-4.0.2-testing.orig/tools/firmware/etherboot/Config ++++ xen-4.0.2-testing/tools/firmware/etherboot/Config @@ -1,5 +1,5 @@ -NICS = rtl8139 eepro100 @@ -9,10 +9,10 @@ Index: xen-4.0.1-testing/tools/firmware/etherboot/Config CFLAGS += -UPXE_DHCP_STRICT CFLAGS += -DPXE_DHCP_STRICT -Index: xen-4.0.1-testing/tools/firmware/etherboot/eb-roms.h +Index: xen-4.0.2-testing/tools/firmware/etherboot/eb-roms.h =================================================================== ---- xen-4.0.1-testing.orig/tools/firmware/etherboot/eb-roms.h -+++ xen-4.0.1-testing/tools/firmware/etherboot/eb-roms.h +--- xen-4.0.2-testing.orig/tools/firmware/etherboot/eb-roms.h ++++ xen-4.0.2-testing/tools/firmware/etherboot/eb-roms.h @@ -6367,5 +6367,6149 @@ unsigned etherboot[] = { 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, diff --git a/hibernate.patch b/hibernate.patch index 7b647e6..deb837b 100644 --- a/hibernate.patch +++ b/hibernate.patch @@ -1,7 +1,7 @@ -Index: xen-4.0.1-testing/tools/firmware/hvmloader/acpi/dsdt.asl +Index: xen-4.0.2-testing/tools/firmware/hvmloader/acpi/dsdt.asl =================================================================== ---- xen-4.0.1-testing.orig/tools/firmware/hvmloader/acpi/dsdt.asl -+++ xen-4.0.1-testing/tools/firmware/hvmloader/acpi/dsdt.asl +--- xen-4.0.2-testing.orig/tools/firmware/hvmloader/acpi/dsdt.asl ++++ xen-4.0.2-testing/tools/firmware/hvmloader/acpi/dsdt.asl @@ -30,21 +30,9 @@ DefinitionBlock ("DSDT.aml", "DSDT", 2, /* * S3 (suspend-to-ram), S4 (suspend-to-disc) and S5 (power-off) type codes: diff --git a/hotplug-block-losetup-a.patch b/hotplug-block-losetup-a.patch index 12da443..467d8ef 100644 --- a/hotplug-block-losetup-a.patch +++ b/hotplug-block-losetup-a.patch @@ -17,8 +17,10 @@ Signed-off-by: Olaf Hering tools/hotplug/Linux/block | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) ---- xen-4.0.1-testing.orig/tools/hotplug/Linux/block -+++ xen-4.0.1-testing/tools/hotplug/Linux/block +Index: xen-4.0.2-testing/tools/hotplug/Linux/block +=================================================================== +--- xen-4.0.2-testing.orig/tools/hotplug/Linux/block ++++ xen-4.0.2-testing/tools/hotplug/Linux/block @@ -279,8 +279,8 @@ mount it read-write in a guest domain." fatal "Unable to lookup $file: dev: $dev inode: $inode" fi diff --git a/hv_extid_compatibility.patch b/hv_extid_compatibility.patch index a555d04..6db11ea 100644 --- a/hv_extid_compatibility.patch +++ b/hv_extid_compatibility.patch @@ -1,7 +1,7 @@ -Index: xen-4.0.1-testing/tools/python/xen/xend/XendConfig.py +Index: xen-4.0.2-testing/tools/python/xen/xend/XendConfig.py =================================================================== ---- xen-4.0.1-testing.orig/tools/python/xen/xend/XendConfig.py -+++ xen-4.0.1-testing/tools/python/xen/xend/XendConfig.py +--- xen-4.0.2-testing.orig/tools/python/xen/xend/XendConfig.py ++++ xen-4.0.2-testing/tools/python/xen/xend/XendConfig.py @@ -157,6 +157,7 @@ XENAPI_PLATFORM_CFG_TYPES = { 'nographic': int, 'nomigrate': int, @@ -19,10 +19,10 @@ Index: xen-4.0.1-testing/tools/python/xen/xend/XendConfig.py if 'viridian' not in self['platform']: self['platform']['viridian'] = 0 if 'rtc_timeoffset' not in self['platform']: -Index: xen-4.0.1-testing/tools/python/xen/xend/image.py +Index: xen-4.0.2-testing/tools/python/xen/xend/image.py =================================================================== ---- xen-4.0.1-testing.orig/tools/python/xen/xend/image.py -+++ xen-4.0.1-testing/tools/python/xen/xend/image.py +--- xen-4.0.2-testing.orig/tools/python/xen/xend/image.py ++++ xen-4.0.2-testing/tools/python/xen/xend/image.py @@ -839,6 +839,7 @@ class HVMImageHandler(ImageHandler): self.apic = int(vmConfig['platform'].get('apic', 0)) @@ -31,10 +31,10 @@ Index: xen-4.0.1-testing/tools/python/xen/xend/image.py self.guest_os_type = vmConfig['platform'].get('guest_os_type') self.memory_sharing = int(vmConfig['memory_sharing']) try: -Index: xen-4.0.1-testing/tools/python/xen/xm/create.py +Index: xen-4.0.2-testing/tools/python/xen/xm/create.py =================================================================== ---- xen-4.0.1-testing.orig/tools/python/xen/xm/create.py -+++ xen-4.0.1-testing/tools/python/xen/xm/create.py +--- xen-4.0.2-testing.orig/tools/python/xen/xm/create.py ++++ xen-4.0.2-testing/tools/python/xen/xm/create.py @@ -242,6 +242,10 @@ gopts.var('viridian', val='VIRIDIAN', use="""Expose Viridian interface to x86 HVM guest? (Default is 0).""") diff --git a/ioemu-7615-qcow2-fix-alloc_cluster_link_l2.patch b/ioemu-7615-qcow2-fix-alloc_cluster_link_l2.patch index 15c5549..6f684a4 100644 --- a/ioemu-7615-qcow2-fix-alloc_cluster_link_l2.patch +++ b/ioemu-7615-qcow2-fix-alloc_cluster_link_l2.patch @@ -17,10 +17,10 @@ qcow2 image (the header is gone after three loop iterations): Signed-off-by: Kevin Wolf -Index: xen-4.0.1-testing/tools/ioemu-qemu-xen/block-qcow2.c +Index: xen-4.0.2-testing/tools/ioemu-qemu-xen/block-qcow2.c =================================================================== ---- xen-4.0.1-testing.orig/tools/ioemu-qemu-xen/block-qcow2.c -+++ xen-4.0.1-testing/tools/ioemu-qemu-xen/block-qcow2.c +--- xen-4.0.2-testing.orig/tools/ioemu-qemu-xen/block-qcow2.c ++++ xen-4.0.2-testing/tools/ioemu-qemu-xen/block-qcow2.c @@ -916,7 +916,7 @@ static int alloc_cluster_link_l2(BlockDr goto err; diff --git a/ioemu-bdrv-open-CACHE_WB.patch b/ioemu-bdrv-open-CACHE_WB.patch index eb48cff..8eda9a6 100644 --- a/ioemu-bdrv-open-CACHE_WB.patch +++ b/ioemu-bdrv-open-CACHE_WB.patch @@ -1,7 +1,7 @@ -Index: xen-4.0.1-testing/tools/ioemu-qemu-xen/hw/xen_blktap.c +Index: xen-4.0.2-testing/tools/ioemu-qemu-xen/hw/xen_blktap.c =================================================================== ---- xen-4.0.1-testing.orig/tools/ioemu-qemu-xen/hw/xen_blktap.c -+++ xen-4.0.1-testing/tools/ioemu-qemu-xen/hw/xen_blktap.c +--- xen-4.0.2-testing.orig/tools/ioemu-qemu-xen/hw/xen_blktap.c ++++ xen-4.0.2-testing/tools/ioemu-qemu-xen/hw/xen_blktap.c @@ -259,8 +259,11 @@ static int open_disk(struct td_state *s, drv = blktap_drivers[i].drv; DPRINTF("%s driver specified\n", drv ? drv->format_name : "No"); diff --git a/ioemu-blktap-barriers.patch b/ioemu-blktap-barriers.patch index 43d7dc5..9f19e65 100644 --- a/ioemu-blktap-barriers.patch +++ b/ioemu-blktap-barriers.patch @@ -1,7 +1,7 @@ -Index: xen-4.0.1-testing/tools/ioemu-qemu-xen/hw/xen_blktap.c +Index: xen-4.0.2-testing/tools/ioemu-qemu-xen/hw/xen_blktap.c =================================================================== ---- xen-4.0.1-testing.orig/tools/ioemu-qemu-xen/hw/xen_blktap.c -+++ xen-4.0.1-testing/tools/ioemu-qemu-xen/hw/xen_blktap.c +--- xen-4.0.2-testing.orig/tools/ioemu-qemu-xen/hw/xen_blktap.c ++++ xen-4.0.2-testing/tools/ioemu-qemu-xen/hw/xen_blktap.c @@ -360,6 +360,15 @@ static void qemu_send_responses(void* op } diff --git a/ioemu-blktap-fv-init.patch b/ioemu-blktap-fv-init.patch index df5fd5b..98e2e94 100644 --- a/ioemu-blktap-fv-init.patch +++ b/ioemu-blktap-fv-init.patch @@ -1,7 +1,7 @@ -Index: xen-4.0.1-testing/tools/ioemu-qemu-xen/hw/xen_machine_fv.c +Index: xen-4.0.2-testing/tools/ioemu-qemu-xen/hw/xen_machine_fv.c =================================================================== ---- xen-4.0.1-testing.orig/tools/ioemu-qemu-xen/hw/xen_machine_fv.c -+++ xen-4.0.1-testing/tools/ioemu-qemu-xen/hw/xen_machine_fv.c +--- xen-4.0.2-testing.orig/tools/ioemu-qemu-xen/hw/xen_machine_fv.c ++++ xen-4.0.2-testing/tools/ioemu-qemu-xen/hw/xen_machine_fv.c @@ -268,6 +268,7 @@ void qemu_invalidate_entry(uint8_t *buff #endif /* defined(MAPCACHE) */ diff --git a/ioemu-blktap-image-format.patch b/ioemu-blktap-image-format.patch index 275a00f..67e9cf8 100644 --- a/ioemu-blktap-image-format.patch +++ b/ioemu-blktap-image-format.patch @@ -15,10 +15,10 @@ Signed-off-by: Kevin Wolf hw/xen_blktap.h | 14 ++++++++++++++ 2 files changed, 33 insertions(+), 3 deletions(-) -Index: xen-4.0.1-testing/tools/ioemu-qemu-xen/hw/xen_blktap.c +Index: xen-4.0.2-testing/tools/ioemu-qemu-xen/hw/xen_blktap.c =================================================================== ---- xen-4.0.1-testing.orig/tools/ioemu-qemu-xen/hw/xen_blktap.c -+++ xen-4.0.1-testing/tools/ioemu-qemu-xen/hw/xen_blktap.c +--- xen-4.0.2-testing.orig/tools/ioemu-qemu-xen/hw/xen_blktap.c ++++ xen-4.0.2-testing/tools/ioemu-qemu-xen/hw/xen_blktap.c @@ -230,9 +230,10 @@ static int map_new_dev(struct td_state * return -1; } @@ -64,10 +64,10 @@ Index: xen-4.0.1-testing/tools/ioemu-qemu-xen/hw/xen_blktap.c msglen = sizeof(msg_hdr_t); msg->type = CTLMSG_IMG_FAIL; msg->len = msglen; -Index: xen-4.0.1-testing/tools/ioemu-qemu-xen/hw/xen_blktap.h +Index: xen-4.0.2-testing/tools/ioemu-qemu-xen/hw/xen_blktap.h =================================================================== ---- xen-4.0.1-testing.orig/tools/ioemu-qemu-xen/hw/xen_blktap.h -+++ xen-4.0.1-testing/tools/ioemu-qemu-xen/hw/xen_blktap.h +--- xen-4.0.2-testing.orig/tools/ioemu-qemu-xen/hw/xen_blktap.h ++++ xen-4.0.2-testing/tools/ioemu-qemu-xen/hw/xen_blktap.h @@ -53,4 +53,18 @@ typedef struct fd_list_entry { int init_blktap(void); diff --git a/ioemu-blktap-zero-size.patch b/ioemu-blktap-zero-size.patch index 2ec271e..c89f26e 100644 --- a/ioemu-blktap-zero-size.patch +++ b/ioemu-blktap-zero-size.patch @@ -12,10 +12,10 @@ Signed-off-by: Kevin Wolf hw/xen_blktap.c | 6 ++++++ 1 files changed, 6 insertions(+), 0 deletions(-) -Index: xen-4.0.1-testing/tools/ioemu-qemu-xen/hw/xen_blktap.c +Index: xen-4.0.2-testing/tools/ioemu-qemu-xen/hw/xen_blktap.c =================================================================== ---- xen-4.0.1-testing.orig/tools/ioemu-qemu-xen/hw/xen_blktap.c -+++ xen-4.0.1-testing/tools/ioemu-qemu-xen/hw/xen_blktap.c +--- xen-4.0.2-testing.orig/tools/ioemu-qemu-xen/hw/xen_blktap.c ++++ xen-4.0.2-testing/tools/ioemu-qemu-xen/hw/xen_blktap.c @@ -268,6 +268,12 @@ static int open_disk(struct td_state *s, s->size = bs->total_sectors; s->sector_size = 512; @@ -29,10 +29,10 @@ Index: xen-4.0.1-testing/tools/ioemu-qemu-xen/hw/xen_blktap.c s->info = ((s->flags & TD_RDONLY) ? VDISK_READONLY : 0); return 0; -Index: xen-4.0.1-testing/tools/python/xen/xend/server/DevController.py +Index: xen-4.0.2-testing/tools/python/xen/xend/server/DevController.py =================================================================== ---- xen-4.0.1-testing.orig/tools/python/xen/xend/server/DevController.py -+++ xen-4.0.1-testing/tools/python/xen/xend/server/DevController.py +--- xen-4.0.2-testing.orig/tools/python/xen/xend/server/DevController.py ++++ xen-4.0.2-testing/tools/python/xen/xend/server/DevController.py @@ -155,7 +155,7 @@ class DevController: (devid, self.deviceClass)) diff --git a/ioemu-debuginfo.patch b/ioemu-debuginfo.patch index c0261e6..bee7290 100644 --- a/ioemu-debuginfo.patch +++ b/ioemu-debuginfo.patch @@ -1,7 +1,7 @@ -Index: xen-4.0.1-testing/tools/ioemu-qemu-xen/Makefile +Index: xen-4.0.2-testing/tools/ioemu-qemu-xen/Makefile =================================================================== ---- xen-4.0.1-testing.orig/tools/ioemu-qemu-xen/Makefile -+++ xen-4.0.1-testing/tools/ioemu-qemu-xen/Makefile +--- xen-4.0.2-testing.orig/tools/ioemu-qemu-xen/Makefile ++++ xen-4.0.2-testing/tools/ioemu-qemu-xen/Makefile @@ -243,7 +243,7 @@ endif install: all $(if $(BUILD_DOCS),install-doc) mkdir -p "$(DESTDIR)$(bindir)" @@ -11,10 +11,10 @@ Index: xen-4.0.1-testing/tools/ioemu-qemu-xen/Makefile endif ifneq ($(BLOBS),) mkdir -p "$(DESTDIR)$(datadir)" -Index: xen-4.0.1-testing/tools/ioemu-qemu-xen/Makefile.target +Index: xen-4.0.2-testing/tools/ioemu-qemu-xen/Makefile.target =================================================================== ---- xen-4.0.1-testing.orig/tools/ioemu-qemu-xen/Makefile.target -+++ xen-4.0.1-testing/tools/ioemu-qemu-xen/Makefile.target +--- xen-4.0.2-testing.orig/tools/ioemu-qemu-xen/Makefile.target ++++ xen-4.0.2-testing/tools/ioemu-qemu-xen/Makefile.target @@ -754,7 +754,7 @@ clean: install: all install-hook diff --git a/ioemu-disable-emulated-ide-if-pv.patch b/ioemu-disable-emulated-ide-if-pv.patch index 323e38c..8ad21cd 100644 --- a/ioemu-disable-emulated-ide-if-pv.patch +++ b/ioemu-disable-emulated-ide-if-pv.patch @@ -1,7 +1,7 @@ -Index: xen-4.0.1-testing/tools/ioemu-qemu-xen/qemu-xen.h +Index: xen-4.0.2-testing/tools/ioemu-qemu-xen/qemu-xen.h =================================================================== ---- xen-4.0.1-testing.orig/tools/ioemu-qemu-xen/qemu-xen.h -+++ xen-4.0.1-testing/tools/ioemu-qemu-xen/qemu-xen.h +--- xen-4.0.2-testing.orig/tools/ioemu-qemu-xen/qemu-xen.h ++++ xen-4.0.2-testing/tools/ioemu-qemu-xen/qemu-xen.h @@ -1,6 +1,8 @@ #ifndef QEMU_XEN_H #define QEMU_XEN_H @@ -20,10 +20,10 @@ Index: xen-4.0.1-testing/tools/ioemu-qemu-xen/qemu-xen.h int xenstore_parse_disable_pf_config(void); int xenstore_fd(void); void xenstore_process_event(void *opaque); -Index: xen-4.0.1-testing/tools/ioemu-qemu-xen/vl.c +Index: xen-4.0.2-testing/tools/ioemu-qemu-xen/vl.c =================================================================== ---- xen-4.0.1-testing.orig/tools/ioemu-qemu-xen/vl.c -+++ xen-4.0.1-testing/tools/ioemu-qemu-xen/vl.c +--- xen-4.0.2-testing.orig/tools/ioemu-qemu-xen/vl.c ++++ xen-4.0.2-testing/tools/ioemu-qemu-xen/vl.c @@ -5827,10 +5827,10 @@ int main(int argc, char **argv, char **e if ((msg = xenbus_read(XBT_NIL, "domid", &domid_s))) fprintf(stderr,"Can not read our own domid: %s\n", msg); @@ -37,10 +37,10 @@ Index: xen-4.0.1-testing/tools/ioemu-qemu-xen/vl.c #endif /* CONFIG_STUBDOM */ /* we always create the cdrom drive, even if no disk is there */ -Index: xen-4.0.1-testing/tools/ioemu-qemu-xen/xenstore.c +Index: xen-4.0.2-testing/tools/ioemu-qemu-xen/xenstore.c =================================================================== ---- xen-4.0.1-testing.orig/tools/ioemu-qemu-xen/xenstore.c -+++ xen-4.0.1-testing/tools/ioemu-qemu-xen/xenstore.c +--- xen-4.0.2-testing.orig/tools/ioemu-qemu-xen/xenstore.c ++++ xen-4.0.2-testing/tools/ioemu-qemu-xen/xenstore.c @@ -397,7 +397,7 @@ static const char *xenstore_get_guest_uu #define PT_PCI_POWER_MANAGEMENT_DEFAULT 0 int direct_pci_msitranslate; diff --git a/ioemu-disable-scsi.patch b/ioemu-disable-scsi.patch index efba103..eef2fcc 100644 --- a/ioemu-disable-scsi.patch +++ b/ioemu-disable-scsi.patch @@ -1,7 +1,7 @@ -Index: xen-4.0.1-testing/tools/ioemu-qemu-xen/hw/xen_platform.c +Index: xen-4.0.2-testing/tools/ioemu-qemu-xen/hw/xen_platform.c =================================================================== ---- xen-4.0.1-testing.orig/tools/ioemu-qemu-xen/hw/xen_platform.c -+++ xen-4.0.1-testing/tools/ioemu-qemu-xen/hw/xen_platform.c +--- xen-4.0.2-testing.orig/tools/ioemu-qemu-xen/hw/xen_platform.c ++++ xen-4.0.2-testing/tools/ioemu-qemu-xen/hw/xen_platform.c @@ -359,6 +359,8 @@ static void platform_ioport_write(void * case 4: fprintf(logfile, "Disconnect IDE hard disk...\n"); @@ -11,10 +11,10 @@ Index: xen-4.0.1-testing/tools/ioemu-qemu-xen/hw/xen_platform.c fprintf(logfile, "Disconnect netifs...\n"); pci_unplug_netifs(); fprintf(logfile, "Shutdown taps...\n"); -Index: xen-4.0.1-testing/tools/ioemu-qemu-xen/qemu-xen.h +Index: xen-4.0.2-testing/tools/ioemu-qemu-xen/qemu-xen.h =================================================================== ---- xen-4.0.1-testing.orig/tools/ioemu-qemu-xen/qemu-xen.h -+++ xen-4.0.1-testing/tools/ioemu-qemu-xen/qemu-xen.h +--- xen-4.0.2-testing.orig/tools/ioemu-qemu-xen/qemu-xen.h ++++ xen-4.0.2-testing/tools/ioemu-qemu-xen/qemu-xen.h @@ -57,6 +57,7 @@ void unset_vram_mapping(void *opaque); #endif @@ -23,10 +23,10 @@ Index: xen-4.0.1-testing/tools/ioemu-qemu-xen/qemu-xen.h void destroy_hvm_domain(void); void unregister_iomem(target_phys_addr_t start); -Index: xen-4.0.1-testing/tools/ioemu-qemu-xen/hw/pci.c +Index: xen-4.0.2-testing/tools/ioemu-qemu-xen/hw/pci.c =================================================================== ---- xen-4.0.1-testing.orig/tools/ioemu-qemu-xen/hw/pci.c -+++ xen-4.0.1-testing/tools/ioemu-qemu-xen/hw/pci.c +--- xen-4.0.2-testing.orig/tools/ioemu-qemu-xen/hw/pci.c ++++ xen-4.0.2-testing/tools/ioemu-qemu-xen/hw/pci.c @@ -892,6 +892,50 @@ void pci_unplug_netifs(void) } } diff --git a/ioemu-vnc-resize.patch b/ioemu-vnc-resize.patch index f6782f5..be614a7 100644 --- a/ioemu-vnc-resize.patch +++ b/ioemu-vnc-resize.patch @@ -1,7 +1,7 @@ -Index: xen-4.0.1-testing/tools/ioemu-qemu-xen/vnc.c +Index: xen-4.0.2-testing/tools/ioemu-qemu-xen/vnc.c =================================================================== ---- xen-4.0.1-testing.orig/tools/ioemu-qemu-xen/vnc.c -+++ xen-4.0.1-testing/tools/ioemu-qemu-xen/vnc.c +--- xen-4.0.2-testing.orig/tools/ioemu-qemu-xen/vnc.c ++++ xen-4.0.2-testing/tools/ioemu-qemu-xen/vnc.c @@ -1734,6 +1734,25 @@ static int protocol_client_msg(VncState } diff --git a/libxen_permissive.patch b/libxen_permissive.patch index 79d6a7b..88afb83 100644 --- a/libxen_permissive.patch +++ b/libxen_permissive.patch @@ -1,7 +1,7 @@ -Index: xen-4.0.1-testing/tools/libxen/src/xen_common.c +Index: xen-4.0.2-testing/tools/libxen/src/xen_common.c =================================================================== ---- xen-4.0.1-testing.orig/tools/libxen/src/xen_common.c -+++ xen-4.0.1-testing/tools/libxen/src/xen_common.c +--- xen-4.0.2-testing.orig/tools/libxen/src/xen_common.c ++++ xen-4.0.2-testing/tools/libxen/src/xen_common.c @@ -904,8 +904,15 @@ static void parse_into(xen_session *s, x 0 != strcmp((char *)value_node->children->name, "struct") || value_node->children->children == NULL) diff --git a/magic_ioport_compat.patch b/magic_ioport_compat.patch index 320fe12..6f77051 100644 --- a/magic_ioport_compat.patch +++ b/magic_ioport_compat.patch @@ -2,10 +2,10 @@ Make our PV drivers work with older hosts that do not recognize the new PV driv Signed-off-by: K. Y. Srinivasan -Index: xen-4.0.1-testing/unmodified_drivers/linux-2.6/platform-pci/platform-pci.c +Index: xen-4.0.2-testing/unmodified_drivers/linux-2.6/platform-pci/platform-pci.c =================================================================== ---- xen-4.0.1-testing.orig/unmodified_drivers/linux-2.6/platform-pci/platform-pci.c -+++ xen-4.0.1-testing/unmodified_drivers/linux-2.6/platform-pci/platform-pci.c +--- xen-4.0.2-testing.orig/unmodified_drivers/linux-2.6/platform-pci/platform-pci.c ++++ xen-4.0.2-testing/unmodified_drivers/linux-2.6/platform-pci/platform-pci.c @@ -320,7 +320,10 @@ static int check_platform_magic(struct d if (magic != XEN_IOPORT_MAGIC_VAL) { diff --git a/minios-fixups.patch b/minios-fixups.patch index 312b770..469961b 100644 --- a/minios-fixups.patch +++ b/minios-fixups.patch @@ -1,7 +1,7 @@ -Index: xen-4.0.1-testing/extras/mini-os/netfront.c +Index: xen-4.0.2-testing/extras/mini-os/netfront.c =================================================================== ---- xen-4.0.1-testing.orig/extras/mini-os/netfront.c -+++ xen-4.0.1-testing/extras/mini-os/netfront.c +--- xen-4.0.2-testing.orig/extras/mini-os/netfront.c ++++ xen-4.0.2-testing/extras/mini-os/netfront.c @@ -25,8 +25,8 @@ DECLARE_WAIT_QUEUE_HEAD(netfront_queue); @@ -13,10 +13,10 @@ Index: xen-4.0.1-testing/extras/mini-os/netfront.c #define GRANT_INVALID_REF 0 -Index: xen-4.0.1-testing/extras/mini-os/lib/math.c +Index: xen-4.0.2-testing/extras/mini-os/lib/math.c =================================================================== ---- xen-4.0.1-testing.orig/extras/mini-os/lib/math.c -+++ xen-4.0.1-testing/extras/mini-os/lib/math.c +--- xen-4.0.2-testing.orig/extras/mini-os/lib/math.c ++++ xen-4.0.2-testing/extras/mini-os/lib/math.c @@ -191,6 +191,7 @@ __qdivrem(uint64_t uq, uint64_t vq, uint * and thus * m = 4 - n <= 2 @@ -25,10 +25,10 @@ Index: xen-4.0.1-testing/extras/mini-os/lib/math.c tmp.uq = uq; u[0] = 0; u[1] = HHALF(tmp.ul[H]); -Index: xen-4.0.1-testing/extras/mini-os/arch/x86/mm.c +Index: xen-4.0.2-testing/extras/mini-os/arch/x86/mm.c =================================================================== ---- xen-4.0.1-testing.orig/extras/mini-os/arch/x86/mm.c -+++ xen-4.0.1-testing/extras/mini-os/arch/x86/mm.c +--- xen-4.0.2-testing.orig/extras/mini-os/arch/x86/mm.c ++++ xen-4.0.2-testing/extras/mini-os/arch/x86/mm.c @@ -281,7 +281,7 @@ static void build_pagetable(unsigned lon /* * Mark portion of the address space read only. diff --git a/multi-xvdp.patch b/multi-xvdp.patch index 1927871..e91af10 100644 --- a/multi-xvdp.patch +++ b/multi-xvdp.patch @@ -5,10 +5,10 @@ bootloader loopback device. This patch creates a list of bootloader loopback devices so more than one instance of bootloader can be run concurrently. -Index: xen-4.0.1-testing/tools/python/xen/util/blkif.py +Index: xen-4.0.2-testing/tools/python/xen/util/blkif.py =================================================================== ---- xen-4.0.1-testing.orig/tools/python/xen/util/blkif.py -+++ xen-4.0.1-testing/tools/python/xen/util/blkif.py +--- xen-4.0.2-testing.orig/tools/python/xen/util/blkif.py ++++ xen-4.0.2-testing/tools/python/xen/util/blkif.py @@ -19,11 +19,6 @@ def blkdev_name_to_number(name): devname = 'virtual-device' devnum = None @@ -21,10 +21,10 @@ Index: xen-4.0.1-testing/tools/python/xen/util/blkif.py scsi_major = [ 8, 65, 66, 67, 68, 69, 70, 71, 128, 129, 130, 131, 132, 133, 134, 135 ] if re.match( '/dev/sd[a-z]([1-9]|1[0-5])?$', n): major = scsi_major[(ord(n[7:8]) - ord('a')) / 16] -Index: xen-4.0.1-testing/tools/python/xen/xend/XendDomainInfo.py +Index: xen-4.0.2-testing/tools/python/xen/xend/XendDomainInfo.py =================================================================== ---- xen-4.0.1-testing.orig/tools/python/xen/xend/XendDomainInfo.py -+++ xen-4.0.1-testing/tools/python/xen/xend/XendDomainInfo.py +--- xen-4.0.2-testing.orig/tools/python/xen/xend/XendDomainInfo.py ++++ xen-4.0.2-testing/tools/python/xen/xend/XendDomainInfo.py @@ -73,7 +73,7 @@ from xen.xend.XendPSCSI import XendPSCSI from xen.xend.XendDSCSI import XendDSCSI, XendDSCSI_HBA @@ -34,7 +34,7 @@ Index: xen-4.0.1-testing/tools/python/xen/xend/XendDomainInfo.py xc = xen.lowlevel.xc.xc() xoptions = XendOptions.instance() -@@ -3304,20 +3304,27 @@ class XendDomainInfo: +@@ -3305,33 +3305,38 @@ class XendDomainInfo: # This is a file, not a device. pygrub can cope with a # file if it's raw, but if it's QCOW or other such formats # used through blktap, then we need to mount it first. @@ -49,9 +49,11 @@ Index: xen-4.0.1-testing/tools/python/xen/xend/XendDomainInfo.py - - from xen.xend import XendDomain - dom0 = XendDomain.instance().privilegedDomain() +- mounted_vbd_uuid = dom0.create_vbd(vbd, disk); - vbd_uuid = dom0.create_vbd(vbd, disk) - dom0._waitForDeviceFrontUUID(vbd_uuid) - fn = BOOTLOADER_LOOPBACK_DEVICE +- + # Try all possible loopback_devices + for loopback_device in BOOTLOADER_LOOPBACK_DEVICES: + log.info("Mounting %s on %s." % (fn, loopback_device)) @@ -73,10 +75,9 @@ Index: xen-4.0.1-testing/tools/python/xen/xend/XendDomainInfo.py + raise + else: + raise - try: blcfg = bootloader(blexec, fn, self, False, -@@ -3325,11 +3332,11 @@ class XendDomainInfo: + bootloader_args, kernel, ramdisk, args) finally: if mounted: log.info("Unmounting %s from %s." % @@ -88,6 +89,6 @@ Index: xen-4.0.1-testing/tools/python/xen/xend/XendDomainInfo.py else: - dom0.destroyDevice('vbd', BOOTLOADER_LOOPBACK_DEVICE, rm_cfg = True) + dom0.destroyDevice('vbd', loopback_device, rm_cfg = True) - if blcfg is None: msg = "Had a bootloader specified, but can't find disk" + log.error(msg) diff --git a/network-nat-open-SuSEfirewall2-FORWARD.patch b/network-nat-open-SuSEfirewall2-FORWARD.patch index b9167de..0db3357 100644 --- a/network-nat-open-SuSEfirewall2-FORWARD.patch +++ b/network-nat-open-SuSEfirewall2-FORWARD.patch @@ -1,9 +1,9 @@ Open SuSEfirewall2 FORWARD rule when use xen nat -Index: xen-4.0.1-testing/tools/hotplug/Linux/network-nat +Index: xen-4.0.2-testing/tools/hotplug/Linux/network-nat =================================================================== ---- xen-4.0.1-testing.orig/tools/hotplug/Linux/network-nat -+++ xen-4.0.1-testing/tools/hotplug/Linux/network-nat +--- xen-4.0.2-testing.orig/tools/hotplug/Linux/network-nat ++++ xen-4.0.2-testing/tools/hotplug/Linux/network-nat @@ -83,6 +83,7 @@ function dhcp_stop() op_start() { echo 1 >/proc/sys/net/ipv4/ip_forward diff --git a/network-nat.patch b/network-nat.patch index 7e613ec..9e203ee 100644 --- a/network-nat.patch +++ b/network-nat.patch @@ -1,7 +1,7 @@ -Index: xen-4.0.1-testing/tools/hotplug/Linux/network-nat +Index: xen-4.0.2-testing/tools/hotplug/Linux/network-nat =================================================================== ---- xen-4.0.1-testing.orig/tools/hotplug/Linux/network-nat -+++ xen-4.0.1-testing/tools/hotplug/Linux/network-nat +--- xen-4.0.2-testing.orig/tools/hotplug/Linux/network-nat ++++ xen-4.0.2-testing/tools/hotplug/Linux/network-nat @@ -1,4 +1,4 @@ -#!/bin/bash -x +#!/bin/bash diff --git a/network-route.patch b/network-route.patch index 4ca15f0..79b08d9 100644 --- a/network-route.patch +++ b/network-route.patch @@ -1,7 +1,7 @@ -Index: xen-4.0.1-testing/tools/hotplug/Linux/network-route +Index: xen-4.0.2-testing/tools/hotplug/Linux/network-route =================================================================== ---- xen-4.0.1-testing.orig/tools/hotplug/Linux/network-route -+++ xen-4.0.1-testing/tools/hotplug/Linux/network-route +--- xen-4.0.2-testing.orig/tools/hotplug/Linux/network-route ++++ xen-4.0.2-testing/tools/hotplug/Linux/network-route @@ -22,7 +22,7 @@ dir=$(dirname "$0") evalVariables "$@" diff --git a/popen2-argument-fix.patch b/popen2-argument-fix.patch index b7cce00..c8dbe24 100644 --- a/popen2-argument-fix.patch +++ b/popen2-argument-fix.patch @@ -1,7 +1,7 @@ -Index: xen-4.0.1-testing/tools/python/xen/util/blkif.py +Index: xen-4.0.2-testing/tools/python/xen/util/blkif.py =================================================================== ---- xen-4.0.1-testing.orig/tools/python/xen/util/blkif.py -+++ xen-4.0.1-testing/tools/python/xen/util/blkif.py +--- xen-4.0.2-testing.orig/tools/python/xen/util/blkif.py ++++ xen-4.0.2-testing/tools/python/xen/util/blkif.py @@ -81,7 +81,7 @@ def parse_uname(uname): if typ == "drbd": diff --git a/pv-driver-build.patch b/pv-driver-build.patch index 599aaac..e2689bb 100644 --- a/pv-driver-build.patch +++ b/pv-driver-build.patch @@ -1,7 +1,7 @@ -Index: xen-4.0.1-testing/unmodified_drivers/linux-2.6/blkfront/Kbuild +Index: xen-4.0.2-testing/unmodified_drivers/linux-2.6/blkfront/Kbuild =================================================================== ---- xen-4.0.1-testing.orig/unmodified_drivers/linux-2.6/blkfront/Kbuild -+++ xen-4.0.1-testing/unmodified_drivers/linux-2.6/blkfront/Kbuild +--- xen-4.0.2-testing.orig/unmodified_drivers/linux-2.6/blkfront/Kbuild ++++ xen-4.0.2-testing/unmodified_drivers/linux-2.6/blkfront/Kbuild @@ -3,3 +3,4 @@ include $(M)/overrides.mk obj-m += xen-vbd.o diff --git a/pvdrv-import-shared-info.patch b/pvdrv-import-shared-info.patch index 56f1716..f277715 100644 --- a/pvdrv-import-shared-info.patch +++ b/pvdrv-import-shared-info.patch @@ -1,7 +1,7 @@ -Index: xen-4.0.1-testing/unmodified_drivers/linux-2.6/platform-pci/evtchn.c +Index: xen-4.0.2-testing/unmodified_drivers/linux-2.6/platform-pci/evtchn.c =================================================================== ---- xen-4.0.1-testing.orig/unmodified_drivers/linux-2.6/platform-pci/evtchn.c -+++ xen-4.0.1-testing/unmodified_drivers/linux-2.6/platform-pci/evtchn.c +--- xen-4.0.2-testing.orig/unmodified_drivers/linux-2.6/platform-pci/evtchn.c ++++ xen-4.0.2-testing/unmodified_drivers/linux-2.6/platform-pci/evtchn.c @@ -40,7 +40,9 @@ #include #endif @@ -12,10 +12,10 @@ Index: xen-4.0.1-testing/unmodified_drivers/linux-2.6/platform-pci/evtchn.c #define is_valid_evtchn(x) ((x) != 0) #define evtchn_from_irq(x) (irq_evtchn[irq].evtchn) -Index: xen-4.0.1-testing/unmodified_drivers/linux-2.6/platform-pci/platform-pci.c +Index: xen-4.0.2-testing/unmodified_drivers/linux-2.6/platform-pci/platform-pci.c =================================================================== ---- xen-4.0.1-testing.orig/unmodified_drivers/linux-2.6/platform-pci/platform-pci.c -+++ xen-4.0.1-testing/unmodified_drivers/linux-2.6/platform-pci/platform-pci.c +--- xen-4.0.2-testing.orig/unmodified_drivers/linux-2.6/platform-pci/platform-pci.c ++++ xen-4.0.2-testing/unmodified_drivers/linux-2.6/platform-pci/platform-pci.c @@ -77,7 +77,6 @@ static uint64_t callback_via; static int __devinit init_xen_info(void) { @@ -44,10 +44,10 @@ Index: xen-4.0.1-testing/unmodified_drivers/linux-2.6/platform-pci/platform-pci. return 0; } -Index: xen-4.0.1-testing/unmodified_drivers/linux-2.6/platform-pci/platform-pci.h +Index: xen-4.0.2-testing/unmodified_drivers/linux-2.6/platform-pci/platform-pci.h =================================================================== ---- xen-4.0.1-testing.orig/unmodified_drivers/linux-2.6/platform-pci/platform-pci.h -+++ xen-4.0.1-testing/unmodified_drivers/linux-2.6/platform-pci/platform-pci.h +--- xen-4.0.2-testing.orig/unmodified_drivers/linux-2.6/platform-pci/platform-pci.h ++++ xen-4.0.2-testing/unmodified_drivers/linux-2.6/platform-pci/platform-pci.h @@ -27,6 +27,11 @@ unsigned long alloc_xen_mmio(unsigned long len); void platform_pci_resume(void); diff --git a/pvdrv_emulation_control.patch b/pvdrv_emulation_control.patch index 576f4fb..358dfb7 100644 --- a/pvdrv_emulation_control.patch +++ b/pvdrv_emulation_control.patch @@ -1,7 +1,7 @@ -Index: xen-4.0.1-testing/tools/ioemu-qemu-xen/hw/xen_platform.c +Index: xen-4.0.2-testing/tools/ioemu-qemu-xen/hw/xen_platform.c =================================================================== ---- xen-4.0.1-testing.orig/tools/ioemu-qemu-xen/hw/xen_platform.c -+++ xen-4.0.1-testing/tools/ioemu-qemu-xen/hw/xen_platform.c +--- xen-4.0.2-testing.orig/tools/ioemu-qemu-xen/hw/xen_platform.c ++++ xen-4.0.2-testing/tools/ioemu-qemu-xen/hw/xen_platform.c @@ -365,6 +365,19 @@ static void platform_ioport_write(void * net_tap_shutdown_all(); fprintf(logfile, "Done.\n"); diff --git a/qemu-dm-segfault.patch b/qemu-dm-segfault.patch index 8c54410..7494627 100644 --- a/qemu-dm-segfault.patch +++ b/qemu-dm-segfault.patch @@ -1,7 +1,7 @@ -Index: xen-4.0.1-testing/tools/ioemu-qemu-xen/hw/ide.c +Index: xen-4.0.2-testing/tools/ioemu-qemu-xen/hw/ide.c =================================================================== ---- xen-4.0.1-testing.orig/tools/ioemu-qemu-xen/hw/ide.c -+++ xen-4.0.1-testing/tools/ioemu-qemu-xen/hw/ide.c +--- xen-4.0.2-testing.orig/tools/ioemu-qemu-xen/hw/ide.c ++++ xen-4.0.2-testing/tools/ioemu-qemu-xen/hw/ide.c @@ -935,8 +935,9 @@ static inline void ide_dma_submit_check( static inline void ide_set_irq(IDEState *s) diff --git a/qemu-fix-7433.patch b/qemu-fix-7433.patch deleted file mode 100644 index 321ba1a..0000000 --- a/qemu-fix-7433.patch +++ /dev/null @@ -1,22 +0,0 @@ ---- a/tools/ioemu-qemu-xen/keymaps.c -+++ b/tools/ioemu-qemu-xen/keymaps.c -@@ -56,15 +56,12 @@ typedef struct { - - static void del_key_range(struct key_range **krp, int code) { - struct key_range *kr; -- struct key_range *kr_pr; -- for (kr = *krp; kr; kr_pr = kr, kr = kr->next) { -+ while ((kr = *krp) != NULL) { - if (code >= kr->start && code <= kr->end) { -- if (kr == *krp) -- *krp = kr->next; -- else -- kr_pr->next = kr->next; -+ *krp = kr->next; - qemu_free(kr); -- } -+ } else -+ krp = &kr->next; - } - } - diff --git a/qemu-security-etch1.diff b/qemu-security-etch1.diff index e9e704f..2c68f3a 100644 --- a/qemu-security-etch1.diff +++ b/qemu-security-etch1.diff @@ -1,7 +1,7 @@ -Index: xen-4.0.1-testing/tools/ioemu-qemu-xen/hw/ne2000.c +Index: xen-4.0.2-testing/tools/ioemu-qemu-xen/hw/ne2000.c =================================================================== ---- xen-4.0.1-testing.orig/tools/ioemu-qemu-xen/hw/ne2000.c -+++ xen-4.0.1-testing/tools/ioemu-qemu-xen/hw/ne2000.c +--- xen-4.0.2-testing.orig/tools/ioemu-qemu-xen/hw/ne2000.c ++++ xen-4.0.2-testing/tools/ioemu-qemu-xen/hw/ne2000.c @@ -218,7 +218,7 @@ static int ne2000_can_receive(void *opaq NE2000State *s = opaque; @@ -11,10 +11,10 @@ Index: xen-4.0.1-testing/tools/ioemu-qemu-xen/hw/ne2000.c return !ne2000_buffer_full(s); } -Index: xen-4.0.1-testing/tools/ioemu-qemu-xen/hw/pc.c +Index: xen-4.0.2-testing/tools/ioemu-qemu-xen/hw/pc.c =================================================================== ---- xen-4.0.1-testing.orig/tools/ioemu-qemu-xen/hw/pc.c -+++ xen-4.0.1-testing/tools/ioemu-qemu-xen/hw/pc.c +--- xen-4.0.2-testing.orig/tools/ioemu-qemu-xen/hw/pc.c ++++ xen-4.0.2-testing/tools/ioemu-qemu-xen/hw/pc.c @@ -409,7 +409,8 @@ static void bochs_bios_write(void *opaqu case 0x400: case 0x401: diff --git a/serial-split.patch b/serial-split.patch index 5d4c6cc..b223699 100644 --- a/serial-split.patch +++ b/serial-split.patch @@ -1,7 +1,7 @@ -Index: xen-4.0.1-testing/tools/misc/serial-split/Makefile +Index: xen-4.0.2-testing/tools/misc/serial-split/Makefile =================================================================== --- /dev/null -+++ xen-4.0.1-testing/tools/misc/serial-split/Makefile ++++ xen-4.0.2-testing/tools/misc/serial-split/Makefile @@ -0,0 +1,20 @@ +CC ?= gcc +CFLAGS ?= -Wall -Os @@ -23,10 +23,10 @@ Index: xen-4.0.1-testing/tools/misc/serial-split/Makefile + +%.o: %.c Makefile + $(CC) $(CFLAGS) -c -o $@ $< -Index: xen-4.0.1-testing/tools/misc/serial-split/serial-split.c +Index: xen-4.0.2-testing/tools/misc/serial-split/serial-split.c =================================================================== --- /dev/null -+++ xen-4.0.1-testing/tools/misc/serial-split/serial-split.c ++++ xen-4.0.2-testing/tools/misc/serial-split/serial-split.c @@ -0,0 +1,422 @@ +/* + * serial-split.c diff --git a/snapshot-ioemu-delete.patch b/snapshot-ioemu-delete.patch index aefc7d8..74b0608 100644 --- a/snapshot-ioemu-delete.patch +++ b/snapshot-ioemu-delete.patch @@ -1,7 +1,7 @@ -Index: xen-4.0.1-testing/tools/ioemu-qemu-xen/xenstore.c +Index: xen-4.0.2-testing/tools/ioemu-qemu-xen/xenstore.c =================================================================== ---- xen-4.0.1-testing.orig/tools/ioemu-qemu-xen/xenstore.c -+++ xen-4.0.1-testing/tools/ioemu-qemu-xen/xenstore.c +--- xen-4.0.2-testing.orig/tools/ioemu-qemu-xen/xenstore.c ++++ xen-4.0.2-testing/tools/ioemu-qemu-xen/xenstore.c @@ -935,6 +935,18 @@ static void xenstore_process_dm_command_ } @@ -21,10 +21,10 @@ Index: xen-4.0.1-testing/tools/ioemu-qemu-xen/xenstore.c } else if (!strncmp(command, "continue", len)) { fprintf(logfile, "dm-command: continue after state save\n"); xen_pause_requested = 0; -Index: xen-4.0.1-testing/tools/ioemu-qemu-xen/savevm.c +Index: xen-4.0.2-testing/tools/ioemu-qemu-xen/savevm.c =================================================================== ---- xen-4.0.1-testing.orig/tools/ioemu-qemu-xen/savevm.c -+++ xen-4.0.1-testing/tools/ioemu-qemu-xen/savevm.c +--- xen-4.0.2-testing.orig/tools/ioemu-qemu-xen/savevm.c ++++ xen-4.0.2-testing/tools/ioemu-qemu-xen/savevm.c @@ -1096,6 +1096,35 @@ the_end: return ret; } @@ -61,10 +61,10 @@ Index: xen-4.0.1-testing/tools/ioemu-qemu-xen/savevm.c #ifndef CONFIG_DM void do_savevm(const char *name) -Index: xen-4.0.1-testing/tools/ioemu-qemu-xen/qemu-xen.h +Index: xen-4.0.2-testing/tools/ioemu-qemu-xen/qemu-xen.h =================================================================== ---- xen-4.0.1-testing.orig/tools/ioemu-qemu-xen/qemu-xen.h -+++ xen-4.0.1-testing/tools/ioemu-qemu-xen/qemu-xen.h +--- xen-4.0.2-testing.orig/tools/ioemu-qemu-xen/qemu-xen.h ++++ xen-4.0.2-testing/tools/ioemu-qemu-xen/qemu-xen.h @@ -42,6 +42,7 @@ enum { /* xen-vl-extra.c */ diff --git a/snapshot-ioemu-restore.patch b/snapshot-ioemu-restore.patch index 489a9ed..3078dff 100644 --- a/snapshot-ioemu-restore.patch +++ b/snapshot-ioemu-restore.patch @@ -1,7 +1,7 @@ -Index: xen-4.0.1-testing/tools/ioemu-qemu-xen/xenstore.c +Index: xen-4.0.2-testing/tools/ioemu-qemu-xen/xenstore.c =================================================================== ---- xen-4.0.1-testing.orig/tools/ioemu-qemu-xen/xenstore.c -+++ xen-4.0.1-testing/tools/ioemu-qemu-xen/xenstore.c +--- xen-4.0.2-testing.orig/tools/ioemu-qemu-xen/xenstore.c ++++ xen-4.0.2-testing/tools/ioemu-qemu-xen/xenstore.c @@ -103,6 +103,8 @@ int xenstore_watch_new_callback(const ch } diff --git a/snapshot-ioemu-save.patch b/snapshot-ioemu-save.patch index ac7f094..2558f2f 100644 --- a/snapshot-ioemu-save.patch +++ b/snapshot-ioemu-save.patch @@ -1,7 +1,7 @@ -Index: xen-4.0.1-testing/tools/ioemu-qemu-xen/savevm.c +Index: xen-4.0.2-testing/tools/ioemu-qemu-xen/savevm.c =================================================================== ---- xen-4.0.1-testing.orig/tools/ioemu-qemu-xen/savevm.c -+++ xen-4.0.1-testing/tools/ioemu-qemu-xen/savevm.c +--- xen-4.0.2-testing.orig/tools/ioemu-qemu-xen/savevm.c ++++ xen-4.0.2-testing/tools/ioemu-qemu-xen/savevm.c @@ -28,6 +28,7 @@ #include "sysemu.h" #include "qemu-timer.h" @@ -97,10 +97,10 @@ Index: xen-4.0.1-testing/tools/ioemu-qemu-xen/savevm.c #ifndef CONFIG_DM void do_savevm(const char *name) -Index: xen-4.0.1-testing/tools/ioemu-qemu-xen/i386-dm/helper2.c +Index: xen-4.0.2-testing/tools/ioemu-qemu-xen/i386-dm/helper2.c =================================================================== ---- xen-4.0.1-testing.orig/tools/ioemu-qemu-xen/i386-dm/helper2.c -+++ xen-4.0.1-testing/tools/ioemu-qemu-xen/i386-dm/helper2.c +--- xen-4.0.2-testing.orig/tools/ioemu-qemu-xen/i386-dm/helper2.c ++++ xen-4.0.2-testing/tools/ioemu-qemu-xen/i386-dm/helper2.c @@ -112,6 +112,9 @@ int send_vcpu = 0; //the evtchn port for polling the notification, evtchn_port_t *ioreq_local_port; @@ -167,10 +167,10 @@ Index: xen-4.0.1-testing/tools/ioemu-qemu-xen/i386-dm/helper2.c /* Wait to be allowed to continue */ while (xen_pause_requested) { -Index: xen-4.0.1-testing/tools/ioemu-qemu-xen/qemu-xen.h +Index: xen-4.0.2-testing/tools/ioemu-qemu-xen/qemu-xen.h =================================================================== ---- xen-4.0.1-testing.orig/tools/ioemu-qemu-xen/qemu-xen.h -+++ xen-4.0.1-testing/tools/ioemu-qemu-xen/qemu-xen.h +--- xen-4.0.2-testing.orig/tools/ioemu-qemu-xen/qemu-xen.h ++++ xen-4.0.2-testing/tools/ioemu-qemu-xen/qemu-xen.h @@ -34,6 +34,15 @@ void qemu_invalidate_map_cache(void) #define mapcache_lock() ((void)0) #define mapcache_unlock() ((void)0) @@ -195,10 +195,10 @@ Index: xen-4.0.1-testing/tools/ioemu-qemu-xen/qemu-xen.h void xenstore_check_new_media_present(int timeout); void xenstore_write_vncport(int vnc_display); void xenstore_read_vncpasswd(int domid, char *pwbuf, size_t pwbuflen); -Index: xen-4.0.1-testing/tools/ioemu-qemu-xen/xenstore.c +Index: xen-4.0.2-testing/tools/ioemu-qemu-xen/xenstore.c =================================================================== ---- xen-4.0.1-testing.orig/tools/ioemu-qemu-xen/xenstore.c -+++ xen-4.0.1-testing/tools/ioemu-qemu-xen/xenstore.c +--- xen-4.0.2-testing.orig/tools/ioemu-qemu-xen/xenstore.c ++++ xen-4.0.2-testing/tools/ioemu-qemu-xen/xenstore.c @@ -17,6 +17,7 @@ #include "exec-all.h" diff --git a/snapshot-without-pv-fix.patch b/snapshot-without-pv-fix.patch index 11a7da8..692ca8d 100644 --- a/snapshot-without-pv-fix.patch +++ b/snapshot-without-pv-fix.patch @@ -8,10 +8,10 @@ ready, so the watch will tell qemu to add the disk entry to drives_table[], otherwise the disk in qemu will just stay opened,not showing up in drives_table[]. -Index: xen-4.0.1-testing/tools/blktap/drivers/blktapctrl.c +Index: xen-4.0.2-testing/tools/blktap/drivers/blktapctrl.c =================================================================== ---- xen-4.0.1-testing.orig/tools/blktap/drivers/blktapctrl.c -+++ xen-4.0.1-testing/tools/blktap/drivers/blktapctrl.c +--- xen-4.0.2-testing.orig/tools/blktap/drivers/blktapctrl.c ++++ xen-4.0.2-testing/tools/blktap/drivers/blktapctrl.c @@ -380,7 +380,22 @@ static int write_msg(int fd, int msgtype msg->cookie = blkif->cookie; @@ -121,10 +121,10 @@ Index: xen-4.0.1-testing/tools/blktap/drivers/blktapctrl.c ctlfd = blktap_interface_open(); if (ctlfd < 0) { -Index: xen-4.0.1-testing/tools/blktap/lib/blkif.c +Index: xen-4.0.2-testing/tools/blktap/lib/blkif.c =================================================================== ---- xen-4.0.1-testing.orig/tools/blktap/lib/blkif.c -+++ xen-4.0.1-testing/tools/blktap/lib/blkif.c +--- xen-4.0.2-testing.orig/tools/blktap/lib/blkif.c ++++ xen-4.0.2-testing/tools/blktap/lib/blkif.c @@ -89,6 +89,11 @@ void register_new_blkif_hook(int (*fn)(b { new_blkif_hook = fn; @@ -162,10 +162,10 @@ Index: xen-4.0.1-testing/tools/blktap/lib/blkif.c void __init_blkif(void) { memset(blkif_hash, 0, sizeof(blkif_hash)); -Index: xen-4.0.1-testing/tools/blktap/lib/blktaplib.h +Index: xen-4.0.2-testing/tools/blktap/lib/blktaplib.h =================================================================== ---- xen-4.0.1-testing.orig/tools/blktap/lib/blktaplib.h -+++ xen-4.0.1-testing/tools/blktap/lib/blktaplib.h +--- xen-4.0.2-testing.orig/tools/blktap/lib/blktaplib.h ++++ xen-4.0.2-testing/tools/blktap/lib/blktaplib.h @@ -38,6 +38,7 @@ #include #include @@ -197,10 +197,10 @@ Index: xen-4.0.1-testing/tools/blktap/lib/blktaplib.h /* disk driver types */ #define MAX_DISK_TYPES 20 -Index: xen-4.0.1-testing/tools/blktap/lib/xenbus.c +Index: xen-4.0.2-testing/tools/blktap/lib/xenbus.c =================================================================== ---- xen-4.0.1-testing.orig/tools/blktap/lib/xenbus.c -+++ xen-4.0.1-testing/tools/blktap/lib/xenbus.c +--- xen-4.0.2-testing.orig/tools/blktap/lib/xenbus.c ++++ xen-4.0.2-testing/tools/blktap/lib/xenbus.c @@ -318,6 +318,72 @@ static int check_image(struct xs_handle return 0; } @@ -284,10 +284,10 @@ Index: xen-4.0.1-testing/tools/blktap/lib/xenbus.c list_add(&be->list, &belist); -Index: xen-4.0.1-testing/tools/ioemu-qemu-xen/hw/xen_blktap.c +Index: xen-4.0.2-testing/tools/ioemu-qemu-xen/hw/xen_blktap.c =================================================================== ---- xen-4.0.1-testing.orig/tools/ioemu-qemu-xen/hw/xen_blktap.c -+++ xen-4.0.1-testing/tools/ioemu-qemu-xen/hw/xen_blktap.c +--- xen-4.0.2-testing.orig/tools/ioemu-qemu-xen/hw/xen_blktap.c ++++ xen-4.0.2-testing/tools/ioemu-qemu-xen/hw/xen_blktap.c @@ -35,6 +35,8 @@ #ifndef QEMU_TOOL #include "qemu-common.h" @@ -378,10 +378,10 @@ Index: xen-4.0.1-testing/tools/ioemu-qemu-xen/hw/xen_blktap.c default: break; } -Index: xen-4.0.1-testing/tools/ioemu-qemu-xen/hw/xen_blktap.h +Index: xen-4.0.2-testing/tools/ioemu-qemu-xen/hw/xen_blktap.h =================================================================== ---- xen-4.0.1-testing.orig/tools/ioemu-qemu-xen/hw/xen_blktap.h -+++ xen-4.0.1-testing/tools/ioemu-qemu-xen/hw/xen_blktap.h +--- xen-4.0.2-testing.orig/tools/ioemu-qemu-xen/hw/xen_blktap.h ++++ xen-4.0.2-testing/tools/ioemu-qemu-xen/hw/xen_blktap.h @@ -40,7 +40,8 @@ struct td_state { void *fd_entry; uint64_t sector_size; diff --git a/snapshot-xend.patch b/snapshot-xend.patch index 99d2d18..123cc17 100644 --- a/snapshot-xend.patch +++ b/snapshot-xend.patch @@ -1,7 +1,7 @@ -Index: xen-4.0.1-testing/tools/python/xen/xend/image.py +Index: xen-4.0.2-testing/tools/python/xen/xend/image.py =================================================================== ---- xen-4.0.1-testing.orig/tools/python/xen/xend/image.py -+++ xen-4.0.1-testing/tools/python/xen/xend/image.py +--- xen-4.0.2-testing.orig/tools/python/xen/xend/image.py ++++ xen-4.0.2-testing/tools/python/xen/xend/image.py @@ -490,7 +490,7 @@ class ImageHandler: domains.domains_lock.acquire() @@ -43,10 +43,10 @@ Index: xen-4.0.1-testing/tools/python/xen/xend/image.py def recreate(self): if self.device_model is None: return -Index: xen-4.0.1-testing/tools/python/xen/xend/server/blkif.py +Index: xen-4.0.2-testing/tools/python/xen/xend/server/blkif.py =================================================================== ---- xen-4.0.1-testing.orig/tools/python/xen/xend/server/blkif.py -+++ xen-4.0.1-testing/tools/python/xen/xend/server/blkif.py +--- xen-4.0.2-testing.orig/tools/python/xen/xend/server/blkif.py ++++ xen-4.0.2-testing/tools/python/xen/xend/server/blkif.py @@ -88,6 +88,10 @@ class BlkifController(DevController): if bootable != None: back['bootable'] = str(bootable) @@ -58,10 +58,10 @@ Index: xen-4.0.1-testing/tools/python/xen/xend/server/blkif.py if security.on() == xsconstants.XS_POLICY_USE: self.do_access_control(config, uname) -Index: xen-4.0.1-testing/tools/python/xen/xend/server/SrvDomain.py +Index: xen-4.0.2-testing/tools/python/xen/xend/server/SrvDomain.py =================================================================== ---- xen-4.0.1-testing.orig/tools/python/xen/xend/server/SrvDomain.py -+++ xen-4.0.1-testing/tools/python/xen/xend/server/SrvDomain.py +--- xen-4.0.2-testing.orig/tools/python/xen/xend/server/SrvDomain.py ++++ xen-4.0.2-testing/tools/python/xen/xend/server/SrvDomain.py @@ -95,6 +95,31 @@ class SrvDomain(SrvDir): def do_save(self, _, req): return self.xd.domain_save(self.dom.domid, req.args['file'][0]) @@ -103,10 +103,10 @@ Index: xen-4.0.1-testing/tools/python/xen/xend/server/SrvDomain.py return self.perform(req) # -Index: xen-4.0.1-testing/tools/python/xen/xend/XendCheckpoint.py +Index: xen-4.0.2-testing/tools/python/xen/xend/XendCheckpoint.py =================================================================== ---- xen-4.0.1-testing.orig/tools/python/xen/xend/XendCheckpoint.py -+++ xen-4.0.1-testing/tools/python/xen/xend/XendCheckpoint.py +--- xen-4.0.2-testing.orig/tools/python/xen/xend/XendCheckpoint.py ++++ xen-4.0.2-testing/tools/python/xen/xend/XendCheckpoint.py @@ -65,7 +65,7 @@ def insert_after(list, pred, value): return @@ -331,10 +331,10 @@ Index: xen-4.0.1-testing/tools/python/xen/xend/XendCheckpoint.py if not paused: dominfo.unpause() -Index: xen-4.0.1-testing/tools/python/xen/xend/XendConfig.py +Index: xen-4.0.2-testing/tools/python/xen/xend/XendConfig.py =================================================================== ---- xen-4.0.1-testing.orig/tools/python/xen/xend/XendConfig.py -+++ xen-4.0.1-testing/tools/python/xen/xend/XendConfig.py +--- xen-4.0.2-testing.orig/tools/python/xen/xend/XendConfig.py ++++ xen-4.0.2-testing/tools/python/xen/xend/XendConfig.py @@ -242,6 +242,7 @@ XENAPI_CFG_TYPES = { 'memory_sharing': int, 'Description': str, @@ -343,10 +343,10 @@ Index: xen-4.0.1-testing/tools/python/xen/xend/XendConfig.py } # List of legacy configuration keys that have no equivalent in the -Index: xen-4.0.1-testing/tools/python/xen/xend/XendDomain.py +Index: xen-4.0.2-testing/tools/python/xen/xend/XendDomain.py =================================================================== ---- xen-4.0.1-testing.orig/tools/python/xen/xend/XendDomain.py -+++ xen-4.0.1-testing/tools/python/xen/xend/XendDomain.py +--- xen-4.0.2-testing.orig/tools/python/xen/xend/XendDomain.py ++++ xen-4.0.2-testing/tools/python/xen/xend/XendDomain.py @@ -53,6 +53,7 @@ from xen.xend.xenstore.xstransact import from xen.xend.xenstore.xswatch import xswatch from xen.util import mkdir, rwlock @@ -561,10 +561,10 @@ Index: xen-4.0.1-testing/tools/python/xen/xend/XendDomain.py def domain_pincpu(self, domid, vcpu, cpumap): """Set which cpus vcpu can use -Index: xen-4.0.1-testing/tools/python/xen/xm/main.py +Index: xen-4.0.2-testing/tools/python/xen/xm/main.py =================================================================== ---- xen-4.0.1-testing.orig/tools/python/xen/xm/main.py -+++ xen-4.0.1-testing/tools/python/xen/xm/main.py +--- xen-4.0.2-testing.orig/tools/python/xen/xm/main.py ++++ xen-4.0.2-testing/tools/python/xen/xm/main.py @@ -123,6 +123,14 @@ SUBCOMMAND_HELP = { 'Restore a domain from a saved state.'), 'save' : ('[-c|-f] ', @@ -686,10 +686,10 @@ Index: xen-4.0.1-testing/tools/python/xen/xm/main.py "shutdown": xm_shutdown, "start": xm_start, "sysrq": xm_sysrq, -Index: xen-4.0.1-testing/tools/python/xen/xend/XendDomainInfo.py +Index: xen-4.0.2-testing/tools/python/xen/xend/XendDomainInfo.py =================================================================== ---- xen-4.0.1-testing.orig/tools/python/xen/xend/XendDomainInfo.py -+++ xen-4.0.1-testing/tools/python/xen/xend/XendDomainInfo.py +--- xen-4.0.2-testing.orig/tools/python/xen/xend/XendDomainInfo.py ++++ xen-4.0.2-testing/tools/python/xen/xend/XendDomainInfo.py @@ -507,7 +507,6 @@ class XendDomainInfo: self._setSchedParams() self._storeVmDetails() diff --git a/stdvga-cache.patch b/stdvga-cache.patch index 8fdddae..32e6511 100644 --- a/stdvga-cache.patch +++ b/stdvga-cache.patch @@ -1,7 +1,7 @@ -Index: xen-4.0.1-testing/xen/arch/x86/hvm/stdvga.c +Index: xen-4.0.2-testing/xen/arch/x86/hvm/stdvga.c =================================================================== ---- xen-4.0.1-testing.orig/xen/arch/x86/hvm/stdvga.c -+++ xen-4.0.1-testing/xen/arch/x86/hvm/stdvga.c +--- xen-4.0.2-testing.orig/xen/arch/x86/hvm/stdvga.c ++++ xen-4.0.2-testing/xen/arch/x86/hvm/stdvga.c @@ -135,7 +135,10 @@ static int stdvga_outb(uint64_t addr, ui /* When in standard vga mode, emulate here all writes to the vram buffer diff --git a/supported_module.diff b/supported_module.diff index 196360b..6525948 100644 --- a/supported_module.diff +++ b/supported_module.diff @@ -2,10 +2,10 @@ Make our PV drivers "Novell supported modules" Signed-off-by: K. Y. Srinivasan -Index: xen-4.0.1-testing/unmodified_drivers/linux-2.6/Module.supported +Index: xen-4.0.2-testing/unmodified_drivers/linux-2.6/Module.supported =================================================================== --- /dev/null -+++ xen-4.0.1-testing/unmodified_drivers/linux-2.6/Module.supported ++++ xen-4.0.2-testing/unmodified_drivers/linux-2.6/Module.supported @@ -0,0 +1,5 @@ +xen-vbd +xen-platform-pci diff --git a/tapdisk-ioemu-logfile.patch b/tapdisk-ioemu-logfile.patch index 4b7652c..bfd1355 100644 --- a/tapdisk-ioemu-logfile.patch +++ b/tapdisk-ioemu-logfile.patch @@ -11,10 +11,10 @@ Signed-off-by: Kevin Wolf tapdisk-ioemu.c | 19 +++++++++++++------ 1 files changed, 13 insertions(+), 6 deletions(-) -Index: xen-4.0.1-testing/tools/ioemu-qemu-xen/tapdisk-ioemu.c +Index: xen-4.0.2-testing/tools/ioemu-qemu-xen/tapdisk-ioemu.c =================================================================== ---- xen-4.0.1-testing.orig/tools/ioemu-qemu-xen/tapdisk-ioemu.c -+++ xen-4.0.1-testing/tools/ioemu-qemu-xen/tapdisk-ioemu.c +--- xen-4.0.2-testing.orig/tools/ioemu-qemu-xen/tapdisk-ioemu.c ++++ xen-4.0.2-testing/tools/ioemu-qemu-xen/tapdisk-ioemu.c @@ -78,15 +78,22 @@ int main(void) struct timeval tv; void *old_fd_start = NULL; diff --git a/tapdisk-ioemu-shutdown-fix.patch b/tapdisk-ioemu-shutdown-fix.patch index e30c3e9..73c1666 100644 --- a/tapdisk-ioemu-shutdown-fix.patch +++ b/tapdisk-ioemu-shutdown-fix.patch @@ -16,10 +16,10 @@ Signed-off-by: Kevin Wolf tapdisk-ioemu.c | 13 ++++++++++--- 2 files changed, 14 insertions(+), 4 deletions(-) -Index: xen-4.0.1-testing/tools/ioemu-qemu-xen/hw/xen_blktap.c +Index: xen-4.0.2-testing/tools/ioemu-qemu-xen/hw/xen_blktap.c =================================================================== ---- xen-4.0.1-testing.orig/tools/ioemu-qemu-xen/hw/xen_blktap.c -+++ xen-4.0.1-testing/tools/ioemu-qemu-xen/hw/xen_blktap.c +--- xen-4.0.2-testing.orig/tools/ioemu-qemu-xen/hw/xen_blktap.c ++++ xen-4.0.2-testing/tools/ioemu-qemu-xen/hw/xen_blktap.c @@ -67,6 +67,7 @@ int read_fd; int write_fd; @@ -46,10 +46,10 @@ Index: xen-4.0.1-testing/tools/ioemu-qemu-xen/hw/xen_blktap.c case CTLMSG_PID: memset(buf, 0x00, MSG_SIZE); -Index: xen-4.0.1-testing/tools/ioemu-qemu-xen/tapdisk-ioemu.c +Index: xen-4.0.2-testing/tools/ioemu-qemu-xen/tapdisk-ioemu.c =================================================================== ---- xen-4.0.1-testing.orig/tools/ioemu-qemu-xen/tapdisk-ioemu.c -+++ xen-4.0.1-testing/tools/ioemu-qemu-xen/tapdisk-ioemu.c +--- xen-4.0.2-testing.orig/tools/ioemu-qemu-xen/tapdisk-ioemu.c ++++ xen-4.0.2-testing/tools/ioemu-qemu-xen/tapdisk-ioemu.c @@ -14,6 +14,7 @@ extern void qemu_aio_init(void); extern void qemu_aio_poll(void); diff --git a/tmp_build.patch b/tmp_build.patch index 64425d1..3c87961 100644 --- a/tmp_build.patch +++ b/tmp_build.patch @@ -1,7 +1,7 @@ -Index: xen-4.0.1-testing/tools/xenstore/Makefile +Index: xen-4.0.2-testing/tools/xenstore/Makefile =================================================================== ---- xen-4.0.1-testing.orig/tools/xenstore/Makefile -+++ xen-4.0.1-testing/tools/xenstore/Makefile +--- xen-4.0.2-testing.orig/tools/xenstore/Makefile ++++ xen-4.0.2-testing/tools/xenstore/Makefile @@ -61,6 +61,7 @@ $(CLIENTS_DOMU): xenstore xenstore: xenstore_client.o $(LIBXENSTORE) diff --git a/tools-gdbserver-build.diff b/tools-gdbserver-build.diff index 10c1b30..70b58d3 100644 --- a/tools-gdbserver-build.diff +++ b/tools-gdbserver-build.diff @@ -1,7 +1,7 @@ -Index: xen-4.0.1-testing/tools/debugger/gdb/gdb-6.2.1-xen-sparse/gdb/gdbserver/Makefile.in +Index: xen-4.0.2-testing/tools/debugger/gdb/gdb-6.2.1-xen-sparse/gdb/gdbserver/Makefile.in =================================================================== ---- xen-4.0.1-testing.orig/tools/debugger/gdb/gdb-6.2.1-xen-sparse/gdb/gdbserver/Makefile.in -+++ xen-4.0.1-testing/tools/debugger/gdb/gdb-6.2.1-xen-sparse/gdb/gdbserver/Makefile.in +--- xen-4.0.2-testing.orig/tools/debugger/gdb/gdb-6.2.1-xen-sparse/gdb/gdbserver/Makefile.in ++++ xen-4.0.2-testing/tools/debugger/gdb/gdb-6.2.1-xen-sparse/gdb/gdbserver/Makefile.in @@ -90,7 +90,7 @@ INCLUDE_CFLAGS = -I. -I${srcdir} -I$(src GLOBAL_CFLAGS = ${MT_CFLAGS} ${MH_CFLAGS} #PROFILE_CFLAGS = -pg diff --git a/tools-kboot.diff b/tools-kboot.diff index dc73508..a314f47 100644 --- a/tools-kboot.diff +++ b/tools-kboot.diff @@ -13,10 +13,10 @@ Signed-off-by: Gerd Hoffmann tools/kboot/select-kernel | 59 + 9 files changed, 2111 insertions(+) -Index: xen-4.0.1-testing/buildconfigs/linux-defconfig_xenUboot_x86_32 +Index: xen-4.0.2-testing/buildconfigs/linux-defconfig_xenUboot_x86_32 =================================================================== --- /dev/null -+++ xen-4.0.1-testing/buildconfigs/linux-defconfig_xenUboot_x86_32 ++++ xen-4.0.2-testing/buildconfigs/linux-defconfig_xenUboot_x86_32 @@ -0,0 +1,874 @@ +# +# Automatically generated make config: don't edit @@ -892,10 +892,10 @@ Index: xen-4.0.1-testing/buildconfigs/linux-defconfig_xenUboot_x86_32 +CONFIG_X86_NO_TSS=y +CONFIG_X86_NO_IDT=y +CONFIG_KTIME_SCALAR=y -Index: xen-4.0.1-testing/buildconfigs/linux-defconfig_xenUboot_x86_64 +Index: xen-4.0.2-testing/buildconfigs/linux-defconfig_xenUboot_x86_64 =================================================================== --- /dev/null -+++ xen-4.0.1-testing/buildconfigs/linux-defconfig_xenUboot_x86_64 ++++ xen-4.0.2-testing/buildconfigs/linux-defconfig_xenUboot_x86_64 @@ -0,0 +1,653 @@ +# +# Automatically generated make config: don't edit @@ -1550,17 +1550,17 @@ Index: xen-4.0.1-testing/buildconfigs/linux-defconfig_xenUboot_x86_64 +# CONFIG_CRC32 is not set +# CONFIG_LIBCRC32C is not set +CONFIG_ZLIB_INFLATE=y -Index: xen-4.0.1-testing/buildconfigs/mk.linux-2.6-xenUboot +Index: xen-4.0.2-testing/buildconfigs/mk.linux-2.6-xenUboot =================================================================== --- /dev/null -+++ xen-4.0.1-testing/buildconfigs/mk.linux-2.6-xenUboot ++++ xen-4.0.2-testing/buildconfigs/mk.linux-2.6-xenUboot @@ -0,0 +1,2 @@ +EXTRAVERSION = xenUboot +include buildconfigs/mk.linux-2.6-xen -Index: xen-4.0.1-testing/tools/kboot/Makefile +Index: xen-4.0.2-testing/tools/kboot/Makefile =================================================================== --- /dev/null -+++ xen-4.0.1-testing/tools/kboot/Makefile ++++ xen-4.0.2-testing/tools/kboot/Makefile @@ -0,0 +1,23 @@ +# +# tools/kboot/Makefile @@ -1585,10 +1585,10 @@ Index: xen-4.0.1-testing/tools/kboot/Makefile +kboot.initramfs: mkinitramfs init select-kernel ../xcutils/xc_kexec + sh ./mkinitramfs | tee $@ + -Index: xen-4.0.1-testing/tools/kboot/README +Index: xen-4.0.2-testing/tools/kboot/README =================================================================== --- /dev/null -+++ xen-4.0.1-testing/tools/kboot/README ++++ xen-4.0.2-testing/tools/kboot/README @@ -0,0 +1,43 @@ + +This is a simple kexec-based boot loader @@ -1633,10 +1633,10 @@ Index: xen-4.0.1-testing/tools/kboot/README + +-- +Gerd Hoffmann -Index: xen-4.0.1-testing/tools/kboot/init +Index: xen-4.0.2-testing/tools/kboot/init =================================================================== --- /dev/null -+++ xen-4.0.1-testing/tools/kboot/init ++++ xen-4.0.2-testing/tools/kboot/init @@ -0,0 +1,309 @@ +#!/bin/sh + @@ -1947,10 +1947,10 @@ Index: xen-4.0.1-testing/tools/kboot/init +msg "bye ..." +banner "boot $guestos" +xc_kexec -e -Index: xen-4.0.1-testing/tools/kboot/mkinitramfs +Index: xen-4.0.2-testing/tools/kboot/mkinitramfs =================================================================== --- /dev/null -+++ xen-4.0.1-testing/tools/kboot/mkinitramfs ++++ xen-4.0.2-testing/tools/kboot/mkinitramfs @@ -0,0 +1,111 @@ +#!/bin/sh + @@ -2063,10 +2063,10 @@ Index: xen-4.0.1-testing/tools/kboot/mkinitramfs + echo "file $LIB/$(basename $lib) $lib 0755 0 0" +done +echo -Index: xen-4.0.1-testing/tools/kboot/select-kernel +Index: xen-4.0.2-testing/tools/kboot/select-kernel =================================================================== --- /dev/null -+++ xen-4.0.1-testing/tools/kboot/select-kernel ++++ xen-4.0.2-testing/tools/kboot/select-kernel @@ -0,0 +1,59 @@ +#!/bin/sh + @@ -2127,10 +2127,10 @@ Index: xen-4.0.1-testing/tools/kboot/select-kernel +msg "using $kernelname" +echo "$kernelname" + -Index: xen-4.0.1-testing/make-kboot +Index: xen-4.0.2-testing/make-kboot =================================================================== --- /dev/null -+++ xen-4.0.1-testing/make-kboot ++++ xen-4.0.2-testing/make-kboot @@ -0,0 +1,37 @@ +#!/bin/sh + diff --git a/tools-xc_kexec.diff b/tools-xc_kexec.diff index 1553d27..4afff2a 100644 --- a/tools-xc_kexec.diff +++ b/tools-xc_kexec.diff @@ -23,10 +23,10 @@ Signed-off-by: Gerd Hoffmann tools/xcutils/xc_kexec.c | 503 +++++++++++++++ 19 files changed, 4988 insertions(+), 2 deletions(-) -Index: xen-4.0.1-testing/tools/xcutils/Makefile +Index: xen-4.0.2-testing/tools/xcutils/Makefile =================================================================== ---- xen-4.0.1-testing.orig/tools/xcutils/Makefile -+++ xen-4.0.1-testing/tools/xcutils/Makefile +--- xen-4.0.2-testing.orig/tools/xcutils/Makefile ++++ xen-4.0.2-testing/tools/xcutils/Makefile @@ -14,7 +14,7 @@ include $(XEN_ROOT)/tools/Rules.mk CFLAGS += -Werror CFLAGS += $(CFLAGS_libxenctrl) $(CFLAGS_libxenguest) $(CFLAGS_libxenstore) @@ -55,10 +55,10 @@ Index: xen-4.0.1-testing/tools/xcutils/Makefile + make -C helper clean -include $(DEPS) -Index: xen-4.0.1-testing/tools/xcutils/helper/Makefile +Index: xen-4.0.2-testing/tools/xcutils/helper/Makefile =================================================================== --- /dev/null -+++ xen-4.0.1-testing/tools/xcutils/helper/Makefile ++++ xen-4.0.2-testing/tools/xcutils/helper/Makefile @@ -0,0 +1,39 @@ + +XEN_ROOT = ../../.. @@ -99,10 +99,10 @@ Index: xen-4.0.1-testing/tools/xcutils/helper/Makefile +# dependencies + +$(XEN_TARGET_ARCH)/entry.o: $(XEN_TARGET_ARCH)/entry.S $(XEN_TARGET_ARCH)/offsets.h -Index: xen-4.0.1-testing/tools/xcutils/helper/console.c +Index: xen-4.0.2-testing/tools/xcutils/helper/console.c =================================================================== --- /dev/null -+++ xen-4.0.1-testing/tools/xcutils/helper/console.c ++++ xen-4.0.2-testing/tools/xcutils/helper/console.c @@ -0,0 +1,69 @@ +#include + @@ -173,10 +173,10 @@ Index: xen-4.0.1-testing/tools/xcutils/helper/console.c + + return printed_len; +} -Index: xen-4.0.1-testing/tools/xcutils/helper/ctype.c +Index: xen-4.0.2-testing/tools/xcutils/helper/ctype.c =================================================================== --- /dev/null -+++ xen-4.0.1-testing/tools/xcutils/helper/ctype.c ++++ xen-4.0.2-testing/tools/xcutils/helper/ctype.c @@ -0,0 +1,35 @@ +/* + * linux/lib/ctype.c @@ -213,10 +213,10 @@ Index: xen-4.0.1-testing/tools/xcutils/helper/ctype.c +_L,_L,_L,_L,_L,_L,_L,_P,_L,_L,_L,_L,_L,_L,_L,_L}; /* 240-255 */ + +EXPORT_SYMBOL(_ctype); -Index: xen-4.0.1-testing/tools/xcutils/helper/ctype.h +Index: xen-4.0.2-testing/tools/xcutils/helper/ctype.h =================================================================== --- /dev/null -+++ xen-4.0.1-testing/tools/xcutils/helper/ctype.h ++++ xen-4.0.2-testing/tools/xcutils/helper/ctype.h @@ -0,0 +1,54 @@ +#ifndef _LINUX_CTYPE_H +#define _LINUX_CTYPE_H @@ -272,10 +272,10 @@ Index: xen-4.0.1-testing/tools/xcutils/helper/ctype.h +#define toupper(c) __toupper(c) + +#endif -Index: xen-4.0.1-testing/tools/xcutils/helper/helper.h +Index: xen-4.0.2-testing/tools/xcutils/helper/helper.h =================================================================== --- /dev/null -+++ xen-4.0.1-testing/tools/xcutils/helper/helper.h ++++ xen-4.0.2-testing/tools/xcutils/helper/helper.h @@ -0,0 +1,107 @@ +#include +#include @@ -384,10 +384,10 @@ Index: xen-4.0.1-testing/tools/xcutils/helper/helper.h +int sprintf(char * buf, const char *fmt, ...); +int vsscanf(const char * buf, const char * fmt, va_list args); +int sscanf(const char * buf, const char * fmt, ...); -Index: xen-4.0.1-testing/tools/xcutils/helper/main.c +Index: xen-4.0.2-testing/tools/xcutils/helper/main.c =================================================================== --- /dev/null -+++ xen-4.0.1-testing/tools/xcutils/helper/main.c ++++ xen-4.0.2-testing/tools/xcutils/helper/main.c @@ -0,0 +1,651 @@ +#include +#include "hypercall.h" @@ -1040,10 +1040,10 @@ Index: xen-4.0.1-testing/tools/xcutils/helper/main.c + printk("\r\n"); + start_kernel(); +} -Index: xen-4.0.1-testing/tools/xcutils/helper/make-offsets.c +Index: xen-4.0.2-testing/tools/xcutils/helper/make-offsets.c =================================================================== --- /dev/null -+++ xen-4.0.1-testing/tools/xcutils/helper/make-offsets.c ++++ xen-4.0.2-testing/tools/xcutils/helper/make-offsets.c @@ -0,0 +1,28 @@ +#include +#include @@ -1073,10 +1073,10 @@ Index: xen-4.0.1-testing/tools/xcutils/helper/make-offsets.c + vcpu_off("cr3", ctrlreg[3]); + return 0; +} -Index: xen-4.0.1-testing/tools/xcutils/helper/printk.c +Index: xen-4.0.2-testing/tools/xcutils/helper/printk.c =================================================================== --- /dev/null -+++ xen-4.0.1-testing/tools/xcutils/helper/printk.c ++++ xen-4.0.2-testing/tools/xcutils/helper/printk.c @@ -0,0 +1,1051 @@ +/* + * linux/kernel/printk.c @@ -2129,10 +2129,10 @@ Index: xen-4.0.1-testing/tools/xcutils/helper/printk.c + printk_ratelimit_burst); +} +EXPORT_SYMBOL(printk_ratelimit); -Index: xen-4.0.1-testing/tools/xcutils/helper/string.c +Index: xen-4.0.2-testing/tools/xcutils/helper/string.c =================================================================== --- /dev/null -+++ xen-4.0.1-testing/tools/xcutils/helper/string.c ++++ xen-4.0.2-testing/tools/xcutils/helper/string.c @@ -0,0 +1,601 @@ +/* + * linux/lib/string.c @@ -2735,10 +2735,10 @@ Index: xen-4.0.1-testing/tools/xcutils/helper/string.c +} +EXPORT_SYMBOL(memchr); +#endif -Index: xen-4.0.1-testing/tools/xcutils/helper/vsprintf.c +Index: xen-4.0.2-testing/tools/xcutils/helper/vsprintf.c =================================================================== --- /dev/null -+++ xen-4.0.1-testing/tools/xcutils/helper/vsprintf.c ++++ xen-4.0.2-testing/tools/xcutils/helper/vsprintf.c @@ -0,0 +1,842 @@ +/* + * linux/lib/vsprintf.c @@ -3582,10 +3582,10 @@ Index: xen-4.0.1-testing/tools/xcutils/helper/vsprintf.c +} + +EXPORT_SYMBOL(sscanf); -Index: xen-4.0.1-testing/tools/xcutils/helper/x86_32/div64.h +Index: xen-4.0.2-testing/tools/xcutils/helper/x86_32/div64.h =================================================================== --- /dev/null -+++ xen-4.0.1-testing/tools/xcutils/helper/x86_32/div64.h ++++ xen-4.0.2-testing/tools/xcutils/helper/x86_32/div64.h @@ -0,0 +1,48 @@ +#ifndef __I386_DIV64 +#define __I386_DIV64 @@ -3635,10 +3635,10 @@ Index: xen-4.0.1-testing/tools/xcutils/helper/x86_32/div64.h + +} +#endif -Index: xen-4.0.1-testing/tools/xcutils/helper/x86_32/entry.S +Index: xen-4.0.2-testing/tools/xcutils/helper/x86_32/entry.S =================================================================== --- /dev/null -+++ xen-4.0.1-testing/tools/xcutils/helper/x86_32/entry.S ++++ xen-4.0.2-testing/tools/xcutils/helper/x86_32/entry.S @@ -0,0 +1,49 @@ +#include "offsets.h" + @@ -3689,10 +3689,10 @@ Index: xen-4.0.1-testing/tools/xcutils/helper/x86_32/entry.S + nop + .align 4096 +hypercall_end: -Index: xen-4.0.1-testing/tools/xcutils/helper/x86_32/hypercall.h +Index: xen-4.0.2-testing/tools/xcutils/helper/x86_32/hypercall.h =================================================================== --- /dev/null -+++ xen-4.0.1-testing/tools/xcutils/helper/x86_32/hypercall.h ++++ xen-4.0.2-testing/tools/xcutils/helper/x86_32/hypercall.h @@ -0,0 +1,359 @@ +/****************************************************************************** + * hypercall.h @@ -4053,10 +4053,10 @@ Index: xen-4.0.1-testing/tools/xcutils/helper/x86_32/hypercall.h + + +#endif /* __HYPERCALL_H__ */ -Index: xen-4.0.1-testing/tools/xcutils/helper/x86_64/div64.h +Index: xen-4.0.2-testing/tools/xcutils/helper/x86_64/div64.h =================================================================== --- /dev/null -+++ xen-4.0.1-testing/tools/xcutils/helper/x86_64/div64.h ++++ xen-4.0.2-testing/tools/xcutils/helper/x86_64/div64.h @@ -0,0 +1,57 @@ +#ifndef _ASM_GENERIC_DIV64_H +#define _ASM_GENERIC_DIV64_H @@ -4115,10 +4115,10 @@ Index: xen-4.0.1-testing/tools/xcutils/helper/x86_64/div64.h +#endif /* BITS_PER_LONG */ + +#endif /* _ASM_GENERIC_DIV64_H */ -Index: xen-4.0.1-testing/tools/xcutils/helper/x86_64/entry.S +Index: xen-4.0.2-testing/tools/xcutils/helper/x86_64/entry.S =================================================================== --- /dev/null -+++ xen-4.0.1-testing/tools/xcutils/helper/x86_64/entry.S ++++ xen-4.0.2-testing/tools/xcutils/helper/x86_64/entry.S @@ -0,0 +1,50 @@ +#include "offsets.h" + @@ -4170,10 +4170,10 @@ Index: xen-4.0.1-testing/tools/xcutils/helper/x86_64/entry.S + nop + .align 4096 +hypercall_end: -Index: xen-4.0.1-testing/tools/xcutils/helper/x86_64/hypercall.h +Index: xen-4.0.2-testing/tools/xcutils/helper/x86_64/hypercall.h =================================================================== --- /dev/null -+++ xen-4.0.1-testing/tools/xcutils/helper/x86_64/hypercall.h ++++ xen-4.0.2-testing/tools/xcutils/helper/x86_64/hypercall.h @@ -0,0 +1,354 @@ +/****************************************************************************** + * hypercall.h @@ -4529,10 +4529,10 @@ Index: xen-4.0.1-testing/tools/xcutils/helper/x86_64/hypercall.h +} + +#endif /* __HYPERCALL_H__ */ -Index: xen-4.0.1-testing/tools/xcutils/kexec-syscall.h +Index: xen-4.0.2-testing/tools/xcutils/kexec-syscall.h =================================================================== --- /dev/null -+++ xen-4.0.1-testing/tools/xcutils/kexec-syscall.h ++++ xen-4.0.2-testing/tools/xcutils/kexec-syscall.h @@ -0,0 +1,80 @@ +#ifndef KEXEC_SYSCALL_H +#define KEXEC_SYSCALL_H @@ -4614,10 +4614,10 @@ Index: xen-4.0.1-testing/tools/xcutils/kexec-syscall.h +#define KEXEC_MAX_SEGMENTS 16 + +#endif /* KEXEC_SYSCALL_H */ -Index: xen-4.0.1-testing/tools/xcutils/xc_kexec.c +Index: xen-4.0.2-testing/tools/xcutils/xc_kexec.c =================================================================== --- /dev/null -+++ xen-4.0.1-testing/tools/xcutils/xc_kexec.c ++++ xen-4.0.2-testing/tools/xcutils/xc_kexec.c @@ -0,0 +1,503 @@ +#include +#include diff --git a/udev-rules.patch b/udev-rules.patch index abc196f..666bf14 100644 --- a/udev-rules.patch +++ b/udev-rules.patch @@ -1,7 +1,7 @@ -Index: xen-4.0.1-testing/tools/hotplug/Linux/xen-backend.rules +Index: xen-4.0.2-testing/tools/hotplug/Linux/xen-backend.rules =================================================================== ---- xen-4.0.1-testing.orig/tools/hotplug/Linux/xen-backend.rules -+++ xen-4.0.1-testing/tools/hotplug/Linux/xen-backend.rules +--- xen-4.0.2-testing.orig/tools/hotplug/Linux/xen-backend.rules ++++ xen-4.0.2-testing/tools/hotplug/Linux/xen-backend.rules @@ -7,5 +7,10 @@ SUBSYSTEM=="xen-backend", KERNEL=="vif-* SUBSYSTEM=="xen-backend", KERNEL=="vscsi*", RUN+="/etc/xen/scripts/vscsi $env{ACTION}" SUBSYSTEM=="xen-backend", ACTION=="remove", RUN+="/etc/xen/scripts/xen-hotplug-cleanup" diff --git a/usb-list.patch b/usb-list.patch index 9b1d0d6..e3c63aa 100644 --- a/usb-list.patch +++ b/usb-list.patch @@ -15,10 +15,10 @@ could be referred to: http://www.gossamer-threads.com/lists/xen/devel/181021?search_string=usb-list;#181021 -Index: xen-4.0.1-testing/tools/python/xen/xm/main.py +Index: xen-4.0.2-testing/tools/python/xen/xm/main.py =================================================================== ---- xen-4.0.1-testing.orig/tools/python/xen/xm/main.py -+++ xen-4.0.1-testing/tools/python/xen/xm/main.py +--- xen-4.0.2-testing.orig/tools/python/xen/xm/main.py ++++ xen-4.0.2-testing/tools/python/xen/xm/main.py @@ -2545,10 +2545,22 @@ def xm_usb_list(args): ni = parse_dev_info(x[1]) ni['idx'] = int(x[0]) diff --git a/vif-bridge-no-iptables.patch b/vif-bridge-no-iptables.patch index 14b2c0e..af7152b 100644 --- a/vif-bridge-no-iptables.patch +++ b/vif-bridge-no-iptables.patch @@ -1,7 +1,7 @@ -Index: xen-4.0.1-testing/tools/hotplug/Linux/vif-bridge +Index: xen-4.0.2-testing/tools/hotplug/Linux/vif-bridge =================================================================== ---- xen-4.0.1-testing.orig/tools/hotplug/Linux/vif-bridge -+++ xen-4.0.1-testing/tools/hotplug/Linux/vif-bridge +--- xen-4.0.2-testing.orig/tools/hotplug/Linux/vif-bridge ++++ xen-4.0.2-testing/tools/hotplug/Linux/vif-bridge @@ -91,7 +91,7 @@ case "$command" in ;; esac diff --git a/vif-route-ifup.patch b/vif-route-ifup.patch index c424c4c..a59a098 100644 --- a/vif-route-ifup.patch +++ b/vif-route-ifup.patch @@ -1,7 +1,7 @@ -Index: xen-4.0.1-testing/tools/hotplug/Linux/vif-route-ifup +Index: xen-4.0.2-testing/tools/hotplug/Linux/vif-route-ifup =================================================================== --- /dev/null -+++ xen-4.0.1-testing/tools/hotplug/Linux/vif-route-ifup ++++ xen-4.0.2-testing/tools/hotplug/Linux/vif-route-ifup @@ -0,0 +1,34 @@ +#!/bin/bash +#============================================================================ @@ -37,10 +37,10 @@ Index: xen-4.0.1-testing/tools/hotplug/Linux/vif-route-ifup +then + success +fi -Index: xen-4.0.1-testing/tools/examples/xend-config.sxp +Index: xen-4.0.2-testing/tools/examples/xend-config.sxp =================================================================== ---- xen-4.0.1-testing.orig/tools/examples/xend-config.sxp -+++ xen-4.0.1-testing/tools/examples/xend-config.sxp +--- xen-4.0.2-testing.orig/tools/examples/xend-config.sxp ++++ xen-4.0.2-testing/tools/examples/xend-config.sxp @@ -184,6 +184,26 @@ #(network-script network-route) #(vif-script vif-route) @@ -68,10 +68,10 @@ Index: xen-4.0.1-testing/tools/examples/xend-config.sxp ## Use the following if network traffic is routed with NAT, as an alternative # to the settings for bridged networking given above. -Index: xen-4.0.1-testing/tools/hotplug/Linux/Makefile +Index: xen-4.0.2-testing/tools/hotplug/Linux/Makefile =================================================================== ---- xen-4.0.1-testing.orig/tools/hotplug/Linux/Makefile -+++ xen-4.0.1-testing/tools/hotplug/Linux/Makefile +--- xen-4.0.2-testing.orig/tools/hotplug/Linux/Makefile ++++ xen-4.0.2-testing/tools/hotplug/Linux/Makefile @@ -9,7 +9,7 @@ XENDOMAINS_SYSCONFIG = init.d/sysconfig. # Xen script dir and scripts to go there. diff --git a/x86-cpufreq-report.patch b/x86-cpufreq-report.patch index 429a552..543f1dd 100644 --- a/x86-cpufreq-report.patch +++ b/x86-cpufreq-report.patch @@ -1,7 +1,7 @@ -Index: xen-4.0.1-testing/xen/arch/x86/platform_hypercall.c +Index: xen-4.0.2-testing/xen/arch/x86/platform_hypercall.c =================================================================== ---- xen-4.0.1-testing.orig/xen/arch/x86/platform_hypercall.c -+++ xen-4.0.1-testing/xen/arch/x86/platform_hypercall.c +--- xen-4.0.2-testing.orig/xen/arch/x86/platform_hypercall.c ++++ xen-4.0.2-testing/xen/arch/x86/platform_hypercall.c @@ -21,7 +21,7 @@ #include #include @@ -19,7 +19,7 @@ Index: xen-4.0.1-testing/xen/arch/x86/platform_hypercall.c struct xen_platform_op curop, *op = &curop; if ( !IS_PRIV(current->domain) ) -@@ -489,6 +490,24 @@ ret_t do_platform_op(XEN_GUEST_HANDLE(xe +@@ -488,6 +489,24 @@ ret_t do_platform_op(XEN_GUEST_HANDLE(xe op->u.mem_add.epfn, op->u.mem_add.pxm); break; @@ -44,10 +44,10 @@ Index: xen-4.0.1-testing/xen/arch/x86/platform_hypercall.c default: ret = -ENOSYS; break; -Index: xen-4.0.1-testing/xen/include/public/platform.h +Index: xen-4.0.2-testing/xen/include/public/platform.h =================================================================== ---- xen-4.0.1-testing.orig/xen/include/public/platform.h -+++ xen-4.0.1-testing/xen/include/public/platform.h +--- xen-4.0.2-testing.orig/xen/include/public/platform.h ++++ xen-4.0.2-testing/xen/include/public/platform.h @@ -355,6 +355,14 @@ struct xenpf_mem_hotadd uint32_t flags; }; diff --git a/x86-extra-trap-info.patch b/x86-extra-trap-info.patch index df2c0bc..b08f355 100644 --- a/x86-extra-trap-info.patch +++ b/x86-extra-trap-info.patch @@ -1,7 +1,7 @@ -Index: xen-4.0.1-testing/xen/arch/x86/x86_32/entry.S +Index: xen-4.0.2-testing/xen/arch/x86/x86_32/entry.S =================================================================== ---- xen-4.0.1-testing.orig/xen/arch/x86/x86_32/entry.S -+++ xen-4.0.1-testing/xen/arch/x86/x86_32/entry.S +--- xen-4.0.2-testing.orig/xen/arch/x86/x86_32/entry.S ++++ xen-4.0.2-testing/xen/arch/x86/x86_32/entry.S @@ -403,21 +403,33 @@ ring1: /* obtain ss/esp from oldss/olde movl %eax,UREGS_eip+4(%esp) ret @@ -46,10 +46,10 @@ Index: xen-4.0.1-testing/xen/arch/x86/x86_32/entry.S domain_crash_synchronous: pushl $domain_crash_synchronous_string call printk -Index: xen-4.0.1-testing/xen/arch/x86/x86_64/entry.S +Index: xen-4.0.2-testing/xen/arch/x86/x86_64/entry.S =================================================================== ---- xen-4.0.1-testing.orig/xen/arch/x86/x86_64/entry.S -+++ xen-4.0.1-testing/xen/arch/x86/x86_64/entry.S +--- xen-4.0.2-testing.orig/xen/arch/x86/x86_64/entry.S ++++ xen-4.0.2-testing/xen/arch/x86/x86_64/entry.S @@ -421,17 +421,30 @@ create_bounce_frame: movq %rax,UREGS_rip+8(%rsp) ret diff --git a/x86-ioapic-ack-default.patch b/x86-ioapic-ack-default.patch index bcc40a2..7bbb81a 100644 --- a/x86-ioapic-ack-default.patch +++ b/x86-ioapic-ack-default.patch @@ -1,10 +1,10 @@ Change default IO-APIC ack mode for single IO-APIC systems to old-style. -Index: xen-4.0.1-testing/xen/arch/x86/io_apic.c +Index: xen-4.0.2-testing/xen/arch/x86/io_apic.c =================================================================== ---- xen-4.0.1-testing.orig/xen/arch/x86/io_apic.c -+++ xen-4.0.1-testing/xen/arch/x86/io_apic.c -@@ -1559,7 +1559,7 @@ static unsigned int startup_level_ioapic +--- xen-4.0.2-testing.orig/xen/arch/x86/io_apic.c ++++ xen-4.0.2-testing/xen/arch/x86/io_apic.c +@@ -1551,7 +1551,7 @@ static unsigned int startup_level_ioapic return 0; /* don't check for pending */ } @@ -13,7 +13,7 @@ Index: xen-4.0.1-testing/xen/arch/x86/io_apic.c static void setup_ioapic_ack(char *s) { if ( !strcmp(s, "old") ) -@@ -2075,6 +2075,8 @@ void __init setup_IO_APIC(void) +@@ -2067,6 +2067,8 @@ void __init setup_IO_APIC(void) else io_apic_irqs = ~PIC_IRQS; diff --git a/x86-show-page-walk-early.patch b/x86-show-page-walk-early.patch index 4b946bd..6d34f63 100644 --- a/x86-show-page-walk-early.patch +++ b/x86-show-page-walk-early.patch @@ -1,7 +1,7 @@ -Index: xen-4.0.1-testing/xen/arch/x86/mm.c +Index: xen-4.0.2-testing/xen/arch/x86/mm.c =================================================================== ---- xen-4.0.1-testing.orig/xen/arch/x86/mm.c -+++ xen-4.0.1-testing/xen/arch/x86/mm.c +--- xen-4.0.2-testing.orig/xen/arch/x86/mm.c ++++ xen-4.0.2-testing/xen/arch/x86/mm.c @@ -154,6 +154,8 @@ unsigned long __read_mostly pdx_group_va int opt_allow_hugepage; boolean_param("allowhugepage", opt_allow_hugepage); @@ -11,11 +11,11 @@ Index: xen-4.0.1-testing/xen/arch/x86/mm.c #define l1_disallow_mask(d) \ ((d != dom_io) && \ (rangeset_is_empty((d)->iomem_caps) && \ -Index: xen-4.0.1-testing/xen/arch/x86/traps.c +Index: xen-4.0.2-testing/xen/arch/x86/traps.c =================================================================== ---- xen-4.0.1-testing.orig/xen/arch/x86/traps.c -+++ xen-4.0.1-testing/xen/arch/x86/traps.c -@@ -1342,6 +1342,7 @@ asmlinkage void do_early_page_fault(stru +--- xen-4.0.2-testing.orig/xen/arch/x86/traps.c ++++ xen-4.0.2-testing/xen/arch/x86/traps.c +@@ -1354,6 +1354,7 @@ asmlinkage void do_early_page_fault(stru unsigned long *stk = (unsigned long *)regs; printk("Early fatal page fault at %04x:%p (cr2=%p, ec=%04x)\n", regs->cs, _p(regs->eip), _p(cr2), regs->error_code); @@ -23,10 +23,10 @@ Index: xen-4.0.1-testing/xen/arch/x86/traps.c printk("Stack dump: "); while ( ((long)stk & ((PAGE_SIZE - 1) & ~(BYTES_PER_LONG - 1))) != 0 ) printk("%p ", _p(*stk++)); -Index: xen-4.0.1-testing/xen/arch/x86/x86_32/mm.c +Index: xen-4.0.2-testing/xen/arch/x86/x86_32/mm.c =================================================================== ---- xen-4.0.1-testing.orig/xen/arch/x86/x86_32/mm.c -+++ xen-4.0.1-testing/xen/arch/x86/x86_32/mm.c +--- xen-4.0.2-testing.orig/xen/arch/x86/x86_32/mm.c ++++ xen-4.0.2-testing/xen/arch/x86/x86_32/mm.c @@ -122,6 +122,8 @@ void __init paging_init(void) #undef CNT #undef MFN @@ -36,10 +36,10 @@ Index: xen-4.0.1-testing/xen/arch/x86/x86_32/mm.c /* Create page tables for ioremap()/map_domain_page_global(). */ for ( i = 0; i < (IOREMAP_MBYTES >> (L2_PAGETABLE_SHIFT - 20)); i++ ) { -Index: xen-4.0.1-testing/xen/arch/x86/x86_32/traps.c +Index: xen-4.0.2-testing/xen/arch/x86/x86_32/traps.c =================================================================== ---- xen-4.0.1-testing.orig/xen/arch/x86/x86_32/traps.c -+++ xen-4.0.1-testing/xen/arch/x86/x86_32/traps.c +--- xen-4.0.2-testing.orig/xen/arch/x86/x86_32/traps.c ++++ xen-4.0.2-testing/xen/arch/x86/x86_32/traps.c @@ -161,7 +161,8 @@ void show_page_walk(unsigned long addr) l3t += (cr3 & 0xFE0UL) >> 3; l3e = l3t[l3_table_offset(addr)]; @@ -70,11 +70,11 @@ Index: xen-4.0.1-testing/xen/arch/x86/x86_32/traps.c printk(" L1[0x%03lx] = %"PRIpte" %08lx\n", l1_table_offset(addr), l1e_get_intpte(l1e), pfn); unmap_domain_page(l1t); -Index: xen-4.0.1-testing/xen/arch/x86/x86_64/mm.c +Index: xen-4.0.2-testing/xen/arch/x86/x86_64/mm.c =================================================================== ---- xen-4.0.1-testing.orig/xen/arch/x86/x86_64/mm.c -+++ xen-4.0.1-testing/xen/arch/x86/x86_64/mm.c -@@ -725,6 +725,8 @@ void __init paging_init(void) +--- xen-4.0.2-testing.orig/xen/arch/x86/x86_64/mm.c ++++ xen-4.0.2-testing/xen/arch/x86/x86_64/mm.c +@@ -731,6 +731,8 @@ void __init paging_init(void) #undef CNT #undef MFN @@ -83,10 +83,10 @@ Index: xen-4.0.1-testing/xen/arch/x86/x86_64/mm.c /* Create user-accessible L2 directory to map the MPT for compat guests. */ BUILD_BUG_ON(l4_table_offset(RDWR_MPT_VIRT_START) != l4_table_offset(HIRO_COMPAT_MPT_VIRT_START)); -Index: xen-4.0.1-testing/xen/arch/x86/x86_64/traps.c +Index: xen-4.0.2-testing/xen/arch/x86/x86_64/traps.c =================================================================== ---- xen-4.0.1-testing.orig/xen/arch/x86/x86_64/traps.c -+++ xen-4.0.1-testing/xen/arch/x86/x86_64/traps.c +--- xen-4.0.2-testing.orig/xen/arch/x86/x86_64/traps.c ++++ xen-4.0.2-testing/xen/arch/x86/x86_64/traps.c @@ -176,7 +176,8 @@ void show_page_walk(unsigned long addr) l4t = mfn_to_virt(mfn); l4e = l4t[l4_table_offset(addr)]; @@ -127,10 +127,10 @@ Index: xen-4.0.1-testing/xen/arch/x86/x86_64/traps.c printk(" L1[0x%03lx] = %"PRIpte" %016lx\n", l1_table_offset(addr), l1e_get_intpte(l1e), pfn); } -Index: xen-4.0.1-testing/xen/include/asm-x86/mm.h +Index: xen-4.0.2-testing/xen/include/asm-x86/mm.h =================================================================== ---- xen-4.0.1-testing.orig/xen/include/asm-x86/mm.h -+++ xen-4.0.1-testing/xen/include/asm-x86/mm.h +--- xen-4.0.2-testing.orig/xen/include/asm-x86/mm.h ++++ xen-4.0.2-testing/xen/include/asm-x86/mm.h @@ -443,6 +443,8 @@ TYPE_SAFE(unsigned long,mfn); #define SHARED_M2P_ENTRY (~0UL - 1UL) #define SHARED_M2P(_e) ((_e) == SHARED_M2P_ENTRY) diff --git a/xen-4.0.1-testing-src.tar.bz2 b/xen-4.0.1-testing-src.tar.bz2 deleted file mode 100644 index a170d5d..0000000 --- a/xen-4.0.1-testing-src.tar.bz2 +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:b66dcbfa61d2aec1da5077a3f58935786c803a0cc1ed5d76174d2d71e3372c76 -size 23223686 diff --git a/xen-4.0.2-testing-src.tar.bz2 b/xen-4.0.2-testing-src.tar.bz2 new file mode 100644 index 0000000..7e2298e --- /dev/null +++ b/xen-4.0.2-testing-src.tar.bz2 @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:b404e22364957ac0dd036cb48c96bcb7b14d6a2db4756622e876eb88ca2d5fda +size 23223429 diff --git a/xen-api-auth.patch b/xen-api-auth.patch index 0af4804..01ca2ca 100644 --- a/xen-api-auth.patch +++ b/xen-api-auth.patch @@ -1,7 +1,7 @@ -Index: xen-4.0.1-testing/tools/python/xen/xend/XendAuthSessions.py +Index: xen-4.0.2-testing/tools/python/xen/xend/XendAuthSessions.py =================================================================== ---- xen-4.0.1-testing.orig/tools/python/xen/xend/XendAuthSessions.py -+++ xen-4.0.1-testing/tools/python/xen/xend/XendAuthSessions.py +--- xen-4.0.2-testing.orig/tools/python/xen/xend/XendAuthSessions.py ++++ xen-4.0.2-testing/tools/python/xen/xend/XendAuthSessions.py @@ -84,7 +84,7 @@ class XendAuthSessions: # if PAM doesn't exist, let's ignore it return False diff --git a/xen-changeset.diff b/xen-changeset.diff index e33760b..3caf83c 100644 --- a/xen-changeset.diff +++ b/xen-changeset.diff @@ -1,7 +1,7 @@ -Index: xen-4.0.1-testing/xen/Makefile +Index: xen-4.0.2-testing/xen/Makefile =================================================================== ---- xen-4.0.1-testing.orig/xen/Makefile -+++ xen-4.0.1-testing/xen/Makefile +--- xen-4.0.2-testing.orig/xen/Makefile ++++ xen-4.0.2-testing/xen/Makefile @@ -1,3 +1,4 @@ +export XEN_CHANGESET = unavailable # This is the correct place to edit the build version. diff --git a/xen-config.diff b/xen-config.diff index c10058b..f44d48b 100644 --- a/xen-config.diff +++ b/xen-config.diff @@ -1,8 +1,17 @@ -Index: xen-4.0.1-testing/Config.mk +Index: xen-4.0.2-testing/Config.mk =================================================================== ---- xen-4.0.1-testing.orig/Config.mk -+++ xen-4.0.1-testing/Config.mk -@@ -182,9 +182,9 @@ CONFIG_OCAML_XENSTORED ?= n +--- xen-4.0.2-testing.orig/Config.mk ++++ xen-4.0.2-testing/Config.mk +@@ -165,7 +165,7 @@ endif + # Specify which qemu-dm to use. This may be `ioemu' to use the old + # Mercurial in-tree version, or a local directory, or a git URL. + # CONFIG_QEMU ?= ../qemu-xen.git +-CONFIG_QEMU ?= $(QEMU_REMOTE) ++CONFIG_QEMU ?= ioemu-qemu-xen + + QEMU_TAG := xen-4.0.2-rc1 + #QEMU_TAG ?= 6d5b7ee3acfe8cc10681d2583a38398f7470ec2a +@@ -181,9 +181,9 @@ CONFIG_OCAML_XENSTORED ?= n # Optional components XENSTAT_XENTOP ?= y VTPM_TOOLS ?= n @@ -14,10 +23,10 @@ Index: xen-4.0.1-testing/Config.mk --include $(XEN_ROOT)/.config +#-include $(XEN_ROOT)/.config -Index: xen-4.0.1-testing/tools/libxc/Makefile +Index: xen-4.0.2-testing/tools/libxc/Makefile =================================================================== ---- xen-4.0.1-testing.orig/tools/libxc/Makefile -+++ xen-4.0.1-testing/tools/libxc/Makefile +--- xen-4.0.2-testing.orig/tools/libxc/Makefile ++++ xen-4.0.2-testing/tools/libxc/Makefile @@ -169,10 +169,10 @@ zlib-options = $(shell \ fi) | grep $(1)) endif diff --git a/xen-destdir.diff b/xen-destdir.diff index 97e5c7c..6ac2c59 100644 --- a/xen-destdir.diff +++ b/xen-destdir.diff @@ -1,7 +1,7 @@ -Index: xen-4.0.1-testing/docs/Makefile +Index: xen-4.0.2-testing/docs/Makefile =================================================================== ---- xen-4.0.1-testing.orig/docs/Makefile -+++ xen-4.0.1-testing/docs/Makefile +--- xen-4.0.2-testing.orig/docs/Makefile ++++ xen-4.0.2-testing/docs/Makefile @@ -90,7 +90,8 @@ install: all $(INSTALL_DIR) $(DESTDIR)$(MANDIR) cp -dR man1 $(DESTDIR)$(MANDIR) @@ -22,10 +22,10 @@ Index: xen-4.0.1-testing/docs/Makefile + ln -sf $*.html html.done/$*/index.html + rm -rf html/ + -Index: xen-4.0.1-testing/tools/security/Makefile +Index: xen-4.0.2-testing/tools/security/Makefile =================================================================== ---- xen-4.0.1-testing.orig/tools/security/Makefile -+++ xen-4.0.1-testing/tools/security/Makefile +--- xen-4.0.2-testing.orig/tools/security/Makefile ++++ xen-4.0.2-testing/tools/security/Makefile @@ -60,8 +60,8 @@ install: all $(ACM_CONFIG_FILE) $(INSTALL_DATA) $(ACM_INST_HTML) $(DESTDIR)$(ACM_SECGEN_HTMLDIR) $(INSTALL_DIR) $(DESTDIR)$(ACM_SECGEN_CGIDIR) @@ -37,10 +37,10 @@ Index: xen-4.0.1-testing/tools/security/Makefile else .PHONY: all all: -Index: xen-4.0.1-testing/tools/pygrub/Makefile +Index: xen-4.0.2-testing/tools/pygrub/Makefile =================================================================== ---- xen-4.0.1-testing.orig/tools/pygrub/Makefile -+++ xen-4.0.1-testing/tools/pygrub/Makefile +--- xen-4.0.2-testing.orig/tools/pygrub/Makefile ++++ xen-4.0.2-testing/tools/pygrub/Makefile @@ -11,7 +11,7 @@ build: .PHONY: install install: all @@ -50,10 +50,10 @@ Index: xen-4.0.1-testing/tools/pygrub/Makefile $(INSTALL_PYTHON_PROG) src/pygrub $(DESTDIR)/$(BINDIR)/pygrub $(INSTALL_DIR) $(DESTDIR)/var/run/xend/boot -Index: xen-4.0.1-testing/tools/python/Makefile +Index: xen-4.0.2-testing/tools/python/Makefile =================================================================== ---- xen-4.0.1-testing.orig/tools/python/Makefile -+++ xen-4.0.1-testing/tools/python/Makefile +--- xen-4.0.2-testing.orig/tools/python/Makefile ++++ xen-4.0.2-testing/tools/python/Makefile @@ -60,7 +60,7 @@ refresh-po: $(POTFILE) .PHONY: install install: install-messages install-dtd @@ -63,10 +63,10 @@ Index: xen-4.0.1-testing/tools/python/Makefile install-dtd: all $(INSTALL_DIR) $(DESTDIR)$(SHAREDIR)/xen -Index: xen-4.0.1-testing/tools/xenstore/Makefile +Index: xen-4.0.2-testing/tools/xenstore/Makefile =================================================================== ---- xen-4.0.1-testing.orig/tools/xenstore/Makefile -+++ xen-4.0.1-testing/tools/xenstore/Makefile +--- xen-4.0.2-testing.orig/tools/xenstore/Makefile ++++ xen-4.0.2-testing/tools/xenstore/Makefile @@ -10,6 +10,7 @@ CFLAGS += $(CFLAGS_libxenctrl) CLIENTS := xenstore-exists xenstore-list xenstore-read xenstore-rm xenstore-chmod @@ -121,10 +121,10 @@ Index: xen-4.0.1-testing/tools/xenstore/Makefile $(INSTALL_DIR) $(DESTDIR)$(LIBDIR) $(INSTALL_PROG) libxenstore.so.$(MAJOR).$(MINOR) $(DESTDIR)$(LIBDIR) ln -sf libxenstore.so.$(MAJOR).$(MINOR) $(DESTDIR)$(LIBDIR)/libxenstore.so.$(MAJOR) -Index: xen-4.0.1-testing/tools/hotplug/Linux/Makefile +Index: xen-4.0.2-testing/tools/hotplug/Linux/Makefile =================================================================== ---- xen-4.0.1-testing.orig/tools/hotplug/Linux/Makefile -+++ xen-4.0.1-testing/tools/hotplug/Linux/Makefile +--- xen-4.0.2-testing.orig/tools/hotplug/Linux/Makefile ++++ xen-4.0.2-testing/tools/hotplug/Linux/Makefile @@ -38,18 +38,6 @@ endif UDEV_RULES_DIR = $(CONFIG_DIR)/udev UDEV_RULES = xen-backend.rules xend.rules diff --git a/xen-disable-qemu-monitor.diff b/xen-disable-qemu-monitor.diff index 9082cc0..557965d 100644 --- a/xen-disable-qemu-monitor.diff +++ b/xen-disable-qemu-monitor.diff @@ -5,10 +5,10 @@ the "sendkey" command, among other useful things), remove all console commands that can read/write dom0's state. -Index: xen-4.0.1-testing/tools/ioemu-qemu-xen/monitor.c +Index: xen-4.0.2-testing/tools/ioemu-qemu-xen/monitor.c =================================================================== ---- xen-4.0.1-testing.orig/tools/ioemu-qemu-xen/monitor.c -+++ xen-4.0.1-testing/tools/ioemu-qemu-xen/monitor.c +--- xen-4.0.2-testing.orig/tools/ioemu-qemu-xen/monitor.c ++++ xen-4.0.2-testing/tools/ioemu-qemu-xen/monitor.c @@ -1497,6 +1497,7 @@ static const term_cmd_t term_cmds[] = { "device|all", "commit changes to the disk images (if -snapshot is used) or backing files" }, { "info", "s?", do_info, diff --git a/xen-domUloader.diff b/xen-domUloader.diff index ed51a5f..af9e429 100644 --- a/xen-domUloader.diff +++ b/xen-domUloader.diff @@ -1,7 +1,7 @@ -Index: xen-4.0.1-testing/tools/python/xen/util/blkif.py +Index: xen-4.0.2-testing/tools/python/xen/util/blkif.py =================================================================== ---- xen-4.0.1-testing.orig/tools/python/xen/util/blkif.py -+++ xen-4.0.1-testing/tools/python/xen/util/blkif.py +--- xen-4.0.2-testing.orig/tools/python/xen/util/blkif.py ++++ xen-4.0.2-testing/tools/python/xen/util/blkif.py @@ -71,8 +71,8 @@ def blkdev_segment(name): 'type' : 'Disk' } return val @@ -35,10 +35,10 @@ Index: xen-4.0.1-testing/tools/python/xen/util/blkif.py def mount_mode(name): mode = None -Index: xen-4.0.1-testing/tools/python/xen/xend/server/DevController.py +Index: xen-4.0.2-testing/tools/python/xen/xend/server/DevController.py =================================================================== ---- xen-4.0.1-testing.orig/tools/python/xen/xend/server/DevController.py -+++ xen-4.0.1-testing/tools/python/xen/xend/server/DevController.py +--- xen-4.0.2-testing.orig/tools/python/xen/xend/server/DevController.py ++++ xen-4.0.2-testing/tools/python/xen/xend/server/DevController.py @@ -592,6 +592,31 @@ class DevController: return (Missing, None) @@ -71,10 +71,10 @@ Index: xen-4.0.1-testing/tools/python/xen/xend/server/DevController.py def backendPath(self, backdom, devid): """Construct backend path given the backend domain and device id. -Index: xen-4.0.1-testing/tools/python/xen/xend/XendBootloader.py +Index: xen-4.0.2-testing/tools/python/xen/xend/XendBootloader.py =================================================================== ---- xen-4.0.1-testing.orig/tools/python/xen/xend/XendBootloader.py -+++ xen-4.0.1-testing/tools/python/xen/xend/XendBootloader.py +--- xen-4.0.2-testing.orig/tools/python/xen/xend/XendBootloader.py ++++ xen-4.0.2-testing/tools/python/xen/xend/XendBootloader.py @@ -12,7 +12,7 @@ # Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. # @@ -112,10 +112,10 @@ Index: xen-4.0.1-testing/tools/python/xen/xend/XendBootloader.py log.error(msg) raise VmError(msg) -Index: xen-4.0.1-testing/tools/python/xen/xend/XendDomainInfo.py +Index: xen-4.0.2-testing/tools/python/xen/xend/XendDomainInfo.py =================================================================== ---- xen-4.0.1-testing.orig/tools/python/xen/xend/XendDomainInfo.py -+++ xen-4.0.1-testing/tools/python/xen/xend/XendDomainInfo.py +--- xen-4.0.2-testing.orig/tools/python/xen/xend/XendDomainInfo.py ++++ xen-4.0.2-testing/tools/python/xen/xend/XendDomainInfo.py @@ -37,7 +37,7 @@ from types import StringTypes import xen.lowlevel.xc @@ -145,12 +145,13 @@ Index: xen-4.0.1-testing/tools/python/xen/xend/XendDomainInfo.py # If this is a drbd volume, check if we need to activate it if disk.find(":") != -1: -@@ -3245,8 +3249,17 @@ class XendDomainInfo: +@@ -3245,9 +3249,18 @@ class XendDomainInfo: if state == 'Secondary': os.system('/sbin/drbdadm primary ' + diskname) - taptype = blkdev_uname_to_taptype(disk) - mounted = devtype in ['tap', 'tap2'] and taptype != 'aio' and taptype != 'sync' and not os.stat(fn).st_rdev + mounted_vbd_uuid = 0 + def _shouldMount(types): + if types[0] in ('file', 'phy'): + return False @@ -165,26 +166,28 @@ Index: xen-4.0.1-testing/tools/python/xen/xend/XendDomainInfo.py if mounted: # This is a file, not a device. pygrub can cope with a # file if it's raw, but if it's QCOW or other such formats -@@ -3262,7 +3275,8 @@ class XendDomainInfo: - +@@ -3264,7 +3277,8 @@ class XendDomainInfo: from xen.xend import XendDomain dom0 = XendDomain.instance().privilegedDomain() -- dom0._waitForDeviceUUID(dom0.create_vbd(vbd, disk)) + mounted_vbd_uuid = dom0.create_vbd(vbd, disk); +- dom0._waitForDeviceUUID(mounted_vbd_uuid) + vbd_uuid = dom0.create_vbd(vbd, disk) + dom0._waitForDeviceFrontUUID(vbd_uuid) fn = BOOTLOADER_LOOPBACK_DEVICE try: -@@ -3272,8 +3286,10 @@ class XendDomainInfo: +@@ -3274,10 +3288,10 @@ class XendDomainInfo: if mounted: log.info("Unmounting %s from %s." % (fn, BOOTLOADER_LOOPBACK_DEVICE)) +- _, vbd_info = dom0.info['devices'][mounted_vbd_uuid] +- dom0.destroyDevice(dom0.getBlockDeviceClass(vbd_info['devid']), +- BOOTLOADER_LOOPBACK_DEVICE, force = True) - -- dom0.destroyDevice('tap', BOOTLOADER_LOOPBACK_DEVICE) + if devtype in ['tap', 'tap2']: + dom0.destroyDevice('tap', BOOTLOADER_LOOPBACK_DEVICE, rm_cfg = True) + else: + dom0.destroyDevice('vbd', BOOTLOADER_LOOPBACK_DEVICE, rm_cfg = True) - if blcfg is None: msg = "Had a bootloader specified, but can't find disk" + log.error(msg) diff --git a/xen-extra-fixes.patch b/xen-extra-fixes.patch index 0bb6d99..6a1410e 100644 --- a/xen-extra-fixes.patch +++ b/xen-extra-fixes.patch @@ -1,7 +1,7 @@ -Index: xen-4.0.1-testing/tools/ioemu-qemu-xen/block-vvfat.c +Index: xen-4.0.2-testing/tools/ioemu-qemu-xen/block-vvfat.c =================================================================== ---- xen-4.0.1-testing.orig/tools/ioemu-qemu-xen/block-vvfat.c -+++ xen-4.0.1-testing/tools/ioemu-qemu-xen/block-vvfat.c +--- xen-4.0.2-testing.orig/tools/ioemu-qemu-xen/block-vvfat.c ++++ xen-4.0.2-testing/tools/ioemu-qemu-xen/block-vvfat.c @@ -865,7 +865,8 @@ static int init_directories(BDRVVVFATSta { direntry_t* entry=array_get_next(&(s->directory)); diff --git a/xen-fixme-doc.diff b/xen-fixme-doc.diff index a5fc801..4815337 100644 --- a/xen-fixme-doc.diff +++ b/xen-fixme-doc.diff @@ -1,7 +1,7 @@ -Index: xen-4.0.1-testing/docs/man/xmdomain.cfg.pod.5 +Index: xen-4.0.2-testing/docs/man/xmdomain.cfg.pod.5 =================================================================== ---- xen-4.0.1-testing.orig/docs/man/xmdomain.cfg.pod.5 -+++ xen-4.0.1-testing/docs/man/xmdomain.cfg.pod.5 +--- xen-4.0.2-testing.orig/docs/man/xmdomain.cfg.pod.5 ++++ xen-4.0.2-testing/docs/man/xmdomain.cfg.pod.5 @@ -335,16 +335,10 @@ at hda1, which is the root filesystem. =item I @@ -19,10 +19,10 @@ Index: xen-4.0.1-testing/docs/man/xmdomain.cfg.pod.5 =back =head1 SEE ALSO -Index: xen-4.0.1-testing/docs/man/xm.pod.1 +Index: xen-4.0.2-testing/docs/man/xm.pod.1 =================================================================== ---- xen-4.0.1-testing.orig/docs/man/xm.pod.1 -+++ xen-4.0.1-testing/docs/man/xm.pod.1 +--- xen-4.0.2-testing.orig/docs/man/xm.pod.1 ++++ xen-4.0.2-testing/docs/man/xm.pod.1 @@ -297,7 +297,8 @@ scheduling by the Xen hypervisor. =item B diff --git a/xen-hvm-default-bridge.diff b/xen-hvm-default-bridge.diff index 7d1be40..60a4857 100644 --- a/xen-hvm-default-bridge.diff +++ b/xen-hvm-default-bridge.diff @@ -1,7 +1,7 @@ -Index: xen-4.0.1-testing/tools/ioemu-qemu-xen/net.h +Index: xen-4.0.2-testing/tools/ioemu-qemu-xen/net.h =================================================================== ---- xen-4.0.1-testing.orig/tools/ioemu-qemu-xen/net.h -+++ xen-4.0.1-testing/tools/ioemu-qemu-xen/net.h +--- xen-4.0.2-testing.orig/tools/ioemu-qemu-xen/net.h ++++ xen-4.0.2-testing/tools/ioemu-qemu-xen/net.h @@ -107,8 +107,8 @@ void net_host_device_add(const char *dev void net_host_device_remove(int vlan_id, const char *device); @@ -13,10 +13,10 @@ Index: xen-4.0.1-testing/tools/ioemu-qemu-xen/net.h #endif #ifdef __sun__ #define SMBD_COMMAND "/usr/sfw/sbin/smbd" -Index: xen-4.0.1-testing/tools/ioemu-qemu-xen/net.c +Index: xen-4.0.2-testing/tools/ioemu-qemu-xen/net.c =================================================================== ---- xen-4.0.1-testing.orig/tools/ioemu-qemu-xen/net.c -+++ xen-4.0.1-testing/tools/ioemu-qemu-xen/net.c +--- xen-4.0.2-testing.orig/tools/ioemu-qemu-xen/net.c ++++ xen-4.0.2-testing/tools/ioemu-qemu-xen/net.c @@ -1759,9 +1759,10 @@ int net_client_init(const char *device, } if (get_param_value(script_arg, sizeof(script_arg), "scriptarg", p) == 0 && @@ -30,10 +30,10 @@ Index: xen-4.0.1-testing/tools/ioemu-qemu-xen/net.c } } else #endif -Index: xen-4.0.1-testing/tools/python/xen/xend/image.py +Index: xen-4.0.2-testing/tools/python/xen/xend/image.py =================================================================== ---- xen-4.0.1-testing.orig/tools/python/xen/xend/image.py -+++ xen-4.0.1-testing/tools/python/xen/xend/image.py +--- xen-4.0.2-testing.orig/tools/python/xen/xend/image.py ++++ xen-4.0.2-testing/tools/python/xen/xend/image.py @@ -912,11 +912,13 @@ class HVMImageHandler(ImageHandler): mac = devinfo.get('mac') if mac is None: @@ -51,10 +51,10 @@ Index: xen-4.0.1-testing/tools/python/xen/xend/image.py vifname = devinfo.get('vifname') if vifname: vifname = "tap-" + vifname -Index: xen-4.0.1-testing/tools/ioemu-qemu-xen/i386-dm/qemu-ifup-Linux +Index: xen-4.0.2-testing/tools/ioemu-qemu-xen/i386-dm/qemu-ifup-Linux =================================================================== ---- xen-4.0.1-testing.orig/tools/ioemu-qemu-xen/i386-dm/qemu-ifup-Linux -+++ xen-4.0.1-testing/tools/ioemu-qemu-xen/i386-dm/qemu-ifup-Linux +--- xen-4.0.2-testing.orig/tools/ioemu-qemu-xen/i386-dm/qemu-ifup-Linux ++++ xen-4.0.2-testing/tools/ioemu-qemu-xen/i386-dm/qemu-ifup-Linux @@ -1,36 +1,22 @@ #!/bin/sh @@ -103,4 +103,4 @@ Index: xen-4.0.1-testing/tools/ioemu-qemu-xen/i386-dm/qemu-ifup-Linux + exit 0 fi - ifconfig $1 0.0.0.0 up + # We have to change mac address of tap device to not change bridge mac diff --git a/xen-hvm-default-pae.diff b/xen-hvm-default-pae.diff index d6220a3..2e1c6dc 100644 --- a/xen-hvm-default-pae.diff +++ b/xen-hvm-default-pae.diff @@ -1,9 +1,9 @@ PAE must be on for 64-on-64 to work at all. -Index: xen-4.0.1-testing/tools/python/xen/xend/image.py +Index: xen-4.0.2-testing/tools/python/xen/xend/image.py =================================================================== ---- xen-4.0.1-testing.orig/tools/python/xen/xend/image.py -+++ xen-4.0.1-testing/tools/python/xen/xend/image.py +--- xen-4.0.2-testing.orig/tools/python/xen/xend/image.py ++++ xen-4.0.2-testing/tools/python/xen/xend/image.py @@ -1030,7 +1030,7 @@ class X86_HVM_ImageHandler(HVMImageHandl def configure(self, vmConfig): diff --git a/xen-ioemu-hvm-pv-support.diff b/xen-ioemu-hvm-pv-support.diff index 419cd16..d2fe8bf 100644 --- a/xen-ioemu-hvm-pv-support.diff +++ b/xen-ioemu-hvm-pv-support.diff @@ -1,7 +1,7 @@ -Index: xen-4.0.1-testing/tools/ioemu-qemu-xen/hw/xen_platform.c +Index: xen-4.0.2-testing/tools/ioemu-qemu-xen/hw/xen_platform.c =================================================================== ---- xen-4.0.1-testing.orig/tools/ioemu-qemu-xen/hw/xen_platform.c -+++ xen-4.0.1-testing/tools/ioemu-qemu-xen/hw/xen_platform.c +--- xen-4.0.2-testing.orig/tools/ioemu-qemu-xen/hw/xen_platform.c ++++ xen-4.0.2-testing/tools/ioemu-qemu-xen/hw/xen_platform.c @@ -30,6 +30,8 @@ #include "qemu-xen.h" #include "net.h" diff --git a/xen-max-free-mem.diff b/xen-max-free-mem.diff index 849f54f..e8186d9 100644 --- a/xen-max-free-mem.diff +++ b/xen-max-free-mem.diff @@ -1,7 +1,7 @@ -Index: xen-4.0.1-testing/tools/python/xen/xend/XendNode.py +Index: xen-4.0.2-testing/tools/python/xen/xend/XendNode.py =================================================================== ---- xen-4.0.1-testing.orig/tools/python/xen/xend/XendNode.py -+++ xen-4.0.1-testing/tools/python/xen/xend/XendNode.py +--- xen-4.0.2-testing.orig/tools/python/xen/xend/XendNode.py ++++ xen-4.0.2-testing/tools/python/xen/xend/XendNode.py @@ -916,15 +916,39 @@ class XendNode: info['cpu_mhz'] = info['cpu_khz'] / 1000 @@ -57,10 +57,10 @@ Index: xen-4.0.1-testing/tools/python/xen/xend/XendNode.py 'node_to_cpu', 'node_to_memory', 'node_to_dma32_mem', -Index: xen-4.0.1-testing/tools/python/xen/xend/balloon.py +Index: xen-4.0.2-testing/tools/python/xen/xend/balloon.py =================================================================== ---- xen-4.0.1-testing.orig/tools/python/xen/xend/balloon.py -+++ xen-4.0.1-testing/tools/python/xen/xend/balloon.py +--- xen-4.0.2-testing.orig/tools/python/xen/xend/balloon.py ++++ xen-4.0.2-testing/tools/python/xen/xend/balloon.py @@ -43,6 +43,8 @@ SLEEP_TIME_GROWTH = 0.1 # label actually shown in the PROC_XEN_BALLOON file. #labels = { 'current' : 'Current allocation', @@ -94,10 +94,10 @@ Index: xen-4.0.1-testing/tools/python/xen/xend/balloon.py def free(need_mem, dominfo): """Balloon out memory from the privileged domain so that there is the specified required amount (in KiB) free. -Index: xen-4.0.1-testing/tools/python/xen/xend/XendDomainInfo.py +Index: xen-4.0.2-testing/tools/python/xen/xend/XendDomainInfo.py =================================================================== ---- xen-4.0.1-testing.orig/tools/python/xen/xend/XendDomainInfo.py -+++ xen-4.0.1-testing/tools/python/xen/xend/XendDomainInfo.py +--- xen-4.0.2-testing.orig/tools/python/xen/xend/XendDomainInfo.py ++++ xen-4.0.2-testing/tools/python/xen/xend/XendDomainInfo.py @@ -1473,6 +1473,27 @@ class XendDomainInfo: pci_conf = self.info['devices'][dev_uuid][1] return map(pci_dict_to_bdf_str, pci_conf['devs']) @@ -126,10 +126,10 @@ Index: xen-4.0.1-testing/tools/python/xen/xend/XendDomainInfo.py def setMemoryTarget(self, target): """Set the memory target of this domain. @param target: In MiB. -Index: xen-4.0.1-testing/tools/python/xen/xend/server/SrvDomain.py +Index: xen-4.0.2-testing/tools/python/xen/xend/server/SrvDomain.py =================================================================== ---- xen-4.0.1-testing.orig/tools/python/xen/xend/server/SrvDomain.py -+++ xen-4.0.1-testing/tools/python/xen/xend/server/SrvDomain.py +--- xen-4.0.2-testing.orig/tools/python/xen/xend/server/SrvDomain.py ++++ xen-4.0.2-testing/tools/python/xen/xend/server/SrvDomain.py @@ -173,7 +173,7 @@ class SrvDomain(SrvDir): diff --git a/xen-minimum-restart-time.patch b/xen-minimum-restart-time.patch index ade76c1..012a1d7 100644 --- a/xen-minimum-restart-time.patch +++ b/xen-minimum-restart-time.patch @@ -1,9 +1,9 @@ References: bnc#661298 -Index: xen-4.0.1-testing/tools/python/xen/xend/XendConstants.py +Index: xen-4.0.2-testing/tools/python/xen/xend/XendConstants.py =================================================================== ---- xen-4.0.1-testing.orig/tools/python/xen/xend/XendConstants.py -+++ xen-4.0.1-testing/tools/python/xen/xend/XendConstants.py +--- xen-4.0.2-testing.orig/tools/python/xen/xend/XendConstants.py ++++ xen-4.0.2-testing/tools/python/xen/xend/XendConstants.py @@ -92,7 +92,7 @@ DOM_STATES_OLD = [ SHUTDOWN_TIMEOUT = (60.0 * 5) diff --git a/xen-no-dummy-nfs-ip.diff b/xen-no-dummy-nfs-ip.diff index 23e925f..60e65eb 100644 --- a/xen-no-dummy-nfs-ip.diff +++ b/xen-no-dummy-nfs-ip.diff @@ -1,7 +1,7 @@ -Index: xen-4.0.1-testing/tools/python/xen/xm/create.py +Index: xen-4.0.2-testing/tools/python/xen/xm/create.py =================================================================== ---- xen-4.0.1-testing.orig/tools/python/xen/xm/create.py -+++ xen-4.0.1-testing/tools/python/xen/xm/create.py +--- xen-4.0.2-testing.orig/tools/python/xen/xm/create.py ++++ xen-4.0.2-testing/tools/python/xen/xm/create.py @@ -1331,9 +1331,8 @@ def preprocess_access_control(vals): def preprocess_ip(vals): diff --git a/xen-paths.diff b/xen-paths.diff index 2950c28..17b18a5 100644 --- a/xen-paths.diff +++ b/xen-paths.diff @@ -1,7 +1,7 @@ -Index: xen-4.0.1-testing/tools/python/xen/xm/create.py +Index: xen-4.0.2-testing/tools/python/xen/xm/create.py =================================================================== ---- xen-4.0.1-testing.orig/tools/python/xen/xm/create.py -+++ xen-4.0.1-testing/tools/python/xen/xm/create.py +--- xen-4.0.2-testing.orig/tools/python/xen/xm/create.py ++++ xen-4.0.2-testing/tools/python/xen/xm/create.py @@ -73,7 +73,7 @@ gopts.opt('quiet', short='q', use="Quiet.") @@ -11,10 +11,10 @@ Index: xen-4.0.1-testing/tools/python/xen/xm/create.py use="Search path for configuration scripts. " "The value of PATH is a colon-separated directory list.") -Index: xen-4.0.1-testing/docs/man/xm.pod.1 +Index: xen-4.0.2-testing/docs/man/xm.pod.1 =================================================================== ---- xen-4.0.1-testing.orig/docs/man/xm.pod.1 -+++ xen-4.0.1-testing/docs/man/xm.pod.1 +--- xen-4.0.2-testing.orig/docs/man/xm.pod.1 ++++ xen-4.0.2-testing/docs/man/xm.pod.1 @@ -77,7 +77,7 @@ in the config file. See L format, and possible options used in either the configfile or for I. @@ -33,10 +33,10 @@ Index: xen-4.0.1-testing/docs/man/xm.pod.1 soon as it is run. =item I -Index: xen-4.0.1-testing/docs/man/xmdomain.cfg.pod.5 +Index: xen-4.0.2-testing/docs/man/xmdomain.cfg.pod.5 =================================================================== ---- xen-4.0.1-testing.orig/docs/man/xmdomain.cfg.pod.5 -+++ xen-4.0.1-testing/docs/man/xmdomain.cfg.pod.5 +--- xen-4.0.2-testing.orig/docs/man/xmdomain.cfg.pod.5 ++++ xen-4.0.2-testing/docs/man/xmdomain.cfg.pod.5 @@ -4,9 +4,9 @@ xmdomain.cfg - xm domain config file for =head1 SYNOPSIS diff --git a/xen-qemu-iscsi-fix.patch b/xen-qemu-iscsi-fix.patch index 6c713ad..f4fbde6 100644 --- a/xen-qemu-iscsi-fix.patch +++ b/xen-qemu-iscsi-fix.patch @@ -1,7 +1,7 @@ -Index: xen-4.0.1-testing/tools/ioemu-qemu-xen/xenstore.c +Index: xen-4.0.2-testing/tools/ioemu-qemu-xen/xenstore.c =================================================================== ---- xen-4.0.1-testing.orig/tools/ioemu-qemu-xen/xenstore.c -+++ xen-4.0.1-testing/tools/ioemu-qemu-xen/xenstore.c +--- xen-4.0.2-testing.orig/tools/ioemu-qemu-xen/xenstore.c ++++ xen-4.0.2-testing/tools/ioemu-qemu-xen/xenstore.c @@ -399,7 +399,7 @@ void xenstore_parse_domain_config(int hv char *buf = NULL; char *fpath = NULL, *bpath = NULL, *btype = NULL, diff --git a/xen-rpmoptflags.diff b/xen-rpmoptflags.diff index e55b663..aee3a6e 100644 --- a/xen-rpmoptflags.diff +++ b/xen-rpmoptflags.diff @@ -1,7 +1,7 @@ -Index: xen-4.0.1-testing/tools/blktap/drivers/Makefile +Index: xen-4.0.2-testing/tools/blktap/drivers/Makefile =================================================================== ---- xen-4.0.1-testing.orig/tools/blktap/drivers/Makefile -+++ xen-4.0.1-testing/tools/blktap/drivers/Makefile +--- xen-4.0.2-testing.orig/tools/blktap/drivers/Makefile ++++ xen-4.0.2-testing/tools/blktap/drivers/Makefile @@ -6,7 +6,6 @@ QCOW_UTIL = img2qcow qcow2raw qcow-cr LIBAIO_DIR = ../../libaio/src MEMSHR_DIR = ../../memshr @@ -10,10 +10,10 @@ Index: xen-4.0.1-testing/tools/blktap/drivers/Makefile CFLAGS += -Wno-unused CFLAGS += -I../lib CFLAGS += $(CFLAGS_libxenctrl) -Index: xen-4.0.1-testing/Config.mk +Index: xen-4.0.2-testing/Config.mk =================================================================== ---- xen-4.0.1-testing.orig/Config.mk -+++ xen-4.0.1-testing/Config.mk +--- xen-4.0.2-testing.orig/Config.mk ++++ xen-4.0.2-testing/Config.mk @@ -14,7 +14,7 @@ SHELL ?= /bin/sh # Tools to run on system hosting the build diff --git a/xen-warnings.diff b/xen-warnings.diff index 5b60152..5b1ce3b 100644 --- a/xen-warnings.diff +++ b/xen-warnings.diff @@ -1,7 +1,7 @@ -Index: xen-4.0.1-testing/tools/misc/miniterm/miniterm.c +Index: xen-4.0.2-testing/tools/misc/miniterm/miniterm.c =================================================================== ---- xen-4.0.1-testing.orig/tools/misc/miniterm/miniterm.c -+++ xen-4.0.1-testing/tools/misc/miniterm/miniterm.c +--- xen-4.0.2-testing.orig/tools/misc/miniterm/miniterm.c ++++ xen-4.0.2-testing/tools/misc/miniterm/miniterm.c @@ -157,7 +157,7 @@ int main(int argc, char **argv) case 0: close(1); /* stdout not needed */ @@ -35,10 +35,10 @@ Index: xen-4.0.1-testing/tools/misc/miniterm/miniterm.c break; } -Index: xen-4.0.1-testing/tools/libxc/xc_dom_elfloader.c +Index: xen-4.0.2-testing/tools/libxc/xc_dom_elfloader.c =================================================================== ---- xen-4.0.1-testing.orig/tools/libxc/xc_dom_elfloader.c -+++ xen-4.0.1-testing/tools/libxc/xc_dom_elfloader.c +--- xen-4.0.2-testing.orig/tools/libxc/xc_dom_elfloader.c ++++ xen-4.0.2-testing/tools/libxc/xc_dom_elfloader.c @@ -193,8 +193,9 @@ static int xc_dom_load_elf_symtab(struct if ( load ) @@ -50,10 +50,10 @@ Index: xen-4.0.1-testing/tools/libxc/xc_dom_elfloader.c elf_section_start(elf, shdr2), size); } -Index: xen-4.0.1-testing/tools/xenstore/Makefile +Index: xen-4.0.2-testing/tools/xenstore/Makefile =================================================================== ---- xen-4.0.1-testing.orig/tools/xenstore/Makefile -+++ xen-4.0.1-testing/tools/xenstore/Makefile +--- xen-4.0.2-testing.orig/tools/xenstore/Makefile ++++ xen-4.0.2-testing/tools/xenstore/Makefile @@ -4,7 +4,7 @@ include $(XEN_ROOT)/tools/Rules.mk MAJOR = 3.0 MINOR = 0 @@ -63,10 +63,10 @@ Index: xen-4.0.1-testing/tools/xenstore/Makefile CFLAGS += -I. CFLAGS += $(CFLAGS_libxenctrl) -Index: xen-4.0.1-testing/tools/xenstore/xenstored_core.c +Index: xen-4.0.2-testing/tools/xenstore/xenstored_core.c =================================================================== ---- xen-4.0.1-testing.orig/tools/xenstore/xenstored_core.c -+++ xen-4.0.1-testing/tools/xenstore/xenstored_core.c +--- xen-4.0.2-testing.orig/tools/xenstore/xenstored_core.c ++++ xen-4.0.2-testing/tools/xenstore/xenstored_core.c @@ -77,8 +77,8 @@ static void check_store(void); int quota_nb_entry_per_domain = 1000; @@ -91,10 +91,10 @@ Index: xen-4.0.1-testing/tools/xenstore/xenstored_core.c break; case 'T': tracefile = optarg; -Index: xen-4.0.1-testing/tools/xenstore/xenstored_domain.c +Index: xen-4.0.2-testing/tools/xenstore/xenstored_domain.c =================================================================== ---- xen-4.0.1-testing.orig/tools/xenstore/xenstored_domain.c -+++ xen-4.0.1-testing/tools/xenstore/xenstored_domain.c +--- xen-4.0.2-testing.orig/tools/xenstore/xenstored_domain.c ++++ xen-4.0.2-testing/tools/xenstore/xenstored_domain.c @@ -212,7 +212,7 @@ void handle_event(void) { evtchn_port_t port; @@ -113,10 +113,10 @@ Index: xen-4.0.1-testing/tools/xenstore/xenstored_domain.c return -1; dom0 = new_domain(NULL, 0, port); -Index: xen-4.0.1-testing/tools/xenstore/xenstored_transaction.c +Index: xen-4.0.2-testing/tools/xenstore/xenstored_transaction.c =================================================================== ---- xen-4.0.1-testing.orig/tools/xenstore/xenstored_transaction.c -+++ xen-4.0.1-testing/tools/xenstore/xenstored_transaction.c +--- xen-4.0.2-testing.orig/tools/xenstore/xenstored_transaction.c ++++ xen-4.0.2-testing/tools/xenstore/xenstored_transaction.c @@ -82,7 +82,7 @@ struct transaction struct list_head changed_domains; }; @@ -126,10 +126,10 @@ Index: xen-4.0.1-testing/tools/xenstore/xenstored_transaction.c static unsigned int generation; /* Return tdb context to use for this connection. */ -Index: xen-4.0.1-testing/tools/xenstore/xenstore_client.c +Index: xen-4.0.2-testing/tools/xenstore/xenstore_client.c =================================================================== ---- xen-4.0.1-testing.orig/tools/xenstore/xenstore_client.c -+++ xen-4.0.1-testing/tools/xenstore/xenstore_client.c +--- xen-4.0.2-testing.orig/tools/xenstore/xenstore_client.c ++++ xen-4.0.2-testing/tools/xenstore/xenstore_client.c @@ -251,7 +251,7 @@ do_chmod(char *path, struct xs_permissio char **xsval = xs_directory(xsh, xth, path, &xsval_n); @@ -139,10 +139,10 @@ Index: xen-4.0.1-testing/tools/xenstore/xenstore_client.c for (i = 0; i < xsval_n; i++) { snprintf(buf, MAX_PATH_LEN, "%s/%s", path, xsval[i]); -Index: xen-4.0.1-testing/tools/libxen/src/xen_common.c +Index: xen-4.0.2-testing/tools/libxen/src/xen_common.c =================================================================== ---- xen-4.0.1-testing.orig/tools/libxen/src/xen_common.c -+++ xen-4.0.1-testing/tools/libxen/src/xen_common.c +--- xen-4.0.2-testing.orig/tools/libxen/src/xen_common.c ++++ xen-4.0.2-testing/tools/libxen/src/xen_common.c @@ -1057,6 +1057,8 @@ static size_t size_of_member(const abstr default: assert(false); @@ -161,10 +161,10 @@ Index: xen-4.0.1-testing/tools/libxen/src/xen_common.c } -Index: xen-4.0.1-testing/tools/blktap2/drivers/block-remus.c +Index: xen-4.0.2-testing/tools/blktap2/drivers/block-remus.c =================================================================== ---- xen-4.0.1-testing.orig/tools/blktap2/drivers/block-remus.c -+++ xen-4.0.1-testing/tools/blktap2/drivers/block-remus.c +--- xen-4.0.2-testing.orig/tools/blktap2/drivers/block-remus.c ++++ xen-4.0.2-testing/tools/blktap2/drivers/block-remus.c @@ -1579,7 +1579,7 @@ static int tdremus_open(td_driver_t *dri td_flag_t flags) { @@ -174,10 +174,10 @@ Index: xen-4.0.1-testing/tools/blktap2/drivers/block-remus.c RPRINTF("opening %s\n", name); -Index: xen-4.0.1-testing/tools/blktap/lib/blktaplib.h +Index: xen-4.0.2-testing/tools/blktap/lib/blktaplib.h =================================================================== ---- xen-4.0.1-testing.orig/tools/blktap/lib/blktaplib.h -+++ xen-4.0.1-testing/tools/blktap/lib/blktaplib.h +--- xen-4.0.2-testing.orig/tools/blktap/lib/blktaplib.h ++++ xen-4.0.2-testing/tools/blktap/lib/blktaplib.h @@ -196,6 +196,7 @@ typedef struct msg_pid { } msg_pid_t; @@ -186,10 +186,10 @@ Index: xen-4.0.1-testing/tools/blktap/lib/blktaplib.h #define WRITE 1 /*Control Messages between manager and tapdev*/ -Index: xen-4.0.1-testing/tools/blktap2/include/blktaplib.h +Index: xen-4.0.2-testing/tools/blktap2/include/blktaplib.h =================================================================== ---- xen-4.0.1-testing.orig/tools/blktap2/include/blktaplib.h -+++ xen-4.0.1-testing/tools/blktap2/include/blktaplib.h +--- xen-4.0.2-testing.orig/tools/blktap2/include/blktaplib.h ++++ xen-4.0.2-testing/tools/blktap2/include/blktaplib.h @@ -198,6 +198,7 @@ typedef struct msg_lock { } msg_lock_t; diff --git a/xen-xm-top-needs-root.diff b/xen-xm-top-needs-root.diff index b73f714..f451502 100644 --- a/xen-xm-top-needs-root.diff +++ b/xen-xm-top-needs-root.diff @@ -1,10 +1,10 @@ From: Charles Coffing Upstream: no -Index: xen-4.0.1-testing/tools/python/xen/xm/main.py +Index: xen-4.0.2-testing/tools/python/xen/xm/main.py =================================================================== ---- xen-4.0.1-testing.orig/tools/python/xen/xm/main.py -+++ xen-4.0.1-testing/tools/python/xen/xm/main.py +--- xen-4.0.2-testing.orig/tools/python/xen/xm/main.py ++++ xen-4.0.2-testing/tools/python/xen/xm/main.py @@ -2054,6 +2054,10 @@ def xm_debug_keys(args): def xm_top(args): arg_check(args, "top", 0) diff --git a/xen-xmexample-vti.diff b/xen-xmexample-vti.diff index 7634752..43a81e5 100644 --- a/xen-xmexample-vti.diff +++ b/xen-xmexample-vti.diff @@ -1,7 +1,7 @@ -Index: xen-4.0.1-testing/tools/examples/Makefile +Index: xen-4.0.2-testing/tools/examples/Makefile =================================================================== ---- xen-4.0.1-testing.orig/tools/examples/Makefile -+++ xen-4.0.1-testing/tools/examples/Makefile +--- xen-4.0.2-testing.orig/tools/examples/Makefile ++++ xen-4.0.2-testing/tools/examples/Makefile @@ -18,7 +18,6 @@ XEN_CONFIGS += xmexample.hvm XEN_CONFIGS += xmexample.hvm-stubdom XEN_CONFIGS += xmexample.pv-grub diff --git a/xen-xmexample.diff b/xen-xmexample.diff index 496ad66..947c63d 100644 --- a/xen-xmexample.diff +++ b/xen-xmexample.diff @@ -1,9 +1,9 @@ Change various example paths in the config files to match SUSE. -Index: xen-4.0.1-testing/tools/examples/xmexample1 +Index: xen-4.0.2-testing/tools/examples/xmexample1 =================================================================== ---- xen-4.0.1-testing.orig/tools/examples/xmexample1 -+++ xen-4.0.1-testing/tools/examples/xmexample1 +--- xen-4.0.2-testing.orig/tools/examples/xmexample1 ++++ xen-4.0.2-testing/tools/examples/xmexample1 @@ -7,11 +7,13 @@ #============================================================================ @@ -43,10 +43,10 @@ Index: xen-4.0.1-testing/tools/examples/xmexample1 #---------------------------------------------------------------------------- # Configure the behaviour when a domain exits. There are three 'reasons' -Index: xen-4.0.1-testing/tools/examples/xmexample2 +Index: xen-4.0.2-testing/tools/examples/xmexample2 =================================================================== ---- xen-4.0.1-testing.orig/tools/examples/xmexample2 -+++ xen-4.0.1-testing/tools/examples/xmexample2 +--- xen-4.0.2-testing.orig/tools/examples/xmexample2 ++++ xen-4.0.2-testing/tools/examples/xmexample2 @@ -35,11 +35,13 @@ xm_vars.var('vmid', xm_vars.check() @@ -86,10 +86,10 @@ Index: xen-4.0.1-testing/tools/examples/xmexample2 #---------------------------------------------------------------------------- # Configure the behaviour when a domain exits. There are three 'reasons' -Index: xen-4.0.1-testing/tools/examples/xmexample3 +Index: xen-4.0.2-testing/tools/examples/xmexample3 =================================================================== ---- xen-4.0.1-testing.orig/tools/examples/xmexample3 -+++ xen-4.0.1-testing/tools/examples/xmexample3 +--- xen-4.0.2-testing.orig/tools/examples/xmexample3 ++++ xen-4.0.2-testing/tools/examples/xmexample3 @@ -35,11 +35,13 @@ xm_vars.var('vmid', xm_vars.check() @@ -108,10 +108,10 @@ Index: xen-4.0.1-testing/tools/examples/xmexample3 # The domain build function. Default is 'linux'. #builder='linux' -Index: xen-4.0.1-testing/tools/examples/xmexample.hvm +Index: xen-4.0.2-testing/tools/examples/xmexample.hvm =================================================================== ---- xen-4.0.1-testing.orig/tools/examples/xmexample.hvm -+++ xen-4.0.1-testing/tools/examples/xmexample.hvm +--- xen-4.0.2-testing.orig/tools/examples/xmexample.hvm ++++ xen-4.0.2-testing/tools/examples/xmexample.hvm @@ -78,7 +78,7 @@ vif = [ 'type=ioemu, bridge=xenbr0' ] # and MODE is r for read-only, w for read-write. @@ -121,10 +121,10 @@ Index: xen-4.0.1-testing/tools/examples/xmexample.hvm #---------------------------------------------------------------------------- # Configure the behaviour when a domain exits. There are three 'reasons' -Index: xen-4.0.1-testing/docs/man/xmdomain.cfg.pod.5 +Index: xen-4.0.2-testing/docs/man/xmdomain.cfg.pod.5 =================================================================== ---- xen-4.0.1-testing.orig/docs/man/xmdomain.cfg.pod.5 -+++ xen-4.0.1-testing/docs/man/xmdomain.cfg.pod.5 +--- xen-4.0.2-testing.orig/docs/man/xmdomain.cfg.pod.5 ++++ xen-4.0.2-testing/docs/man/xmdomain.cfg.pod.5 @@ -38,13 +38,13 @@ file. The kernel image for the domain. The format of the parameter is the @@ -160,10 +160,10 @@ Index: xen-4.0.1-testing/docs/man/xmdomain.cfg.pod.5 at hda1, which is the root filesystem. =item I -Index: xen-4.0.1-testing/docs/man/xm.pod.1 +Index: xen-4.0.2-testing/docs/man/xm.pod.1 =================================================================== ---- xen-4.0.1-testing.orig/docs/man/xm.pod.1 -+++ xen-4.0.1-testing/docs/man/xm.pod.1 +--- xen-4.0.2-testing.orig/docs/man/xm.pod.1 ++++ xen-4.0.2-testing/docs/man/xm.pod.1 @@ -163,8 +163,8 @@ soon as it is run. =item I diff --git a/xen.changes b/xen.changes index 65c43d2..58fcacb 100644 --- a/xen.changes +++ b/xen.changes @@ -1,3 +1,23 @@ +------------------------------------------------------------------- +Tue Feb 1 16:01:45 MST 2011 - carnold@novell.com + +- Update to Xen 4.0.2 rc2-pre, changeset 21443 + +------------------------------------------------------------------- +Mon Jan 31 10:45:21 MST 2011 - carnold@novell.com + +- bnc#633573 - System fail to boot after running several warm + reboot tests + 22749-vtd-workarounds.patch +- Upstream patches from Jan + 22744-ept-pod-locking.patch + 22777-vtd-ats-fixes.patch + 22781-pod-hap-logdirty.patch + 22782-x86-emul-smsw.patch + 22789-i386-no-x2apic.patch + 22790-svm-resume-migrate-pirqs.patch + 22816-x86-pirq-drop-priv-check.patch + ------------------------------------------------------------------- Thu Jan 27 06:23:35 MST 2011 - carnold@novell.com diff --git a/xen.spec b/xen.spec index 13d932e..b21e888 100644 --- a/xen.spec +++ b/xen.spec @@ -1,5 +1,5 @@ # -# spec file for package xen +# spec file for package xen (Version 4.0.2_01) # # Copyright (c) 2011 SUSE LINUX Products GmbH, Nuernberg, Germany. # @@ -22,39 +22,39 @@ Name: xen ExclusiveArch: %ix86 x86_64 %define xvers 4.0 %define xvermaj 4 -%define changeset 21326 -%define xen_build_dir xen-4.0.1-testing +%define changeset 21443 +%define xen_build_dir xen-4.0.2-testing %define with_kmp 1 %define with_stubdom 1 -BuildRequires: LibVNCServer-devel -BuildRequires: SDL-devel -BuildRequires: automake -BuildRequires: bin86 -BuildRequires: curl-devel -BuildRequires: dev86 -BuildRequires: graphviz -BuildRequires: latex2html -BuildRequires: libjpeg-devel -BuildRequires: libxml2-devel -BuildRequires: ncurses-devel -BuildRequires: openssl -BuildRequires: openssl-devel -BuildRequires: pciutils-devel -BuildRequires: python-devel -BuildRequires: texinfo -BuildRequires: transfig +BuildRequires: LibVNCServer-devel +BuildRequires: SDL-devel +BuildRequires: automake +BuildRequires: bin86 +BuildRequires: curl-devel +BuildRequires: dev86 +BuildRequires: graphviz +BuildRequires: latex2html +BuildRequires: libjpeg-devel +BuildRequires: libxml2-devel +BuildRequires: ncurses-devel +BuildRequires: openssl +BuildRequires: openssl-devel +BuildRequires: pciutils-devel +BuildRequires: python-devel +BuildRequires: texinfo +BuildRequires: transfig %if %suse_version <= 1110 -BuildRequires: pmtools +BuildRequires: pmtools %else -BuildRequires: acpica +BuildRequires: acpica %endif %if %suse_version >= 1030 -BuildRequires: texlive -BuildRequires: texlive-latex +BuildRequires: texlive +BuildRequires: texlive-latex %else -BuildRequires: te_ams -BuildRequires: te_latex -BuildRequires: tetex +BuildRequires: te_ams +BuildRequires: te_latex +BuildRequires: tetex %endif %ifarch x86_64 BuildRequires: glibc-32bit glibc-devel-32bit @@ -70,14 +70,14 @@ BuildRequires: glibc-devel %if %{?with_kmp}0 BuildRequires: kernel-source kernel-syms module-init-tools xorg-x11 %endif -Version: 4.0.1_04 -Release: 2 +Version: 4.0.2_01 +Release: 1 License: GPLv2+ Group: System/Kernel AutoReqProv: on PreReq: %insserv_prereq %fillup_prereq Summary: Xen Virtualization: Hypervisor (aka VMM aka Microkernel) -Source0: xen-4.0.1-testing-src.tar.bz2 +Source0: xen-4.0.2-testing-src.tar.bz2 Source1: stubdom.tar.bz2 Source2: xen-utils-0.1.tar.bz2 Source3: README.SuSE @@ -115,84 +115,52 @@ Patch1: 21235-crashkernel-advanced.patch Patch2: 21271-x86-cache-flush-global.patch Patch3: 21301-svm-lmsl.patch Patch4: 21304-keyhandler-alternative.patch -Patch5: 21344-4.0-testing-xenstore-fd-leak.patch -Patch6: 21406-x86-microcode-quiet.patch -Patch7: 21421-vts-ats-enabling.patch -Patch8: 21526-x86-nehalem-cpuid-mask.patch -Patch9: 21432-4.0-cpu-boot-failure.patch -Patch10: 21542-amd-erratum-411.patch -Patch11: 21615-dont-save-xen-heap-pages.patch -Patch12: 21627-cpuidle-wrap.patch -Patch13: 21653-xend-mac-addr.patch -Patch14: 21678-xend-mac-fix.patch -Patch15: 21683-vtd-kill-timer-conditional.patch -Patch16: 21723-get-domu-state.patch -Patch17: 21847-pscsi.patch -Patch18: 21866-xenapi.patch -Patch19: 21894-intel-unmask-cpuid.patch -Patch20: 22019-x86-cpuidle-online-check.patch -Patch21: 22045-python27-compat.patch -Patch22: 22051-x86-forced-EOI.patch -Patch23: 22067-x86-irq-domain.patch -Patch24: 22068-vtd-irte-RH-bit.patch -Patch25: 22071-ept-get-entry-lock.patch -Patch26: 22084-x86-xsave-off.patch -Patch27: 22135-heap-lock.patch -Patch28: 22148-serial-irq-dest.patch -Patch29: 22157-x86-debug-key-i.patch -Patch30: 22159-notify-evtchn-dying.patch -Patch31: 22160-Intel-C6-EOI.patch -Patch32: 22174-x86-pmtimer-accuracy.patch -Patch33: 22175-x86-irq-enter-exit.patch -Patch34: 22177-i386-irq-safe-map_domain_page.patch -Patch35: 22194-tmem-check-pv-mfn.patch -Patch36: 21810-x2apic-acpi.patch -Patch37: 21989-x2apic-resume.patch -Patch38: 22213-x86-xsave-cpuid-check.patch -Patch39: 22214-x86-msr-misc-enable.patch -Patch40: 22222-x86-timer-extint.patch -Patch41: 22223-vtd-workarounds.patch -Patch42: 22231-x86-pv-ucode-msr-intel.patch -Patch43: 22232-x86-64-lahf-lm-bios-workaround.patch -Patch44: 22235-lxml-validator.patch -Patch45: 22280-kexec.patch -Patch46: 22337-vtd-scan-single-func.patch -Patch47: 22348-vtd-check-secbus-devfn.patch -Patch48: 22369-xend-pci-passthru-fix.patch -Patch49: 22388-x2apic-panic.patch -Patch50: 22389-amd-iommu-decls.patch -Patch51: 22416-acpi-check-mwait.patch -Patch52: 22417-vpmu-nehalem.patch -Patch53: 22431-p2m-remove-bug-check.patch -Patch54: 22448-x86_64-gdt-ldt-fault-filter.patch -Patch55: 22451-hvm-cap-clobber.patch -Patch56: 22452-x86-irq-migrate-directed-eoi.patch -Patch57: 22466-x86-sis-apic-bug.patch -Patch58: 22470-vlapic-tick-loss.patch -Patch59: 22475-x2apic-cleanup.patch -Patch60: 22484-vlapic-tmcct-periodic.patch -Patch61: 22504-iommu-dom0-holes.patch -Patch62: 22506-x86-iommu-dom0-estimate.patch -Patch63: 22526-ept-access-once.patch -Patch64: 22533-x86-32bit-apicid.patch -Patch65: 22534-x86-max-local-apic.patch -Patch66: 22535-x2apic-preenabled.patch -Patch67: 22538-keyhandler-relax.patch -Patch68: 22540-32on64-hypercall-debug.patch -Patch69: 22549-vtd-map-page-leak.patch -Patch70: 22574-ept-skip-validation.patch -Patch71: 22632-vtd-print-entries.patch -Patch72: 22645-amd-flush-filter.patch -Patch73: 22693-fam10-mmio-conf-base-protect.patch -Patch74: 22694-x86_64-no-weak.patch -Patch75: 22707-x2apic-preenabled-check.patch -Patch76: 22708-xenctx-misc.patch +Patch5: 21406-x86-microcode-quiet.patch +Patch6: 21421-vtd-ats-enabling.patch +Patch7: 21526-x86-nehalem-cpuid-mask.patch +Patch8: 21542-amd-erratum-411.patch +Patch9: 21615-dont-save-xen-heap-pages.patch +Patch10: 21627-cpuidle-wrap.patch +Patch11: 21653-xend-mac-addr.patch +Patch12: 21678-xend-mac-fix.patch +Patch13: 21683-vtd-kill-timer-conditional.patch +Patch14: 21723-get-domu-state.patch +Patch15: 21810-x2apic-acpi.patch +Patch16: 21847-pscsi.patch +Patch17: 21866-xenapi.patch +Patch18: 21894-intel-unmask-cpuid.patch +Patch19: 22019-x86-cpuidle-online-check.patch +Patch20: 22214-x86-msr-misc-enable.patch +Patch21: 22332-vtd-workarounds.patch +Patch22: 22231-x86-pv-ucode-msr-intel.patch +Patch23: 22235-lxml-validator.patch +Patch24: 22369-xend-pci-passthru-fix.patch +Patch25: 22388-x2apic-panic.patch +Patch26: 22408-vpmu-nehalem.patch +Patch27: 22431-p2m-remove-bug-check.patch +Patch28: 22475-x2apic-cleanup.patch +Patch29: 22484-vlapic-tmcct-periodic.patch +Patch30: 22504-iommu-dom0-holes.patch +Patch31: 22526-ept-get-entry-no-lock.patch +Patch32: 22533-x86-32bit-apicid.patch +Patch33: 22534-x86-max-local-apic.patch +Patch34: 22535-x2apic-preenabled.patch +Patch35: 22645-amd-flush-filter.patch +Patch36: 22693-fam10-mmio-conf-base-protect.patch +Patch37: 22694-x86_64-no-weak.patch +Patch38: 22707-x2apic-preenabled-check.patch +Patch39: 22708-xenctx-misc.patch +Patch40: 22744-ept-pod-locking.patch +Patch41: 22749-vtd-workarounds.patch +Patch42: 22777-vtd-ats-fixes.patch +Patch43: 22781-pod-hap-logdirty.patch +Patch44: 22789-i386-no-x2apic.patch +Patch45: 22790-svm-resume-migrate-pirqs.patch # Upstream qemu patches Patch200: 7410-qemu-alt-gr.patch Patch201: 7426-xenfb-depth.patch Patch202: 7433-qemu-altgr.patch -Patch203: qemu-fix-7433.patch -Patch204: 7434-qemu-rlimit-as.patch +Patch203: 7434-qemu-rlimit-as.patch # Our patches Patch300: xen-config.diff Patch301: xend-config.diff @@ -255,7 +223,7 @@ Patch373: usb-list.patch Patch374: xend-devid-or-name.patch Patch375: 22326-cpu-pools-numa-placement.patch Patch376: 20158-revert.patch -Patch377: suspend_evtchn_lock.patch +Patch377: suspend_evtchn_lock.patch # Patches for snapshot support Patch400: snapshot-ioemu-save.patch Patch401: snapshot-ioemu-restore.patch @@ -314,35 +282,35 @@ Patch700: hv_extid_compatibility.patch # Build patch Patch999: tmp_build.patch # FATE 310510 -Patch902: hotplug-block-losetup-a.patch -Patch10001: xenpaging.tools_xenpaging_cleanup.patch -Patch10002: xenpaging.pageout_policy.patch -Patch10003: xenpaging.get_paged_frame.patch -Patch10004: xenpaging.makefile.patch -Patch10010: xenpaging.policy_linear.patch -Patch10011: xenpaging.pagefile.patch -Patch10012: xenpaging.xenpaging_init.patch -Patch10013: xenpaging.mem_paging_tool_qemu_flush_cache.patch -Patch10014: xenpaging.machine_to_phys_mapping.patch -Patch10015: xenpaging.populate_only_if_paged.patch -Patch10017: xenpaging.autostart.patch -Patch10018: xenpaging.signal_handling.patch -Patch10019: xenpaging.MRU_SIZE.patch -Patch10020: xenpaging.guest_remove_page.patch -Patch10021: xenpaging.mem_event_check_ring-free_requests.patch -Patch10022: xenpaging.blacklist.patch -Patch10023: xenpaging.autostart_delay.patch -Patch10024: xenpaging.page_already_populated.patch -Patch10025: xenpaging.notify_policy_only_once.patch -Patch10026: xenpaging.num_pages_equal_max_pages.patch -Patch10027: xenpaging.p2m_mem_paging_populate_if_p2m_ram_paged.patch -Patch10028: xenpaging.HVMCOPY_gfn_paged_out.patch -Patch10029: xenpaging.optimize_p2m_mem_paging_populate.patch -Patch10030: xenpaging.paging_prep_enomem.patch -Patch10031: xenpaging.print-arguments.patch -Patch10040: xenpaging.doc.patch +Patch902: hotplug-block-losetup-a.patch +Patch10001: xenpaging.tools_xenpaging_cleanup.patch +Patch10002: xenpaging.pageout_policy.patch +Patch10003: xenpaging.get_paged_frame.patch +Patch10004: xenpaging.makefile.patch +Patch10010: xenpaging.policy_linear.patch +Patch10011: xenpaging.pagefile.patch +Patch10012: xenpaging.xenpaging_init.patch +Patch10013: xenpaging.mem_paging_tool_qemu_flush_cache.patch +Patch10014: xenpaging.machine_to_phys_mapping.patch +Patch10015: xenpaging.populate_only_if_paged.patch +Patch10017: xenpaging.autostart.patch +Patch10018: xenpaging.signal_handling.patch +Patch10019: xenpaging.MRU_SIZE.patch +Patch10020: xenpaging.guest_remove_page.patch +Patch10021: xenpaging.mem_event_check_ring-free_requests.patch +Patch10022: xenpaging.blacklist.patch +Patch10023: xenpaging.autostart_delay.patch +Patch10024: xenpaging.page_already_populated.patch +Patch10025: xenpaging.notify_policy_only_once.patch +Patch10026: xenpaging.num_pages_equal_max_pages.patch +Patch10027: xenpaging.p2m_mem_paging_populate_if_p2m_ram_paged.patch +Patch10028: xenpaging.HVMCOPY_gfn_paged_out.patch +Patch10029: xenpaging.optimize_p2m_mem_paging_populate.patch +Patch10030: xenpaging.paging_prep_enomem.patch +Patch10031: xenpaging.print-arguments.patch +Patch10040: xenpaging.doc.patch # xenalyze -Patch20000: xenalyze.64bit.patch +Patch20000: xenalyze.64bit.patch Url: http://www.cl.cam.ac.uk/Research/SRG/netos/xen/ BuildRoot: %{_tmppath}/%{name}-%{version}-build #%define pysite %(python -c "import distutils.sysconfig; print distutils.sysconfig.get_python_lib()") @@ -722,42 +690,10 @@ tar xfj %{SOURCE2} -C $RPM_BUILD_DIR/%{xen_build_dir}/tools %patch43 -p1 %patch44 -p1 %patch45 -p1 -%patch46 -p1 -%patch47 -p1 -%patch48 -p1 -%patch49 -p1 -%patch50 -p1 -%patch51 -p1 -%patch52 -p1 -%patch53 -p1 -%patch54 -p1 -%patch55 -p1 -%patch56 -p1 -%patch57 -p1 -%patch58 -p1 -%patch59 -p1 -%patch60 -p1 -%patch61 -p1 -%patch62 -p1 -%patch63 -p1 -%patch64 -p1 -%patch65 -p1 -%patch66 -p1 -%patch67 -p1 -%patch68 -p1 -%patch69 -p1 -%patch70 -p1 -%patch71 -p1 -%patch72 -p1 -%patch73 -p1 -%patch74 -p1 -%patch75 -p1 -%patch76 -p1 %patch200 -p1 %patch201 -p1 %patch202 -p1 %patch203 -p1 -%patch204 -p1 %patch300 -p1 %patch301 -p1 %patch302 -p1 @@ -900,6 +836,7 @@ tar xfj %{SOURCE2} -C $RPM_BUILD_DIR/%{xen_build_dir}/tools # %patch20000 -p1 + %build XEN_EXTRAVERSION=%version-%release XEN_EXTRAVERSION=${XEN_EXTRAVERSION#%{xvers}} diff --git a/xenalyze.64bit.patch b/xenalyze.64bit.patch index 742406f..094ea11 100644 --- a/xenalyze.64bit.patch +++ b/xenalyze.64bit.patch @@ -9,8 +9,10 @@ Signed-off-by: Olaf Hering xenalyze.hg/xenalyze.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) ---- xen-4.0.1-testing.orig/xenalyze.hg/xenalyze.c -+++ xen-4.0.1-testing/xenalyze.hg/xenalyze.c +Index: xen-4.0.2-testing/xenalyze.hg/xenalyze.c +=================================================================== +--- xen-4.0.2-testing.orig/xenalyze.hg/xenalyze.c ++++ xen-4.0.2-testing/xenalyze.hg/xenalyze.c @@ -3588,12 +3588,12 @@ void hvm_mmio_assist_process(struct reco if(mevt.x64) { e->gpa = r->x64.gpa; diff --git a/xenapi-console-protocol.patch b/xenapi-console-protocol.patch index 33b9204..2313024 100644 --- a/xenapi-console-protocol.patch +++ b/xenapi-console-protocol.patch @@ -1,8 +1,8 @@ -Index: xen-4.0.1-testing/tools/python/xen/xend/XendDomainInfo.py +Index: xen-4.0.2-testing/tools/python/xen/xend/XendDomainInfo.py =================================================================== ---- xen-4.0.1-testing.orig/tools/python/xen/xend/XendDomainInfo.py -+++ xen-4.0.1-testing/tools/python/xen/xend/XendDomainInfo.py -@@ -3924,6 +3924,14 @@ class XendDomainInfo: +--- xen-4.0.2-testing.orig/tools/python/xen/xend/XendDomainInfo.py ++++ xen-4.0.2-testing/tools/python/xen/xend/XendDomainInfo.py +@@ -3925,6 +3925,14 @@ class XendDomainInfo: if not config.has_key('backend'): config['backend'] = "00000000-0000-0000-0000-000000000000" diff --git a/xend-config.diff b/xend-config.diff index 86564e2..97bf133 100644 --- a/xend-config.diff +++ b/xend-config.diff @@ -1,7 +1,7 @@ -Index: xen-4.0.1-testing/tools/hotplug/Linux/init.d/sysconfig.xendomains +Index: xen-4.0.2-testing/tools/hotplug/Linux/init.d/sysconfig.xendomains =================================================================== ---- xen-4.0.1-testing.orig/tools/hotplug/Linux/init.d/sysconfig.xendomains -+++ xen-4.0.1-testing/tools/hotplug/Linux/init.d/sysconfig.xendomains +--- xen-4.0.2-testing.orig/tools/hotplug/Linux/init.d/sysconfig.xendomains ++++ xen-4.0.2-testing/tools/hotplug/Linux/init.d/sysconfig.xendomains @@ -1,4 +1,4 @@ -## Path: System/xen +## Path: System/Virtualization @@ -27,10 +27,10 @@ Index: xen-4.0.1-testing/tools/hotplug/Linux/init.d/sysconfig.xendomains ## Type: integer ## Default: 300 -Index: xen-4.0.1-testing/tools/examples/xend-config.sxp +Index: xen-4.0.2-testing/tools/examples/xend-config.sxp =================================================================== ---- xen-4.0.1-testing.orig/tools/examples/xend-config.sxp -+++ xen-4.0.1-testing/tools/examples/xend-config.sxp +--- xen-4.0.2-testing.orig/tools/examples/xend-config.sxp ++++ xen-4.0.2-testing/tools/examples/xend-config.sxp @@ -58,11 +58,12 @@ diff --git a/xend-core-dump-loc.diff b/xend-core-dump-loc.diff index a4cc321..95b6d34 100644 --- a/xend-core-dump-loc.diff +++ b/xend-core-dump-loc.diff @@ -1,7 +1,7 @@ -Index: xen-4.0.1-testing/tools/python/xen/xend/XendDomainInfo.py +Index: xen-4.0.2-testing/tools/python/xen/xend/XendDomainInfo.py =================================================================== ---- xen-4.0.1-testing.orig/tools/python/xen/xend/XendDomainInfo.py -+++ xen-4.0.1-testing/tools/python/xen/xend/XendDomainInfo.py +--- xen-4.0.2-testing.orig/tools/python/xen/xend/XendDomainInfo.py ++++ xen-4.0.2-testing/tools/python/xen/xend/XendDomainInfo.py @@ -2317,7 +2317,7 @@ class XendDomainInfo: # To prohibit directory traversal based_name = os.path.basename(self.info['name_label']) diff --git a/xend-devid-or-name.patch b/xend-devid-or-name.patch index 22496c3..08efc7a 100644 --- a/xend-devid-or-name.patch +++ b/xend-devid-or-name.patch @@ -11,10 +11,10 @@ form, e.g. it would accept '5632' or 'hdc'. This patch restores that behavior. Signed-off-by: Jim Fehlig -Index: xen-4.0.1-testing/tools/python/xen/xend/XendDomainInfo.py +Index: xen-4.0.2-testing/tools/python/xen/xend/XendDomainInfo.py =================================================================== ---- xen-4.0.1-testing.orig/tools/python/xen/xend/XendDomainInfo.py -+++ xen-4.0.1-testing/tools/python/xen/xend/XendDomainInfo.py +--- xen-4.0.2-testing.orig/tools/python/xen/xend/XendDomainInfo.py ++++ xen-4.0.2-testing/tools/python/xen/xend/XendDomainInfo.py @@ -1218,6 +1218,9 @@ class XendDomainInfo: except ValueError: pass diff --git a/xend-domain-lock.patch b/xend-domain-lock.patch index 083e59a..1d1b0f0 100644 --- a/xend-domain-lock.patch +++ b/xend-domain-lock.patch @@ -1,7 +1,7 @@ -Index: xen-4.0.1-testing/tools/examples/xend-config.sxp +Index: xen-4.0.2-testing/tools/examples/xend-config.sxp =================================================================== ---- xen-4.0.1-testing.orig/tools/examples/xend-config.sxp -+++ xen-4.0.1-testing/tools/examples/xend-config.sxp +--- xen-4.0.2-testing.orig/tools/examples/xend-config.sxp ++++ xen-4.0.2-testing/tools/examples/xend-config.sxp @@ -305,6 +305,65 @@ # device assignment could really work properly even after we do this. #(pci-passthrough-strict-check yes) @@ -68,10 +68,10 @@ Index: xen-4.0.1-testing/tools/examples/xend-config.sxp # If we have a very big scsi device configuration, start of xend is slow, # because xend scans all the device paths to build its internal PSCSI device # list. If we need only a few devices for assigning to a guest, we can reduce -Index: xen-4.0.1-testing/tools/python/xen/xend/XendDomainInfo.py +Index: xen-4.0.2-testing/tools/python/xen/xend/XendDomainInfo.py =================================================================== ---- xen-4.0.1-testing.orig/tools/python/xen/xend/XendDomainInfo.py -+++ xen-4.0.1-testing/tools/python/xen/xend/XendDomainInfo.py +--- xen-4.0.2-testing.orig/tools/python/xen/xend/XendDomainInfo.py ++++ xen-4.0.2-testing/tools/python/xen/xend/XendDomainInfo.py @@ -32,11 +32,12 @@ import re import copy import os @@ -106,7 +106,7 @@ Index: xen-4.0.1-testing/tools/python/xen/xend/XendDomainInfo.py finally: self.refresh_shutdown_lock.release() -@@ -4498,6 +4505,74 @@ class XendDomainInfo: +@@ -4497,6 +4504,74 @@ class XendDomainInfo: def has_device(self, dev_class, dev_uuid): return (dev_uuid in self.info['%s_refs' % dev_class.lower()]) @@ -181,10 +181,10 @@ Index: xen-4.0.1-testing/tools/python/xen/xend/XendDomainInfo.py def __str__(self): return '' % \ (str(self.domid), self.info['name_label'], -Index: xen-4.0.1-testing/tools/python/xen/xend/XendOptions.py +Index: xen-4.0.2-testing/tools/python/xen/xend/XendOptions.py =================================================================== ---- xen-4.0.1-testing.orig/tools/python/xen/xend/XendOptions.py -+++ xen-4.0.1-testing/tools/python/xen/xend/XendOptions.py +--- xen-4.0.2-testing.orig/tools/python/xen/xend/XendOptions.py ++++ xen-4.0.2-testing/tools/python/xen/xend/XendOptions.py @@ -154,6 +154,17 @@ class XendOptions: use loose check automatically if necessary.""" pci_dev_assign_strict_check_default = True @@ -228,10 +228,10 @@ Index: xen-4.0.1-testing/tools/python/xen/xend/XendOptions.py def get_vnc_tls(self): return self.get_config_string('vnc-tls', self.xend_vnc_tls) -Index: xen-4.0.1-testing/tools/python/xen/xend/XendCheckpoint.py +Index: xen-4.0.2-testing/tools/python/xen/xend/XendCheckpoint.py =================================================================== ---- xen-4.0.1-testing.orig/tools/python/xen/xend/XendCheckpoint.py -+++ xen-4.0.1-testing/tools/python/xen/xend/XendCheckpoint.py +--- xen-4.0.2-testing.orig/tools/python/xen/xend/XendCheckpoint.py ++++ xen-4.0.2-testing/tools/python/xen/xend/XendCheckpoint.py @@ -133,6 +133,8 @@ def save(fd, dominfo, network, live, dst dominfo.shutdown('suspend') dominfo.waitForSuspend() @@ -249,10 +249,10 @@ Index: xen-4.0.1-testing/tools/python/xen/xend/XendCheckpoint.py return dominfo except Exception, exn: dominfo.destroy() -Index: xen-4.0.1-testing/tools/hotplug/Linux/Makefile +Index: xen-4.0.2-testing/tools/hotplug/Linux/Makefile =================================================================== ---- xen-4.0.1-testing.orig/tools/hotplug/Linux/Makefile -+++ xen-4.0.1-testing/tools/hotplug/Linux/Makefile +--- xen-4.0.2-testing.orig/tools/hotplug/Linux/Makefile ++++ xen-4.0.2-testing/tools/hotplug/Linux/Makefile @@ -19,6 +19,7 @@ XEN_SCRIPTS += vtpm vtpm-delete XEN_SCRIPTS += xen-hotplug-cleanup XEN_SCRIPTS += external-device-migrate @@ -261,10 +261,10 @@ Index: xen-4.0.1-testing/tools/hotplug/Linux/Makefile XEN_SCRIPT_DATA = xen-script-common.sh locking.sh logging.sh XEN_SCRIPT_DATA += xen-hotplug-common.sh xen-network-common.sh vif-common.sh XEN_SCRIPT_DATA += block-common.sh vtpm-common.sh vtpm-hotplug-common.sh -Index: xen-4.0.1-testing/tools/hotplug/Linux/domain-lock +Index: xen-4.0.2-testing/tools/hotplug/Linux/domain-lock =================================================================== --- /dev/null -+++ xen-4.0.1-testing/tools/hotplug/Linux/domain-lock ++++ xen-4.0.2-testing/tools/hotplug/Linux/domain-lock @@ -0,0 +1,83 @@ +#!/bin/bash + @@ -349,10 +349,10 @@ Index: xen-4.0.1-testing/tools/hotplug/Linux/domain-lock + get_status $vm_path + ;; +esac -Index: xen-4.0.1-testing/tools/hotplug/Linux/vm-monitor +Index: xen-4.0.2-testing/tools/hotplug/Linux/vm-monitor =================================================================== --- /dev/null -+++ xen-4.0.1-testing/tools/hotplug/Linux/vm-monitor ++++ xen-4.0.2-testing/tools/hotplug/Linux/vm-monitor @@ -0,0 +1,41 @@ +#!/bin/bash + diff --git a/xend-sysconfig.patch b/xend-sysconfig.patch index 972fa6b..651611b 100644 --- a/xend-sysconfig.patch +++ b/xend-sysconfig.patch @@ -1,7 +1,7 @@ -Index: xen-4.0.1-testing/tools/hotplug/Linux/init.d/sysconfig.xend +Index: xen-4.0.2-testing/tools/hotplug/Linux/init.d/sysconfig.xend =================================================================== ---- xen-4.0.1-testing.orig/tools/hotplug/Linux/init.d/sysconfig.xend -+++ xen-4.0.1-testing/tools/hotplug/Linux/init.d/sysconfig.xend +--- xen-4.0.2-testing.orig/tools/hotplug/Linux/init.d/sysconfig.xend ++++ xen-4.0.2-testing/tools/hotplug/Linux/init.d/sysconfig.xend @@ -1,11 +1,27 @@ +## Path: System/Virtualization +## Type: string(none,guest,hv,all) diff --git a/xenpaging.HVMCOPY_gfn_paged_out.patch b/xenpaging.HVMCOPY_gfn_paged_out.patch index 31fad91..6002643 100644 --- a/xenpaging.HVMCOPY_gfn_paged_out.patch +++ b/xenpaging.HVMCOPY_gfn_paged_out.patch @@ -16,10 +16,10 @@ Signed-off-by: Olaf Hering xen/common/memory.c | 39 ++++++++++++++++++++++++++++++++++----- 2 files changed, 38 insertions(+), 5 deletions(-) -Index: xen-4.0.1-testing/xen/arch/x86/hvm/hvm.c +Index: xen-4.0.2-testing/xen/arch/x86/hvm/hvm.c =================================================================== ---- xen-4.0.1-testing.orig/xen/arch/x86/hvm/hvm.c -+++ xen-4.0.1-testing/xen/arch/x86/hvm/hvm.c +--- xen-4.0.2-testing.orig/xen/arch/x86/hvm/hvm.c ++++ xen-4.0.2-testing/xen/arch/x86/hvm/hvm.c @@ -1843,6 +1843,8 @@ unsigned long copy_to_user_hvm(void *to, rc = hvm_copy_to_guest_virt_nofault((unsigned long)to, (void *)from, @@ -38,10 +38,10 @@ Index: xen-4.0.1-testing/xen/arch/x86/hvm/hvm.c return rc ? len : 0; /* fake a copy_from_user() return code */ } -Index: xen-4.0.1-testing/xen/common/memory.c +Index: xen-4.0.2-testing/xen/common/memory.c =================================================================== ---- xen-4.0.1-testing.orig/xen/common/memory.c -+++ xen-4.0.1-testing/xen/common/memory.c +--- xen-4.0.2-testing.orig/xen/common/memory.c ++++ xen-4.0.2-testing/xen/common/memory.c @@ -47,6 +47,7 @@ static void increase_reservation(struct { struct page_info *page; diff --git a/xenpaging.MRU_SIZE.patch b/xenpaging.MRU_SIZE.patch index 7a353c0..370664b 100644 --- a/xenpaging.MRU_SIZE.patch +++ b/xenpaging.MRU_SIZE.patch @@ -12,8 +12,10 @@ Signed-off-by: Olaf Hering tools/xenpaging/policy_default.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) ---- xen-4.0.1-testing.orig/tools/xenpaging/policy_default.c -+++ xen-4.0.1-testing/tools/xenpaging/policy_default.c +Index: xen-4.0.2-testing/tools/xenpaging/policy_default.c +=================================================================== +--- xen-4.0.2-testing.orig/tools/xenpaging/policy_default.c ++++ xen-4.0.2-testing/tools/xenpaging/policy_default.c @@ -26,7 +26,7 @@ #include "policy.h" diff --git a/xenpaging.autostart.patch b/xenpaging.autostart.patch index 31a74d3..8039177 100644 --- a/xenpaging.autostart.patch +++ b/xenpaging.autostart.patch @@ -23,10 +23,10 @@ v2: tools/python/xen/xm/xenapi_create.py | 1 8 files changed, 111 insertions(+) -Index: xen-4.0.1-testing/tools/examples/xmexample.hvm +Index: xen-4.0.2-testing/tools/examples/xmexample.hvm =================================================================== ---- xen-4.0.1-testing.orig/tools/examples/xmexample.hvm -+++ xen-4.0.1-testing/tools/examples/xmexample.hvm +--- xen-4.0.2-testing.orig/tools/examples/xmexample.hvm ++++ xen-4.0.2-testing/tools/examples/xmexample.hvm @@ -127,6 +127,9 @@ disk = [ 'file:/var/lib/xen/images/disk. # Device Model to be used device_model = 'qemu-dm' @@ -37,10 +37,10 @@ Index: xen-4.0.1-testing/tools/examples/xmexample.hvm #----------------------------------------------------------------------------- # boot on floppy (a), hard disk (c), Network (n) or CD-ROM (d) # default: hard disk, cd-rom, floppy -Index: xen-4.0.1-testing/tools/python/README.XendConfig +Index: xen-4.0.2-testing/tools/python/README.XendConfig =================================================================== ---- xen-4.0.1-testing.orig/tools/python/README.XendConfig -+++ xen-4.0.1-testing/tools/python/README.XendConfig +--- xen-4.0.2-testing.orig/tools/python/README.XendConfig ++++ xen-4.0.2-testing/tools/python/README.XendConfig @@ -120,6 +120,7 @@ otherConfig image.vncdisplay image.vncunused @@ -49,10 +49,10 @@ Index: xen-4.0.1-testing/tools/python/README.XendConfig image.hvm.display image.hvm.xauthority image.hvm.vncconsole -Index: xen-4.0.1-testing/tools/python/README.sxpcfg +Index: xen-4.0.2-testing/tools/python/README.sxpcfg =================================================================== ---- xen-4.0.1-testing.orig/tools/python/README.sxpcfg -+++ xen-4.0.1-testing/tools/python/README.sxpcfg +--- xen-4.0.2-testing.orig/tools/python/README.sxpcfg ++++ xen-4.0.2-testing/tools/python/README.sxpcfg @@ -51,6 +51,7 @@ image - vncunused (HVM) @@ -61,10 +61,10 @@ Index: xen-4.0.1-testing/tools/python/README.sxpcfg - display - xauthority - vncconsole -Index: xen-4.0.1-testing/tools/python/xen/xend/XendConfig.py +Index: xen-4.0.2-testing/tools/python/xen/xend/XendConfig.py =================================================================== ---- xen-4.0.1-testing.orig/tools/python/xen/xend/XendConfig.py -+++ xen-4.0.1-testing/tools/python/xen/xend/XendConfig.py +--- xen-4.0.2-testing.orig/tools/python/xen/xend/XendConfig.py ++++ xen-4.0.2-testing/tools/python/xen/xend/XendConfig.py @@ -145,6 +145,7 @@ XENAPI_PLATFORM_CFG_TYPES = { 'apic': int, 'boot': str, @@ -82,10 +82,10 @@ Index: xen-4.0.1-testing/tools/python/xen/xend/XendConfig.py if 'timer_mode' not in self['platform']: self['platform']['timer_mode'] = 1 if 'extid' in self['platform'] and int(self['platform']['extid']) == 1: -Index: xen-4.0.1-testing/tools/python/xen/xend/XendDomainInfo.py +Index: xen-4.0.2-testing/tools/python/xen/xend/XendDomainInfo.py =================================================================== ---- xen-4.0.1-testing.orig/tools/python/xen/xend/XendDomainInfo.py -+++ xen-4.0.1-testing/tools/python/xen/xend/XendDomainInfo.py +--- xen-4.0.2-testing.orig/tools/python/xen/xend/XendDomainInfo.py ++++ xen-4.0.2-testing/tools/python/xen/xend/XendDomainInfo.py @@ -2441,6 +2441,7 @@ class XendDomainInfo: if self.image: @@ -106,10 +106,10 @@ Index: xen-4.0.1-testing/tools/python/xen/xend/XendDomainInfo.py else: log.debug("No device model") -Index: xen-4.0.1-testing/tools/python/xen/xend/image.py +Index: xen-4.0.2-testing/tools/python/xen/xend/image.py =================================================================== ---- xen-4.0.1-testing.orig/tools/python/xen/xend/image.py -+++ xen-4.0.1-testing/tools/python/xen/xend/image.py +--- xen-4.0.2-testing.orig/tools/python/xen/xend/image.py ++++ xen-4.0.2-testing/tools/python/xen/xend/image.py @@ -122,12 +122,14 @@ class ImageHandler: self.vm.permissionsVm("image/cmdline", { 'dom': self.vm.getDomid(), 'read': True } ) @@ -221,10 +221,10 @@ Index: xen-4.0.1-testing/tools/python/xen/xend/image.py def createDeviceModel(self, restore = False): if self.device_model is None: return -Index: xen-4.0.1-testing/tools/python/xen/xm/create.py +Index: xen-4.0.2-testing/tools/python/xen/xm/create.py =================================================================== ---- xen-4.0.1-testing.orig/tools/python/xen/xm/create.py -+++ xen-4.0.1-testing/tools/python/xen/xm/create.py +--- xen-4.0.2-testing.orig/tools/python/xen/xm/create.py ++++ xen-4.0.2-testing/tools/python/xen/xm/create.py @@ -495,6 +495,10 @@ gopts.var('nfs_root', val="PATH", fn=set_value, default=None, use="Set the path of the root NFS directory.") @@ -244,10 +244,10 @@ Index: xen-4.0.1-testing/tools/python/xen/xm/create.py 'device_model', 'display', 'fda', 'fdb', 'gfx_passthru', 'guest_os_type', -Index: xen-4.0.1-testing/tools/python/xen/xm/xenapi_create.py +Index: xen-4.0.2-testing/tools/python/xen/xm/xenapi_create.py =================================================================== ---- xen-4.0.1-testing.orig/tools/python/xen/xm/xenapi_create.py -+++ xen-4.0.1-testing/tools/python/xen/xm/xenapi_create.py +--- xen-4.0.2-testing.orig/tools/python/xen/xm/xenapi_create.py ++++ xen-4.0.2-testing/tools/python/xen/xm/xenapi_create.py @@ -1085,6 +1085,7 @@ class sxp2xml: 'acpi', 'apic', diff --git a/xenpaging.autostart_delay.patch b/xenpaging.autostart_delay.patch index 274e4bf..88ff850 100644 --- a/xenpaging.autostart_delay.patch +++ b/xenpaging.autostart_delay.patch @@ -14,8 +14,10 @@ Signed-off-by: Olaf Hering tools/python/xen/xend/image.py | 33 +++++++++++++++++++++++++++++++++ 1 file changed, 33 insertions(+) ---- xen-4.0.1-testing.orig/tools/python/xen/xend/image.py -+++ xen-4.0.1-testing/tools/python/xen/xend/image.py +Index: xen-4.0.2-testing/tools/python/xen/xend/image.py +=================================================================== +--- xen-4.0.2-testing.orig/tools/python/xen/xend/image.py ++++ xen-4.0.2-testing/tools/python/xen/xend/image.py @@ -123,6 +123,19 @@ class ImageHandler: self.device_model = vmConfig['platform'].get('device_model') diff --git a/xenpaging.blacklist.patch b/xenpaging.blacklist.patch index d854de4..f870f39 100644 --- a/xenpaging.blacklist.patch +++ b/xenpaging.blacklist.patch @@ -11,8 +11,10 @@ Signed-off-by: Olaf Hering tools/xenpaging/policy_default.c | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) ---- xen-4.0.1-testing.orig/tools/xenpaging/policy_default.c -+++ xen-4.0.1-testing/tools/xenpaging/policy_default.c +Index: xen-4.0.2-testing/tools/xenpaging/policy_default.c +=================================================================== +--- xen-4.0.2-testing.orig/tools/xenpaging/policy_default.c ++++ xen-4.0.2-testing/tools/xenpaging/policy_default.c @@ -60,8 +60,9 @@ int policy_init(xenpaging_t *paging) for ( i = 0; i < MRU_SIZE; i++ ) mru[i] = INVALID_MFN; diff --git a/xenpaging.doc.patch b/xenpaging.doc.patch index 91354f3..51cd6d2 100644 --- a/xenpaging.doc.patch +++ b/xenpaging.doc.patch @@ -8,8 +8,10 @@ Signed-off-by: Olaf Hering docs/misc/xenpaging.txt | 48 ++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 48 insertions(+) +Index: xen-4.0.2-testing/docs/misc/xenpaging.txt +=================================================================== --- /dev/null -+++ xen-4.0.1-testing/docs/misc/xenpaging.txt ++++ xen-4.0.2-testing/docs/misc/xenpaging.txt @@ -0,0 +1,48 @@ +Warning: + diff --git a/xenpaging.get_paged_frame.patch b/xenpaging.get_paged_frame.patch index 4aedc49..e125505 100644 --- a/xenpaging.get_paged_frame.patch +++ b/xenpaging.get_paged_frame.patch @@ -15,8 +15,10 @@ Already-Acked-by: Keir Fraser xen/common/grant_table.c | 94 ++++++++++++++++++++++++++++++----------------- 1 file changed, 60 insertions(+), 34 deletions(-) ---- xen-4.0.1-testing.orig/xen/common/grant_table.c -+++ xen-4.0.1-testing/xen/common/grant_table.c +Index: xen-4.0.2-testing/xen/common/grant_table.c +=================================================================== +--- xen-4.0.2-testing.orig/xen/common/grant_table.c ++++ xen-4.0.2-testing/xen/common/grant_table.c @@ -139,6 +139,37 @@ shared_entry_header(struct grant_table * #define active_entry(t, e) \ ((t)->active[(e)/ACGNT_PER_PAGE][(e)%ACGNT_PER_PAGE]) diff --git a/xenpaging.guest_remove_page.patch b/xenpaging.guest_remove_page.patch index e833cc4..896c341 100644 --- a/xenpaging.guest_remove_page.patch +++ b/xenpaging.guest_remove_page.patch @@ -15,11 +15,11 @@ v2: xen/include/public/mem_event.h | 1 5 files changed, 73 insertions(+), 20 deletions(-) -Index: xen-4.0.1-testing/tools/xenpaging/xenpaging.c +Index: xen-4.0.2-testing/tools/xenpaging/xenpaging.c =================================================================== ---- xen-4.0.1-testing.orig/tools/xenpaging/xenpaging.c -+++ xen-4.0.1-testing/tools/xenpaging/xenpaging.c -@@ -600,12 +600,19 @@ int main(int argc, char *argv[]) +--- xen-4.0.2-testing.orig/tools/xenpaging/xenpaging.c ++++ xen-4.0.2-testing/tools/xenpaging/xenpaging.c +@@ -601,12 +601,19 @@ int main(int argc, char *argv[]) goto out; } @@ -44,11 +44,11 @@ Index: xen-4.0.1-testing/tools/xenpaging/xenpaging.c } /* Prepare the response */ -Index: xen-4.0.1-testing/xen/arch/x86/mm/p2m.c +Index: xen-4.0.2-testing/xen/arch/x86/mm/p2m.c =================================================================== ---- xen-4.0.1-testing.orig/xen/arch/x86/mm/p2m.c -+++ xen-4.0.1-testing/xen/arch/x86/mm/p2m.c -@@ -2000,12 +2000,15 @@ p2m_remove_page(struct domain *d, unsign +--- xen-4.0.2-testing.orig/xen/arch/x86/mm/p2m.c ++++ xen-4.0.2-testing/xen/arch/x86/mm/p2m.c +@@ -2011,12 +2011,15 @@ p2m_remove_page(struct domain *d, unsign P2M_DEBUG("removing gfn=%#lx mfn=%#lx\n", gfn, mfn); @@ -69,7 +69,7 @@ Index: xen-4.0.1-testing/xen/arch/x86/mm/p2m.c } set_p2m_entry(d, gfn, _mfn(INVALID_MFN), page_order, p2m_invalid); } -@@ -2529,6 +2532,35 @@ int p2m_mem_paging_evict(struct domain * +@@ -2540,6 +2543,35 @@ int p2m_mem_paging_evict(struct domain * return 0; } @@ -105,7 +105,7 @@ Index: xen-4.0.1-testing/xen/arch/x86/mm/p2m.c void p2m_mem_paging_populate(struct domain *d, unsigned long gfn) { struct vcpu *v = current; -@@ -2593,17 +2625,20 @@ void p2m_mem_paging_resume(struct domain +@@ -2604,17 +2636,20 @@ void p2m_mem_paging_resume(struct domain /* Pull the response off the ring */ mem_event_get_response(d, &rsp); @@ -136,10 +136,10 @@ Index: xen-4.0.1-testing/xen/arch/x86/mm/p2m.c } /* Unpause domain */ -Index: xen-4.0.1-testing/xen/common/memory.c +Index: xen-4.0.2-testing/xen/common/memory.c =================================================================== ---- xen-4.0.1-testing.orig/xen/common/memory.c -+++ xen-4.0.1-testing/xen/common/memory.c +--- xen-4.0.2-testing.orig/xen/common/memory.c ++++ xen-4.0.2-testing/xen/common/memory.c @@ -162,6 +162,12 @@ int guest_remove_page(struct domain *d, #ifdef CONFIG_X86 @@ -153,10 +153,10 @@ Index: xen-4.0.1-testing/xen/common/memory.c #else mfn = gmfn_to_mfn(d, gmfn); #endif -Index: xen-4.0.1-testing/xen/include/asm-x86/p2m.h +Index: xen-4.0.2-testing/xen/include/asm-x86/p2m.h =================================================================== ---- xen-4.0.1-testing.orig/xen/include/asm-x86/p2m.h -+++ xen-4.0.1-testing/xen/include/asm-x86/p2m.h +--- xen-4.0.2-testing.orig/xen/include/asm-x86/p2m.h ++++ xen-4.0.2-testing/xen/include/asm-x86/p2m.h @@ -441,6 +441,8 @@ int set_shared_p2m_entry(struct domain * int p2m_mem_paging_nominate(struct domain *d, unsigned long gfn); /* Evict a frame */ @@ -175,10 +175,10 @@ Index: xen-4.0.1-testing/xen/include/asm-x86/p2m.h static inline void p2m_mem_paging_populate(struct domain *d, unsigned long gfn) { } #endif -Index: xen-4.0.1-testing/xen/include/public/mem_event.h +Index: xen-4.0.2-testing/xen/include/public/mem_event.h =================================================================== ---- xen-4.0.1-testing.orig/xen/include/public/mem_event.h -+++ xen-4.0.1-testing/xen/include/public/mem_event.h +--- xen-4.0.2-testing.orig/xen/include/public/mem_event.h ++++ xen-4.0.2-testing/xen/include/public/mem_event.h @@ -37,6 +37,7 @@ #define MEM_EVENT_FLAG_VCPU_PAUSED (1 << 0) #define MEM_EVENT_FLAG_DOM_PAUSED (1 << 1) diff --git a/xenpaging.machine_to_phys_mapping.patch b/xenpaging.machine_to_phys_mapping.patch index 6c4ba6a..3bcb8e4 100644 --- a/xenpaging.machine_to_phys_mapping.patch +++ b/xenpaging.machine_to_phys_mapping.patch @@ -37,11 +37,11 @@ v2: xen/common/page_alloc.c | 9 +++++++++ 2 files changed, 19 insertions(+), 3 deletions(-) -Index: xen-4.0.1-testing/xen/arch/x86/mm/p2m.c +Index: xen-4.0.2-testing/xen/arch/x86/mm/p2m.c =================================================================== ---- xen-4.0.1-testing.orig/xen/arch/x86/mm/p2m.c -+++ xen-4.0.1-testing/xen/arch/x86/mm/p2m.c -@@ -2595,9 +2595,16 @@ void p2m_mem_paging_resume(struct domain +--- xen-4.0.2-testing.orig/xen/arch/x86/mm/p2m.c ++++ xen-4.0.2-testing/xen/arch/x86/mm/p2m.c +@@ -2606,9 +2606,16 @@ void p2m_mem_paging_resume(struct domain /* Fix p2m entry */ mfn = gfn_to_mfn(d, rsp.gfn, &p2mt); @@ -61,10 +61,10 @@ Index: xen-4.0.1-testing/xen/arch/x86/mm/p2m.c /* Unpause domain */ if ( rsp.flags & MEM_EVENT_FLAG_VCPU_PAUSED ) -Index: xen-4.0.1-testing/xen/common/page_alloc.c +Index: xen-4.0.2-testing/xen/common/page_alloc.c =================================================================== ---- xen-4.0.1-testing.orig/xen/common/page_alloc.c -+++ xen-4.0.1-testing/xen/common/page_alloc.c +--- xen-4.0.2-testing.orig/xen/common/page_alloc.c ++++ xen-4.0.2-testing/xen/common/page_alloc.c @@ -1178,9 +1178,18 @@ void free_domheap_pages(struct page_info { int i, drop_dom_ref; diff --git a/xenpaging.makefile.patch b/xenpaging.makefile.patch index da51159..c60774c 100644 --- a/xenpaging.makefile.patch +++ b/xenpaging.makefile.patch @@ -4,8 +4,10 @@ tools/xenpaging/Makefile | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) ---- xen-4.0.1-testing.orig/tools/xenpaging/Makefile -+++ xen-4.0.1-testing/tools/xenpaging/Makefile +Index: xen-4.0.2-testing/tools/xenpaging/Makefile +=================================================================== +--- xen-4.0.2-testing.orig/tools/xenpaging/Makefile ++++ xen-4.0.2-testing/tools/xenpaging/Makefile @@ -27,7 +27,7 @@ IBINS = xenpaging all: $(IBINS) diff --git a/xenpaging.mem_event_check_ring-free_requests.patch b/xenpaging.mem_event_check_ring-free_requests.patch index 5c8d29d..5e6f760 100644 --- a/xenpaging.mem_event_check_ring-free_requests.patch +++ b/xenpaging.mem_event_check_ring-free_requests.patch @@ -11,9 +11,11 @@ Signed-off-by: Olaf Hering xen/arch/x86/mm/mem_event.c | 5 +++++ 1 file changed, 5 insertions(+) ---- xen-4.0.1-testing.orig/xen/arch/x86/mm/mem_event.c -+++ xen-4.0.1-testing/xen/arch/x86/mm/mem_event.c -@@ -168,6 +168,11 @@ int mem_event_check_ring(struct domain * +Index: xen-4.0.2-testing/xen/arch/x86/mm/mem_event.c +=================================================================== +--- xen-4.0.2-testing.orig/xen/arch/x86/mm/mem_event.c ++++ xen-4.0.2-testing/xen/arch/x86/mm/mem_event.c +@@ -152,6 +152,11 @@ int mem_event_check_ring(struct domain * mem_event_ring_lock(d); free_requests = RING_FREE_REQUESTS(&d->mem_event.front_ring); @@ -24,4 +26,4 @@ Signed-off-by: Olaf Hering + } ring_full = free_requests < MEM_EVENT_RING_THRESHOLD; - if ( (current->domain->domain_id == d->domain_id) && ring_full ) + if ( (curr->domain->domain_id == d->domain_id) && ring_full ) diff --git a/xenpaging.mem_paging_tool_qemu_flush_cache.patch b/xenpaging.mem_paging_tool_qemu_flush_cache.patch index c5e988d..d1185ff 100644 --- a/xenpaging.mem_paging_tool_qemu_flush_cache.patch +++ b/xenpaging.mem_paging_tool_qemu_flush_cache.patch @@ -15,10 +15,10 @@ Signed-off-by: Olaf Hering tools/ioemu-qemu-xen/xenstore.c | 3 +++ 1 file changed, 3 insertions(+) -Index: xen-4.0.1-testing/tools/ioemu-qemu-xen/xenstore.c +Index: xen-4.0.2-testing/tools/ioemu-qemu-xen/xenstore.c =================================================================== ---- xen-4.0.1-testing.orig/tools/ioemu-qemu-xen/xenstore.c -+++ xen-4.0.1-testing/tools/ioemu-qemu-xen/xenstore.c +--- xen-4.0.2-testing.orig/tools/ioemu-qemu-xen/xenstore.c ++++ xen-4.0.2-testing/tools/ioemu-qemu-xen/xenstore.c @@ -1025,6 +1025,9 @@ static void xenstore_process_dm_command_ do_pci_add(par); free(par); diff --git a/xenpaging.notify_policy_only_once.patch b/xenpaging.notify_policy_only_once.patch index b1bc107..aecd726 100644 --- a/xenpaging.notify_policy_only_once.patch +++ b/xenpaging.notify_policy_only_once.patch @@ -16,9 +16,11 @@ Signed-off-by: Olaf Hering tools/xenpaging/xenpaging.c | 9 +++++---- 1 file changed, 5 insertions(+), 4 deletions(-) ---- xen-4.0.1-testing.orig/tools/xenpaging/xenpaging.c -+++ xen-4.0.1-testing/tools/xenpaging/xenpaging.c -@@ -380,7 +380,7 @@ int xenpaging_evict_page(xenpaging_t *pa +Index: xen-4.0.2-testing/tools/xenpaging/xenpaging.c +=================================================================== +--- xen-4.0.2-testing.orig/tools/xenpaging/xenpaging.c ++++ xen-4.0.2-testing/tools/xenpaging/xenpaging.c +@@ -381,7 +381,7 @@ int xenpaging_evict_page(xenpaging_t *pa return ret; } @@ -27,7 +29,7 @@ Signed-off-by: Olaf Hering { int ret; -@@ -390,7 +390,8 @@ static int xenpaging_resume_page(xenpagi +@@ -391,7 +391,8 @@ static int xenpaging_resume_page(xenpagi goto out; /* Notify policy of page being paged in */ @@ -37,7 +39,7 @@ Signed-off-by: Olaf Hering /* Tell Xen page is ready */ ret = xc_mem_paging_resume(paging->xc_handle, paging->mem_event.domain_id, -@@ -621,7 +622,7 @@ int main(int argc, char *argv[]) +@@ -622,7 +623,7 @@ int main(int argc, char *argv[]) rsp.vcpu_id = req.vcpu_id; rsp.flags = req.flags; @@ -46,7 +48,7 @@ Signed-off-by: Olaf Hering if ( rc != 0 ) { ERROR("Error resuming page"); -@@ -650,7 +651,7 @@ int main(int argc, char *argv[]) +@@ -651,7 +652,7 @@ int main(int argc, char *argv[]) rsp.vcpu_id = req.vcpu_id; rsp.flags = req.flags; diff --git a/xenpaging.num_pages_equal_max_pages.patch b/xenpaging.num_pages_equal_max_pages.patch index f2e271f..3090f69 100644 --- a/xenpaging.num_pages_equal_max_pages.patch +++ b/xenpaging.num_pages_equal_max_pages.patch @@ -12,9 +12,11 @@ Signed-off-by: Olaf Hering tools/xenpaging/xenpaging.c | 9 +++++++-- 1 file changed, 7 insertions(+), 2 deletions(-) ---- xen-4.0.1-testing.orig/tools/xenpaging/xenpaging.c -+++ xen-4.0.1-testing/tools/xenpaging/xenpaging.c -@@ -514,8 +514,6 @@ int main(int argc, char *argv[]) +Index: xen-4.0.2-testing/tools/xenpaging/xenpaging.c +=================================================================== +--- xen-4.0.2-testing.orig/tools/xenpaging/xenpaging.c ++++ xen-4.0.2-testing/tools/xenpaging/xenpaging.c +@@ -515,8 +515,6 @@ int main(int argc, char *argv[]) domain_id = atoi(argv[1]); num_pages = atoi(argv[2]); @@ -23,7 +25,7 @@ Signed-off-by: Olaf Hering /* Seed random-number generator */ srand(time(NULL)); -@@ -536,6 +534,13 @@ int main(int argc, char *argv[]) +@@ -537,6 +535,13 @@ int main(int argc, char *argv[]) return 2; } diff --git a/xenpaging.optimize_p2m_mem_paging_populate.patch b/xenpaging.optimize_p2m_mem_paging_populate.patch index 15add9e..f43d6d9 100644 --- a/xenpaging.optimize_p2m_mem_paging_populate.patch +++ b/xenpaging.optimize_p2m_mem_paging_populate.patch @@ -15,9 +15,11 @@ Signed-off-by: Olaf Hering xen/arch/x86/mm/p2m.c | 9 +++++++-- 1 file changed, 7 insertions(+), 2 deletions(-) ---- xen-4.0.1-testing.orig/xen/arch/x86/mm/p2m.c -+++ xen-4.0.1-testing/xen/arch/x86/mm/p2m.c -@@ -2567,12 +2567,12 @@ void p2m_mem_paging_populate(struct doma +Index: xen-4.0.2-testing/xen/arch/x86/mm/p2m.c +=================================================================== +--- xen-4.0.2-testing.orig/xen/arch/x86/mm/p2m.c ++++ xen-4.0.2-testing/xen/arch/x86/mm/p2m.c +@@ -2578,12 +2578,12 @@ void p2m_mem_paging_populate(struct doma mem_event_request_t req; p2m_type_t p2mt; @@ -32,7 +34,7 @@ Signed-off-by: Olaf Hering /* Fix p2m mapping */ /* XXX: It seems inefficient to have this here, as it's only needed * in one case (ept guest accessing paging out page) */ -@@ -2590,6 +2590,11 @@ void p2m_mem_paging_populate(struct doma +@@ -2601,6 +2601,11 @@ void p2m_mem_paging_populate(struct doma vcpu_pause_nosync(v); req.flags |= MEM_EVENT_FLAG_VCPU_PAUSED; } diff --git a/xenpaging.p2m_mem_paging_populate_if_p2m_ram_paged.patch b/xenpaging.p2m_mem_paging_populate_if_p2m_ram_paged.patch index bdee266..ab94e69 100644 --- a/xenpaging.p2m_mem_paging_populate_if_p2m_ram_paged.patch +++ b/xenpaging.p2m_mem_paging_populate_if_p2m_ram_paged.patch @@ -18,9 +18,11 @@ Signed-off-by: Olaf Hering xen/arch/x86/mm/p2m.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) ---- xen-4.0.1-testing.orig/xen/arch/x86/mm/p2m.c -+++ xen-4.0.1-testing/xen/arch/x86/mm/p2m.c -@@ -2577,7 +2577,7 @@ void p2m_mem_paging_populate(struct doma +Index: xen-4.0.2-testing/xen/arch/x86/mm/p2m.c +=================================================================== +--- xen-4.0.2-testing.orig/xen/arch/x86/mm/p2m.c ++++ xen-4.0.2-testing/xen/arch/x86/mm/p2m.c +@@ -2588,7 +2588,7 @@ void p2m_mem_paging_populate(struct doma /* XXX: It seems inefficient to have this here, as it's only needed * in one case (ept guest accessing paging out page) */ gfn_to_mfn(d, gfn, &p2mt); diff --git a/xenpaging.page_already_populated.patch b/xenpaging.page_already_populated.patch index 6411ceb..9e4c571 100644 --- a/xenpaging.page_already_populated.patch +++ b/xenpaging.page_already_populated.patch @@ -10,9 +10,11 @@ Signed-off-by: Olaf Hering tools/xenpaging/xenpaging.c | 2 ++ 1 file changed, 2 insertions(+) ---- xen-4.0.1-testing.orig/tools/xenpaging/xenpaging.c -+++ xen-4.0.1-testing/tools/xenpaging/xenpaging.c -@@ -634,8 +634,10 @@ int main(int argc, char *argv[]) +Index: xen-4.0.2-testing/tools/xenpaging/xenpaging.c +=================================================================== +--- xen-4.0.2-testing.orig/tools/xenpaging/xenpaging.c ++++ xen-4.0.2-testing/tools/xenpaging/xenpaging.c +@@ -635,8 +635,10 @@ int main(int argc, char *argv[]) else { DPRINTF("page already populated (domain = %d; vcpu = %d;" diff --git a/xenpaging.pagefile.patch b/xenpaging.pagefile.patch index a74b794..cd2cd8d 100644 --- a/xenpaging.pagefile.patch +++ b/xenpaging.pagefile.patch @@ -14,9 +14,11 @@ Already-Acked-by: Keir Fraser tools/xenpaging/xenpaging.c | 18 +++++++++--------- 1 file changed, 9 insertions(+), 9 deletions(-) ---- xen-4.0.1-testing.orig/tools/xenpaging/xenpaging.c -+++ xen-4.0.1-testing/tools/xenpaging/xenpaging.c -@@ -495,15 +495,6 @@ int main(int argc, char *argv[]) +Index: xen-4.0.2-testing/tools/xenpaging/xenpaging.c +=================================================================== +--- xen-4.0.2-testing.orig/tools/xenpaging/xenpaging.c ++++ xen-4.0.2-testing/tools/xenpaging/xenpaging.c +@@ -496,15 +496,6 @@ int main(int argc, char *argv[]) victims = calloc(num_pages, sizeof(xenpaging_victim_t)); @@ -32,7 +34,7 @@ Already-Acked-by: Keir Fraser /* Seed random-number generator */ srand(time(NULL)); -@@ -515,6 +506,15 @@ int main(int argc, char *argv[]) +@@ -516,6 +507,15 @@ int main(int argc, char *argv[]) goto out; } diff --git a/xenpaging.pageout_policy.patch b/xenpaging.pageout_policy.patch index 47e51b3..027f0a6 100644 --- a/xenpaging.pageout_policy.patch +++ b/xenpaging.pageout_policy.patch @@ -13,9 +13,11 @@ Already-Acked-by: Patrick Colp tools/xenpaging/xenpaging.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) ---- xen-4.0.1-testing.orig/tools/xenpaging/xenpaging.c -+++ xen-4.0.1-testing/tools/xenpaging/xenpaging.c -@@ -358,8 +358,8 @@ int xenpaging_evict_page(xenpaging_t *pa +Index: xen-4.0.2-testing/tools/xenpaging/xenpaging.c +=================================================================== +--- xen-4.0.2-testing.orig/tools/xenpaging/xenpaging.c ++++ xen-4.0.2-testing/tools/xenpaging/xenpaging.c +@@ -359,8 +359,8 @@ int xenpaging_evict_page(xenpaging_t *pa goto out; } diff --git a/xenpaging.paging_prep_enomem.patch b/xenpaging.paging_prep_enomem.patch index 1a7e930..34a0c89 100644 --- a/xenpaging.paging_prep_enomem.patch +++ b/xenpaging.paging_prep_enomem.patch @@ -15,9 +15,11 @@ Signed-off-by: Olaf Hering xen/arch/x86/mm/p2m.c | 2 +- 2 files changed, 21 insertions(+), 8 deletions(-) ---- xen-4.0.1-testing.orig/tools/xenpaging/xenpaging.c -+++ xen-4.0.1-testing/tools/xenpaging/xenpaging.c -@@ -23,6 +23,7 @@ +Index: xen-4.0.2-testing/tools/xenpaging/xenpaging.c +=================================================================== +--- xen-4.0.2-testing.orig/tools/xenpaging/xenpaging.c ++++ xen-4.0.2-testing/tools/xenpaging/xenpaging.c +@@ -24,6 +24,7 @@ #include #include #include @@ -25,7 +27,7 @@ Signed-off-by: Olaf Hering #include #include -@@ -409,19 +410,31 @@ static int xenpaging_populate_page( +@@ -410,19 +411,31 @@ static int xenpaging_populate_page( unsigned long _gfn; void *page; int ret; @@ -64,9 +66,11 @@ Signed-off-by: Olaf Hering page = xc_map_foreign_pages(paging->xc_handle, paging->mem_event.domain_id, PROT_READ | PROT_WRITE, &_gfn, 1); *gfn = _gfn; ---- xen-4.0.1-testing.orig/xen/arch/x86/mm/p2m.c -+++ xen-4.0.1-testing/xen/arch/x86/mm/p2m.c -@@ -2611,7 +2611,7 @@ int p2m_mem_paging_prep(struct domain *d +Index: xen-4.0.2-testing/xen/arch/x86/mm/p2m.c +=================================================================== +--- xen-4.0.2-testing.orig/xen/arch/x86/mm/p2m.c ++++ xen-4.0.2-testing/xen/arch/x86/mm/p2m.c +@@ -2622,7 +2622,7 @@ int p2m_mem_paging_prep(struct domain *d /* Get a free page */ page = alloc_domheap_page(d, 0); if ( unlikely(page == NULL) ) diff --git a/xenpaging.policy_linear.patch b/xenpaging.policy_linear.patch index 1addff8..3e7c932 100644 --- a/xenpaging.policy_linear.patch +++ b/xenpaging.policy_linear.patch @@ -19,8 +19,10 @@ Already-Acked-by: Keir Fraser tools/xenpaging/xenpaging.c | 7 +++++-- 2 files changed, 33 insertions(+), 9 deletions(-) ---- xen-4.0.1-testing.orig/tools/xenpaging/policy_default.c -+++ xen-4.0.1-testing/tools/xenpaging/policy_default.c +Index: xen-4.0.2-testing/tools/xenpaging/policy_default.c +=================================================================== +--- xen-4.0.2-testing.orig/tools/xenpaging/policy_default.c ++++ xen-4.0.2-testing/tools/xenpaging/policy_default.c @@ -30,8 +30,12 @@ @@ -99,9 +101,11 @@ Already-Acked-by: Keir Fraser } void policy_notify_paged_in(domid_t domain_id, unsigned long gfn) ---- xen-4.0.1-testing.orig/tools/xenpaging/xenpaging.c -+++ xen-4.0.1-testing/tools/xenpaging/xenpaging.c -@@ -440,7 +440,8 @@ static int evict_victim(xenpaging_t *pag +Index: xen-4.0.2-testing/tools/xenpaging/xenpaging.c +=================================================================== +--- xen-4.0.2-testing.orig/tools/xenpaging/xenpaging.c ++++ xen-4.0.2-testing/tools/xenpaging/xenpaging.c +@@ -441,7 +441,8 @@ static int evict_victim(xenpaging_t *pag ret = policy_choose_victim(paging, domain_id, victim); if ( ret != 0 ) { @@ -111,7 +115,7 @@ Already-Acked-by: Keir Fraser goto out; } -@@ -518,7 +519,9 @@ int main(int argc, char *argv[]) +@@ -519,7 +520,9 @@ int main(int argc, char *argv[]) memset(victims, 0, sizeof(xenpaging_victim_t) * num_pages); for ( i = 0; i < num_pages; i++ ) { diff --git a/xenpaging.populate_only_if_paged.patch b/xenpaging.populate_only_if_paged.patch index d5d5453..5935b33 100644 --- a/xenpaging.populate_only_if_paged.patch +++ b/xenpaging.populate_only_if_paged.patch @@ -14,8 +14,10 @@ Signed-off-by: Olaf Hering xen/common/grant_table.c | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) ---- xen-4.0.1-testing.orig/xen/common/grant_table.c -+++ xen-4.0.1-testing/xen/common/grant_table.c +Index: xen-4.0.2-testing/xen/common/grant_table.c +=================================================================== +--- xen-4.0.2-testing.orig/xen/common/grant_table.c ++++ xen-4.0.2-testing/xen/common/grant_table.c @@ -156,8 +156,7 @@ static int __get_paged_frame(unsigned lo *frame = mfn_x(mfn); if ( p2m_is_paging(p2mt) ) diff --git a/xenpaging.print-arguments.patch b/xenpaging.print-arguments.patch index 8264b44..559d786 100644 --- a/xenpaging.print-arguments.patch +++ b/xenpaging.print-arguments.patch @@ -11,9 +11,11 @@ Signed-off-by: Olaf Hering tools/xenpaging/xenpaging.c | 2 ++ 1 file changed, 2 insertions(+) ---- xen-4.0.1-testing.orig/tools/xenpaging/xenpaging.c -+++ xen-4.0.1-testing/tools/xenpaging/xenpaging.c -@@ -538,6 +538,8 @@ int main(int argc, char *argv[]) +Index: xen-4.0.2-testing/tools/xenpaging/xenpaging.c +=================================================================== +--- xen-4.0.2-testing.orig/tools/xenpaging/xenpaging.c ++++ xen-4.0.2-testing/tools/xenpaging/xenpaging.c +@@ -539,6 +539,8 @@ int main(int argc, char *argv[]) return 1; } diff --git a/xenpaging.signal_handling.patch b/xenpaging.signal_handling.patch index 881ea56..f5e95bc 100644 --- a/xenpaging.signal_handling.patch +++ b/xenpaging.signal_handling.patch @@ -15,9 +15,11 @@ v2: tools/xenpaging/xenpaging.c | 42 +++++++++++++++++++++++++++++++++--------- 1 file changed, 33 insertions(+), 9 deletions(-) ---- xen-4.0.1-testing.orig/tools/xenpaging/xenpaging.c -+++ xen-4.0.1-testing/tools/xenpaging/xenpaging.c -@@ -22,6 +22,7 @@ +Index: xen-4.0.2-testing/tools/xenpaging/xenpaging.c +=================================================================== +--- xen-4.0.2-testing.orig/tools/xenpaging/xenpaging.c ++++ xen-4.0.2-testing/tools/xenpaging/xenpaging.c +@@ -23,6 +23,7 @@ #include #include @@ -25,7 +27,7 @@ v2: #include #include -@@ -40,6 +41,14 @@ +@@ -41,6 +42,14 @@ #define DPRINTF(...) ((void)0) #endif @@ -40,7 +42,7 @@ v2: static void *init_page(void) { -@@ -244,7 +253,6 @@ int xenpaging_teardown(xenpaging_t *pagi +@@ -245,7 +254,6 @@ int xenpaging_teardown(xenpaging_t *pagi if ( rc != 0 ) { ERROR("Error tearing down domain paging in xen"); @@ -48,7 +50,7 @@ v2: } /* Unbind VIRQ */ -@@ -252,7 +260,6 @@ int xenpaging_teardown(xenpaging_t *pagi +@@ -253,7 +261,6 @@ int xenpaging_teardown(xenpaging_t *pagi if ( rc != 0 ) { ERROR("Error unbinding event port"); @@ -56,7 +58,7 @@ v2: } paging->mem_event.port = -1; -@@ -261,7 +268,6 @@ int xenpaging_teardown(xenpaging_t *pagi +@@ -262,7 +269,6 @@ int xenpaging_teardown(xenpaging_t *pagi if ( rc != 0 ) { ERROR("Error closing event channel"); @@ -64,7 +66,7 @@ v2: } paging->mem_event.xce_handle = -1; -@@ -270,7 +276,6 @@ int xenpaging_teardown(xenpaging_t *pagi +@@ -271,7 +277,6 @@ int xenpaging_teardown(xenpaging_t *pagi if ( rc != 0 ) { ERROR("Error closing connection to xen"); @@ -72,7 +74,7 @@ v2: } paging->xc_handle = -1; -@@ -375,7 +380,7 @@ int xenpaging_evict_page(xenpaging_t *pa +@@ -376,7 +381,7 @@ int xenpaging_evict_page(xenpaging_t *pa return ret; } @@ -81,7 +83,7 @@ v2: { int ret; -@@ -455,6 +460,11 @@ static int evict_victim(xenpaging_t *pag +@@ -456,6 +461,11 @@ static int evict_victim(xenpaging_t *pag goto out; } @@ -93,7 +95,7 @@ v2: ret = xc_mem_paging_nominate(paging->xc_handle, paging->mem_event.domain_id, victim->gfn); if ( ret == 0 ) -@@ -479,6 +489,7 @@ static int evict_victim(xenpaging_t *pag +@@ -480,6 +490,7 @@ static int evict_victim(xenpaging_t *pag int main(int argc, char *argv[]) { @@ -101,7 +103,7 @@ v2: domid_t domain_id; int num_pages; xenpaging_t *paging; -@@ -491,7 +502,6 @@ int main(int argc, char *argv[]) +@@ -492,7 +503,6 @@ int main(int argc, char *argv[]) int open_flags = O_CREAT | O_TRUNC | O_RDWR; mode_t open_mode = S_IRUSR | S_IRGRP | S_IROTH | S_IWUSR | S_IWGRP | S_IWOTH; @@ -109,7 +111,7 @@ v2: int fd; if ( argc != 3 ) -@@ -513,7 +523,7 @@ int main(int argc, char *argv[]) +@@ -514,7 +524,7 @@ int main(int argc, char *argv[]) if ( paging == NULL ) { ERROR("Error initialising paging"); @@ -118,7 +120,7 @@ v2: } /* Open file */ -@@ -522,9 +532,18 @@ int main(int argc, char *argv[]) +@@ -523,9 +533,18 @@ int main(int argc, char *argv[]) if ( fd < 0 ) { perror("failed to open file"); @@ -138,7 +140,7 @@ v2: /* Evict pages */ memset(victims, 0, sizeof(xenpaging_victim_t) * num_pages); for ( i = 0; i < num_pages; i++ ) -@@ -532,6 +551,8 @@ int main(int argc, char *argv[]) +@@ -533,6 +552,8 @@ int main(int argc, char *argv[]) rc = evict_victim(paging, domain_id, &victims[i], fd, i); if ( rc == -ENOSPC ) break; @@ -147,7 +149,7 @@ v2: if ( i % 100 == 0 ) DPRINTF("%d pages evicted\n", i); } -@@ -539,7 +560,7 @@ int main(int argc, char *argv[]) +@@ -540,7 +561,7 @@ int main(int argc, char *argv[]) DPRINTF("pages evicted\n"); /* Swap pages in and out */ @@ -156,7 +158,7 @@ v2: { /* Wait for Xen to signal that a page needs paged in */ rc = xc_wait_for_event_or_timeout(paging->mem_event.xce_handle, 100); -@@ -630,8 +651,10 @@ int main(int argc, char *argv[]) +@@ -631,8 +652,10 @@ int main(int argc, char *argv[]) } } } @@ -167,7 +169,7 @@ v2: free(victims); /* Tear down domain paging */ -@@ -642,6 +665,7 @@ int main(int argc, char *argv[]) +@@ -643,6 +666,7 @@ int main(int argc, char *argv[]) if ( rc == 0 ) rc = rc1; diff --git a/xenpaging.tools_xenpaging_cleanup.patch b/xenpaging.tools_xenpaging_cleanup.patch index c0f555e..173ce89 100644 --- a/xenpaging.tools_xenpaging_cleanup.patch +++ b/xenpaging.tools_xenpaging_cleanup.patch @@ -12,9 +12,11 @@ Signed-off-by: Olaf Hering tools/xenpaging/xenpaging.c | 22 ++++++++++++++++++---- 1 file changed, 18 insertions(+), 4 deletions(-) ---- xen-4.0.1-testing.orig/tools/xenpaging/xenpaging.c -+++ xen-4.0.1-testing/tools/xenpaging/xenpaging.c -@@ -100,7 +100,7 @@ xenpaging_t *xenpaging_init(domid_t doma +Index: xen-4.0.2-testing/tools/xenpaging/xenpaging.c +=================================================================== +--- xen-4.0.2-testing.orig/tools/xenpaging/xenpaging.c ++++ xen-4.0.2-testing/tools/xenpaging/xenpaging.c +@@ -101,7 +101,7 @@ xenpaging_t *xenpaging_init(domid_t doma paging->mem_event.ring_page = init_page(); if ( paging->mem_event.ring_page == NULL ) { @@ -23,7 +25,7 @@ Signed-off-by: Olaf Hering goto err; } -@@ -198,13 +198,27 @@ xenpaging_t *xenpaging_init(domid_t doma +@@ -199,13 +199,27 @@ xenpaging_t *xenpaging_init(domid_t doma return paging; err: diff --git a/xenpaging.xenpaging_init.patch b/xenpaging.xenpaging_init.patch index e967fba..855d76a 100644 --- a/xenpaging.xenpaging_init.patch +++ b/xenpaging.xenpaging_init.patch @@ -17,9 +17,11 @@ v2: use perror for default case xen/arch/x86/mm/mem_event.c | 7 +++++++ 2 files changed, 18 insertions(+), 1 deletion(-) ---- xen-4.0.1-testing.orig/tools/xenpaging/xenpaging.c -+++ xen-4.0.1-testing/tools/xenpaging/xenpaging.c -@@ -119,7 +119,17 @@ xenpaging_t *xenpaging_init(domid_t doma +Index: xen-4.0.2-testing/tools/xenpaging/xenpaging.c +=================================================================== +--- xen-4.0.2-testing.orig/tools/xenpaging/xenpaging.c ++++ xen-4.0.2-testing/tools/xenpaging/xenpaging.c +@@ -120,7 +120,17 @@ xenpaging_t *xenpaging_init(domid_t doma paging->mem_event.ring_page); if ( rc != 0 ) { @@ -38,9 +40,11 @@ v2: use perror for default case goto err; } ---- xen-4.0.1-testing.orig/xen/arch/x86/mm/mem_event.c -+++ xen-4.0.1-testing/xen/arch/x86/mm/mem_event.c -@@ -226,6 +226,13 @@ int mem_event_domctl(struct domain *d, x +Index: xen-4.0.2-testing/xen/arch/x86/mm/mem_event.c +=================================================================== +--- xen-4.0.2-testing.orig/xen/arch/x86/mm/mem_event.c ++++ xen-4.0.2-testing/xen/arch/x86/mm/mem_event.c +@@ -214,6 +214,13 @@ int mem_event_domctl(struct domain *d, x mfn_t ring_mfn; mfn_t shared_mfn; @@ -48,7 +52,7 @@ v2: use perror for default case + * the cache is in an undefined state and so is the guest + */ + rc = -EBUSY; -+ if ( d->mem_event.enabled ) ++ if ( d->mem_event.ring_page ) + break; + /* Currently only EPT is supported */ diff --git a/xm-create-xflag.patch b/xm-create-xflag.patch index 0c9ecf9..df8c85a 100644 --- a/xm-create-xflag.patch +++ b/xm-create-xflag.patch @@ -1,7 +1,7 @@ -Index: xen-4.0.1-testing/tools/python/xen/xm/create.py +Index: xen-4.0.2-testing/tools/python/xen/xm/create.py =================================================================== ---- xen-4.0.1-testing.orig/tools/python/xen/xm/create.py -+++ xen-4.0.1-testing/tools/python/xen/xm/create.py +--- xen-4.0.2-testing.orig/tools/python/xen/xm/create.py ++++ xen-4.0.2-testing/tools/python/xen/xm/create.py @@ -36,7 +36,7 @@ from xen.xend.server.DevConstants import from xen.util import blkif from xen.util import vscsi_util @@ -29,10 +29,10 @@ Index: xen-4.0.1-testing/tools/python/xen/xm/create.py from xml.dom.ext import PrettyPrint as XMLPrettyPrint XMLPrettyPrint(doc) -Index: xen-4.0.1-testing/tools/python/xen/xend/XendAPIConstants.py +Index: xen-4.0.2-testing/tools/python/xen/xend/XendAPIConstants.py =================================================================== ---- xen-4.0.1-testing.orig/tools/python/xen/xend/XendAPIConstants.py -+++ xen-4.0.1-testing/tools/python/xen/xend/XendAPIConstants.py +--- xen-4.0.2-testing.orig/tools/python/xen/xend/XendAPIConstants.py ++++ xen-4.0.2-testing/tools/python/xen/xend/XendAPIConstants.py @@ -45,8 +45,10 @@ XEN_API_ON_NORMAL_EXIT = [ XEN_API_ON_CRASH_BEHAVIOUR = [ 'destroy', diff --git a/xm-save-check-file.patch b/xm-save-check-file.patch index f90934a..c80fa09 100644 --- a/xm-save-check-file.patch +++ b/xm-save-check-file.patch @@ -1,7 +1,7 @@ -Index: xen-4.0.1-testing/tools/python/xen/xend/XendAPI.py +Index: xen-4.0.2-testing/tools/python/xen/xend/XendAPI.py =================================================================== ---- xen-4.0.1-testing.orig/tools/python/xen/xend/XendAPI.py -+++ xen-4.0.1-testing/tools/python/xen/xend/XendAPI.py +--- xen-4.0.2-testing.orig/tools/python/xen/xend/XendAPI.py ++++ xen-4.0.2-testing/tools/python/xen/xend/XendAPI.py @@ -1923,10 +1923,10 @@ class XendAPI(object): bool(live), port, node, ssl, bool(chs)) return xen_api_success_void() @@ -15,10 +15,10 @@ Index: xen-4.0.1-testing/tools/python/xen/xend/XendAPI.py return xen_api_success_void() def VM_restore(self, _, src, paused): -Index: xen-4.0.1-testing/tools/python/xen/xend/XendDomain.py +Index: xen-4.0.2-testing/tools/python/xen/xend/XendDomain.py =================================================================== ---- xen-4.0.1-testing.orig/tools/python/xen/xend/XendDomain.py -+++ xen-4.0.1-testing/tools/python/xen/xend/XendDomain.py +--- xen-4.0.2-testing.orig/tools/python/xen/xend/XendDomain.py ++++ xen-4.0.2-testing/tools/python/xen/xend/XendDomain.py @@ -1496,7 +1496,7 @@ class XendDomain: pass sock.close() @@ -38,10 +38,10 @@ Index: xen-4.0.1-testing/tools/python/xen/xend/XendDomain.py if dominfo.getDomid() == DOM0_ID: raise XendError("Cannot save privileged domain %s" % str(domid)) if dominfo._stateGet() != DOM_STATE_RUNNING: -Index: xen-4.0.1-testing/tools/python/xen/xm/main.py +Index: xen-4.0.2-testing/tools/python/xen/xm/main.py =================================================================== ---- xen-4.0.1-testing.orig/tools/python/xen/xm/main.py -+++ xen-4.0.1-testing/tools/python/xen/xm/main.py +--- xen-4.0.2-testing.orig/tools/python/xen/xm/main.py ++++ xen-4.0.2-testing/tools/python/xen/xm/main.py @@ -120,7 +120,7 @@ SUBCOMMAND_HELP = { 'reset' : ('', 'Reset a domain.'), 'restore' : (' [-p]', diff --git a/xm-test-cleanup.diff b/xm-test-cleanup.diff index 6aae672..d5bdd2a 100644 --- a/xm-test-cleanup.diff +++ b/xm-test-cleanup.diff @@ -1,7 +1,7 @@ -Index: xen-4.0.1-testing/tools/xm-test/tests/save/01_save_basic_pos.py +Index: xen-4.0.2-testing/tools/xm-test/tests/save/01_save_basic_pos.py =================================================================== ---- xen-4.0.1-testing.orig/tools/xm-test/tests/save/01_save_basic_pos.py -+++ xen-4.0.1-testing/tools/xm-test/tests/save/01_save_basic_pos.py +--- xen-4.0.2-testing.orig/tools/xm-test/tests/save/01_save_basic_pos.py ++++ xen-4.0.2-testing/tools/xm-test/tests/save/01_save_basic_pos.py @@ -35,3 +35,9 @@ if s != 0: # Make sure it's gone if isDomainRunning(domain.getName()): From f5c941b1130692ba89dd667e9c22d9ecf5f97d35e89965a6599e959f36ae4f9b Mon Sep 17 00:00:00 2001 From: Charles Arnold Date: Fri, 4 Feb 2011 21:22:17 +0000 Subject: [PATCH 3/3] Removed 22506-x86-iommu-dom0-estimate.patch OBS-URL: https://build.opensuse.org/package/show/Virtualization/xen?expand=0&rev=95 --- 22506-x86-iommu-dom0-estimate.patch | 40 ----------------------------- 1 file changed, 40 deletions(-) delete mode 100644 22506-x86-iommu-dom0-estimate.patch diff --git a/22506-x86-iommu-dom0-estimate.patch b/22506-x86-iommu-dom0-estimate.patch deleted file mode 100644 index cddd7e6..0000000 --- a/22506-x86-iommu-dom0-estimate.patch +++ /dev/null @@ -1,40 +0,0 @@ -# HG changeset patch -# User Keir Fraser -# Date 1292320450 0 -# Node ID 618ba64260faf45e6ec391582099d7388f013e81 -# Parent 72326371ae8106b91da0ca6b0436dd2b6478b7a7 -x86/iommu: account for necessary allocations when calculating Dom0's initial allocation size -References: bnc#658163 - -As of c/s 21812:e382656e4dcc, IOMMU related allocations for Dom0 -happen only after it got all of its memory allocated, and hence the -reserve (mainly for setting up its swiotlb) may get exhausted without -accounting for the necessary allocations up front. - -While not precise, the estimate has been found to be within a couple -of pages for the systems it got tested on. - -For the calculation to be reasonably correct, this depends on the -patch titled "x86/iommu: don't map RAM holes above 4G" sent out -yesterday. - -Signed-off-by: Jan Beulich - ---- a/xen/arch/x86/domain_build.c -+++ b/xen/arch/x86/domain_build.c -@@ -188,6 +188,15 @@ static unsigned long __init compute_dom0 - if ( is_pv_32on64_domain(d) ) - avail -= opt_dom0_max_vcpus - 1; - -+ /* Reserve memory for iommu_dom0_init() (rough estimate). */ -+ if ( iommu_enabled ) -+ { -+ unsigned int s; -+ -+ for ( s = 9; s < BITS_PER_LONG; s += 9 ) -+ avail -= max_pdx >> s; -+ } -+ - /* - * If domain 0 allocation isn't specified, reserve 1/16th of available - * memory for things like DMA buffers. This reservation is clamped to