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

Reply via email to