Hello community, here is the log from the commit of package xen for openSUSE:Factory checked in at 2014-08-20 17:52:54 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Comparing /work/SRC/openSUSE:Factory/xen (Old) and /work/SRC/openSUSE:Factory/.xen.new (New) ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "xen" Changes: -------- --- /work/SRC/openSUSE:Factory/xen/xen.changes 2014-07-26 11:27:56.000000000 +0200 +++ /work/SRC/openSUSE:Factory/.xen.new/xen.changes 2014-08-20 17:53:00.000000000 +0200 @@ -1,0 +2,106 @@ +Fri Aug 15 15:09:27 MDT 2014 - carn...@suse.com + +- Update README.SUSE with additional debug help + +------------------------------------------------------------------- +Fri Aug 8 07:34:38 MDT 2014 - carn...@suse.com + +- bnc#883112 - Xen Panic during boot "System without CMOS RTC must + be booted from EFI" + 53dba447-x86-ACPI-allow-CMOS-RTC-use-even-when-ACPI-says-there-is-none.patch +- Upstream patches from Jan + 53d7b781-x86-cpu-undo-BIOS-CPUID-max_leaf-limit-earlier.patch + 53df71c7-lz4-check-for-underruns.patch + 53df727b-x86-HVM-extend-LAPIC-shortcuts-around-P2M-lookups.patch + 53e47d6b-x86_emulate-properly-do-IP-updates-and-other-side-effects.patch + +------------------------------------------------------------------- +Thu Aug 7 11:26:15 UTC 2014 - carn...@suse.com + +- Update to Xen Version 4.4.1-rc2 + xen-4.4.1-testing-src.tar.bz2 +- Dropped the following upstream patches and xen-4.4.0-testing-src.tar.bz2 + 537b5ede-move-domain-to-cpupool0-before-destroying-it.patch + 5327190a-x86-Intel-work-around-Xeon-7400-series-erratum-AAI65.patch + 534bdf47-x86-HAP-also-flush-TLB-when-altering-a-present-1G-or-intermediate-entry.patch + 535a354b-passthrough-allow-to-suppress-SERR-and-PERR-signaling.patch + 53636ebf-x86-fix-guest-CPUID-handling.patch + 5347b524-evtchn-eliminate-64k-ports-limitation.patch + 53a040c6-page-alloc-scrub-pages-used-by-hypervisor-upon-freeing.patch + 53a1990a-IOMMU-prevent-VT-d-device-IOTLB-operations-on-wrong-IOMMU.patch + 53732f4f-x86-MCE-bypass-uninitialized-vcpu-in-vMCE-injection.patch + 531dc0e2-xmalloc-handle-correctly-page-allocation-when-align-size.patch + 5331917d-x86-enforce-preemption-in-HVM_set_mem_access-p2m_set_mem_access.patch + 531d8e09-x86-HVM-fix-memory-type-merging-in-epte_get_entry_emt.patch + 538ee637-ACPI-Prevent-acpi_table_entries-from-falling-into-a-infinite-loop.patch + 535a34eb-VT-d-suppress-UR-signaling-for-server-chipsets.patch + 535e31bc-x86-HVM-correct-the-SMEP-logic-for-HVM_CR0_GUEST_RESERVED_BITS.patch + 53859956-timers-set-the-deadline-more-accurately.patch + 53636978-hvm_set_ioreq_page-releases-wrong-page-in-error-path.patch + 535a3516-VT-d-suppress-UR-signaling-for-desktop-chipsets.patch + 53cfdcc7-avoid-crash-when-doing-shutdown-with-active-cpupools.patch + 5383175e-VT-d-fix-mask-applied-to-DMIBAR-in-desktop-chipset-XSA-59-workaround.patch + 531d8e34-x86-HVM-consolidate-passthrough-handling-in-epte_get_entry_emt.patch + 532fff53-x86-fix-determination-of-bit-count-for-struct-domain-allocations.patch + 5357baff-x86-add-missing-break-in-dom0_pit_access.patch + 530c54c3-x86-mce-Reduce-boot-time-logspam.patch + 5383167d-ACPI-ERST-fix-table-mapping.patch + 5390927f-x86-fix-reboot-shutdown-with-running-HVM-guests.patch + 530b27fd-x86-MCE-Fix-race-condition-in-mctelem_reserve.patch + 53709b77-Nested-VMX-load-current_vmcs-only-when-it-exists.patch + 5396d818-avoid-crash-on-HVM-domain-destroy-with-PCI-passthrough.patch + 531d8fd0-kexec-identify-which-cpu-the-kexec-image-is-being-executed-on.patch + 5385956b-x86-don-t-use-VA-for-cache-flush-when-also-flushing-TLB.patch + 539ec004-x86-mce-don-t-spam-the-console-with-CPUx-Temperature-z.patch + 53909259-x86-domctl-two-functional-fixes-to-XEN_DOMCTL_-gs-etvcpuextstate.patch + 53859549-AMD-IOMMU-don-t-free-page-table-prematurely.patch + 533d413b-x86-mm-fix-checks-against-max_mapped_pfn.patch + 535fa503-x86-HVM-restrict-HVMOP_set_mem_type.patch + 53271880-VT-d-fix-RMRR-handling.patch + 5390917a-VT-d-honor-APEI-firmware-first-mode-in-XSA-59-workaround-code.patch + 538dcada-x86-HVM-eliminate-vulnerabilities-from-hvm_inject_msi.patch + 53455585-x86-AMD-feature-masking-is-unavailable-on-Fam11.patch + 537b5e50-VT-d-apply-quirks-at-device-setup-time-rather-than-only-at-boot.patch + 53a199d7-x86-EFI-allow-FPU-XMM-use-in-runtime-service-functions.patch + 53cfddaf-x86-mem_event-validate-the-response-vcpu_id-before-acting-on-it.patch + 53b16cd4-VT-d-ATS-correct-and-clean-up-dev_invalidate_iotlb.patch + 53cfdde4-x86-mem_event-prevent-underflow-of-vcpu-pause-counts.patch + 53356c1e-x86-HVM-correct-CPUID-leaf-80000008-handling.patch + 534bbd90-x86-nested-HAP-don-t-BUG-on-legitimate-error.patch + 530b28c5-x86-MSI-don-t-risk-division-by-zero.patch + 5396e805-x86-HVM-refine-SMEP-test-in-HVM_CR4_GUEST_RESERVED_BITS.patch + 5370e03b-pygrub-fix-error-handling-if-no-valid-partitions-are-found.patch + 5321b257-x86-make-hypercall-preemption-checks-consistent.patch + 5321b20b-common-make-hypercall-preemption-checks-consistent.patch + 538c338f-x86-amd_ucode-flip-revision-numbers-in-printk.patch + 537b5e79-VT-d-extend-error-report-masking-workaround-to-newer-chipsets.patch + 531d8db1-x86-hvm-refine-the-judgment-on-IDENT_PT-for-EMT.patch + 53b56de1-properly-reference-count-DOMCTL_-un-pausedomain-hypercalls.patch + 530b2880-Nested-VMX-update-nested-paging-mode-on-vmexit.patch + 533ad1ee-VMX-fix-PAT-value-seen-by-guest.patch + 53206661-pygrub-support-linux16-and-initrd16.patch + 5315a254-IOMMU-generalize-and-correct-softirq-processing.patch + +------------------------------------------------------------------- +Fri Aug 1 08:25:12 UTC 2014 - cy...@suse.com + +- bnc#820873 - The "long" option doesn't work with "xl list" + 53d124e7-fix-list_domain_details-check-config-data-length-0.patch + +------------------------------------------------------------------- +Thu Jul 30 09:31:52 MDT 2014 - carn...@suse.com + +- bnc#888996 - Package 'xen-tool' contains 'SuSE' spelling in a + filename and/or SPEC file + Renamed README.SuSE -> README.SUSE + Modified files: xen.spec, boot.local.xenU, init.pciback + xend-config.patch, xend-vif-route-ifup.patch + +------------------------------------------------------------------- +Wed Jul 29 16:44:48 MDT 2014 - carn...@suse.com + +- bnc#882673 - Dom0 memory should enforce a minimum memory size + (e.g. dom0_mem=min:512M) + xen.spec (Mike Latimer) + +------------------------------------------------------------------- Old: ---- 530b27fd-x86-MCE-Fix-race-condition-in-mctelem_reserve.patch 530b2880-Nested-VMX-update-nested-paging-mode-on-vmexit.patch 530b28c5-x86-MSI-don-t-risk-division-by-zero.patch 530c54c3-x86-mce-Reduce-boot-time-logspam.patch 5315a254-IOMMU-generalize-and-correct-softirq-processing.patch 531d8db1-x86-hvm-refine-the-judgment-on-IDENT_PT-for-EMT.patch 531d8e09-x86-HVM-fix-memory-type-merging-in-epte_get_entry_emt.patch 531d8e34-x86-HVM-consolidate-passthrough-handling-in-epte_get_entry_emt.patch 531d8fd0-kexec-identify-which-cpu-the-kexec-image-is-being-executed-on.patch 531dc0e2-xmalloc-handle-correctly-page-allocation-when-align-size.patch 53206661-pygrub-support-linux16-and-initrd16.patch 5321b20b-common-make-hypercall-preemption-checks-consistent.patch 5321b257-x86-make-hypercall-preemption-checks-consistent.patch 53271880-VT-d-fix-RMRR-handling.patch 5327190a-x86-Intel-work-around-Xeon-7400-series-erratum-AAI65.patch 532fff53-x86-fix-determination-of-bit-count-for-struct-domain-allocations.patch 5331917d-x86-enforce-preemption-in-HVM_set_mem_access-p2m_set_mem_access.patch 53356c1e-x86-HVM-correct-CPUID-leaf-80000008-handling.patch 533ad1ee-VMX-fix-PAT-value-seen-by-guest.patch 533d413b-x86-mm-fix-checks-against-max_mapped_pfn.patch 53455585-x86-AMD-feature-masking-is-unavailable-on-Fam11.patch 5347b524-evtchn-eliminate-64k-ports-limitation.patch 534bbd90-x86-nested-HAP-don-t-BUG-on-legitimate-error.patch 534bdf47-x86-HAP-also-flush-TLB-when-altering-a-present-1G-or-intermediate-entry.patch 5357baff-x86-add-missing-break-in-dom0_pit_access.patch 535a34eb-VT-d-suppress-UR-signaling-for-server-chipsets.patch 535a3516-VT-d-suppress-UR-signaling-for-desktop-chipsets.patch 535a354b-passthrough-allow-to-suppress-SERR-and-PERR-signaling.patch 535e31bc-x86-HVM-correct-the-SMEP-logic-for-HVM_CR0_GUEST_RESERVED_BITS.patch 535fa503-x86-HVM-restrict-HVMOP_set_mem_type.patch 53636978-hvm_set_ioreq_page-releases-wrong-page-in-error-path.patch 53636ebf-x86-fix-guest-CPUID-handling.patch 53709b77-Nested-VMX-load-current_vmcs-only-when-it-exists.patch 5370e03b-pygrub-fix-error-handling-if-no-valid-partitions-are-found.patch 53732f4f-x86-MCE-bypass-uninitialized-vcpu-in-vMCE-injection.patch 537b5e50-VT-d-apply-quirks-at-device-setup-time-rather-than-only-at-boot.patch 537b5e79-VT-d-extend-error-report-masking-workaround-to-newer-chipsets.patch 537b5ede-move-domain-to-cpupool0-before-destroying-it.patch 5383167d-ACPI-ERST-fix-table-mapping.patch 5383175e-VT-d-fix-mask-applied-to-DMIBAR-in-desktop-chipset-XSA-59-workaround.patch 53859549-AMD-IOMMU-don-t-free-page-table-prematurely.patch 5385956b-x86-don-t-use-VA-for-cache-flush-when-also-flushing-TLB.patch 53859956-timers-set-the-deadline-more-accurately.patch 538c338f-x86-amd_ucode-flip-revision-numbers-in-printk.patch 538dcada-x86-HVM-eliminate-vulnerabilities-from-hvm_inject_msi.patch 538ee637-ACPI-Prevent-acpi_table_entries-from-falling-into-a-infinite-loop.patch 5390917a-VT-d-honor-APEI-firmware-first-mode-in-XSA-59-workaround-code.patch 53909259-x86-domctl-two-functional-fixes-to-XEN_DOMCTL_-gs-etvcpuextstate.patch 5390927f-x86-fix-reboot-shutdown-with-running-HVM-guests.patch 5396d818-avoid-crash-on-HVM-domain-destroy-with-PCI-passthrough.patch 5396e805-x86-HVM-refine-SMEP-test-in-HVM_CR4_GUEST_RESERVED_BITS.patch 539ec004-x86-mce-don-t-spam-the-console-with-CPUx-Temperature-z.patch 53a040c6-page-alloc-scrub-pages-used-by-hypervisor-upon-freeing.patch 53a1990a-IOMMU-prevent-VT-d-device-IOTLB-operations-on-wrong-IOMMU.patch 53a199d7-x86-EFI-allow-FPU-XMM-use-in-runtime-service-functions.patch 53b16cd4-VT-d-ATS-correct-and-clean-up-dev_invalidate_iotlb.patch 53b56de1-properly-reference-count-DOMCTL_-un-pausedomain-hypercalls.patch 53cfdcc7-avoid-crash-when-doing-shutdown-with-active-cpupools.patch 53cfddaf-x86-mem_event-validate-the-response-vcpu_id-before-acting-on-it.patch 53cfdde4-x86-mem_event-prevent-underflow-of-vcpu-pause-counts.patch README.SuSE xen-4.4.0-testing-src.tar.bz2 New: ---- 53d124e7-fix-list_domain_details-check-config-data-length-0.patch 53d7b781-x86-cpu-undo-BIOS-CPUID-max_leaf-limit-earlier.patch 53dba447-x86-ACPI-allow-CMOS-RTC-use-even-when-ACPI-says-there-is-none.patch 53df71c7-lz4-check-for-underruns.patch 53df727b-x86-HVM-extend-LAPIC-shortcuts-around-P2M-lookups.patch 53e47d6b-x86_emulate-properly-do-IP-updates-and-other-side-effects.patch README.SUSE xen-4.4.1-testing-src.tar.bz2 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Other differences: ------------------ ++++++ xen.spec ++++++ --- /var/tmp/diff_new_pack.huxx5F/_old 2014-08-20 17:53:06.000000000 +0200 +++ /var/tmp/diff_new_pack.huxx5F/_new 2014-08-20 17:53:06.000000000 +0200 @@ -21,8 +21,8 @@ ExclusiveArch: %ix86 x86_64 %arm aarch64 %define xvers 4.4 %define xvermaj 4 -%define changeset 28401 -%define xen_build_dir xen-4.4.0-testing +%define changeset 28531 +%define xen_build_dir xen-4.4.1-testing # %define with_kmp 0 %define with_xend 0 @@ -153,19 +153,19 @@ %endif %endif -Version: 4.4.0_26 +Version: 4.4.1_02 Release: 0 PreReq: %insserv_prereq %fillup_prereq Summary: Xen Virtualization: Hypervisor (aka VMM aka Microkernel) License: GPL-2.0 Group: System/Kernel -Source0: xen-4.4.0-testing-src.tar.bz2 +Source0: xen-4.4.1-testing-src.tar.bz2 Source1: stubdom.tar.bz2 Source2: qemu-xen-traditional-dir-remote.tar.bz2 Source3: qemu-xen-dir-remote.tar.bz2 Source4: seabios-dir-remote.tar.bz2 Source5: ipxe.tar.bz2 -Source10: README.SuSE +Source10: README.SUSE Source11: boot.xen Source12: boot.local.xenU Source14: init.xendomains @@ -212,77 +212,23 @@ # http://xenbits.xensource.com/ext/xenalyze Source20000: xenalyze.hg.tar.bz2 # Upstream patches -Patch1: 530b27fd-x86-MCE-Fix-race-condition-in-mctelem_reserve.patch -Patch2: 530b2880-Nested-VMX-update-nested-paging-mode-on-vmexit.patch -Patch3: 530b28c5-x86-MSI-don-t-risk-division-by-zero.patch -Patch4: 530c54c3-x86-mce-Reduce-boot-time-logspam.patch -Patch5: 5315a254-IOMMU-generalize-and-correct-softirq-processing.patch -Patch6: 5315a3bb-x86-don-t-propagate-acpi_skip_timer_override-do-Dom0.patch -Patch7: 5315a43a-x86-ACPI-also-print-address-space-for-PM1x-fields.patch -Patch8: 531d8db1-x86-hvm-refine-the-judgment-on-IDENT_PT-for-EMT.patch -Patch9: 531d8e09-x86-HVM-fix-memory-type-merging-in-epte_get_entry_emt.patch -Patch10: 531d8e34-x86-HVM-consolidate-passthrough-handling-in-epte_get_entry_emt.patch -Patch11: 531d8fd0-kexec-identify-which-cpu-the-kexec-image-is-being-executed-on.patch -Patch12: 531dc0e2-xmalloc-handle-correctly-page-allocation-when-align-size.patch -Patch13: 53206661-pygrub-support-linux16-and-initrd16.patch -Patch14: 5321b20b-common-make-hypercall-preemption-checks-consistent.patch -Patch15: 5321b257-x86-make-hypercall-preemption-checks-consistent.patch -Patch16: 53271880-VT-d-fix-RMRR-handling.patch -Patch17: 5327190a-x86-Intel-work-around-Xeon-7400-series-erratum-AAI65.patch -Patch18: 53299d8f-xenconsole-reset-tty-on-failure.patch -Patch19: 53299d8f-xenconsole-tolerate-tty-errors.patch -Patch20: 532fff53-x86-fix-determination-of-bit-count-for-struct-domain-allocations.patch -Patch21: 5331917d-x86-enforce-preemption-in-HVM_set_mem_access-p2m_set_mem_access.patch -Patch22: 53356c1e-x86-HVM-correct-CPUID-leaf-80000008-handling.patch -Patch23: 533ad1ee-VMX-fix-PAT-value-seen-by-guest.patch -Patch24: 533d413b-x86-mm-fix-checks-against-max_mapped_pfn.patch -Patch25: 53455585-x86-AMD-feature-masking-is-unavailable-on-Fam11.patch -Patch26: 5346a7a0-x86-AMD-support-further-feature-masking-MSRs.patch -Patch27: 5347b524-evtchn-eliminate-64k-ports-limitation.patch -Patch28: 534bbd90-x86-nested-HAP-don-t-BUG-on-legitimate-error.patch -Patch29: 534bdf47-x86-HAP-also-flush-TLB-when-altering-a-present-1G-or-intermediate-entry.patch -Patch30: 53563ea4-x86-MSI-drop-workaround-for-insecure-Dom0-kernels.patch -Patch31: 5357baff-x86-add-missing-break-in-dom0_pit_access.patch -Patch32: 535a34eb-VT-d-suppress-UR-signaling-for-server-chipsets.patch -Patch33: 535a3516-VT-d-suppress-UR-signaling-for-desktop-chipsets.patch -Patch34: 535a354b-passthrough-allow-to-suppress-SERR-and-PERR-signaling.patch -Patch35: 535e31bc-x86-HVM-correct-the-SMEP-logic-for-HVM_CR0_GUEST_RESERVED_BITS.patch -Patch36: 535fa503-x86-HVM-restrict-HVMOP_set_mem_type.patch -Patch37: 53636978-hvm_set_ioreq_page-releases-wrong-page-in-error-path.patch -Patch38: 53636ebf-x86-fix-guest-CPUID-handling.patch -Patch39: 53709b77-Nested-VMX-load-current_vmcs-only-when-it-exists.patch -Patch40: 5370e03b-pygrub-fix-error-handling-if-no-valid-partitions-are-found.patch -Patch41: 53732f4f-x86-MCE-bypass-uninitialized-vcpu-in-vMCE-injection.patch -Patch42: 537b5e50-VT-d-apply-quirks-at-device-setup-time-rather-than-only-at-boot.patch -Patch43: 537b5e79-VT-d-extend-error-report-masking-workaround-to-newer-chipsets.patch -Patch44: 537b5ede-move-domain-to-cpupool0-before-destroying-it.patch -Patch45: 537cd0b0-hvmloader-also-cover-PCI-MMIO-ranges-above-4G-with-UC-MTRR-ranges.patch -Patch46: 537cd0cc-hvmloader-PA-range-0xfc000000-0xffffffff-should-be-UC.patch -Patch47: 5383167d-ACPI-ERST-fix-table-mapping.patch -Patch48: 5383175e-VT-d-fix-mask-applied-to-DMIBAR-in-desktop-chipset-XSA-59-workaround.patch -Patch49: 53859549-AMD-IOMMU-don-t-free-page-table-prematurely.patch -Patch50: 5385956b-x86-don-t-use-VA-for-cache-flush-when-also-flushing-TLB.patch -Patch51: 53859956-timers-set-the-deadline-more-accurately.patch -Patch52: 538c338f-x86-amd_ucode-flip-revision-numbers-in-printk.patch -Patch53: 538dcada-x86-HVM-eliminate-vulnerabilities-from-hvm_inject_msi.patch -Patch54: 538ee637-ACPI-Prevent-acpi_table_entries-from-falling-into-a-infinite-loop.patch -Patch55: 5390917a-VT-d-honor-APEI-firmware-first-mode-in-XSA-59-workaround-code.patch -Patch56: 53909259-x86-domctl-two-functional-fixes-to-XEN_DOMCTL_-gs-etvcpuextstate.patch -Patch57: 5390927f-x86-fix-reboot-shutdown-with-running-HVM-guests.patch -Patch58: 5396d818-avoid-crash-on-HVM-domain-destroy-with-PCI-passthrough.patch -Patch59: 5396e805-x86-HVM-refine-SMEP-test-in-HVM_CR4_GUEST_RESERVED_BITS.patch -Patch60: 539ebe62-x86-EFI-improve-boot-time-diagnostics.patch -Patch61: 539ec004-x86-mce-don-t-spam-the-console-with-CPUx-Temperature-z.patch -Patch62: 53a040c6-page-alloc-scrub-pages-used-by-hypervisor-upon-freeing.patch -Patch63: 53a1990a-IOMMU-prevent-VT-d-device-IOTLB-operations-on-wrong-IOMMU.patch -Patch64: 53a199d7-x86-EFI-allow-FPU-XMM-use-in-runtime-service-functions.patch -Patch65: 53aac342-x86-HVM-consolidate-and-sanitize-CR4-guest-reserved-bit-determination.patch -Patch66: 53b16cd4-VT-d-ATS-correct-and-clean-up-dev_invalidate_iotlb.patch -Patch67: 53b56de1-properly-reference-count-DOMCTL_-un-pausedomain-hypercalls.patch -Patch68: 53c9151b-Fix-xl-vncviewer-accesses-port-0-by-any-invalid-domid.patch -Patch69: 53cfdcc7-avoid-crash-when-doing-shutdown-with-active-cpupools.patch -Patch70: 53cfddaf-x86-mem_event-validate-the-response-vcpu_id-before-acting-on-it.patch -Patch71: 53cfdde4-x86-mem_event-prevent-underflow-of-vcpu-pause-counts.patch +Patch1: 5315a3bb-x86-don-t-propagate-acpi_skip_timer_override-do-Dom0.patch +Patch2: 5315a43a-x86-ACPI-also-print-address-space-for-PM1x-fields.patch +Patch3: 53299d8f-xenconsole-reset-tty-on-failure.patch +Patch4: 53299d8f-xenconsole-tolerate-tty-errors.patch +Patch5: 5346a7a0-x86-AMD-support-further-feature-masking-MSRs.patch +Patch6: 53563ea4-x86-MSI-drop-workaround-for-insecure-Dom0-kernels.patch +Patch7: 537cd0b0-hvmloader-also-cover-PCI-MMIO-ranges-above-4G-with-UC-MTRR-ranges.patch +Patch8: 537cd0cc-hvmloader-PA-range-0xfc000000-0xffffffff-should-be-UC.patch +Patch9: 539ebe62-x86-EFI-improve-boot-time-diagnostics.patch +Patch10: 53aac342-x86-HVM-consolidate-and-sanitize-CR4-guest-reserved-bit-determination.patch +Patch11: 53c9151b-Fix-xl-vncviewer-accesses-port-0-by-any-invalid-domid.patch +Patch12: 53d124e7-fix-list_domain_details-check-config-data-length-0.patch +Patch13: 53d7b781-x86-cpu-undo-BIOS-CPUID-max_leaf-limit-earlier.patch +Patch14: 53dba447-x86-ACPI-allow-CMOS-RTC-use-even-when-ACPI-says-there-is-none.patch +Patch15: 53df71c7-lz4-check-for-underruns.patch +Patch16: 53df727b-x86-HVM-extend-LAPIC-shortcuts-around-P2M-lookups.patch +Patch17: 53e47d6b-x86_emulate-properly-do-IP-updates-and-other-side-effects.patch # Upstream qemu Patch250: VNC-Support-for-ExtendedKeyEvent-client-message.patch Patch251: 0001-net-move-the-tap-buffer-into-TAPState.patch @@ -665,60 +611,6 @@ %patch15 -p1 %patch16 -p1 %patch17 -p1 -%patch18 -p1 -%patch19 -p1 -%patch20 -p1 -%patch21 -p1 -%patch22 -p1 -%patch23 -p1 -%patch24 -p1 -%patch25 -p1 -%patch26 -p1 -%patch27 -p1 -%patch28 -p1 -%patch29 -p1 -%patch30 -p1 -%patch31 -p1 -%patch32 -p1 -%patch33 -p1 -%patch34 -p1 -%patch35 -p1 -%patch36 -p1 -%patch37 -p1 -%patch38 -p1 -%patch39 -p1 -%patch40 -p1 -%patch41 -p1 -%patch42 -p1 -%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 # Upstream qemu patches %patch250 -p1 %patch251 -p1 @@ -1361,7 +1253,7 @@ %{_libdir}/python%{pyver}/site-packages/xnloader.py %dir %{_defaultdocdir}/xen %{_defaultdocdir}/xen/COPYING -%{_defaultdocdir}/xen/README.SuSE +%{_defaultdocdir}/xen/README.SUSE %{_defaultdocdir}/xen/boot.local.xenU %{_defaultdocdir}/xen/boot.xen %{_defaultdocdir}/xen/misc @@ -1504,6 +1396,12 @@ rm -f /usr/lib/xen/bin/qemu-io-xen ln -s /usr/bin/qemu-io /usr/lib/xen/bin/qemu-io-xen fi +if [ -f /etc/default/grub ] && ! (/usr/bin/grep GRUB_CMDLINE_XEN /etc/default/grub >/dev/null); then + echo '# Xen boot parameters for all Xen boots' >> /etc/default/grub + echo 'GRUB_CMDLINE_XEN=""' >> /etc/default/grub + echo '# Xen boot parameters for non-recovery Xen boots (in addition to GRUB_CMDLINE_XEN)' >> /etc/default/grub + echo 'GRUB_CMDLINE_XEN_DEFAULT=""' >> /etc/default/grub +fi %if %{?with_xend}0 %if %{?with_xend_tools_pkg}0 ++++++ 53aac342-x86-HVM-consolidate-and-sanitize-CR4-guest-reserved-bit-determination.patch ++++++ --- /var/tmp/diff_new_pack.huxx5F/_old 2014-08-20 17:53:06.000000000 +0200 +++ /var/tmp/diff_new_pack.huxx5F/_new 2014-08-20 17:53:06.000000000 +0200 @@ -15,9 +15,11 @@ Signed-off-by: Jan Beulich <jbeul...@suse.com> Reviewed-by: Andrew Cooper <andrew.coop...@citrix.com> ---- a/xen/arch/x86/hvm/hvm.c -+++ b/xen/arch/x86/hvm/hvm.c -@@ -828,6 +828,73 @@ static bool_t hvm_efer_valid(struct doma +Index: xen-4.4.1-testing/xen/arch/x86/hvm/hvm.c +=================================================================== +--- xen-4.4.1-testing.orig/xen/arch/x86/hvm/hvm.c ++++ xen-4.4.1-testing/xen/arch/x86/hvm/hvm.c +@@ -827,6 +827,73 @@ static bool_t hvm_efer_valid(struct doma ((value & (EFER_LME|EFER_LMA)) == EFER_LMA)); } @@ -91,7 +93,7 @@ static int hvm_load_cpu_ctxt(struct domain *d, hvm_domain_context_t *h) { int vcpuid; -@@ -858,7 +925,7 @@ static int hvm_load_cpu_ctxt(struct doma +@@ -857,7 +924,7 @@ static int hvm_load_cpu_ctxt(struct doma return -EINVAL; } @@ -100,7 +102,7 @@ { printk(XENLOG_G_ERR "HVM%d restore: bad CR4 %#" PRIx64 "\n", d->domain_id, ctxt.cr4); -@@ -1977,7 +2044,7 @@ int hvm_set_cr4(unsigned long value) +@@ -1981,7 +2048,7 @@ int hvm_set_cr4(unsigned long value) struct vcpu *v = current; unsigned long old_cr; @@ -109,8 +111,10 @@ { HVM_DBG_LOG(DBG_LEVEL_1, "Guest attempts to set reserved bit in CR4: %lx", ---- a/xen/include/asm-x86/hvm/hvm.h -+++ b/xen/include/asm-x86/hvm/hvm.h +Index: xen-4.4.1-testing/xen/include/asm-x86/hvm/hvm.h +=================================================================== +--- xen-4.4.1-testing.orig/xen/include/asm-x86/hvm/hvm.h ++++ xen-4.4.1-testing/xen/include/asm-x86/hvm/hvm.h @@ -347,51 +347,10 @@ static inline int hvm_event_pending(stru return hvm_funcs.event_pending(v); } ++++++ 53d124e7-fix-list_domain_details-check-config-data-length-0.patch ++++++ >From ef8cf0d4902c90595a0b0766e2a9a6ecbcbc4581 Mon Sep 17 00:00:00 2001 From: Chunyan Liu <cy...@suse.com> Date: Wed, 23 Jul 2014 17:42:09 +0800 Subject: [PATCH] fix list_domain_details: check config data length=0 If domain is created through virsh, then in xl, one could see it with 'xl list', but with 'xl list --long domU', it reports: "Domain name must be specified." The reason is xl config data does not exist but it still tries to parse_config_data in current code. Improve list_domain_details: If len of config data is 0, just pass, do not go forward to parse_config_data, otherwise, it will meet error like "Domain name not specified" and exit. This error is not expected, since if code enters list_domain_details, domain name validness is already checked and domain does exist. Length of config data is 0 may means: config data does not exist due to some reason, like: domain is created by libvirt, or in destroying domain process config data is cleared but domain fails to clean up. No matter in which case, list_domain_details could just show empty info, but not error like "Domain name not specified". Signed-off-by: Chunyan Liu <cy...@suse.com> Acked-by: Ian Jackson <ian.jack...@eu.citrix.com> --- tools/libxl/xl_cmdimpl.c | 2 ++ 1 file changed, 2 insertions(+) Index: xen-4.4.0-testing/tools/libxl/xl_cmdimpl.c =================================================================== --- xen-4.4.0-testing.orig/tools/libxl/xl_cmdimpl.c +++ xen-4.4.0-testing/tools/libxl/xl_cmdimpl.c @@ -3198,6 +3198,8 @@ static void list_domains_details(const l rc = libxl_userdata_retrieve(ctx, info[i].domid, "xl", &data, &len); if (rc) continue; + if (len == 0) + continue; CHK_SYSCALL(asprintf(&config_source, "<domid %d data>", info[i].domid)); libxl_domain_config_init(&d_config); parse_config_data(config_source, (char *)data, len, &d_config, NULL); ++++++ 53d7b781-x86-cpu-undo-BIOS-CPUID-max_leaf-limit-earlier.patch ++++++ # Commit a1ac4cf52e38386bac7ac3440c7da0099662ca5c # Date 2014-07-29 17:02:25 +0200 # Author Andrew Cooper <andrew.coop...@citrix.com> # Committer Jan Beulich <jbeul...@suse.com> x86/cpu: undo BIOS CPUID max_leaf limit before querying for features If IA32_MISC_ENABLE[22] is set by the BIOS, CPUID.0.EAX will be limited to 3. Lift this limit before considering whether to query CPUID.7[ECX=0].EBX for features. Without this change, dom0 is able to see this feature leaf (as the limit was subsequently lifted), and will set features appropriately in HVM domain cpuid policies. The specific bug XenServer observed was the advertisement of the FSGSBASE feature, but an inability to set CR4.FSGSBASE as Xen considered the bit to be reserved as cpu_has_fsgsbase incorrectly evaluated as false. This is a regression introduced by c/s 44e24f8567 "x86: don't call generic_identify() redundantly" where the redundant call actually resampled CPUID.7[ECX=0] properly to obtain the feature flags. Signed-off-by: Andrew Cooper <andrew.coop...@citrix.com> Reviewed-by: Jan Beulich <jbeul...@suse.com> --- a/xen/arch/x86/cpu/common.c +++ b/xen/arch/x86/cpu/common.c @@ -234,6 +234,9 @@ static void __cpuinit generic_identify(s paddr_bits = cpuid_eax(0x80000008) & 0xff; } + /* Might lift BIOS max_leaf=3 limit. */ + early_intel_workaround(c); + /* Intel-defined flags: level 0x00000007 */ if ( c->cpuid_level >= 0x00000007 ) { u32 dummy; @@ -241,8 +244,6 @@ static void __cpuinit generic_identify(s c->x86_capability[X86_FEATURE_FSGSBASE / 32] = ebx; } - early_intel_workaround(c); - #ifdef CONFIG_X86_HT c->phys_proc_id = (cpuid_ebx(1) >> 24) & 0xff; #endif ++++++ 53dba447-x86-ACPI-allow-CMOS-RTC-use-even-when-ACPI-says-there-is-none.patch ++++++ References: bnc#883112 # Commit e9425f05b90811458a08355a55a0b0d608c440cf # Date 2014-08-01 16:29:27 +0200 # Author Jan Beulich <jbeul...@suse.com> # Committer Jan Beulich <jbeul...@suse.com> x86/ACPI: allow CMOS RTC use even when ACPI says there is none HP is setting the ACPI_FADT_NO_CMOS_RTC flag on newer systems, regardless of whether they're being booted from UEFI. Add a command line option to allow probing for a working RTC in that case. Signed-off-by: Jan Beulich <jbeul...@suse.com> Reviewed-by: Andrew Cooper <andrew.coop...@citrix.com> --- a/docs/misc/xen-command-line.markdown +++ b/docs/misc/xen-command-line.markdown @@ -207,6 +207,14 @@ If set, override Xen's calculation of th If set, override Xen's default choice for the platform timer. +### cmos-rtc-probe +> `= <boolean>` + +> Default: `false` + +Flag to indicate whether to probe for a CMOS Real Time Clock irrespective of +ACPI indicating none to be there. + ### com1,com2 > `= > <baud>[/<clock_hz>][,[DPS][,[<io-base>|pci|amt][,[<irq>][,[<port-bdf>][,[<bridge-bdf>]]]]]]` --- a/xen/arch/x86/time.c +++ b/xen/arch/x86/time.c @@ -651,37 +651,40 @@ mktime (unsigned int year, unsigned int )*60 + sec; /* finally seconds */ } -static unsigned long __get_cmos_time(void) -{ +struct rtc_time { unsigned int year, mon, day, hour, min, sec; +}; - sec = CMOS_READ(RTC_SECONDS); - min = CMOS_READ(RTC_MINUTES); - hour = CMOS_READ(RTC_HOURS); - day = CMOS_READ(RTC_DAY_OF_MONTH); - mon = CMOS_READ(RTC_MONTH); - year = CMOS_READ(RTC_YEAR); +static void __get_cmos_time(struct rtc_time *rtc) +{ + rtc->sec = CMOS_READ(RTC_SECONDS); + rtc->min = CMOS_READ(RTC_MINUTES); + rtc->hour = CMOS_READ(RTC_HOURS); + rtc->day = CMOS_READ(RTC_DAY_OF_MONTH); + rtc->mon = CMOS_READ(RTC_MONTH); + rtc->year = CMOS_READ(RTC_YEAR); if ( !(CMOS_READ(RTC_CONTROL) & RTC_DM_BINARY) || RTC_ALWAYS_BCD ) { - BCD_TO_BIN(sec); - BCD_TO_BIN(min); - BCD_TO_BIN(hour); - BCD_TO_BIN(day); - BCD_TO_BIN(mon); - BCD_TO_BIN(year); + BCD_TO_BIN(rtc->sec); + BCD_TO_BIN(rtc->min); + BCD_TO_BIN(rtc->hour); + BCD_TO_BIN(rtc->day); + BCD_TO_BIN(rtc->mon); + BCD_TO_BIN(rtc->year); } - if ( (year += 1900) < 1970 ) - year += 100; - - return mktime(year, mon, day, hour, min, sec); + if ( (rtc->year += 1900) < 1970 ) + rtc->year += 100; } static unsigned long get_cmos_time(void) { unsigned long res, flags; - int i; + struct rtc_time rtc; + unsigned int seconds = 60; + static bool_t __read_mostly cmos_rtc_probe; + boolean_param("cmos-rtc-probe", cmos_rtc_probe); if ( efi_enabled ) { @@ -690,23 +693,58 @@ static unsigned long get_cmos_time(void) return res; } - if ( unlikely(acpi_gbl_FADT.boot_flags & ACPI_FADT_NO_CMOS_RTC) ) - panic("System without CMOS RTC must be booted from EFI"); - - spin_lock_irqsave(&rtc_lock, flags); - - /* read RTC exactly on falling edge of update flag */ - for ( i = 0 ; i < 1000000 ; i++ ) /* may take up to 1 second... */ - if ( (CMOS_READ(RTC_FREQ_SELECT) & RTC_UIP) ) + if ( likely(!(acpi_gbl_FADT.boot_flags & ACPI_FADT_NO_CMOS_RTC)) ) + cmos_rtc_probe = 0; + else if ( system_state < SYS_STATE_active && !cmos_rtc_probe ) + panic("System with no CMOS RTC advertised must be booted from EFI" + " (or with command line option \"cmos-rtc-probe\")"); + + for ( ; ; ) + { + s_time_t start, t1, t2; + + spin_lock_irqsave(&rtc_lock, flags); + + /* read RTC exactly on falling edge of update flag */ + start = NOW(); + do { /* may take up to 1 second... */ + t1 = NOW() - start; + } while ( !(CMOS_READ(RTC_FREQ_SELECT) & RTC_UIP) && + t1 <= SECONDS(1) ); + + start = NOW(); + do { /* must try at least 2.228 ms */ + t2 = NOW() - start; + } while ( (CMOS_READ(RTC_FREQ_SELECT) & RTC_UIP) && + t2 < MILLISECS(3) ); + + __get_cmos_time(&rtc); + + spin_unlock_irqrestore(&rtc_lock, flags); + + if ( likely(!cmos_rtc_probe) || + t1 > SECONDS(1) || t2 >= MILLISECS(3) || + rtc.sec >= 60 || rtc.min >= 60 || rtc.hour >= 24 || + !rtc.day || rtc.day > 31 || + !rtc.mon || rtc.mon > 12 ) break; - for ( i = 0 ; i < 1000000 ; i++ ) /* must try at least 2.228 ms */ - if ( !(CMOS_READ(RTC_FREQ_SELECT) & RTC_UIP) ) + + if ( seconds < 60 ) + { + if ( rtc.sec != seconds ) + cmos_rtc_probe = 0; break; + } + + process_pending_softirqs(); + + seconds = rtc.sec; + } - res = __get_cmos_time(); + if ( unlikely(cmos_rtc_probe) ) + panic("No CMOS RTC found - system must be booted from EFI"); - spin_unlock_irqrestore(&rtc_lock, flags); - return res; + return mktime(rtc.year, rtc.mon, rtc.day, rtc.hour, rtc.min, rtc.sec); } /*************************************************************************** ++++++ 53df71c7-lz4-check-for-underruns.patch ++++++ # Commit 9143a6c55ef7e8f630857cb08c03844d372c2345 # Date 2014-08-04 13:43:03 +0200 # Author Jan Beulich <jbeul...@suse.com> # Committer Jan Beulich <jbeul...@suse.com> lz4: check for underruns While overruns are already being taken care of, underruns (resulting from overflows in the respective "op + length" (or similar) operations weren't. This is CVE-2014-4611. Signed-off-by: Jan Beulich <jbeul...@suse.com> Acked-by: Ian Campbell <ian.campb...@citrix.com> --- a/xen/common/lz4/decompress.c +++ b/xen/common/lz4/decompress.c @@ -84,6 +84,8 @@ static int INIT lz4_uncompress(const uns ip += length; break; /* EOF */ } + if (unlikely((unsigned long)cpy < (unsigned long)op)) + goto _output_error; LZ4_WILDCOPY(ip, op, cpy); ip -= (op - cpy); op = cpy; @@ -142,6 +144,8 @@ static int INIT lz4_uncompress(const uns goto _output_error; continue; } + if (unlikely((unsigned long)cpy < (unsigned long)op)) + goto _output_error; LZ4_SECURECOPY(ref, op, cpy); op = cpy; /* correction */ } @@ -207,6 +211,8 @@ static int lz4_uncompress_unknownoutputs op += length; break;/* Necessarily EOF, due to parsing restrictions */ } + if (unlikely((unsigned long)cpy < (unsigned long)op)) + goto _output_error; LZ4_WILDCOPY(ip, op, cpy); ip -= (op - cpy); op = cpy; @@ -270,6 +276,8 @@ static int lz4_uncompress_unknownoutputs goto _output_error; continue; } + if (unlikely((unsigned long)cpy < (unsigned long)op)) + goto _output_error; LZ4_SECURECOPY(ref, op, cpy); op = cpy; /* correction */ } ++++++ 53df727b-x86-HVM-extend-LAPIC-shortcuts-around-P2M-lookups.patch ++++++ # Commit fd1863847af15c3676348447755e1a1801f9d394 # Date 2014-08-04 13:46:03 +0200 # Author Jan Beulich <jbeul...@suse.com> # Committer Jan Beulich <jbeul...@suse.com> x86/HVM: extend LAPIC shortcuts around P2M lookups ... to all internally handled MMIO regions. It is in particular the HPET page that, e.g. on Windows Server 2012 R2, can get heavily accessed, and hence avoiding the unnecessary lookups is rather beneficial (in the reported case a 40+-vCPU guest would previously not have booted at all while with hvm_hap_nested_page_fault() shortcut alone it was able to boot up in 18 minutes [i.e. still room for improvement]). Note the apparently unrelated addition of a is_hvm_vcpu() check to the __hvm_copy() code: Afaict for PVH this shortcut should never have taken effect (since there's no LAPIC in that case). Signed-off-by: Jan Beulich <jbeul...@suse.com> Reviewed-by: Tim Deegan <t...@xen.org> --- a/xen/arch/x86/hvm/hvm.c +++ b/xen/arch/x86/hvm/hvm.c @@ -1521,11 +1521,14 @@ int hvm_hap_nested_page_fault(paddr_t gp } } - /* For the benefit of 32-bit WinXP (& older Windows) on AMD CPUs, - * a fast path for LAPIC accesses, skipping the p2m lookup. */ + /* + * No need to do the P2M lookup for internally handled MMIO, benefiting + * - 32-bit WinXP (& older Windows) on AMD CPUs for LAPIC accesses, + * - newer Windows (like Server 2012) for HPET accesses. + */ if ( !nestedhvm_vcpu_in_guestmode(v) && is_hvm_vcpu(v) - && gfn == PFN_DOWN(vlapic_base_address(vcpu_vlapic(v))) ) + && hvm_mmio_internal(gpa) ) { if ( !handle_mmio() ) hvm_inject_hw_exception(TRAP_gp_fault, 0); @@ -2644,7 +2647,9 @@ static enum hvm_copy_result __hvm_copy( while ( todo > 0 ) { - count = min_t(int, PAGE_SIZE - (addr & ~PAGE_MASK), todo); + paddr_t gpa = addr & ~PAGE_MASK; + + count = min_t(int, PAGE_SIZE - gpa, todo); if ( flags & HVMCOPY_virt ) { @@ -2659,16 +2664,22 @@ static enum hvm_copy_result __hvm_copy( hvm_inject_page_fault(pfec, addr); return HVMCOPY_bad_gva_to_gfn; } + gpa |= (paddr_t)gfn << PAGE_SHIFT; } else { gfn = addr >> PAGE_SHIFT; + gpa = addr; } - /* For the benefit of 32-bit WinXP (& older Windows) on AMD CPUs, - * a fast path for LAPIC accesses, skipping the p2m lookup. */ + /* + * No need to do the P2M lookup for internally handled MMIO, benefiting + * - 32-bit WinXP (& older Windows) on AMD CPUs for LAPIC accesses, + * - newer Windows (like Server 2012) for HPET accesses. + */ if ( !nestedhvm_vcpu_in_guestmode(curr) - && gfn == PFN_DOWN(vlapic_base_address(vcpu_vlapic(curr))) ) + && is_hvm_vcpu(curr) + && hvm_mmio_internal(gpa) ) return HVMCOPY_bad_gfn_to_mfn; page = get_page_from_gfn(curr->domain, gfn, &p2mt, P2M_UNSHARE); --- a/xen/arch/x86/hvm/intercept.c +++ b/xen/arch/x86/hvm/intercept.c @@ -163,6 +163,18 @@ static int hvm_mmio_access(struct vcpu * return rc; } +bool_t hvm_mmio_internal(paddr_t gpa) +{ + struct vcpu *curr = current; + unsigned int i; + + for ( i = 0; i < HVM_MMIO_HANDLER_NR; ++i ) + if ( hvm_mmio_handlers[i]->check_handler(curr, gpa) ) + return 1; + + return 0; +} + int hvm_mmio_intercept(ioreq_t *p) { struct vcpu *v = current; --- a/xen/include/asm-x86/hvm/io.h +++ b/xen/include/asm-x86/hvm/io.h @@ -91,6 +91,7 @@ static inline int hvm_buffered_io_interc return hvm_io_intercept(p, HVM_BUFFERED_IO); } +bool_t hvm_mmio_internal(paddr_t gpa); int hvm_mmio_intercept(ioreq_t *p); int hvm_buffered_io_send(ioreq_t *p); ++++++ 53e47d6b-x86_emulate-properly-do-IP-updates-and-other-side-effects.patch ++++++ # Commit 3af450fd2d9403f208d3ac6459716f027b8597ad # Date 2014-08-08 09:34:03 +0200 # Author Jan Beulich <jbeul...@suse.com> # Committer Jan Beulich <jbeul...@suse.com> x86_emulate: properly do IP updates and other side effects on success The two MMX/SSE/AVX code blocks failed to update IP properly, and these as well as get_reg_refix(), which "manually" updated IP so far, failed to do the TF and RF processing needed at the end of successfully emulated instructions. Fix the test utility at once to check IP is properly getting updated, and while at it macroize the respective code quite a bit, hopefully making it easier to add further tests when the need arises. Reported-by: Andrei LUTAS <vlu...@bitdefender.com> Signed-off-by: Jan Beulich <jbeul...@suse.com> Tested-by: Razvan Cojocaru <rcojoc...@bitdefender.com> Reviewed-by: Andrew Cooper <andrew.coo...@citrix.com> --- a/tools/tests/x86_emulator/test_x86_emulator.c +++ b/tools/tests/x86_emulator/test_x86_emulator.c @@ -597,23 +597,32 @@ int main(int argc, char **argv) printf("skipped\n"); #endif +#define decl_insn(which) extern const unsigned char which[], which##_len[] +#define put_insn(which, insn) ".pushsection .test, \"ax\", @progbits\n" \ + #which ": " insn "\n" \ + ".equ " #which "_len, .-" #which "\n" \ + ".popsection" +#define set_insn(which) (regs.eip = (unsigned long)memcpy(instr, which, \ + (unsigned long)which##_len)) +#define check_eip(which) (regs.eip == (unsigned long)instr + \ + (unsigned long)which##_len) + printf("%-40s", "Testing movq %mm3,(%ecx)..."); if ( stack_exec && cpu_has_mmx ) { - extern const unsigned char movq_to_mem[]; + decl_insn(movq_to_mem); asm volatile ( "pcmpeqb %%mm3, %%mm3\n" - ".pushsection .test, \"a\", @progbits\n" - "movq_to_mem: movq %%mm3, (%0)\n" - ".popsection" :: "c" (NULL) ); + put_insn(movq_to_mem, "movq %%mm3, (%0)") + :: "c" (NULL) ); - memcpy(instr, movq_to_mem, 15); + set_insn(movq_to_mem); memset(res, 0x33, 64); memset(res + 8, 0xff, 8); - regs.eip = (unsigned long)&instr[0]; regs.ecx = (unsigned long)res; rc = x86_emulate(&ctxt, &emulops); - if ( (rc != X86EMUL_OKAY) || memcmp(res, res + 8, 32) ) + if ( (rc != X86EMUL_OKAY) || memcmp(res, res + 8, 32) || + !check_eip(movq_to_mem) ) goto fail; printf("okay\n"); } @@ -623,19 +632,17 @@ int main(int argc, char **argv) printf("%-40s", "Testing movq (%edx),%mm5..."); if ( stack_exec && cpu_has_mmx ) { - extern const unsigned char movq_from_mem[]; + decl_insn(movq_from_mem); asm volatile ( "pcmpgtb %%mm5, %%mm5\n" - ".pushsection .test, \"a\", @progbits\n" - "movq_from_mem: movq (%0), %%mm5\n" - ".popsection" :: "d" (NULL) ); + put_insn(movq_from_mem, "movq (%0), %%mm5") + :: "d" (NULL) ); - memcpy(instr, movq_from_mem, 15); - regs.eip = (unsigned long)&instr[0]; + set_insn(movq_from_mem); regs.ecx = 0; regs.edx = (unsigned long)res; rc = x86_emulate(&ctxt, &emulops); - if ( rc != X86EMUL_OKAY ) + if ( rc != X86EMUL_OKAY || !check_eip(movq_from_mem) ) goto fail; asm ( "pcmpeqb %%mm3, %%mm3\n\t" "pcmpeqb %%mm5, %%mm3\n\t" @@ -650,20 +657,19 @@ int main(int argc, char **argv) printf("%-40s", "Testing movdqu %xmm2,(%ecx)..."); if ( stack_exec && cpu_has_sse2 ) { - extern const unsigned char movdqu_to_mem[]; + decl_insn(movdqu_to_mem); asm volatile ( "pcmpeqb %%xmm2, %%xmm2\n" - ".pushsection .test, \"a\", @progbits\n" - "movdqu_to_mem: movdqu %%xmm2, (%0)\n" - ".popsection" :: "c" (NULL) ); + put_insn(movdqu_to_mem, "movdqu %%xmm2, (%0)") + :: "c" (NULL) ); - memcpy(instr, movdqu_to_mem, 15); + set_insn(movdqu_to_mem); memset(res, 0x55, 64); memset(res + 8, 0xff, 16); - regs.eip = (unsigned long)&instr[0]; regs.ecx = (unsigned long)res; rc = x86_emulate(&ctxt, &emulops); - if ( (rc != X86EMUL_OKAY) || memcmp(res, res + 8, 32) ) + if ( (rc != X86EMUL_OKAY) || memcmp(res, res + 8, 32) || + !check_eip(movdqu_to_mem) ) goto fail; printf("okay\n"); } @@ -673,19 +679,17 @@ int main(int argc, char **argv) printf("%-40s", "Testing movdqu (%edx),%xmm4..."); if ( stack_exec && cpu_has_sse2 ) { - extern const unsigned char movdqu_from_mem[]; + decl_insn(movdqu_from_mem); asm volatile ( "pcmpgtb %%xmm4, %%xmm4\n" - ".pushsection .test, \"a\", @progbits\n" - "movdqu_from_mem: movdqu (%0), %%xmm4\n" - ".popsection" :: "d" (NULL) ); + put_insn(movdqu_from_mem, "movdqu (%0), %%xmm4") + :: "d" (NULL) ); - memcpy(instr, movdqu_from_mem, 15); - regs.eip = (unsigned long)&instr[0]; + set_insn(movdqu_from_mem); regs.ecx = 0; regs.edx = (unsigned long)res; rc = x86_emulate(&ctxt, &emulops); - if ( rc != X86EMUL_OKAY ) + if ( rc != X86EMUL_OKAY || !check_eip(movdqu_from_mem) ) goto fail; asm ( "pcmpeqb %%xmm2, %%xmm2\n\t" "pcmpeqb %%xmm4, %%xmm2\n\t" @@ -700,21 +704,20 @@ int main(int argc, char **argv) printf("%-40s", "Testing vmovdqu %ymm2,(%ecx)..."); if ( stack_exec && cpu_has_avx ) { - extern const unsigned char vmovdqu_to_mem[]; + decl_insn(vmovdqu_to_mem); asm volatile ( "vpcmpeqb %%xmm2, %%xmm2, %%xmm2\n" - ".pushsection .test, \"a\", @progbits\n" - "vmovdqu_to_mem: vmovdqu %%ymm2, (%0)\n" - ".popsection" :: "c" (NULL) ); + put_insn(vmovdqu_to_mem, "vmovdqu %%ymm2, (%0)") + :: "c" (NULL) ); - memcpy(instr, vmovdqu_to_mem, 15); + set_insn(vmovdqu_to_mem); memset(res, 0x55, 128); memset(res + 16, 0xff, 16); memset(res + 20, 0x00, 16); - regs.eip = (unsigned long)&instr[0]; regs.ecx = (unsigned long)res; rc = x86_emulate(&ctxt, &emulops); - if ( (rc != X86EMUL_OKAY) || memcmp(res, res + 16, 64) ) + if ( (rc != X86EMUL_OKAY) || memcmp(res, res + 16, 64) || + !check_eip(vmovdqu_to_mem) ) goto fail; printf("okay\n"); } @@ -724,7 +727,7 @@ int main(int argc, char **argv) printf("%-40s", "Testing vmovdqu (%edx),%ymm4..."); if ( stack_exec && cpu_has_avx ) { - extern const unsigned char vmovdqu_from_mem[]; + decl_insn(vmovdqu_from_mem); #if 0 /* Don't use AVX2 instructions for now */ asm volatile ( "vpcmpgtb %%ymm4, %%ymm4, %%ymm4\n" @@ -732,17 +735,15 @@ int main(int argc, char **argv) asm volatile ( "vpcmpgtb %%xmm4, %%xmm4, %%xmm4\n\t" "vinsertf128 $1, %%xmm4, %%ymm4, %%ymm4\n" #endif - ".pushsection .test, \"a\", @progbits\n" - "vmovdqu_from_mem: vmovdqu (%0), %%ymm4\n" - ".popsection" :: "d" (NULL) ); + put_insn(vmovdqu_from_mem, "vmovdqu (%0), %%ymm4") + :: "d" (NULL) ); - memcpy(instr, vmovdqu_from_mem, 15); + set_insn(vmovdqu_from_mem); memset(res + 4, 0xff, 16); - regs.eip = (unsigned long)&instr[0]; regs.ecx = 0; regs.edx = (unsigned long)res; rc = x86_emulate(&ctxt, &emulops); - if ( rc != X86EMUL_OKAY ) + if ( rc != X86EMUL_OKAY || !check_eip(vmovdqu_from_mem) ) goto fail; #if 0 /* Don't use AVX2 instructions for now */ asm ( "vpcmpeqb %%ymm2, %%ymm2, %%ymm2\n\t" @@ -769,20 +770,19 @@ int main(int argc, char **argv) memset(res + 10, 0x66, 8); if ( stack_exec && cpu_has_sse2 ) { - extern const unsigned char movsd_to_mem[]; + decl_insn(movsd_to_mem); asm volatile ( "movlpd %0, %%xmm5\n\t" "movhpd %0, %%xmm5\n" - ".pushsection .test, \"a\", @progbits\n" - "movsd_to_mem: movsd %%xmm5, (%1)\n" - ".popsection" :: "m" (res[10]), "c" (NULL) ); + put_insn(movsd_to_mem, "movsd %%xmm5, (%1)") + :: "m" (res[10]), "c" (NULL) ); - memcpy(instr, movsd_to_mem, 15); - regs.eip = (unsigned long)&instr[0]; + set_insn(movsd_to_mem); regs.ecx = (unsigned long)(res + 2); regs.edx = 0; rc = x86_emulate(&ctxt, &emulops); - if ( (rc != X86EMUL_OKAY) || memcmp(res, res + 8, 32) ) + if ( (rc != X86EMUL_OKAY) || memcmp(res, res + 8, 32) || + !check_eip(movsd_to_mem) ) goto fail; printf("okay\n"); } @@ -795,19 +795,17 @@ int main(int argc, char **argv) printf("%-40s", "Testing movaps (%edx),%xmm7..."); if ( stack_exec && cpu_has_sse ) { - extern const unsigned char movaps_from_mem[]; + decl_insn(movaps_from_mem); asm volatile ( "xorps %%xmm7, %%xmm7\n" - ".pushsection .test, \"a\", @progbits\n" - "movaps_from_mem: movaps (%0), %%xmm7\n" - ".popsection" :: "d" (NULL) ); + put_insn(movaps_from_mem, "movaps (%0), %%xmm7") + :: "d" (NULL) ); - memcpy(instr, movaps_from_mem, 15); - regs.eip = (unsigned long)&instr[0]; + set_insn(movaps_from_mem); regs.ecx = 0; regs.edx = (unsigned long)res; rc = x86_emulate(&ctxt, &emulops); - if ( rc != X86EMUL_OKAY ) + if ( rc != X86EMUL_OKAY || !check_eip(movaps_from_mem) ) goto fail; asm ( "cmpeqps %1, %%xmm7\n\t" "movmskps %%xmm7, %0" : "=r" (rc) : "m" (res[8]) ); @@ -823,19 +821,18 @@ int main(int argc, char **argv) memset(res + 10, 0x77, 8); if ( stack_exec && cpu_has_avx ) { - extern const unsigned char vmovsd_to_mem[]; + decl_insn(vmovsd_to_mem); asm volatile ( "vbroadcastsd %0, %%ymm5\n" - ".pushsection .test, \"a\", @progbits\n" - "vmovsd_to_mem: vmovsd %%xmm5, (%1)\n" - ".popsection" :: "m" (res[10]), "c" (NULL) ); + put_insn(vmovsd_to_mem, "vmovsd %%xmm5, (%1)") + :: "m" (res[10]), "c" (NULL) ); - memcpy(instr, vmovsd_to_mem, 15); - regs.eip = (unsigned long)&instr[0]; + set_insn(vmovsd_to_mem); regs.ecx = (unsigned long)(res + 2); regs.edx = 0; rc = x86_emulate(&ctxt, &emulops); - if ( (rc != X86EMUL_OKAY) || memcmp(res, res + 8, 32) ) + if ( (rc != X86EMUL_OKAY) || memcmp(res, res + 8, 32) || + !check_eip(vmovsd_to_mem) ) goto fail; printf("okay\n"); } @@ -848,19 +845,17 @@ int main(int argc, char **argv) printf("%-40s", "Testing vmovaps (%edx),%ymm7..."); if ( stack_exec && cpu_has_avx ) { - extern const unsigned char vmovaps_from_mem[]; + decl_insn(vmovaps_from_mem); asm volatile ( "vxorps %%ymm7, %%ymm7, %%ymm7\n" - ".pushsection .test, \"a\", @progbits\n" - "vmovaps_from_mem: vmovaps (%0), %%ymm7\n" - ".popsection" :: "d" (NULL) ); + put_insn(vmovaps_from_mem, "vmovaps (%0), %%ymm7") + :: "d" (NULL) ); - memcpy(instr, vmovaps_from_mem, 15); - regs.eip = (unsigned long)&instr[0]; + set_insn(vmovaps_from_mem); regs.ecx = 0; regs.edx = (unsigned long)res; rc = x86_emulate(&ctxt, &emulops); - if ( rc != X86EMUL_OKAY ) + if ( rc != X86EMUL_OKAY || !check_eip(vmovaps_from_mem) ) goto fail; asm ( "vcmpeqps %1, %%ymm7, %%ymm0\n\t" "vmovmskps %%ymm0, %0" : "=r" (rc) : "m" (res[8]) ); @@ -871,6 +866,11 @@ int main(int argc, char **argv) else printf("skipped\n"); +#undef decl_insn +#undef put_insn +#undef set_insn +#undef check_eip + for ( j = 1; j <= 2; j++ ) { #if defined(__i386__) --- a/xen/arch/x86/x86_emulate/x86_emulate.c +++ b/xen/arch/x86/x86_emulate/x86_emulate.c @@ -720,29 +720,26 @@ do{ uint8_t stub[] = { _bytes, 0xc3 }; put_fpu(&fic); \ } while (0) -static unsigned long __get_rep_prefix( - struct cpu_user_regs *int_regs, - struct cpu_user_regs *ext_regs, +static unsigned long _get_rep_prefix( + const struct cpu_user_regs *int_regs, int ad_bytes) { - unsigned long ecx = ((ad_bytes == 2) ? (uint16_t)int_regs->ecx : - (ad_bytes == 4) ? (uint32_t)int_regs->ecx : - int_regs->ecx); - - /* Skip the instruction if no repetitions are required. */ - if ( ecx == 0 ) - ext_regs->eip = int_regs->eip; - - return ecx; + return (ad_bytes == 2) ? (uint16_t)int_regs->ecx : + (ad_bytes == 4) ? (uint32_t)int_regs->ecx : + int_regs->ecx; } #define get_rep_prefix() ({ \ unsigned long max_reps = 1; \ if ( rep_prefix() ) \ - max_reps = __get_rep_prefix(&_regs, ctxt->regs, ad_bytes); \ + max_reps = _get_rep_prefix(&_regs, ad_bytes); \ if ( max_reps == 0 ) \ - goto done; \ - max_reps; \ + { \ + /* Skip the instruction if no repetitions are required. */ \ + dst.type = OP_NONE; \ + goto writeback; \ + } \ + max_reps; \ }) static void __put_rep_prefix( @@ -3921,7 +3918,8 @@ x86_emulate( if ( !rc && (b & 1) && (ea.type == OP_MEM) ) rc = ops->write(ea.mem.seg, ea.mem.off, mmvalp, ea.bytes, ctxt); - goto done; + dst.type = OP_NONE; + break; } case 0x20: /* mov cr,reg */ @@ -4188,7 +4186,8 @@ x86_emulate( if ( !rc && (b != 0x6f) && (ea.type == OP_MEM) ) rc = ops->write(ea.mem.seg, ea.mem.off, mmvalp, ea.bytes, ctxt); - goto done; + dst.type = OP_NONE; + break; } case 0x80 ... 0x8f: /* jcc (near) */ { ++++++ README.SUSE ++++++ ++++ 659 lines (skipped) ++++++ boot.local.xenU ++++++ --- /var/tmp/diff_new_pack.huxx5F/_old 2014-08-20 17:53:06.000000000 +0200 +++ /var/tmp/diff_new_pack.huxx5F/_new 2014-08-20 17:53:06.000000000 +0200 @@ -1,6 +1,6 @@ #! /bin/sh # -# Copyright (c) 1996 SuSE GmbH Nuernberg, Germany. All rights reserved. +# Copyright (c) 2014 SUSE GmbH Nuernberg, Germany. All rights reserved. # # Author: Werner Fink <wer...@suse.de>, 1996 # Burchard Steinbild <b...@suse.de>, 1996 ++++++ disable-wget-check.patch ++++++ --- /var/tmp/diff_new_pack.huxx5F/_old 2014-08-20 17:53:06.000000000 +0200 +++ /var/tmp/diff_new_pack.huxx5F/_new 2014-08-20 17:53:06.000000000 +0200 @@ -1,7 +1,7 @@ -Index: xen-4.4.0-testing/tools/configure +Index: xen-4.4.1-testing/tools/configure =================================================================== ---- xen-4.4.0-testing.orig/tools/configure -+++ xen-4.4.0-testing/tools/configure +--- xen-4.4.1-testing.orig/tools/configure ++++ xen-4.4.1-testing/tools/configure @@ -633,9 +633,6 @@ libgcrypt EXTFS_LIBS system_aio @@ -12,7 +12,7 @@ glib_LIBS glib_CFLAGS PKG_CONFIG_LIBDIR -@@ -7202,104 +7199,104 @@ $as_echo "yes" >&6; } +@@ -7375,104 +7372,104 @@ $as_echo "yes" >&6; } fi # Extract the first word of "wget", so it can be a program name with args. @@ -215,10 +215,10 @@ -Index: xen-4.4.0-testing/stubdom/configure +Index: xen-4.4.1-testing/stubdom/configure =================================================================== ---- xen-4.4.0-testing.orig/stubdom/configure -+++ xen-4.4.0-testing/stubdom/configure +--- xen-4.4.1-testing.orig/stubdom/configure ++++ xen-4.4.1-testing/stubdom/configure @@ -623,8 +623,6 @@ LDFLAGS CFLAGS CC ++++++ init.pciback ++++++ --- /var/tmp/diff_new_pack.huxx5F/_old 2014-08-20 17:53:06.000000000 +0200 +++ /var/tmp/diff_new_pack.huxx5F/_new 2014-08-20 17:53:06.000000000 +0200 @@ -1,6 +1,6 @@ #!/bin/bash # -# Copyright (c) 2001 SuSE GmbH Nuernberg, Germany. All rights reserved. +# Copyright (c) 2014 SUSE GmbH Nuernberg, Germany. All rights reserved. # # /etc/init.d/pciback # ++++++ ipxe.tar.bz2 ++++++ ++++++ libxl.pvscsi.patch ++++++ --- /var/tmp/diff_new_pack.huxx5F/_old 2014-08-20 17:53:07.000000000 +0200 +++ /var/tmp/diff_new_pack.huxx5F/_new 2014-08-20 17:53:07.000000000 +0200 @@ -31,10 +31,10 @@ 7de6f49 support character devices too c84381b allow /dev/sda as scsi devspec f11e3a2 pvscsi -Index: xen-4.4.0-testing/docs/man/xl.cfg.pod.5 +Index: xen-4.4.1-testing/docs/man/xl.cfg.pod.5 =================================================================== ---- xen-4.4.0-testing.orig/docs/man/xl.cfg.pod.5 -+++ xen-4.4.0-testing/docs/man/xl.cfg.pod.5 +--- xen-4.4.1-testing.orig/docs/man/xl.cfg.pod.5 ++++ xen-4.4.1-testing/docs/man/xl.cfg.pod.5 @@ -380,6 +380,36 @@ value is optional if this is a guest dom =back @@ -72,10 +72,10 @@ =item B<vfb=[ "VFB_SPEC_STRING", "VFB_SPEC_STRING", ...]> Specifies the paravirtual framebuffer devices which should be supplied -Index: xen-4.4.0-testing/docs/man/xl.pod.1 +Index: xen-4.4.1-testing/docs/man/xl.pod.1 =================================================================== ---- xen-4.4.0-testing.orig/docs/man/xl.pod.1 -+++ xen-4.4.0-testing/docs/man/xl.pod.1 +--- xen-4.4.1-testing.orig/docs/man/xl.pod.1 ++++ xen-4.4.1-testing/docs/man/xl.pod.1 @@ -1208,6 +1208,26 @@ List virtual trusted platform modules fo =back @@ -103,10 +103,10 @@ =head1 PCI PASS-THROUGH =over 4 -Index: xen-4.4.0-testing/tools/libxl/libxl.c +Index: xen-4.4.1-testing/tools/libxl/libxl.c =================================================================== ---- xen-4.4.0-testing.orig/tools/libxl/libxl.c -+++ xen-4.4.0-testing/tools/libxl/libxl.c +--- xen-4.4.1-testing.orig/tools/libxl/libxl.c ++++ xen-4.4.1-testing/tools/libxl/libxl.c @@ -2021,6 +2021,273 @@ int libxl_devid_to_device_vtpm(libxl_ctx return rc; } @@ -419,7 +419,7 @@ #undef DEFINE_DEVICE_ADD /******************************************************************************/ -@@ -5682,6 +5959,20 @@ int libxl_fd_set_cloexec(libxl_ctx *ctx, +@@ -5683,6 +5960,20 @@ int libxl_fd_set_cloexec(libxl_ctx *ctx, int libxl_fd_set_nonblock(libxl_ctx *ctx, int fd, int nonblock) { return fd_set_flags(ctx,fd, F_GETFL,F_SETFL,"FL", O_NONBLOCK, nonblock); } @@ -440,10 +440,10 @@ /* * Local variables: * mode: C -Index: xen-4.4.0-testing/tools/libxl/libxl.h +Index: xen-4.4.1-testing/tools/libxl/libxl.h =================================================================== ---- xen-4.4.0-testing.orig/tools/libxl/libxl.h -+++ xen-4.4.0-testing/tools/libxl/libxl.h +--- xen-4.4.1-testing.orig/tools/libxl/libxl.h ++++ xen-4.4.1-testing/tools/libxl/libxl.h @@ -951,6 +951,26 @@ libxl_device_vtpm *libxl_device_vtpm_lis int libxl_device_vtpm_getinfo(libxl_ctx *ctx, uint32_t domid, libxl_device_vtpm *vtpm, libxl_vtpminfo *vtpminfo); @@ -499,10 +499,10 @@ #endif /* LIBXL_H */ /* -Index: xen-4.4.0-testing/tools/libxl/libxl_create.c +Index: xen-4.4.1-testing/tools/libxl/libxl_create.c =================================================================== ---- xen-4.4.0-testing.orig/tools/libxl/libxl_create.c -+++ xen-4.4.0-testing/tools/libxl/libxl_create.c +--- xen-4.4.1-testing.orig/tools/libxl/libxl_create.c ++++ xen-4.4.1-testing/tools/libxl/libxl_create.c @@ -1029,6 +1029,7 @@ static void domcreate_rebuild_done(libxl libxl__multidev_begin(ao, &dcs->multidev); dcs->multidev.callback = domcreate_launch_dm; @@ -511,10 +511,10 @@ libxl__multidev_prepared(egc, &dcs->multidev, 0); return; -Index: xen-4.4.0-testing/tools/libxl/libxl_device.c +Index: xen-4.4.1-testing/tools/libxl/libxl_device.c =================================================================== ---- xen-4.4.0-testing.orig/tools/libxl/libxl_device.c -+++ xen-4.4.0-testing/tools/libxl/libxl_device.c +--- xen-4.4.1-testing.orig/tools/libxl/libxl_device.c ++++ xen-4.4.1-testing/tools/libxl/libxl_device.c @@ -523,6 +523,7 @@ void libxl__multidev_prepared(libxl__egc * The following functions are defined: * libxl__add_disks @@ -556,10 +556,10 @@ /******************************************************************************/ int libxl__device_destroy(libxl__gc *gc, libxl__device *dev) -Index: xen-4.4.0-testing/tools/libxl/libxl_internal.h +Index: xen-4.4.1-testing/tools/libxl/libxl_internal.h =================================================================== ---- xen-4.4.0-testing.orig/tools/libxl/libxl_internal.h -+++ xen-4.4.0-testing/tools/libxl/libxl_internal.h +--- xen-4.4.1-testing.orig/tools/libxl/libxl_internal.h ++++ xen-4.4.1-testing/tools/libxl/libxl_internal.h @@ -982,6 +982,7 @@ _hidden int libxl__device_disk_setdefaul _hidden int libxl__device_nic_setdefault(libxl__gc *gc, libxl_device_nic *nic, uint32_t domid); @@ -590,10 +590,10 @@ /*----- device model creation -----*/ /* First layer; wraps libxl__spawn_spawn. */ -Index: xen-4.4.0-testing/tools/libxl/libxl_types.idl +Index: xen-4.4.1-testing/tools/libxl/libxl_types.idl =================================================================== ---- xen-4.4.0-testing.orig/tools/libxl/libxl_types.idl -+++ xen-4.4.0-testing/tools/libxl/libxl_types.idl +--- xen-4.4.1-testing.orig/tools/libxl/libxl_types.idl ++++ xen-4.4.1-testing/tools/libxl/libxl_types.idl @@ -453,6 +453,26 @@ libxl_device_vtpm = Struct("device_vtpm" ("uuid", libxl_uuid), ]) @@ -659,10 +659,10 @@ libxl_vcpuinfo = Struct("vcpuinfo", [ ("vcpuid", uint32), ("cpu", uint32), -Index: xen-4.4.0-testing/tools/libxl/libxl_types_internal.idl +Index: xen-4.4.1-testing/tools/libxl/libxl_types_internal.idl =================================================================== ---- xen-4.4.0-testing.orig/tools/libxl/libxl_types_internal.idl -+++ xen-4.4.0-testing/tools/libxl/libxl_types_internal.idl +--- xen-4.4.1-testing.orig/tools/libxl/libxl_types_internal.idl ++++ xen-4.4.1-testing/tools/libxl/libxl_types_internal.idl @@ -20,6 +20,7 @@ libxl__device_kind = Enumeration("device (6, "VKBD"), (7, "CONSOLE"), @@ -671,10 +671,10 @@ ]) libxl__console_backend = Enumeration("console_backend", [ -Index: xen-4.4.0-testing/tools/libxl/xl.h +Index: xen-4.4.1-testing/tools/libxl/xl.h =================================================================== ---- xen-4.4.0-testing.orig/tools/libxl/xl.h -+++ xen-4.4.0-testing/tools/libxl/xl.h +--- xen-4.4.1-testing.orig/tools/libxl/xl.h ++++ xen-4.4.1-testing/tools/libxl/xl.h @@ -81,6 +81,9 @@ int main_networkdetach(int argc, char ** int main_blockattach(int argc, char **argv); int main_blocklist(int argc, char **argv); @@ -685,10 +685,10 @@ int main_vtpmattach(int argc, char **argv); int main_vtpmlist(int argc, char **argv); int main_vtpmdetach(int argc, char **argv); -Index: xen-4.4.0-testing/tools/libxl/xl_cmdimpl.c +Index: xen-4.4.1-testing/tools/libxl/xl_cmdimpl.c =================================================================== ---- xen-4.4.0-testing.orig/tools/libxl/xl_cmdimpl.c -+++ xen-4.4.0-testing/tools/libxl/xl_cmdimpl.c +--- xen-4.4.1-testing.orig/tools/libxl/xl_cmdimpl.c ++++ xen-4.4.1-testing/tools/libxl/xl_cmdimpl.c @@ -17,6 +17,7 @@ #include "libxl_osdeps.h" @@ -904,7 +904,7 @@ if (!xlu_cfg_get_list(config, "vtpm", &vtpms, 0, 0)) { d_config->num_vtpms = 0; d_config->vtpms = NULL; -@@ -6041,6 +6219,256 @@ int main_blockdetach(int argc, char **ar +@@ -6043,6 +6221,256 @@ int main_blockdetach(int argc, char **ar return rc; } @@ -1161,10 +1161,10 @@ int main_vtpmattach(int argc, char **argv) { int opt; -Index: xen-4.4.0-testing/tools/libxl/xl_cmdtable.c +Index: xen-4.4.1-testing/tools/libxl/xl_cmdtable.c =================================================================== ---- xen-4.4.0-testing.orig/tools/libxl/xl_cmdtable.c -+++ xen-4.4.0-testing/tools/libxl/xl_cmdtable.c +--- xen-4.4.1-testing.orig/tools/libxl/xl_cmdtable.c ++++ xen-4.4.1-testing/tools/libxl/xl_cmdtable.c @@ -354,6 +354,21 @@ struct cmd_spec cmd_table[] = { "Destroy a domain's virtual block device", "<Domain> <DevId>", ++++++ libxl.set-migration-constraints-from-cmdline.patch ++++++ --- /var/tmp/diff_new_pack.huxx5F/_old 2014-08-20 17:53:07.000000000 +0200 +++ /var/tmp/diff_new_pack.huxx5F/_new 2014-08-20 17:53:07.000000000 +0200 @@ -88,10 +88,10 @@ tools/libxl/xl_cmdtable.c | 23 ++++++++++++++------- 12 files changed, 162 insertions(+), 21 deletions(-) -Index: xen-4.4.0-testing/docs/man/xl.pod.1 +Index: xen-4.4.1-testing/docs/man/xl.pod.1 =================================================================== ---- xen-4.4.0-testing.orig/docs/man/xl.pod.1 -+++ xen-4.4.0-testing/docs/man/xl.pod.1 +--- xen-4.4.1-testing.orig/docs/man/xl.pod.1 ++++ xen-4.4.1-testing/docs/man/xl.pod.1 @@ -392,6 +392,26 @@ Send <config> instead of config file fro Print huge (!) amount of debug during the migration process. @@ -119,10 +119,10 @@ =back =item B<remus> [I<OPTIONS>] I<domain-id> I<host> -Index: xen-4.4.0-testing/tools/libxc/xc_domain_save.c +Index: xen-4.4.1-testing/tools/libxc/xc_domain_save.c =================================================================== ---- xen-4.4.0-testing.orig/tools/libxc/xc_domain_save.c -+++ xen-4.4.0-testing/tools/libxc/xc_domain_save.c +--- xen-4.4.1-testing.orig/tools/libxc/xc_domain_save.c ++++ xen-4.4.1-testing/tools/libxc/xc_domain_save.c @@ -43,6 +43,7 @@ */ #define DEF_MAX_ITERS 29 /* limit us to 30 times round loop */ @@ -196,10 +196,10 @@ /* * Local variables: -Index: xen-4.4.0-testing/tools/libxc/xc_nomigrate.c +Index: xen-4.4.1-testing/tools/libxc/xc_nomigrate.c =================================================================== ---- xen-4.4.0-testing.orig/tools/libxc/xc_nomigrate.c -+++ xen-4.4.0-testing/tools/libxc/xc_nomigrate.c +--- xen-4.4.1-testing.orig/tools/libxc/xc_nomigrate.c ++++ xen-4.4.1-testing/tools/libxc/xc_nomigrate.c @@ -21,6 +21,16 @@ #include <xenctrl.h> #include <xenguest.h> @@ -217,10 +217,10 @@ int xc_domain_save(xc_interface *xch, int io_fd, uint32_t dom, uint32_t max_iters, uint32_t max_factor, uint32_t flags, struct save_callbacks* callbacks, int hvm, -Index: xen-4.4.0-testing/tools/libxc/xenguest.h +Index: xen-4.4.1-testing/tools/libxc/xenguest.h =================================================================== ---- xen-4.4.0-testing.orig/tools/libxc/xenguest.h -+++ xen-4.4.0-testing/tools/libxc/xenguest.h +--- xen-4.4.1-testing.orig/tools/libxc/xenguest.h ++++ xen-4.4.1-testing/tools/libxc/xenguest.h @@ -28,6 +28,7 @@ #define XCFLAGS_HVM (1 << 2) #define XCFLAGS_STDVGA (1 << 3) @@ -242,10 +242,10 @@ /* callbacks provided by xc_domain_restore */ struct restore_callbacks { -Index: xen-4.4.0-testing/tools/libxl/libxl.c +Index: xen-4.4.1-testing/tools/libxl/libxl.c =================================================================== ---- xen-4.4.0-testing.orig/tools/libxl/libxl.c -+++ xen-4.4.0-testing/tools/libxl/libxl.c +--- xen-4.4.1-testing.orig/tools/libxl/libxl.c ++++ xen-4.4.1-testing/tools/libxl/libxl.c @@ -763,7 +763,8 @@ static void domain_suspend_cb(libxl__egc } @@ -294,10 +294,10 @@ int libxl_domain_pause(libxl_ctx *ctx, uint32_t domid) { int ret; -Index: xen-4.4.0-testing/tools/libxl/libxl.h +Index: xen-4.4.1-testing/tools/libxl/libxl.h =================================================================== ---- xen-4.4.0-testing.orig/tools/libxl/libxl.h -+++ xen-4.4.0-testing/tools/libxl/libxl.h +--- xen-4.4.1-testing.orig/tools/libxl/libxl.h ++++ xen-4.4.1-testing/tools/libxl/libxl.h @@ -687,8 +687,23 @@ int libxl_domain_suspend(libxl_ctx *ctx, int flags, /* LIBXL_SUSPEND_* */ const libxl_asyncop_how *ao_how) @@ -322,11 +322,11 @@ /* @param suspend_cancel [from xenctrl.h:xc_domain_resume( @param fast )] * If this parameter is true, use co-operative resume. The guest -Index: xen-4.4.0-testing/tools/libxl/libxl_dom.c +Index: xen-4.4.1-testing/tools/libxl/libxl_dom.c =================================================================== ---- xen-4.4.0-testing.orig/tools/libxl/libxl_dom.c -+++ xen-4.4.0-testing/tools/libxl/libxl_dom.c -@@ -1337,6 +1337,7 @@ void libxl__domain_suspend(libxl__egc *e +--- xen-4.4.1-testing.orig/tools/libxl/libxl_dom.c ++++ xen-4.4.1-testing/tools/libxl/libxl_dom.c +@@ -1341,6 +1341,7 @@ void libxl__domain_suspend(libxl__egc *e dss->xcflags = (live ? XCFLAGS_LIVE : 0) | (debug ? XCFLAGS_DEBUG : 0) @@ -334,10 +334,10 @@ | (dss->hvm ? XCFLAGS_HVM : 0); dss->suspend_eventchn = -1; -Index: xen-4.4.0-testing/tools/libxl/libxl_internal.h +Index: xen-4.4.1-testing/tools/libxl/libxl_internal.h =================================================================== ---- xen-4.4.0-testing.orig/tools/libxl/libxl_internal.h -+++ xen-4.4.0-testing/tools/libxl/libxl_internal.h +--- xen-4.4.1-testing.orig/tools/libxl/libxl_internal.h ++++ xen-4.4.1-testing/tools/libxl/libxl_internal.h @@ -2319,6 +2319,10 @@ struct libxl__domain_suspend_state { xc_evtchn *xce; /* event channel handle */ int suspend_eventchn; @@ -349,10 +349,10 @@ int xcflags; int guest_responded; const char *dm_savefile; -Index: xen-4.4.0-testing/tools/libxl/libxl_save_callout.c +Index: xen-4.4.1-testing/tools/libxl/libxl_save_callout.c =================================================================== ---- xen-4.4.0-testing.orig/tools/libxl/libxl_save_callout.c -+++ xen-4.4.0-testing/tools/libxl/libxl_save_callout.c +--- xen-4.4.1-testing.orig/tools/libxl/libxl_save_callout.c ++++ xen-4.4.1-testing/tools/libxl/libxl_save_callout.c @@ -108,7 +108,9 @@ void libxl__xc_domain_save(libxl__egc *e } @@ -364,10 +364,10 @@ toolstack_data_fd, toolstack_data_len, cbflags, }; -Index: xen-4.4.0-testing/tools/libxl/libxl_save_helper.c +Index: xen-4.4.1-testing/tools/libxl/libxl_save_helper.c =================================================================== ---- xen-4.4.0-testing.orig/tools/libxl/libxl_save_helper.c -+++ xen-4.4.0-testing/tools/libxl/libxl_save_helper.c +--- xen-4.4.1-testing.orig/tools/libxl/libxl_save_helper.c ++++ xen-4.4.1-testing/tools/libxl/libxl_save_helper.c @@ -221,6 +221,7 @@ int main(int argc, char **argv) uint32_t dom = strtoul(NEXTARG,0,10); uint32_t max_iters = strtoul(NEXTARG,0,10); @@ -386,11 +386,11 @@ &helper_save_callbacks, hvm, genidad); complete(r); -Index: xen-4.4.0-testing/tools/libxl/xl_cmdimpl.c +Index: xen-4.4.1-testing/tools/libxl/xl_cmdimpl.c =================================================================== ---- xen-4.4.0-testing.orig/tools/libxl/xl_cmdimpl.c -+++ xen-4.4.0-testing/tools/libxl/xl_cmdimpl.c -@@ -3645,6 +3645,8 @@ static void migrate_do_preamble(int send +--- xen-4.4.1-testing.orig/tools/libxl/xl_cmdimpl.c ++++ xen-4.4.1-testing/tools/libxl/xl_cmdimpl.c +@@ -3647,6 +3647,8 @@ static void migrate_do_preamble(int send } static void migrate_domain(uint32_t domid, const char *rune, int debug, @@ -399,7 +399,7 @@ const char *override_config_file) { pid_t child = -1; -@@ -3653,7 +3655,13 @@ static void migrate_domain(uint32_t domi +@@ -3655,7 +3657,13 @@ static void migrate_domain(uint32_t domi char *away_domname; char rc_buf; uint8_t *config_data; @@ -414,7 +414,7 @@ save_domain_core_begin(domid, override_config_file, &config_data, &config_len); -@@ -3672,10 +3680,13 @@ static void migrate_domain(uint32_t domi +@@ -3674,10 +3682,13 @@ static void migrate_domain(uint32_t domi xtl_stdiostream_adjust_flags(logger, XTL_STDIOSTREAM_HIDE_PROGRESS, 0); if (debug) @@ -431,7 +431,7 @@ " (rc=%d)\n", rc); if (rc == ERROR_GUEST_TIMEDOUT) goto failed_suspend; -@@ -4062,13 +4073,18 @@ int main_migrate(int argc, char **argv) +@@ -4064,13 +4075,18 @@ int main_migrate(int argc, char **argv) char *rune = NULL; char *host; int opt, daemonize = 1, monitor = 1, debug = 0; @@ -451,7 +451,7 @@ case 'C': config_filename = optarg; break; -@@ -4085,6 +4101,18 @@ int main_migrate(int argc, char **argv) +@@ -4087,6 +4103,18 @@ int main_migrate(int argc, char **argv) case 0x100: debug = 1; break; @@ -470,7 +470,7 @@ } domid = find_domain(argv[optind]); -@@ -4100,7 +4128,8 @@ int main_migrate(int argc, char **argv) +@@ -4102,7 +4130,8 @@ int main_migrate(int argc, char **argv) return 1; } @@ -480,10 +480,10 @@ return 0; } #endif -Index: xen-4.4.0-testing/tools/libxl/xl_cmdtable.c +Index: xen-4.4.1-testing/tools/libxl/xl_cmdtable.c =================================================================== ---- xen-4.4.0-testing.orig/tools/libxl/xl_cmdtable.c -+++ xen-4.4.0-testing/tools/libxl/xl_cmdtable.c +--- xen-4.4.1-testing.orig/tools/libxl/xl_cmdtable.c ++++ xen-4.4.1-testing/tools/libxl/xl_cmdtable.c @@ -150,14 +150,21 @@ struct cmd_spec cmd_table[] = { &main_migrate, 0, 1, "Migrate a domain to another host", ++++++ qemu-xen-dir-remote.tar.bz2 ++++++ /work/SRC/openSUSE:Factory/xen/qemu-xen-dir-remote.tar.bz2 /work/SRC/openSUSE:Factory/.xen.new/qemu-xen-dir-remote.tar.bz2 differ: char 11, line 1 ++++++ qemu-xen-traditional-dir-remote.tar.bz2 ++++++ diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/tools/qemu-xen-traditional-dir-remote/hw/pass-through.c new/tools/qemu-xen-traditional-dir-remote/hw/pass-through.c --- old/tools/qemu-xen-traditional-dir-remote/hw/pass-through.c 2014-03-10 14:15:00.000000000 +0100 +++ new/tools/qemu-xen-traditional-dir-remote/hw/pass-through.c 2014-08-07 18:30:34.000000000 +0200 @@ -3866,7 +3866,11 @@ ptdev->msi->flags |= PCI_MSI_FLAGS_ENABLE; } else - ptdev->msi->flags &= ~PCI_MSI_FLAGS_ENABLE; + { + if (ptdev->msi->flags & PT_MSI_MAPPED) { + pt_msi_disable(ptdev); + } + } /* pass through MSI_ENABLE bit when no MSI-INTx translation */ if (!ptdev->msi_trans_en) { @@ -4013,6 +4017,8 @@ pt_disable_msi_translate(ptdev); } pt_msix_update(ptdev); + } else if (!(*value & PCI_MSIX_ENABLE) && ptdev->msix->enabled) { + pt_msix_disable(ptdev); } ptdev->msix->enabled = !!(*value & PCI_MSIX_ENABLE); diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/tools/qemu-xen-traditional-dir-remote/hw/pt-msi.c new/tools/qemu-xen-traditional-dir-remote/hw/pt-msi.c --- old/tools/qemu-xen-traditional-dir-remote/hw/pt-msi.c 2014-03-10 14:15:00.000000000 +0100 +++ new/tools/qemu-xen-traditional-dir-remote/hw/pt-msi.c 2014-08-07 18:30:34.000000000 +0200 @@ -213,7 +213,8 @@ out: /* clear msi info */ - dev->msi->flags &= ~(MSI_FLAG_UNINIT | PT_MSI_MAPPED | PCI_MSI_FLAGS_ENABLE); + dev->msi->flags &= ~(PT_MSI_MAPPED | PCI_MSI_FLAGS_ENABLE); + dev->msi->flags |= MSI_FLAG_UNINIT; dev->msi->pirq = -1; dev->msi_trans_en = 0; } @@ -447,7 +448,7 @@ { const volatile uint32_t *vec_ctrl; - if ( entry->io_mem[offset] == val ) + if ( entry->io_mem[offset] == val && entry->pirq != -1) return; /* ++++++ seabios-dir-remote.tar.bz2 ++++++ ++++++ stubdom.tar.bz2 ++++++ /work/SRC/openSUSE:Factory/xen/stubdom.tar.bz2 /work/SRC/openSUSE:Factory/.xen.new/stubdom.tar.bz2 differ: char 11, line 1 ++++++ xen-4.4.0-testing-src.tar.bz2 -> xen-4.4.1-testing-src.tar.bz2 ++++++ ++++ 7608 lines of diff (skipped) ++++++ xend-config.patch ++++++ --- /var/tmp/diff_new_pack.huxx5F/_old 2014-08-20 17:53:12.000000000 +0200 +++ /var/tmp/diff_new_pack.huxx5F/_new 2014-08-20 17:53:12.000000000 +0200 @@ -34,7 +34,7 @@ # yourself a wrapper script, and call network-bridge from it, as appropriate. # -(network-script network-bridge) -+# SuSE users note: ++# SUSE users note: +# On openSUSE >= 11.1 and SLES >= 11, networks should be configured using +# native platform tool - YaST. vif-bridge and qemu-ifup can be used to +# connect vifs to the YaST-managed networks. ++++++ xend-vif-route-ifup.patch ++++++ --- /var/tmp/diff_new_pack.huxx5F/_old 2014-08-20 17:53:12.000000000 +0200 +++ /var/tmp/diff_new_pack.huxx5F/_new 2014-08-20 17:53:12.000000000 +0200 @@ -12,7 +12,7 @@ #(network-script network-route) #(vif-script vif-route) -+# SuSE users note: ++# SUSE users note: +# If using a routed network configuration it is advised to NOT use +# network-route and vif-route scripts but instead use sysconfig scripts +# in dom0 and vif-route-ifup script to "connect" the domU vif to dom0. -- To unsubscribe, e-mail: opensuse-commit+unsubscr...@opensuse.org For additional commands, e-mail: opensuse-commit+h...@opensuse.org