summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorCoprDistGit <infra@openeuler.org>2023-10-12 04:00:49 +0000
committerCoprDistGit <infra@openeuler.org>2023-10-12 04:00:49 +0000
commitc22f60e6e55f1bf300dd76d2222a93911f3b2bb2 (patch)
treeef665e7018377f53612ac2751dcaea35a1c587b6
parent39a4763249cd6289e5019acfe0c98dbb169f5f2e (diff)
automatic import of xenopeneuler22.03_LTS
-rw-r--r--.gitignore5
-rw-r--r--5eb51be6-cpupool-fix-removing-cpu-from-pool.patch29
-rw-r--r--5eb51caa-sched-vcpu-pause-flags-atomic.patch76
-rw-r--r--5ec2a760-x86-determine-MXCSR-mask-always.patch69
-rw-r--r--5ec50b05-x86-idle-rework-C6-EOI-workaround.patch100
-rw-r--r--5ec7dcaa-x86-dont-enter-C6-with-in-service-intr.patch102
-rw-r--r--5ec7dcf6-x86-dont-enter-C3-C6-with-errata.patch68
-rw-r--r--5ec82237-x86-extend-ISR-C6-workaround-to-Haswell.patch33
-rw-r--r--5ece1b91-x86-clear-RDRAND-CPUID-bit-on-AMD-fam-15-16.patch154
-rw-r--r--5ece8ac4-x86-load_system_tables-NMI-MC-safe.patch91
-rw-r--r--5ed69804-x86-ucode-fix-start-end-update.patch207
-rw-r--r--5eda60cb-SVM-split-recalc-NPT-fault-handling.patch98
-rw-r--r--5edf6ad8-ioreq-pending-emulation-server-destruction-race.patch57
-rw-r--r--5edfbbea-x86-spec-ctrl-CPUID-MSR-defs-for-SRBDS.patch106
-rw-r--r--5edfbbea-x86-spec-ctrl-mitigate-SRBDS.patch172
-rw-r--r--5ee24d0e-x86-spec-ctrl-document-SRBDS-workaround.patch43
-rw-r--r--5ef44e0d-x86-PMTMR-use-FADT-flags.patch102
-rw-r--r--5ef6156a-x86-disallow-access-to-PT-MSRs.patch49
-rw-r--r--5efcb354-x86-protect-CALL-JMP-straight-line-speculation.patch35
-rw-r--r--5f046c18-evtchn-dont-ignore-error-in-get_free_port.patch45
-rw-r--r--5f046c48-x86-shadow-dirty-VRAM-inverted-conditional.patch30
-rw-r--r--5f046c64-EPT-set_middle_entry-adjustments.patch122
-rw-r--r--5f046c78-EPT-atomically-modify-ents-in-ept_next_level.patch53
-rw-r--r--5f046c9a-VT-d-improve-IOMMU-TLB-flush.patch35
-rw-r--r--5f046cb5-VT-d-prune-rename-cache-flush-funcs.patch179
-rw-r--r--5f046cca-x86-IOMMU-introduce-cache-sync-hook.patch86
-rw-r--r--5f046ce9-VT-d-sync_cache-misaligned-addresses.patch41
-rw-r--r--5f046cfd-x86-introduce-alternative_2.patch28
-rw-r--r--5f046d1a-VT-d-optimize-CPU-cache-sync.patch95
-rw-r--r--5f046d2b-EPT-flush-cache-when-modifying-PTEs.patch157
-rw-r--r--5f046d5c-check-VCPUOP_register_vcpu_info-alignment.patch55
-rw-r--r--5f1a9916-x86-S3-put-data-sregs-into-known-state.patch35
-rw-r--r--5f21b9fd-x86-cpuid-APIC-bit-clearing.patch25
-rw-r--r--5f479d9e-x86-begin-to-support-MSR_ARCH_CAPS.patch113
-rw-r--r--5f4cf06e-x86-Dom0-expose-MSR_ARCH_CAPS.patch60
-rw-r--r--5f4cf96a-x86-PV-fix-SEGBASE_GS_USER_SEL.patch92
-rw-r--r--5f560c42-x86-PV-64bit-segbase-consistency.patch212
-rw-r--r--README.SUSE704
-rw-r--r--aarch64-maybe-uninitialized.patch22
-rw-r--r--aarch64-rename-PSR_MODE_ELxx-to-match-linux-headers.patch37
-rw-r--r--baselibs.conf1
-rw-r--r--bin-python3-conversion.patch428
-rw-r--r--block-dmmd384
-rw-r--r--block-npiv129
-rw-r--r--block-npiv-common.sh277
-rw-r--r--block-npiv-vport79
-rw-r--r--boot.local.xenU79
-rw-r--r--boot.xen101
-rw-r--r--build-python3-conversion.patch598
-rw-r--r--disable-building-pv-shim.patch13
-rw-r--r--etc_pam.d_xen-api7
-rw-r--r--gcc10-fixes.patch202
-rw-r--r--hibernate.patch44
-rw-r--r--ignore-ip-command-script-errors.patch48
-rw-r--r--init.pciback119
-rw-r--r--init.xen_loop2
-rw-r--r--ipxe-enable-nics.patch9
-rw-r--r--ipxe-no-error-logical-not-parentheses.patch23
-rw-r--r--ipxe-use-rpm-opt-flags.patch26
-rw-r--r--libxc.migrate_tracking.patch220
-rw-r--r--libxc.sr.superpage.patch905
-rw-r--r--libxl.LIBXL_HOTPLUG_TIMEOUT.patch318
-rw-r--r--libxl.add-option-to-disable-disk-cache-flushes-in-qdisk.patch215
-rw-r--r--libxl.helper_done-crash.patch53
-rw-r--r--libxl.libxl__domain_pvcontrol.patch27
-rw-r--r--libxl.max_event_channels.patch16
-rw-r--r--libxl.pvscsi.patch2538
-rw-r--r--libxl.set-migration-constraints-from-cmdline.patch579
-rw-r--r--logrotate.conf17
-rw-r--r--migration-python3-conversion.patch122
-rw-r--r--pygrub-boot-legacy-sles.patch63
-rw-r--r--pygrub-handle-one-line-menu-entries.patch59
-rw-r--r--pygrub-netware-xnloader.patch21
-rw-r--r--replace-obsolete-network-configuration-commands-in-s.patch268
-rw-r--r--reproducible.patch44
-rw-r--r--sources5
-rw-r--r--stdvga-cache.patch16
-rw-r--r--stubdom-have-iovec.patch26
-rw-r--r--suse-xendomains-service.patch20
-rw-r--r--suspend_evtchn_lock.patch78
-rw-r--r--sysconfig.pciback9
-rw-r--r--tmp_build.patch42
-rw-r--r--vif-bridge-no-iptables.patch13
-rw-r--r--vif-bridge-tap-fix.patch30
-rw-r--r--vif-route.patch25
-rw-r--r--x86-cpufreq-report.patch84
-rw-r--r--x86-ioapic-ack-default.patch18
-rw-r--r--xen-arch-kconfig-nr_cpus.patch13
-rw-r--r--xen-destdir.patch57
-rw-r--r--xen-dom0-modules.service16
-rw-r--r--xen-supportconfig106
-rw-r--r--xen.bug1026236.suse_vtsc_tolerance.patch58
-rw-r--r--xen.build-compare.doc_html.patch31
-rw-r--r--xen.changes12678
-rw-r--r--xen.libxl.dmmd.patch135
-rw-r--r--xen.spec9860
-rw-r--r--xen.stubdom.newlib.patch119
-rw-r--r--xen2libvirt.py137
-rw-r--r--xen_maskcalc.py395
-rw-r--r--xenapiusers1
-rw-r--r--xencommons.service36
-rw-r--r--xenconsole-no-multiple-connections.patch27
-rw-r--r--xendomains-wait-disks.LICENSE674
-rw-r--r--xendomains-wait-disks.README.md28
-rw-r--r--xendomains-wait-disks.sh199
-rw-r--r--xenstore-launch.patch19
-rw-r--r--xenstore-run-in-studomain.patch59
-rw-r--r--xl-conf-default-bridge.patch13
-rw-r--r--xl-conf-disable-autoballoon.patch11
-rw-r--r--xnloader.py64
-rw-r--r--xsa286-1.patch70
-rw-r--r--xsa286-2.patch167
-rw-r--r--xsa286-3.patch81
-rw-r--r--xsa286-4.patch161
-rw-r--r--xsa286-5.patch94
-rw-r--r--xsa286-6.patch95
-rw-r--r--xsa333.patch35
-rw-r--r--xsa334.patch48
-rw-r--r--xsa336.patch274
-rw-r--r--xsa337-1.patch85
-rw-r--r--xsa337-2.patch180
-rw-r--r--xsa338.patch39
-rw-r--r--xsa339.patch71
-rw-r--r--xsa340.patch62
-rw-r--r--xsa342.patch144
-rw-r--r--xsa343-1.patch189
-rw-r--r--xsa343-2.patch289
-rw-r--r--xsa343-3.patch379
-rw-r--r--xsa344-1.patch128
-rw-r--r--xsa344-2.patch201
-rw-r--r--xsa345-1.patch81
-rw-r--r--xsa345-2.patch55
-rw-r--r--xsa345-3.patch237
-rw-r--r--xsa346-1.patch49
-rw-r--r--xsa346-2.patch203
-rw-r--r--xsa347-1.patch148
-rw-r--r--xsa347-2.patch71
-rw-r--r--xsa347-3.patch58
138 files changed, 40652 insertions, 0 deletions
diff --git a/.gitignore b/.gitignore
index e69de29..f474cf0 100644
--- a/.gitignore
+++ b/.gitignore
@@ -0,0 +1,5 @@
+/ipxe.tar.bz2
+/mini-os.tar.bz2
+/stubdom.tar.bz2
+/xen-4.13.1-testing-src.tar.bz2
+/xen-utils-0.1.tar.bz2
diff --git a/5eb51be6-cpupool-fix-removing-cpu-from-pool.patch b/5eb51be6-cpupool-fix-removing-cpu-from-pool.patch
new file mode 100644
index 0000000..0ed7f48
--- /dev/null
+++ b/5eb51be6-cpupool-fix-removing-cpu-from-pool.patch
@@ -0,0 +1,29 @@
+# Commit 498d73647fa17d9eb7a67d2e9bdccac6b438e559
+# Date 2020-05-08 10:44:22 +0200
+# Author Juergen Gross <jgross@suse.com>
+# Committer Jan Beulich <jbeulich@suse.com>
+cpupool: fix removing cpu from a cpupool
+
+Commit cb563d7665f2 ("xen/sched: support core scheduling for moving
+cpus to/from cpupools") introduced a regression when trying to remove
+an offline cpu from a cpupool, as the system would crash in this
+situation.
+
+Fix that by testing the cpu to be online.
+
+Fixes: cb563d7665f2 ("xen/sched: support core scheduling for moving cpus to/from cpupools")
+Signed-off-by: Juergen Gross <jgross@suse.com>
+Acked-by: Dario Faggioli <dfaggioli@suse.com>
+
+--- a/xen/common/cpupool.c
++++ b/xen/common/cpupool.c
+@@ -519,6 +519,9 @@ static int cpupool_unassign_cpu(struct c
+ debugtrace_printk("cpupool_unassign_cpu(pool=%d,cpu=%d)\n",
+ c->cpupool_id, cpu);
+
++ if ( !cpu_online(cpu) )
++ return -EINVAL;
++
+ master_cpu = sched_get_resource_cpu(cpu);
+ ret = cpupool_unassign_cpu_start(c, master_cpu);
+ if ( ret )
diff --git a/5eb51caa-sched-vcpu-pause-flags-atomic.patch b/5eb51caa-sched-vcpu-pause-flags-atomic.patch
new file mode 100644
index 0000000..848b593
--- /dev/null
+++ b/5eb51caa-sched-vcpu-pause-flags-atomic.patch
@@ -0,0 +1,76 @@
+# Commit e0d92d9bd7997c6bcda17a19aba4f3957dd1a2e9
+# Date 2020-05-08 10:47:38 +0200
+# Author Juergen Gross <jgross@suse.com>
+# Committer Jan Beulich <jbeulich@suse.com>
+sched: always modify vcpu pause flags atomically
+
+credit2 is currently modifying the pause flags of vcpus non-atomically
+via sched_set_pause_flags() and sched_clear_pause_flags(). This is
+dangerous as there are cases where the paus flags are modified without
+any lock held.
+
+So drop the non-atomic pause flag modification functions and rename the
+atomic ones dropping the _atomic suffix.
+
+Fixes: a76255b4266516 ("xen/sched: make credit2 scheduler vcpu agnostic.")
+Signed-off-by: Juergen Gross <jgross@suse.com>
+Reviewed-by: Dario Faggioli <dfaggioli@suse.com>
+
+--- a/xen/common/sched_credit.c
++++ b/xen/common/sched_credit.c
+@@ -452,7 +452,7 @@ static inline void __runq_tickle(struct
+ SCHED_UNIT_STAT_CRANK(cur, kicked_away);
+ SCHED_UNIT_STAT_CRANK(cur, migrate_r);
+ SCHED_STAT_CRANK(migrate_kicked_away);
+- sched_set_pause_flags_atomic(cur->unit, _VPF_migrating);
++ sched_set_pause_flags(cur->unit, _VPF_migrating);
+ }
+ /* Tickle cpu anyway, to let new preempt cur. */
+ SCHED_STAT_CRANK(tickled_busy_cpu);
+@@ -983,7 +983,7 @@ csched_unit_acct(struct csched_private *
+ {
+ SCHED_UNIT_STAT_CRANK(svc, migrate_r);
+ SCHED_STAT_CRANK(migrate_running);
+- sched_set_pause_flags_atomic(currunit, _VPF_migrating);
++ sched_set_pause_flags(currunit, _VPF_migrating);
+ /*
+ * As we are about to tickle cpu, we should clear its bit in
+ * idlers. But, if we are here, it means there is someone running
+--- a/xen/include/xen/sched-if.h
++++ b/xen/include/xen/sched-if.h
+@@ -175,7 +175,7 @@ static inline void sched_set_pause_flags
+ struct vcpu *v;
+
+ for_each_sched_unit_vcpu ( unit, v )
+- __set_bit(bit, &v->pause_flags);
++ set_bit(bit, &v->pause_flags);
+ }
+
+ /* Clear a bit in pause_flags of all vcpus of a unit. */
+@@ -184,26 +184,6 @@ static inline void sched_clear_pause_fla
+ {
+ struct vcpu *v;
+
+- for_each_sched_unit_vcpu ( unit, v )
+- __clear_bit(bit, &v->pause_flags);
+-}
+-
+-/* Set a bit in pause_flags of all vcpus of a unit via atomic updates. */
+-static inline void sched_set_pause_flags_atomic(struct sched_unit *unit,
+- unsigned int bit)
+-{
+- struct vcpu *v;
+-
+- for_each_sched_unit_vcpu ( unit, v )
+- set_bit(bit, &v->pause_flags);
+-}
+-
+-/* Clear a bit in pause_flags of all vcpus of a unit via atomic updates. */
+-static inline void sched_clear_pause_flags_atomic(struct sched_unit *unit,
+- unsigned int bit)
+-{
+- struct vcpu *v;
+-
+ for_each_sched_unit_vcpu ( unit, v )
+ clear_bit(bit, &v->pause_flags);
+ }
diff --git a/5ec2a760-x86-determine-MXCSR-mask-always.patch b/5ec2a760-x86-determine-MXCSR-mask-always.patch
new file mode 100644
index 0000000..9a5feb3
--- /dev/null
+++ b/5ec2a760-x86-determine-MXCSR-mask-always.patch
@@ -0,0 +1,69 @@
+# Commit 2b532519d64e653a6bbfd9eefed6040a09c8876d
+# Date 2020-05-18 17:18:56 +0200
+# Author Jan Beulich <jbeulich@suse.com>
+# Committer Jan Beulich <jbeulich@suse.com>
+x86: determine MXCSR mask in all cases
+
+For its use(s) by the emulator to be correct in all cases, the filling
+of the variable needs to be independent of XSAVE availability. As
+there's no suitable function in i387.c to put the logic in, keep it in
+xstate_init(), arrange for the function to be called unconditionally,
+and pull the logic ahead of all return paths there.
+
+Fixes: 9a4496a35b20 ("x86emul: support {,V}{LD,ST}MXCSR")
+Signed-off-by: Jan Beulich <jbeulich@suse.com>
+Reviewed-by: Andrew Cooper <andrew.cooper3@citrix.com>
+
+--- a/xen/arch/x86/cpu/common.c
++++ b/xen/arch/x86/cpu/common.c
+@@ -487,8 +487,7 @@ void identify_cpu(struct cpuinfo_x86 *c)
+
+ /* Now the feature flags better reflect actual CPU features! */
+
+- if ( cpu_has_xsave )
+- xstate_init(c);
++ xstate_init(c);
+
+ #ifdef NOISY_CAPS
+ printk(KERN_DEBUG "CPU: After all inits, caps:");
+--- a/xen/arch/x86/xstate.c
++++ b/xen/arch/x86/xstate.c
+@@ -587,6 +587,18 @@ void xstate_init(struct cpuinfo_x86 *c)
+ u32 eax, ebx, ecx, edx;
+ u64 feature_mask;
+
++ if ( bsp )
++ {
++ static typeof(current->arch.xsave_area->fpu_sse) __initdata ctxt;
++
++ asm ( "fxsave %0" : "=m" (ctxt) );
++ if ( ctxt.mxcsr_mask )
++ mxcsr_mask = ctxt.mxcsr_mask;
++ }
++
++ if ( !cpu_has_xsave )
++ return;
++
+ if ( (bsp && !use_xsave) ||
+ boot_cpu_data.cpuid_level < XSTATE_CPUID )
+ {
+@@ -610,8 +622,6 @@ void xstate_init(struct cpuinfo_x86 *c)
+
+ if ( bsp )
+ {
+- static typeof(current->arch.xsave_area->fpu_sse) __initdata ctxt;
+-
+ xfeature_mask = feature_mask;
+ /*
+ * xsave_cntxt_size is the max size required by enabled features.
+@@ -620,10 +630,6 @@ void xstate_init(struct cpuinfo_x86 *c)
+ xsave_cntxt_size = _xstate_ctxt_size(feature_mask);
+ printk("xstate: size: %#x and states: %#"PRIx64"\n",
+ xsave_cntxt_size, xfeature_mask);
+-
+- asm ( "fxsave %0" : "=m" (ctxt) );
+- if ( ctxt.mxcsr_mask )
+- mxcsr_mask = ctxt.mxcsr_mask;
+ }
+ else
+ {
diff --git a/5ec50b05-x86-idle-rework-C6-EOI-workaround.patch b/5ec50b05-x86-idle-rework-C6-EOI-workaround.patch
new file mode 100644
index 0000000..d2e42b0
--- /dev/null
+++ b/5ec50b05-x86-idle-rework-C6-EOI-workaround.patch
@@ -0,0 +1,100 @@
+# Commit 5fef1fd713660406a6187ef352fbf79986abfe43
+# Date 2020-05-20 12:48:37 +0200
+# Author Roger Pau Monné <roger.pau@citrix.com>
+# Committer Jan Beulich <jbeulich@suse.com>
+x86/idle: rework C6 EOI workaround
+
+Change the C6 EOI workaround (errata AAJ72) to use x86_match_cpu. Also
+call the workaround from mwait_idle, previously it was only used by
+the ACPI idle driver. Finally make sure the routine is called for all
+states equal or greater than ACPI_STATE_C3, note that the ACPI driver
+doesn't currently handle them, but the errata condition shouldn't be
+limited by that.
+
+Signed-off-by: Roger Pau Monné <roger.pau@citrix.com>
+Reviewed-by: Jan Beulich <jbeulich@suse.com>
+
+--- a/xen/arch/x86/acpi/cpu_idle.c
++++ b/xen/arch/x86/acpi/cpu_idle.c
+@@ -537,26 +537,35 @@ void trace_exit_reason(u32 *irq_traced)
+ }
+ }
+
+-/*
+- * "AAJ72. EOI Transaction May Not be Sent if Software Enters Core C6 During
+- * an Interrupt Service Routine"
+- *
+- * There was an errata with some Core i7 processors that an EOI transaction
+- * may not be sent if software enters core C6 during an interrupt service
+- * routine. So we don't enter deep Cx state if there is an EOI pending.
+- */
+-static bool errata_c6_eoi_workaround(void)
++bool errata_c6_eoi_workaround(void)
+ {
+- static int8_t fix_needed = -1;
++ static int8_t __read_mostly fix_needed = -1;
+
+ if ( unlikely(fix_needed == -1) )
+ {
+- int model = boot_cpu_data.x86_model;
+- fix_needed = (cpu_has_apic && !directed_eoi_enabled &&
+- (boot_cpu_data.x86_vendor == X86_VENDOR_INTEL) &&
+- (boot_cpu_data.x86 == 6) &&
+- ((model == 0x1a) || (model == 0x1e) || (model == 0x1f) ||
+- (model == 0x25) || (model == 0x2c) || (model == 0x2f)));
++#define INTEL_FAM6_MODEL(m) { X86_VENDOR_INTEL, 6, m, X86_FEATURE_ALWAYS }
++ /*
++ * Errata AAJ72: EOI Transaction May Not be Sent if Software Enters
++ * Core C6 During an Interrupt Service Routine"
++ *
++ * There was an errata with some Core i7 processors that an EOI
++ * transaction may not be sent if software enters core C6 during an
++ * interrupt service routine. So we don't enter deep Cx state if
++ * there is an EOI pending.
++ */
++ static const struct x86_cpu_id eoi_errata[] = {
++ INTEL_FAM6_MODEL(0x1a),
++ INTEL_FAM6_MODEL(0x1e),
++ INTEL_FAM6_MODEL(0x1f),
++ INTEL_FAM6_MODEL(0x25),
++ INTEL_FAM6_MODEL(0x2c),
++ INTEL_FAM6_MODEL(0x2f),
++ { }
++ };
++#undef INTEL_FAM6_MODEL
++
++ fix_needed = cpu_has_apic && !directed_eoi_enabled &&
++ x86_match_cpu(eoi_errata);
+ }
+
+ return (fix_needed && cpu_has_pending_apic_eoi());
+@@ -664,7 +673,7 @@ static void acpi_processor_idle(void)
+ return;
+ }
+
+- if ( (cx->type == ACPI_STATE_C3) && errata_c6_eoi_workaround() )
++ if ( (cx->type >= ACPI_STATE_C3) && errata_c6_eoi_workaround() )
+ cx = power->safe_state;
+
+
+--- a/xen/arch/x86/cpu/mwait-idle.c
++++ b/xen/arch/x86/cpu/mwait-idle.c
+@@ -769,6 +769,9 @@ static void mwait_idle(void)
+ return;
+ }
+
++ if ((cx->type >= 3) && errata_c6_eoi_workaround())
++ cx = power->safe_state;
++
+ eax = cx->address;
+ cstate = ((eax >> MWAIT_SUBSTATE_SIZE) & MWAIT_CSTATE_MASK) + 1;
+
+--- a/xen/include/asm-x86/cpuidle.h
++++ b/xen/include/asm-x86/cpuidle.h
+@@ -26,4 +26,6 @@ void update_idle_stats(struct acpi_proce
+ void update_last_cx_stat(struct acpi_processor_power *,
+ struct acpi_processor_cx *, uint64_t);
+
++bool errata_c6_eoi_workaround(void);
++
+ #endif /* __X86_ASM_CPUIDLE_H__ */
diff --git a/5ec7dcaa-x86-dont-enter-C6-with-in-service-intr.patch b/5ec7dcaa-x86-dont-enter-C6-with-in-service-intr.patch
new file mode 100644
index 0000000..be68d1d
--- /dev/null
+++ b/5ec7dcaa-x86-dont-enter-C6-with-in-service-intr.patch
@@ -0,0 +1,102 @@
+# Commit fc44a7014cafe28b8c53eeaf6ac2a71f5bc8b815
+# Date 2020-05-22 16:07:38 +0200
+# Author Roger Pau Monné <roger.pau@citrix.com>
+# Committer Jan Beulich <jbeulich@suse.com>
+x86/idle: prevent entering C6 with in service interrupts on Intel
+
+Apply a workaround for Intel errata BDX99, CLX30, SKX100, CFW125,
+BDF104, BDH85, BDM135, KWB131: "A Pending Fixed Interrupt May Be
+Dispatched Before an Interrupt of The Same Priority Completes".
+
+Apply the errata to all server and client models (big cores) from
+Broadwell to Cascade Lake. The workaround is grouped together with the
+existing fix for errata AAJ72, and the eoi from the function name is
+removed.
+
+Signed-off-by: Roger Pau Monné <roger.pau@citrix.com>
+Reviewed-by: Jan Beulich <jbeulich@suse.com>
+
+--- a/xen/arch/x86/acpi/cpu_idle.c
++++ b/xen/arch/x86/acpi/cpu_idle.c
+@@ -537,7 +537,7 @@ void trace_exit_reason(u32 *irq_traced)
+ }
+ }
+
+-bool errata_c6_eoi_workaround(void)
++bool errata_c6_workaround(void)
+ {
+ static int8_t __read_mostly fix_needed = -1;
+
+@@ -562,10 +562,40 @@ bool errata_c6_eoi_workaround(void)
+ INTEL_FAM6_MODEL(0x2f),
+ { }
+ };
++ /*
++ * Errata BDX99, CLX30, SKX100, CFW125, BDF104, BDH85, BDM135, KWB131:
++ * A Pending Fixed Interrupt May Be Dispatched Before an Interrupt of
++ * The Same Priority Completes.
++ *
++ * Resuming from C6 Sleep-State, with Fixed Interrupts of the same
++ * priority queued (in the corresponding bits of the IRR and ISR APIC
++ * registers), the processor may dispatch the second interrupt (from
++ * the IRR bit) before the first interrupt has completed and written to
++ * the EOI register, causing the first interrupt to never complete.
++ */
++ static const struct x86_cpu_id isr_errata[] = {
++ /* Broadwell */
++ INTEL_FAM6_MODEL(0x47),
++ INTEL_FAM6_MODEL(0x3d),
++ INTEL_FAM6_MODEL(0x4f),
++ INTEL_FAM6_MODEL(0x56),
++ /* Skylake (client) */
++ INTEL_FAM6_MODEL(0x5e),
++ INTEL_FAM6_MODEL(0x4e),
++ /* {Sky/Cascade}lake (server) */
++ INTEL_FAM6_MODEL(0x55),
++ /* {Kaby/Coffee/Whiskey/Amber} Lake */
++ INTEL_FAM6_MODEL(0x9e),
++ INTEL_FAM6_MODEL(0x8e),
++ /* Cannon Lake */
++ INTEL_FAM6_MODEL(0x66),
++ { }
++ };
+ #undef INTEL_FAM6_MODEL
+
+- fix_needed = cpu_has_apic && !directed_eoi_enabled &&
+- x86_match_cpu(eoi_errata);
++ fix_needed = cpu_has_apic &&
++ ((!directed_eoi_enabled && x86_match_cpu(eoi_errata)) ||
++ x86_match_cpu(isr_errata));
+ }
+
+ return (fix_needed && cpu_has_pending_apic_eoi());
+@@ -673,7 +703,7 @@ static void acpi_processor_idle(void)
+ return;
+ }
+
+- if ( (cx->type >= ACPI_STATE_C3) && errata_c6_eoi_workaround() )
++ if ( (cx->type >= ACPI_STATE_C3) && errata_c6_workaround() )
+ cx = power->safe_state;
+
+
+--- a/xen/arch/x86/cpu/mwait-idle.c
++++ b/xen/arch/x86/cpu/mwait-idle.c
+@@ -769,7 +769,7 @@ static void mwait_idle(void)
+ return;
+ }
+
+- if ((cx->type >= 3) && errata_c6_eoi_workaround())
++ if ((cx->type >= 3) && errata_c6_workaround())
+ cx = power->safe_state;
+
+ eax = cx->address;
+--- a/xen/include/asm-x86/cpuidle.h
++++ b/xen/include/asm-x86/cpuidle.h
+@@ -26,6 +26,6 @@ void update_idle_stats(struct acpi_proce
+ void update_last_cx_stat(struct acpi_processor_power *,
+ struct acpi_processor_cx *, uint64_t);
+
+-bool errata_c6_eoi_workaround(void);
++bool errata_c6_workaround(void);
+
+ #endif /* __X86_ASM_CPUIDLE_H__ */
diff --git a/5ec7dcf6-x86-dont-enter-C3-C6-with-errata.patch b/5ec7dcf6-x86-dont-enter-C3-C6-with-errata.patch
new file mode 100644
index 0000000..7d2af46
--- /dev/null
+++ b/5ec7dcf6-x86-dont-enter-C3-C6-with-errata.patch
@@ -0,0 +1,68 @@
+# Commit b2d502466547e6782ccadd501b8ef1482c391f2c
+# Date 2020-05-22 16:08:54 +0200
+# Author Roger Pau Monné <roger.pau@citrix.com>
+# Committer Jan Beulich <jbeulich@suse.com>
+x86/idle: prevent entering C3/C6 on some Intel CPUs due to errata
+
+Apply a workaround for errata BA80, AAK120, AAM108, AAO67, BD59,
+AAY54: Rapid Core C3/C6 Transition May Cause Unpredictable System
+Behavior.
+
+Limit maximum C state to C1 when SMT is enabled on the affected CPUs.
+
+Signed-off-by: Roger Pau Monné <roger.pau@citrix.com>
+Acked-by: Andrew Cooper <andrew.cooper3@citrix.com>
+
+--- a/xen/arch/x86/cpu/intel.c
++++ b/xen/arch/x86/cpu/intel.c
+@@ -297,6 +297,41 @@ static void early_init_intel(struct cpui
+ }
+
+ /*
++ * Errata BA80, AAK120, AAM108, AAO67, BD59, AAY54: Rapid Core C3/C6 Transition
++ * May Cause Unpredictable System Behavior
++ *
++ * Under a complex set of internal conditions, cores rapidly performing C3/C6
++ * transitions in a system with Intel Hyper-Threading Technology enabled may
++ * cause a machine check error (IA32_MCi_STATUS.MCACOD = 0x0106), system hang
++ * or unpredictable system behavior.
++ */
++static void probe_c3_errata(const struct cpuinfo_x86 *c)
++{
++#define INTEL_FAM6_MODEL(m) { X86_VENDOR_INTEL, 6, m, X86_FEATURE_ALWAYS }
++ static const struct x86_cpu_id models[] = {
++ /* Nehalem */
++ INTEL_FAM6_MODEL(0x1a),
++ INTEL_FAM6_MODEL(0x1e),
++ INTEL_FAM6_MODEL(0x1f),
++ INTEL_FAM6_MODEL(0x2e),
++ /* Westmere (note Westmere-EX is not affected) */
++ INTEL_FAM6_MODEL(0x2c),
++ INTEL_FAM6_MODEL(0x25),
++ { }
++ };
++#undef INTEL_FAM6_MODEL
++
++ /* Serialized by the AP bringup code. */
++ if ( max_cstate > 1 && (c->apicid & (c->x86_num_siblings - 1)) &&
++ x86_match_cpu(models) )
++ {
++ printk(XENLOG_WARNING
++ "Disabling C-states C3 and C6 due to CPU errata\n");
++ max_cstate = 1;
++ }
++}
++
++/*
+ * P4 Xeon errata 037 workaround.
+ * Hardware prefetcher may cause stale data to be loaded into the cache.
+ *
+@@ -323,6 +358,8 @@ static void Intel_errata_workarounds(str
+
+ if (cpu_has_tsx_force_abort && opt_rtm_abort)
+ wrmsrl(MSR_TSX_FORCE_ABORT, TSX_FORCE_ABORT_RTM);
++
++ probe_c3_errata(c);
+ }
+
+
diff --git a/5ec82237-x86-extend-ISR-C6-workaround-to-Haswell.patch b/5ec82237-x86-extend-ISR-C6-workaround-to-Haswell.patch
new file mode 100644
index 0000000..5305469
--- /dev/null
+++ b/5ec82237-x86-extend-ISR-C6-workaround-to-Haswell.patch
@@ -0,0 +1,33 @@
+# Commit b72d8870b5f68f06b083e6bfdb28f081bcb6ab3b
+# Date 2020-05-22 20:04:23 +0100
+# Author Andrew Cooper <andrew.cooper3@citrix.com>
+# Committer Andrew Cooper <andrew.cooper3@citrix.com>
+x86/idle: Extend ISR/C6 erratum workaround to Haswell
+
+This bug was first discovered against Haswell. It is definitely affected.
+
+(The XenServer ticket for this bug was opened on 2013-05-30 which is coming up
+on 7 years old, and predates Broadwell).
+
+Signed-off-by: Andrew Cooper <andrew.cooper3@citrix.com>
+Acked-by: Jan Beulich <jbeulich@suse.com>
+
+--- a/xen/arch/x86/acpi/cpu_idle.c
++++ b/xen/arch/x86/acpi/cpu_idle.c
+@@ -572,8 +572,16 @@ bool errata_c6_workaround(void)
+ * registers), the processor may dispatch the second interrupt (from
+ * the IRR bit) before the first interrupt has completed and written to
+ * the EOI register, causing the first interrupt to never complete.
++ *
++ * Note: Haswell hasn't had errata issued, but this issue was first
++ * discovered on Haswell hardware, and is affected.
+ */
+ static const struct x86_cpu_id isr_errata[] = {
++ /* Haswell */
++ INTEL_FAM6_MODEL(0x3c),
++ INTEL_FAM6_MODEL(0x3f),
++ INTEL_FAM6_MODEL(0x45),
++ INTEL_FAM6_MODEL(0x46),
+ /* Broadwell */
+ INTEL_FAM6_MODEL(0x47),
+ INTEL_FAM6_MODEL(0x3d),
diff --git a/5ece1b91-x86-clear-RDRAND-CPUID-bit-on-AMD-fam-15-16.patch b/5ece1b91-x86-clear-RDRAND-CPUID-bit-on-AMD-fam-15-16.patch
new file mode 100644
index 0000000..f8d6125
--- /dev/null
+++ b/5ece1b91-x86-clear-RDRAND-CPUID-bit-on-AMD-fam-15-16.patch
@@ -0,0 +1,154 @@
+# Commit 93401e28a84b9dc5945f5d0bf5bce68e9d5ee121
+# Date 2020-05-27 09:49:37 +0200
+# Author Jan Beulich <jbeulich@suse.com>
+# Committer Jan Beulich <jbeulich@suse.com>
+x86: clear RDRAND CPUID bit on AMD family 15h/16h
+
+Inspired by Linux commit c49a0a80137c7ca7d6ced4c812c9e07a949f6f24:
+
+ There have been reports of RDRAND issues after resuming from suspend on
+ some AMD family 15h and family 16h systems. This issue stems from a BIOS
+ not performing the proper steps during resume to ensure RDRAND continues
+ to function properly.
+
+ Update the CPU initialization to clear the RDRAND CPUID bit for any family
+ 15h and 16h processor that supports RDRAND. If it is known that the family
+ 15h or family 16h system does not have an RDRAND resume issue or that the
+ system will not be placed in suspend, the "cpuid=rdrand" kernel parameter
+ can be used to stop the clearing of the RDRAND CPUID bit.
+
+ Note, that clearing the RDRAND CPUID bit does not prevent a processor
+ that normally supports the RDRAND instruction from executing it. So any
+ code that determined the support based on family and model won't #UD.
+
+Warn if no explicit choice was given on affected hardware.
+
+Check RDRAND functions at boot as well as after S3 resume (the retry
+limit chosen is entirely arbitrary).
+
+Signed-off-by: Jan Beulich <jbeulich@suse.com>
+Reviewed-by: Roger Pau Monné <roger.pau@citrix.com>
+Acked-by: Andrew Cooper <andrew.cooper3@citrix.com>
+
+--- a/docs/misc/xen-command-line.pandoc
++++ b/docs/misc/xen-command-line.pandoc
+@@ -488,6 +488,10 @@ The Speculation Control hardware feature
+ be ignored, e.g. `no-ibrsb`, at which point Xen won't use them itself, and
+ won't offer them to guests.
+
++`rdrand` can be used to override the default disabling of the feature on certain
++AMD systems. Its negative form can of course also be used to suppress use and
++exposure of the feature.
++
+ ### cpuid_mask_cpu
+ > `= fam_0f_rev_[cdefg] | fam_10_rev_[bc] | fam_11_rev_b`
+
+--- a/xen/arch/x86/cpu/amd.c
++++ b/xen/arch/x86/cpu/amd.c
+@@ -3,6 +3,7 @@
+ #include <xen/mm.h>
+ #include <xen/smp.h>
+ #include <xen/pci.h>
++#include <xen/warning.h>
+ #include <asm/io.h>
+ #include <asm/msr.h>
+ #include <asm/processor.h>
+@@ -645,6 +646,26 @@ static void init_amd(struct cpuinfo_x86
+ if (acpi_smi_cmd && (acpi_enable_value | acpi_disable_value))
+ amd_acpi_c1e_quirk = true;
+ break;
++
++ case 0x15: case 0x16:
++ /*
++ * There are some Fam15/Fam16 systems where upon resume from S3
++ * firmware fails to re-setup properly functioning RDRAND.
++ * By the time we can spot the problem, it is too late to take
++ * action, and there is nothing Xen can do to repair the problem.
++ * Clear the feature unless force-enabled on the command line.
++ */
++ if (c == &boot_cpu_data &&
++ cpu_has(c, X86_FEATURE_RDRAND) &&
++ !is_forced_cpu_cap(X86_FEATURE_RDRAND)) {
++ static const char __initconst text[] =
++ "RDRAND may cease to work on this hardware upon resume from S3.\n"
++ "Please choose an explicit cpuid={no-}rdrand setting.\n";
++
++ setup_clear_cpu_cap(X86_FEATURE_RDRAND);
++ warning_add(text);
++ }
++ break;
+ }
+
+ display_cacheinfo(c);
+--- a/xen/arch/x86/cpu/common.c
++++ b/xen/arch/x86/cpu/common.c
+@@ -10,6 +10,7 @@
+ #include <asm/io.h>
+ #include <asm/mpspec.h>
+ #include <asm/apic.h>
++#include <asm/random.h>
+ #include <asm/setup.h>
+ #include <mach_apic.h>
+ #include <public/sysctl.h> /* for XEN_INVALID_{SOCKET,CORE}_ID */
+@@ -97,6 +98,11 @@ void __init setup_force_cpu_cap(unsigned
+ __set_bit(cap, boot_cpu_data.x86_capability);
+ }
+
++bool __init is_forced_cpu_cap(unsigned int cap)
++{
++ return test_bit(cap, forced_caps);
++}
++
+ static void default_init(struct cpuinfo_x86 * c)
+ {
+ /* Not much we can do here... */
+@@ -496,6 +502,27 @@ void identify_cpu(struct cpuinfo_x86 *c)
+ printk("\n");
+ #endif
+
++ /*
++ * If RDRAND is available, make an attempt to check that it actually
++ * (still) works.
++ */
++ if (cpu_has(c, X86_FEATURE_RDRAND)) {
++ unsigned int prev = 0;
++
++ for (i = 0; i < 5; ++i)
++ {
++ unsigned int cur = arch_get_random();
++
++ if (prev && cur != prev)
++ break;
++ prev = cur;
++ }
++
++ if (i >= 5)
++ printk(XENLOG_WARNING "CPU%u: RDRAND appears to not work\n",
++ smp_processor_id());
++ }
++
+ if (system_state == SYS_STATE_resume)
+ return;
+
+--- a/xen/arch/x86/cpuid.c
++++ b/xen/arch/x86/cpuid.c
+@@ -67,6 +67,9 @@ static int __init parse_xen_cpuid(const
+ {
+ if ( !val )
+ setup_clear_cpu_cap(mid->bit);
++ else if ( mid->bit == X86_FEATURE_RDRAND &&
++ (cpuid_ecx(1) & cpufeat_mask(X86_FEATURE_RDRAND)) )
++ setup_force_cpu_cap(X86_FEATURE_RDRAND);
+ mid = NULL;
+ }
+
+--- a/xen/include/asm-x86/processor.h
++++ b/xen/include/asm-x86/processor.h
+@@ -166,6 +166,7 @@ extern const struct x86_cpu_id *x86_matc
+ extern void identify_cpu(struct cpuinfo_x86 *);
+ extern void setup_clear_cpu_cap(unsigned int);
+ extern void setup_force_cpu_cap(unsigned int);
++extern bool is_forced_cpu_cap(unsigned int);
+ extern void print_cpu_info(unsigned int cpu);
+ extern unsigned int init_intel_cacheinfo(struct cpuinfo_x86 *c);
+
diff --git a/5ece8ac4-x86-load_system_tables-NMI-MC-safe.patch b/5ece8ac4-x86-load_system_tables-NMI-MC-safe.patch
new file mode 100644
index 0000000..c043307
--- /dev/null
+++ b/5ece8ac4-x86-load_system_tables-NMI-MC-safe.patch
@@ -0,0 +1,91 @@
+# Commit 9f3e9139fa6c3d620eb08dff927518fc88200b8d
+# Date 2020-05-27 16:44:04 +0100
+# Author Andrew Cooper <andrew.cooper3@citrix.com>
+# Committer Andrew Cooper <andrew.cooper3@citrix.com>
+x86/boot: Fix load_system_tables() to be NMI/#MC-safe
+
+During boot, load_system_tables() is used in reinit_bsp_stack() to switch the
+virtual addresses used from their .data/.bss alias, to their directmap alias.
+
+The structure assignment is implemented as a memset() to zero first, then a
+copy-in of the new data. This causes the NMI/#MC stack pointers to
+transiently become 0, at a point where we may have an NMI watchdog running.
+
+Rewrite the logic using a volatile tss pointer (equivalent to, but more
+readable than, using ACCESS_ONCE() for all writes).
+
+This does drop the zeroing side effect for holes in the structure, but the
+backing memory for the TSS is fully zeroed anyway, and architecturally, they
+are all reserved.
+
+Signed-off-by: Andrew Cooper <andrew.cooper3@citrix.com>
+Reviewed-by: Jan Beulich <jbeulich@suse.com>
+
+--- a/xen/arch/x86/cpu/common.c
++++ b/xen/arch/x86/cpu/common.c
+@@ -729,11 +729,12 @@ static cpumask_t cpu_initialized;
+ */
+ void load_system_tables(void)
+ {
+- unsigned int cpu = smp_processor_id();
++ unsigned int i, cpu = smp_processor_id();
+ unsigned long stack_bottom = get_stack_bottom(),
+ stack_top = stack_bottom & ~(STACK_SIZE - 1);
+
+- struct tss64 *tss = &this_cpu(tss_page).tss;
++ /* The TSS may be live. Disuade any clever optimisations. */
++ volatile struct tss64 *tss = &this_cpu(tss_page).tss;
+ seg_desc_t *gdt =
+ this_cpu(gdt) - FIRST_RESERVED_GDT_ENTRY;
+ seg_desc_t *compat_gdt =
+@@ -748,30 +749,26 @@ void load_system_tables(void)
+ .limit = (IDT_ENTRIES * sizeof(idt_entry_t)) - 1,
+ };
+
+- *tss = (struct tss64){
+- /* Main stack for interrupts/exceptions. */
+- .rsp0 = stack_bottom,
+-
+- /* Ring 1 and 2 stacks poisoned. */
+- .rsp1 = 0x8600111111111111ul,
+- .rsp2 = 0x8600111111111111ul,
+-
+- /*
+- * MCE, NMI and Double Fault handlers get their own stacks.
+- * All others poisoned.
+- */
+- .ist = {
+- [IST_MCE - 1] = stack_top + IST_MCE * PAGE_SIZE,
+- [IST_DF - 1] = stack_top + IST_DF * PAGE_SIZE,
+- [IST_NMI - 1] = stack_top + IST_NMI * PAGE_SIZE,
+- [IST_DB - 1] = stack_top + IST_DB * PAGE_SIZE,
+-
+- [IST_MAX ... ARRAY_SIZE(tss->ist) - 1] =
+- 0x8600111111111111ul,
+- },
+-
+- .bitmap = IOBMP_INVALID_OFFSET,
+- };
++ /*
++ * Set up the TSS. Warning - may be live, and the NMI/#MC must remain
++ * valid on every instruction boundary. (Note: these are all
++ * semantically ACCESS_ONCE() due to tss's volatile qualifier.)
++ *
++ * rsp0 refers to the primary stack. #MC, #DF, NMI and #DB handlers
++ * each get their own stacks. No IO Bitmap.
++ */
++ tss->rsp0 = stack_bottom;
++ tss->ist[IST_MCE - 1] = stack_top + IST_MCE * PAGE_SIZE;
++ tss->ist[IST_DF - 1] = stack_top + IST_DF * PAGE_SIZE;
++ tss->ist[IST_NMI - 1] = stack_top + IST_NMI * PAGE_SIZE;
++ tss->ist[IST_DB - 1] = stack_top + IST_DB * PAGE_SIZE;
++ tss->bitmap = IOBMP_INVALID_OFFSET;
++
++ /* All other stack pointers poisioned. */
++ for ( i = IST_MAX; i < ARRAY_SIZE(tss->ist); ++i )
++ tss->ist[i] = 0x8600111111111111ul;
++ tss->rsp1 = 0x8600111111111111ul;
++ tss->rsp2 = 0x8600111111111111ul;
+
+ BUILD_BUG_ON(sizeof(*tss) <= 0x67); /* Mandated by the architecture. */
+
diff --git a/5ed69804-x86-ucode-fix-start-end-update.patch b/5ed69804-x86-ucode-fix-start-end-update.patch
new file mode 100644
index 0000000..ff6e346
--- /dev/null
+++ b/5ed69804-x86-ucode-fix-start-end-update.patch
@@ -0,0 +1,207 @@
+# Commit 3659f54e9bd31f0f59268402fd67fb4b4118e184
+# Date 2020-06-02 19:18:44 +0100
+# Author Andrew Cooper <andrew.cooper3@citrix.com>
+# Committer Andrew Cooper <andrew.cooper3@citrix.com>
+x86/ucode: Fix errors with start/end_update()
+
+c/s 9267a439c "x86/ucode: Document the behaviour of the microcode_ops hooks"
+identified several poor behaviours of the start_update()/end_update_percpu()
+hooks.
+
+AMD have subsequently confirmed that OSVW don't, and are not expected to,
+change across a microcode load, rendering all of this complexity unecessary.
+
+Instead of fixing up the logic to not leave the OSVW state reset in a number
+of corner cases, delete the logic entirely.
+
+This in turn allows for the removal of the poorly-named 'start_update'
+parameter to microcode_update_one(), and for svm_host_osvw_{init,reset}() to
+become static.
+
+Signed-off-by: Andrew Cooper <andrew.cooper3@citrix.com>
+Reviewed-by: Roger Pau Monné <roger.pau@citrix.com>
+Reviewed-by: Jan Beulich <jbeulich@suse.com>
+
+--- a/xen/arch/x86/acpi/power.c
++++ b/xen/arch/x86/acpi/power.c
+@@ -286,7 +286,7 @@ static int enter_state(u32 state)
+ console_end_sync();
+ watchdog_enable();
+
+- microcode_update_one(true);
++ microcode_update_one();
+
+ if ( !recheck_cpu_features(0) )
+ panic("Missing previously available feature(s)\n");
+--- a/xen/arch/x86/microcode_amd.c
++++ b/xen/arch/x86/microcode_amd.c
+@@ -24,7 +24,6 @@
+ #include <asm/msr.h>
+ #include <asm/processor.h>
+ #include <asm/microcode.h>
+-#include <asm/hvm/svm/svm.h>
+
+ #define pr_debug(x...) ((void)0)
+
+@@ -590,27 +589,10 @@ static struct microcode_patch *cpu_reque
+ return patch;
+ }
+
+-#ifdef CONFIG_HVM
+-static int start_update(void)
+-{
+- /*
+- * svm_host_osvw_init() will be called on each cpu by calling '.end_update'
+- * in common code.
+- */
+- svm_host_osvw_reset();
+-
+- return 0;
+-}
+-#endif
+-
+ static const struct microcode_ops microcode_amd_ops = {
+ .cpu_request_microcode = cpu_request_microcode,
+ .collect_cpu_info = collect_cpu_info,
+ .apply_microcode = apply_microcode,
+-#ifdef CONFIG_HVM
+- .start_update = start_update,
+- .end_update_percpu = svm_host_osvw_init,
+-#endif
+ .free_patch = free_patch,
+ .compare_patch = compare_patch,
+ .match_cpu = match_cpu,
+--- a/xen/arch/x86/microcode.c
++++ b/xen/arch/x86/microcode.c
+@@ -578,9 +578,6 @@ static int do_microcode_update(void *pat
+ else
+ ret = secondary_thread_fn();
+
+- if ( microcode_ops->end_update_percpu )
+- microcode_ops->end_update_percpu();
+-
+ return ret;
+ }
+
+@@ -652,16 +649,6 @@ static long microcode_update_helper(void
+ }
+ spin_unlock(&microcode_mutex);
+
+- if ( microcode_ops->start_update )
+- {
+- ret = microcode_ops->start_update();
+- if ( ret )
+- {
+- microcode_free_patch(patch);
+- goto put;
+- }
+- }
+-
+ cpumask_clear(&cpu_callin_map);
+ atomic_set(&cpu_out, 0);
+ atomic_set(&cpu_updated, 0);
+@@ -760,28 +747,14 @@ static int __init microcode_init(void)
+ __initcall(microcode_init);
+
+ /* Load a cached update to current cpu */
+-int microcode_update_one(bool start_update)
++int microcode_update_one(void)
+ {
+- int err;
+-
+ if ( !microcode_ops )
+ return -EOPNOTSUPP;
+
+ microcode_ops->collect_cpu_info(&this_cpu(cpu_sig));
+
+- if ( start_update && microcode_ops->start_update )
+- {
+- err = microcode_ops->start_update();
+- if ( err )
+- return err;
+- }
+-
+- err = microcode_update_cpu(NULL);
+-
+- if ( microcode_ops->end_update_percpu )
+- microcode_ops->end_update_percpu();
+-
+- return err;
++ return microcode_update_cpu(NULL);
+ }
+
+ /* BSP calls this function to parse ucode blob and then apply an update. */
+@@ -825,7 +798,7 @@ int __init early_microcode_update_cpu(vo
+ spin_unlock(&microcode_mutex);
+ ASSERT(rc);
+
+- return microcode_update_one(true);
++ return microcode_update_one();
+ }
+
+ int __init early_microcode_init(void)
+--- a/xen/arch/x86/hvm/svm/svm.c
++++ b/xen/arch/x86/hvm/svm/svm.c
+@@ -1082,7 +1082,7 @@ static void svm_guest_osvw_init(struct d
+ spin_unlock(&osvw_lock);
+ }
+
+-void svm_host_osvw_reset()
++static void svm_host_osvw_reset(void)
+ {
+ spin_lock(&osvw_lock);
+
+@@ -1092,7 +1092,7 @@ void svm_host_osvw_reset()
+ spin_unlock(&osvw_lock);
+ }
+
+-void svm_host_osvw_init()
++static void svm_host_osvw_init(void)
+ {
+ spin_lock(&osvw_lock);
+
+--- a/xen/arch/x86/smpboot.c
++++ b/xen/arch/x86/smpboot.c
+@@ -358,7 +358,7 @@ void start_secondary(void *unused)
+
+ initialize_cpu_data(cpu);
+
+- microcode_update_one(false);
++ microcode_update_one();
+
+ /*
+ * If MSR_SPEC_CTRL is available, apply Xen's default setting and discard
+--- a/xen/include/asm-x86/hvm/svm/svm.h
++++ b/xen/include/asm-x86/hvm/svm/svm.h
+@@ -93,9 +93,6 @@ extern u32 svm_feature_flags;
+ #define DEFAULT_TSC_RATIO 0x0000000100000000ULL
+ #define TSC_RATIO_RSVD_BITS 0xffffff0000000000ULL
+
+-extern void svm_host_osvw_reset(void);
+-extern void svm_host_osvw_init(void);
+-
+ /* EXITINFO1 fields on NPT faults */
+ #define _NPT_PFEC_with_gla 32
+ #define NPT_PFEC_with_gla (1UL<<_NPT_PFEC_with_gla)
+--- a/xen/include/asm-x86/microcode.h
++++ b/xen/include/asm-x86/microcode.h
+@@ -24,8 +24,6 @@ struct microcode_ops {
+ size_t size);
+ int (*collect_cpu_info)(struct cpu_signature *csig);
+ int (*apply_microcode)(const struct microcode_patch *patch);
+- int (*start_update)(void);
+- void (*end_update_percpu)(void);
+ void (*free_patch)(void *mc);
+ bool (*match_cpu)(const struct microcode_patch *patch);
+ enum microcode_match_result (*compare_patch)(
+--- a/xen/include/asm-x86/processor.h
++++ b/xen/include/asm-x86/processor.h
+@@ -586,7 +586,7 @@ void microcode_set_module(unsigned int);
+ int microcode_update(XEN_GUEST_HANDLE_PARAM(const_void), unsigned long len);
+ int early_microcode_update_cpu(void);
+ int early_microcode_init(void);
+-int microcode_update_one(bool start_update);
++int microcode_update_one(void);
+ int microcode_init_intel(void);
+ int microcode_init_amd(void);
+
diff --git a/5eda60cb-SVM-split-recalc-NPT-fault-handling.patch b/5eda60cb-SVM-split-recalc-NPT-fault-handling.patch
new file mode 100644
index 0000000..6ae1e04
--- /dev/null
+++ b/5eda60cb-SVM-split-recalc-NPT-fault-handling.patch
@@ -0,0 +1,98 @@
+# Commit 51ca66c37371b10b378513af126646de22eddb17
+# Date 2020-06-05 17:12:11 +0200
+# Author Igor Druzhinin <igor.druzhinin@citrix.com>
+# Committer Jan Beulich <jbeulich@suse.com>
+x86/svm: do not try to handle recalc NPT faults immediately
+
+A recalculation NPT fault doesn't always require additional handling
+in hvm_hap_nested_page_fault(), moreover in general case if there is no
+explicit handling done there - the fault is wrongly considered fatal.
+
+This covers a specific case of migration with vGPU assigned which
+uses direct MMIO mappings made by XEN_DOMCTL_memory_mapping hypercall:
+at a moment log-dirty is enabled globally, recalculation is requested
+for the whole guest memory including those mapped MMIO regions
+which causes a page fault being raised at the first access to them;
+but due to MMIO P2M type not having any explicit handling in
+hvm_hap_nested_page_fault() a domain is erroneously crashed with unhandled
+SVM violation.
+
+Instead of trying to be opportunistic - use safer approach and handle
+P2M recalculation in a separate NPT fault by attempting to retry after
+making the necessary adjustments. This is aligned with Intel behavior
+where there are separate VMEXITs for recalculation and EPT violations
+(faults) and only faults are handled in hvm_hap_nested_page_fault().
+Do it by also unifying do_recalc return code with Intel implementation
+where returning 1 means P2M was actually changed.
+
+Since there was no case previously where p2m_pt_handle_deferred_changes()
+could return a positive value - it's safe to replace ">= 0" with just "== 0"
+in VMEXIT_NPF handler. finish_type_change() is also not affected by the
+change as being able to deal with >0 return value of p2m->recalc from
+EPT implementation.
+
+Signed-off-by: Igor Druzhinin <igor.druzhinin@citrix.com>
+Reviewed-by: Roger Pau Monné <roger.pau@citrix.com>
+Reviewed-by: Jan Beulich <jbeulich@suse.com>
+
+--- a/xen/arch/x86/hvm/svm/svm.c
++++ b/xen/arch/x86/hvm/svm/svm.c
+@@ -2947,9 +2947,10 @@ void svm_vmexit_handler(struct cpu_user_
+ v->arch.hvm.svm.cached_insn_len = vmcb->guest_ins_len & 0xf;
+ rc = vmcb->exitinfo1 & PFEC_page_present
+ ? p2m_pt_handle_deferred_changes(vmcb->exitinfo2) : 0;
+- if ( rc >= 0 )
++ if ( rc == 0 )
++ /* If no recal adjustments were being made - handle this fault */
+ svm_do_nested_pgfault(v, regs, vmcb->exitinfo1, vmcb->exitinfo2);
+- else
++ else if ( rc < 0 )
+ {
+ printk(XENLOG_G_ERR
+ "%pv: Error %d handling NPF (gpa=%08lx ec=%04lx)\n",
+--- a/xen/arch/x86/mm/p2m-pt.c
++++ b/xen/arch/x86/mm/p2m-pt.c
+@@ -341,6 +341,7 @@ static int do_recalc(struct p2m_domain *
+ unsigned int level = 4;
+ l1_pgentry_t *pent;
+ int err = 0;
++ bool recalc_done = false;
+
+ table = map_domain_page(pagetable_get_mfn(p2m_get_pagetable(p2m)));
+ while ( --level )
+@@ -402,6 +403,8 @@ static int do_recalc(struct p2m_domain *
+ clear_recalc(l1, e);
+ err = p2m->write_p2m_entry(p2m, gfn, pent, e, level + 1);
+ ASSERT(!err);
++
++ recalc_done = true;
+ }
+ }
+ unmap_domain_page((void *)((unsigned long)pent & PAGE_MASK));
+@@ -448,12 +451,14 @@ static int do_recalc(struct p2m_domain *
+ clear_recalc(l1, e);
+ err = p2m->write_p2m_entry(p2m, gfn, pent, e, level + 1);
+ ASSERT(!err);
++
++ recalc_done = true;
+ }
+
+ out:
+ unmap_domain_page(table);
+
+- return err;
++ return err ?: recalc_done;
+ }
+
+ int p2m_pt_handle_deferred_changes(uint64_t gpa)
+--- a/xen/arch/x86/mm/p2m.c
++++ b/xen/arch/x86/mm/p2m.c
+@@ -1194,7 +1194,7 @@ static int finish_type_change(struct p2m
+ rc = p2m->recalc(p2m, gfn);
+ /*
+ * ept->recalc could return 0/1/-ENOMEM. pt->recalc could return
+- * 0/-ENOMEM/-ENOENT, -ENOENT isn't an error as we are looping
++ * 0/1/-ENOMEM/-ENOENT, -ENOENT isn't an error as we are looping
+ * gfn here. If rc is 1 we need to have it 0 for success.
+ */
+ if ( rc == -ENOENT || rc > 0 )
diff --git a/5edf6ad8-ioreq-pending-emulation-server-destruction-race.patch b/5edf6ad8-ioreq-pending-emulation-server-destruction-race.patch
new file mode 100644
index 0000000..7d21a6f
--- /dev/null
+++ b/5edf6ad8-ioreq-pending-emulation-server-destruction-race.patch
@@ -0,0 +1,57 @@
+# Commit f7039ee41b3d3448775a1623f230037fd0455104
+# Date 2020-06-09 12:56:24 +0200
+# Author Paul Durrant <pdurrant@amazon.com>
+# Committer Jan Beulich <jbeulich@suse.com>
+ioreq: handle pending emulation racing with ioreq server destruction
+
+When an emulation request is initiated in hvm_send_ioreq() the guest vcpu is
+blocked on an event channel until that request is completed. If, however,
+the emulator is killed whilst that emulation is pending then the ioreq
+server may be destroyed. Thus when the vcpu is awoken the code in
+handle_hvm_io_completion() will find no pending request to wait for, but will
+leave the internal vcpu io_req.state set to IOREQ_READY and the vcpu shutdown
+deferall flag in place (because hvm_io_assist() will never be called). The
+emulation request is then completed anyway. This means that any subsequent call
+to hvmemul_do_io() will find an unexpected value in io_req.state and will
+return X86EMUL_UNHANDLEABLE, which in some cases will result in continuous
+re-tries.
+
+This patch fixes the issue by moving the setting of io_req.state and clearing
+of shutdown deferral (as will as MSI-X write completion) out of hvm_io_assist()
+and directly into handle_hvm_io_completion().
+
+Reported-by: Marek Marczykowski-Górecki <marmarek@invisiblethingslab.com>
+Signed-off-by: Paul Durrant <pdurrant@amazon.com>
+Reviewed-by: Jan Beulich <jbeulich@suse.com>
+
+--- a/xen/arch/x86/hvm/ioreq.c
++++ b/xen/arch/x86/hvm/ioreq.c
+@@ -107,15 +107,7 @@ static void hvm_io_assist(struct hvm_ior
+ ioreq_t *ioreq = &v->arch.hvm.hvm_io.io_req;
+
+ if ( hvm_ioreq_needs_completion(ioreq) )
+- {
+- ioreq->state = STATE_IORESP_READY;
+ ioreq->data = data;
+- }
+- else
+- ioreq->state = STATE_IOREQ_NONE;
+-
+- msix_write_completion(v);
+- vcpu_end_shutdown_deferral(v);
+
+ sv->pending = false;
+ }
+@@ -207,6 +199,12 @@ bool handle_hvm_io_completion(struct vcp
+ }
+ }
+
++ vio->io_req.state = hvm_ioreq_needs_completion(&vio->io_req) ?
++ STATE_IORESP_READY : STATE_IOREQ_NONE;
++
++ msix_write_completion(v);
++ vcpu_end_shutdown_deferral(v);
++
+ io_completion = vio->io_completion;
+ vio->io_completion = HVMIO_no_completion;
+
diff --git a/5edfbbea-x86-spec-ctrl-CPUID-MSR-defs-for-SRBDS.patch b/5edfbbea-x86-spec-ctrl-CPUID-MSR-defs-for-SRBDS.patch
new file mode 100644
index 0000000..02e6737
--- /dev/null
+++ b/5edfbbea-x86-spec-ctrl-CPUID-MSR-defs-for-SRBDS.patch
@@ -0,0 +1,106 @@
+# Commit caab85ab58c0cdf74ab070a5de5c4df89f509ff3
+# Date 2020-06-09 17:42:18 +0100
+# Author Andrew Cooper <andrew.cooper3@citrix.com>
+# Committer Andrew Cooper <andrew.cooper3@citrix.com>
+x86/spec-ctrl: CPUID/MSR definitions for Special Register Buffer Data Sampling
+
+This is part of XSA-320 / CVE-2020-0543
+
+Signed-off-by: Andrew Cooper <andrew.cooper3@citrix.com>
+Reviewed-by: Jan Beulich <jbeulich@suse.com>
+Acked-by: Wei Liu <wl@xen.org>
+
+--- a/docs/misc/xen-command-line.pandoc
++++ b/docs/misc/xen-command-line.pandoc
+@@ -483,10 +483,10 @@ accounting for hardware capabilities as
+
+ Currently accepted:
+
+-The Speculation Control hardware features `md-clear`, `ibrsb`, `stibp`, `ibpb`,
+-`l1d-flush` and `ssbd` are used by default if available and applicable. They can
+-be ignored, e.g. `no-ibrsb`, at which point Xen won't use them itself, and
+-won't offer them to guests.
++The Speculation Control hardware features `srbds-ctrl`, `md-clear`, `ibrsb`,
++`stibp`, `ibpb`, `l1d-flush` and `ssbd` are used by default if available and
++applicable. They can be ignored, e.g. `no-ibrsb`, at which point Xen won't
++use them itself, and won't offer them to guests.
+
+ `rdrand` can be used to override the default disabling of the feature on certain
+ AMD systems. Its negative form can of course also be used to suppress use and
+--- a/tools/libxl/libxl_cpuid.c
++++ b/tools/libxl/libxl_cpuid.c
+@@ -213,6 +213,7 @@ int libxl_cpuid_parse_config(libxl_cpuid
+
+ {"avx512-4vnniw",0x00000007, 0, CPUID_REG_EDX, 2, 1},
+ {"avx512-4fmaps",0x00000007, 0, CPUID_REG_EDX, 3, 1},
++ {"srbds-ctrl", 0x00000007, 0, CPUID_REG_EDX, 9, 1},
+ {"md-clear", 0x00000007, 0, CPUID_REG_EDX, 10, 1},
+ {"cet-ibt", 0x00000007, 0, CPUID_REG_EDX, 20, 1},
+ {"ibrsb", 0x00000007, 0, CPUID_REG_EDX, 26, 1},
+--- a/tools/misc/xen-cpuid.c
++++ b/tools/misc/xen-cpuid.c
+@@ -157,6 +157,7 @@ static const char *const str_7d0[32] =
+ [ 2] = "avx512_4vnniw", [ 3] = "avx512_4fmaps",
+ [ 4] = "fsrm",
+
++ /* 8 */ [ 9] = "srbds-ctrl",
+ [10] = "md-clear",
+ /* 12 */ [13] = "tsx-force-abort",
+
+--- a/xen/arch/x86/msr.c
++++ b/xen/arch/x86/msr.c
+@@ -134,6 +134,7 @@ int guest_rdmsr(struct vcpu *v, uint32_t
+ /* Write-only */
+ case MSR_TSX_FORCE_ABORT:
+ case MSR_TSX_CTRL:
++ case MSR_MCU_OPT_CTRL:
+ case MSR_U_CET:
+ case MSR_S_CET:
+ case MSR_PL0_SSP ... MSR_INTERRUPT_SSP_TABLE:
+@@ -288,6 +289,7 @@ int guest_wrmsr(struct vcpu *v, uint32_t
+ /* Read-only */
+ case MSR_TSX_FORCE_ABORT:
+ case MSR_TSX_CTRL:
++ case MSR_MCU_OPT_CTRL:
+ case MSR_U_CET:
+ case MSR_S_CET:
+ case MSR_PL0_SSP ... MSR_INTERRUPT_SSP_TABLE:
+--- a/xen/arch/x86/spec_ctrl.c
++++ b/xen/arch/x86/spec_ctrl.c
+@@ -312,12 +312,13 @@ static void __init print_details(enum in
+ printk("Speculative mitigation facilities:\n");
+
+ /* Hardware features which pertain to speculative mitigations. */
+- printk(" Hardware features:%s%s%s%s%s%s%s%s%s%s%s%s%s%s\n",
++ printk(" Hardware features:%s%s%s%s%s%s%s%s%s%s%s%s%s%s%s\n",
+ (_7d0 & cpufeat_mask(X86_FEATURE_IBRSB)) ? " IBRS/IBPB" : "",
+ (_7d0 & cpufeat_mask(X86_FEATURE_STIBP)) ? " STIBP" : "",
+ (_7d0 & cpufeat_mask(X86_FEATURE_L1D_FLUSH)) ? " L1D_FLUSH" : "",
+ (_7d0 & cpufeat_mask(X86_FEATURE_SSBD)) ? " SSBD" : "",
+ (_7d0 & cpufeat_mask(X86_FEATURE_MD_CLEAR)) ? " MD_CLEAR" : "",
++ (_7d0 & cpufeat_mask(X86_FEATURE_SRBDS_CTRL)) ? " SRBDS_CTRL" : "",
+ (e8b & cpufeat_mask(X86_FEATURE_IBPB)) ? " IBPB" : "",
+ (caps & ARCH_CAPS_IBRS_ALL) ? " IBRS_ALL" : "",
+ (caps & ARCH_CAPS_RDCL_NO) ? " RDCL_NO" : "",
+--- a/xen/include/asm-x86/msr-index.h
++++ b/xen/include/asm-x86/msr-index.h
+@@ -179,6 +179,9 @@
+ #define MSR_IA32_VMX_TRUE_ENTRY_CTLS 0x490
+ #define MSR_IA32_VMX_VMFUNC 0x491
+
++#define MSR_MCU_OPT_CTRL 0x00000123
++#define MCU_OPT_CTRL_RNGDS_MITG_DIS (_AC(1, ULL) << 0)
++
+ #define MSR_U_CET 0x000006a0
+ #define MSR_S_CET 0x000006a2
+ #define MSR_PL0_SSP 0x000006a4
+--- a/xen/include/public/arch-x86/cpufeatureset.h
++++ b/xen/include/public/arch-x86/cpufeatureset.h
+@@ -252,6 +252,7 @@ XEN_CPUFEATURE(IBPB, 8*32+12) /
+ /* Intel-defined CPU features, CPUID level 0x00000007:0.edx, word 9 */
+ XEN_CPUFEATURE(AVX512_4VNNIW, 9*32+ 2) /*A AVX512 Neural Network Instructions */
+ XEN_CPUFEATURE(AVX512_4FMAPS, 9*32+ 3) /*A AVX512 Multiply Accumulation Single Precision */
++XEN_CPUFEATURE(SRBDS_CTRL, 9*32+ 9) /* MSR_MCU_OPT_CTRL and RNGDS_MITG_DIS. */
+ XEN_CPUFEATURE(MD_CLEAR, 9*32+10) /*A VERW clears microarchitectural buffers */
+ XEN_CPUFEATURE(TSX_FORCE_ABORT, 9*32+13) /* MSR_TSX_FORCE_ABORT.RTM_ABORT */
+ XEN_CPUFEATURE(CET_IBT, 9*32+20) /* CET - Indirect Branch Tracking */
diff --git a/5edfbbea-x86-spec-ctrl-mitigate-SRBDS.patch b/5edfbbea-x86-spec-ctrl-mitigate-SRBDS.patch
new file mode 100644
index 0000000..e80d8c4
--- /dev/null
+++ b/5edfbbea-x86-spec-ctrl-mitigate-SRBDS.patch
@@ -0,0 +1,172 @@
+# Commit 6a49b9a7920c82015381740905582b666160d955
+# Date 2020-06-09 17:42:18 +0100
+# Author Andrew Cooper <andrew.cooper3@citrix.com>
+# Committer Andrew Cooper <andrew.cooper3@citrix.com>
+x86/spec-ctrl: Mitigate the Special Register Buffer Data Sampling sidechannel
+
+See patch documentation and comments.
+
+This is part of XSA-320 / CVE-2020-0543
+
+Signed-off-by: Andrew Cooper <andrew.cooper3@citrix.com>
+Reviewed-by: Jan Beulich <jbeulich@suse.com>
+
+--- a/docs/misc/xen-command-line.pandoc
++++ b/docs/misc/xen-command-line.pandoc
+@@ -1995,7 +1995,7 @@ By default SSBD will be mitigated at run
+ ### spec-ctrl (x86)
+ > `= List of [ <bool>, xen=<bool>, {pv,hvm,msr-sc,rsb,md-clear}=<bool>,
+ > bti-thunk=retpoline|lfence|jmp, {ibrs,ibpb,ssbd,eager-fpu,
+-> l1d-flush,branch-harden}=<bool> ]`
++> l1d-flush,branch-harden,srb-lock}=<bool> ]`
+
+ Controls for speculative execution sidechannel mitigations. By default, Xen
+ will pick the most appropriate mitigations based on compiled in support,
+@@ -2072,6 +2072,12 @@ If Xen is compiled with `CONFIG_SPECULAT
+ speculation barriers to protect selected conditional branches. By default,
+ Xen will enable this mitigation.
+
++On hardware supporting SRBDS_CTRL, the `srb-lock=` option can be used to force
++or prevent Xen from protect the Special Register Buffer from leaking stale
++data. By default, Xen will enable this mitigation, except on parts where MDS
++is fixed and TAA is fixed/mitigated (in which case, there is believed to be no
++way for an attacker to obtain the stale data).
++
+ ### sync_console
+ > `= <boolean>`
+
+--- a/xen/arch/x86/acpi/power.c
++++ b/xen/arch/x86/acpi/power.c
+@@ -295,6 +295,9 @@ static int enter_state(u32 state)
+ ci->spec_ctrl_flags |= (default_spec_ctrl_flags & SCF_ist_wrmsr);
+ spec_ctrl_exit_idle(ci);
+
++ if ( boot_cpu_has(X86_FEATURE_SRBDS_CTRL) )
++ wrmsrl(MSR_MCU_OPT_CTRL, default_xen_mcu_opt_ctrl);
++
+ done:
+ spin_debug_enable();
+ local_irq_restore(flags);
+--- a/xen/arch/x86/smpboot.c
++++ b/xen/arch/x86/smpboot.c
+@@ -361,12 +361,14 @@ void start_secondary(void *unused)
+ microcode_update_one();
+
+ /*
+- * If MSR_SPEC_CTRL is available, apply Xen's default setting and discard
+- * any firmware settings. Note: MSR_SPEC_CTRL may only become available
+- * after loading microcode.
++ * If any speculative control MSRs are available, apply Xen's default
++ * settings. Note: These MSRs may only become available after loading
++ * microcode.
+ */
+ if ( boot_cpu_has(X86_FEATURE_IBRSB) )
+ wrmsrl(MSR_SPEC_CTRL, default_xen_spec_ctrl);
++ if ( boot_cpu_has(X86_FEATURE_SRBDS_CTRL) )
++ wrmsrl(MSR_MCU_OPT_CTRL, default_xen_mcu_opt_ctrl);
+
+ tsx_init(); /* Needs microcode. May change HLE/RTM feature bits. */
+
+--- a/xen/arch/x86/spec_ctrl.c
++++ b/xen/arch/x86/spec_ctrl.c
+@@ -65,6 +65,9 @@ static unsigned int __initdata l1d_maxph
+ static bool __initdata cpu_has_bug_msbds_only; /* => minimal HT impact. */
+ static bool __initdata cpu_has_bug_mds; /* Any other M{LP,SB,FB}DS combination. */
+
++static int8_t __initdata opt_srb_lock = -1;
++uint64_t __read_mostly default_xen_mcu_opt_ctrl;
++
+ static int __init parse_spec_ctrl(const char *s)
+ {
+ const char *ss;
+@@ -112,6 +115,7 @@ static int __init parse_spec_ctrl(const
+ opt_ssbd = false;
+ opt_l1d_flush = 0;
+ opt_branch_harden = false;
++ opt_srb_lock = 0;
+ }
+ else if ( val > 0 )
+ rc = -EINVAL;
+@@ -178,6 +182,8 @@ static int __init parse_spec_ctrl(const
+ opt_l1d_flush = val;
+ else if ( (val = parse_boolean("branch-harden", s, ss)) >= 0 )
+ opt_branch_harden = val;
++ else if ( (val = parse_boolean("srb-lock", s, ss)) >= 0 )
++ opt_srb_lock = val;
+ else
+ rc = -EINVAL;
+
+@@ -341,7 +347,7 @@ static void __init print_details(enum in
+ "\n");
+
+ /* Settings for Xen's protection, irrespective of guests. */
+- printk(" Xen settings: BTI-Thunk %s, SPEC_CTRL: %s%s%s, Other:%s%s%s%s\n",
++ printk(" Xen settings: BTI-Thunk %s, SPEC_CTRL: %s%s%s, Other:%s%s%s%s%s\n",
+ thunk == THUNK_NONE ? "N/A" :
+ thunk == THUNK_RETPOLINE ? "RETPOLINE" :
+ thunk == THUNK_LFENCE ? "LFENCE" :
+@@ -352,6 +358,8 @@ static void __init print_details(enum in
+ (default_xen_spec_ctrl & SPEC_CTRL_SSBD) ? " SSBD+" : " SSBD-",
+ !(caps & ARCH_CAPS_TSX_CTRL) ? "" :
+ (opt_tsx & 1) ? " TSX+" : " TSX-",
++ !boot_cpu_has(X86_FEATURE_SRBDS_CTRL) ? "" :
++ opt_srb_lock ? " SRB_LOCK+" : " SRB_LOCK-",
+ opt_ibpb ? " IBPB" : "",
+ opt_l1d_flush ? " L1D_FLUSH" : "",
+ opt_md_clear_pv || opt_md_clear_hvm ? " VERW" : "",
+@@ -1149,6 +1157,34 @@ void __init init_speculation_mitigations
+ tsx_init();
+ }
+
++ /* Calculate suitable defaults for MSR_MCU_OPT_CTRL */
++ if ( boot_cpu_has(X86_FEATURE_SRBDS_CTRL) )
++ {
++ uint64_t val;
++
++ rdmsrl(MSR_MCU_OPT_CTRL, val);
++
++ /*
++ * On some SRBDS-affected hardware, it may be safe to relax srb-lock
++ * by default.
++ *
++ * On parts which enumerate MDS_NO and not TAA_NO, TSX is the only way
++ * to access the Fill Buffer. If TSX isn't available (inc. SKU
++ * reasons on some models), or TSX is explicitly disabled, then there
++ * is no need for the extra overhead to protect RDRAND/RDSEED.
++ */
++ if ( opt_srb_lock == -1 &&
++ (caps & (ARCH_CAPS_MDS_NO|ARCH_CAPS_TAA_NO)) == ARCH_CAPS_MDS_NO &&
++ (!cpu_has_hle || ((caps & ARCH_CAPS_TSX_CTRL) && opt_tsx == 0)) )
++ opt_srb_lock = 0;
++
++ val &= ~MCU_OPT_CTRL_RNGDS_MITG_DIS;
++ if ( !opt_srb_lock )
++ val |= MCU_OPT_CTRL_RNGDS_MITG_DIS;
++
++ default_xen_mcu_opt_ctrl = val;
++ }
++
+ print_details(thunk, caps);
+
+ /*
+@@ -1180,6 +1216,9 @@ void __init init_speculation_mitigations
+
+ wrmsrl(MSR_SPEC_CTRL, bsp_delay_spec_ctrl ? 0 : default_xen_spec_ctrl);
+ }
++
++ if ( boot_cpu_has(X86_FEATURE_SRBDS_CTRL) )
++ wrmsrl(MSR_MCU_OPT_CTRL, default_xen_mcu_opt_ctrl);
+ }
+
+ static void __init __maybe_unused build_assertions(void)
+--- a/xen/include/asm-x86/spec_ctrl.h
++++ b/xen/include/asm-x86/spec_ctrl.h
+@@ -54,6 +54,8 @@ extern int8_t opt_pv_l1tf_hwdom, opt_pv_
+ */
+ extern paddr_t l1tf_addr_mask, l1tf_safe_maddr;
+
++extern uint64_t default_xen_mcu_opt_ctrl;
++
+ static inline void init_shadow_spec_ctrl_state(void)
+ {
+ struct cpu_info *info = get_cpu_info();
diff --git a/5ee24d0e-x86-spec-ctrl-document-SRBDS-workaround.patch b/5ee24d0e-x86-spec-ctrl-document-SRBDS-workaround.patch
new file mode 100644
index 0000000..2d5bc64
--- /dev/null
+++ b/5ee24d0e-x86-spec-ctrl-document-SRBDS-workaround.patch
@@ -0,0 +1,43 @@
+# Commit 7028534d8482d25860c4d1aa8e45f0b911abfc5a
+# Date 2020-06-11 16:26:06 +0100
+# Author Andrew Cooper <andrew.cooper3@citrix.com>
+# Committer Andrew Cooper <andrew.cooper3@citrix.com>
+x86/spec-ctrl: Update docs with SRBDS workaround
+
+RDRAND/RDSEED can be hidden using cpuid= to mitigate SRBDS if microcode
+isn't available.
+
+This is part of XSA-320 / CVE-2020-0543.
+
+Signed-off-by: Andrew Cooper <andrew.cooper3@citrix.com>
+Acked-by: Julien Grall <jgrall@amazon.com>
+
+--- a/docs/misc/xen-command-line.pandoc
++++ b/docs/misc/xen-command-line.pandoc
+@@ -481,16 +481,21 @@ choice of `dom0-kernel` is deprecated an
+ This option allows for fine tuning of the facilities Xen will use, after
+ accounting for hardware capabilities as enumerated via CPUID.
+
++Unless otherwise noted, options only have any effect in their negative form,
++to hide the named feature(s). Ignoring a feature using this mechanism will
++cause Xen not to use the feature, nor offer them as usable to guests.
++
+ Currently accepted:
+
+ The Speculation Control hardware features `srbds-ctrl`, `md-clear`, `ibrsb`,
+ `stibp`, `ibpb`, `l1d-flush` and `ssbd` are used by default if available and
+-applicable. They can be ignored, e.g. `no-ibrsb`, at which point Xen won't
+-use them itself, and won't offer them to guests.
++applicable. They can all be ignored.
+
+-`rdrand` can be used to override the default disabling of the feature on certain
+-AMD systems. Its negative form can of course also be used to suppress use and
+-exposure of the feature.
++`rdrand` and `rdseed` can be ignored, as a mitigation to XSA-320 /
++CVE-2020-0543. The RDRAND feature is disabled by default on certain AMD
++systems, due to possible malfunctions after ACPI S3 suspend/resume. `rdrand`
++may be used in its positive form to override Xen's default behaviour on these
++systems, and make the feature fully usable.
+
+ ### cpuid_mask_cpu
+ > `= fam_0f_rev_[cdefg] | fam_10_rev_[bc] | fam_11_rev_b`
diff --git a/5ef44e0d-x86-PMTMR-use-FADT-flags.patch b/5ef44e0d-x86-PMTMR-use-FADT-flags.patch
new file mode 100644
index 0000000..916fd44
--- /dev/null
+++ b/5ef44e0d-x86-PMTMR-use-FADT-flags.patch
@@ -0,0 +1,102 @@
+# Commit f325d2477eef8229c47d97031d314629521c70ab
+# Date 2020-06-25 09:11:09 +0200
+# Author Grzegorz Uriasz <gorbak25@gmail.com>
+# Committer Jan Beulich <jbeulich@suse.com>
+x86/acpi: use FADT flags to determine the PMTMR width
+
+On some computers the bit width of the PM Timer as reported
+by ACPI is 32 bits when in fact the FADT flags report correctly
+that the timer is 24 bits wide. On affected machines such as the
+ASUS FX504GM and never gaming laptops this results in the inability
+to resume the machine from suspend. Without this patch suspend is
+broken on affected machines and even if a machine manages to resume
+correctly then the kernel time and xen timers are trashed.
+
+Signed-off-by: Grzegorz Uriasz <gorbak25@gmail.com>
+Reviewed-by: Jan Beulich <jbeulich@suse.com>
+
+--- a/xen/arch/x86/acpi/boot.c
++++ b/xen/arch/x86/acpi/boot.c
+@@ -473,10 +473,17 @@ static int __init acpi_parse_fadt(struct
+
+ #ifdef CONFIG_X86_PM_TIMER
+ /* detect the location of the ACPI PM Timer */
+- if (fadt->header.revision >= FADT2_REVISION_ID) {
++ if (fadt->header.revision >= FADT2_REVISION_ID &&
++ fadt->xpm_timer_block.space_id == ACPI_ADR_SPACE_SYSTEM_IO) {
+ /* FADT rev. 2 */
+- if (fadt->xpm_timer_block.space_id ==
+- ACPI_ADR_SPACE_SYSTEM_IO) {
++ if (fadt->xpm_timer_block.access_width != 0 &&
++ ACPI_ACCESS_BIT_WIDTH(fadt->xpm_timer_block.access_width) != 32)
++ printk(KERN_WARNING PREFIX "PM-Timer has invalid access width(%u)\n",
++ fadt->xpm_timer_block.access_width);
++ else if (fadt->xpm_timer_block.bit_offset != 0)
++ printk(KERN_WARNING PREFIX "PM-Timer has invalid bit offset(%u)\n",
++ fadt->xpm_timer_block.bit_offset);
++ else {
+ pmtmr_ioport = fadt->xpm_timer_block.address;
+ pmtmr_width = fadt->xpm_timer_block.bit_width;
+ }
+@@ -488,8 +495,12 @@ static int __init acpi_parse_fadt(struct
+ */
+ if (!pmtmr_ioport) {
+ pmtmr_ioport = fadt->pm_timer_block;
+- pmtmr_width = fadt->pm_timer_length == 4 ? 24 : 0;
++ pmtmr_width = fadt->pm_timer_length == 4 ? 32 : 0;
+ }
++ if (pmtmr_width < 32 && (fadt->flags & ACPI_FADT_32BIT_TIMER))
++ printk(KERN_WARNING PREFIX "PM-Timer is too short\n");
++ if (pmtmr_width > 24 && !(fadt->flags & ACPI_FADT_32BIT_TIMER))
++ pmtmr_width = 24;
+ if (pmtmr_ioport)
+ printk(KERN_INFO PREFIX "PM-Timer IO Port: %#x (%u bits)\n",
+ pmtmr_ioport, pmtmr_width);
+--- a/xen/arch/x86/time.c
++++ b/xen/arch/x86/time.c
+@@ -452,16 +452,13 @@ static u64 read_pmtimer_count(void)
+ static s64 __init init_pmtimer(struct platform_timesource *pts)
+ {
+ u64 start;
+- u32 count, target, mask = 0xffffff;
++ u32 count, target, mask;
+
+- if ( !pmtmr_ioport || !pmtmr_width )
++ if ( !pmtmr_ioport || (pmtmr_width != 24 && pmtmr_width != 32) )
+ return 0;
+
+- if ( pmtmr_width == 32 )
+- {
+- pts->counter_bits = 32;
+- mask = 0xffffffff;
+- }
++ pts->counter_bits = pmtmr_width;
++ mask = 0xffffffff >> (32 - pmtmr_width);
+
+ count = inl(pmtmr_ioport) & mask;
+ start = rdtsc_ordered();
+@@ -481,7 +478,6 @@ static struct platform_timesource __init
+ .name = "ACPI PM Timer",
+ .frequency = ACPI_PM_FREQUENCY,
+ .read_counter = read_pmtimer_count,
+- .counter_bits = 24,
+ .init = init_pmtimer
+ };
+
+--- a/xen/include/acpi/acmacros.h
++++ b/xen/include/acpi/acmacros.h
+@@ -122,6 +122,14 @@
+ #endif
+
+ /*
++ * Algorithm to obtain access bit or byte width.
++ * Can be used with access_width of struct acpi_generic_address and access_size of
++ * struct acpi_resource_generic_register.
++ */
++#define ACPI_ACCESS_BIT_WIDTH(size) (1 << ((size) + 2))
++#define ACPI_ACCESS_BYTE_WIDTH(size) (1 << ((size) - 1))
++
++/*
+ * Macros for moving data around to/from buffers that are possibly unaligned.
+ * If the hardware supports the transfer of unaligned data, just do the store.
+ * Otherwise, we have to move one byte at a time.
diff --git a/5ef6156a-x86-disallow-access-to-PT-MSRs.patch b/5ef6156a-x86-disallow-access-to-PT-MSRs.patch
new file mode 100644
index 0000000..67e08c4
--- /dev/null
+++ b/5ef6156a-x86-disallow-access-to-PT-MSRs.patch
@@ -0,0 +1,49 @@
+# Commit bcdfbb70fca579baa04f212c0936b77919bdae11
+# Date 2020-06-26 16:34:02 +0100
+# Author Andrew Cooper <andrew.cooper3@citrix.com>
+# Committer Andrew Cooper <andrew.cooper3@citrix.com>
+x86/msr: Disallow access to Processor Trace MSRs
+
+We do not expose the feature to guests, so should disallow access to the
+respective MSRs. For simplicity, drop the entire block of MSRs, not just the
+subset which have been specified thus far.
+
+Signed-off-by: Andrew Cooper <andrew.cooper3@citrix.com>
+Reviewed-by: Wei Liu <wl@xen.org>
+Reviewed-by: Jan Beulich <jbeulich@suse.com>
+
+--- a/xen/arch/x86/msr.c
++++ b/xen/arch/x86/msr.c
+@@ -135,6 +135,7 @@ int guest_rdmsr(struct vcpu *v, uint32_t
+ case MSR_TSX_FORCE_ABORT:
+ case MSR_TSX_CTRL:
+ case MSR_MCU_OPT_CTRL:
++ case MSR_RTIT_OUTPUT_BASE ... MSR_RTIT_ADDR_B(7):
+ case MSR_U_CET:
+ case MSR_S_CET:
+ case MSR_PL0_SSP ... MSR_INTERRUPT_SSP_TABLE:
+@@ -290,6 +291,7 @@ int guest_wrmsr(struct vcpu *v, uint32_t
+ case MSR_TSX_FORCE_ABORT:
+ case MSR_TSX_CTRL:
+ case MSR_MCU_OPT_CTRL:
++ case MSR_RTIT_OUTPUT_BASE ... MSR_RTIT_ADDR_B(7):
+ case MSR_U_CET:
+ case MSR_S_CET:
+ case MSR_PL0_SSP ... MSR_INTERRUPT_SSP_TABLE:
+--- a/xen/include/asm-x86/msr-index.h
++++ b/xen/include/asm-x86/msr-index.h
+@@ -182,6 +182,14 @@
+ #define MSR_MCU_OPT_CTRL 0x00000123
+ #define MCU_OPT_CTRL_RNGDS_MITG_DIS (_AC(1, ULL) << 0)
+
++#define MSR_RTIT_OUTPUT_BASE 0x00000560
++#define MSR_RTIT_OUTPUT_MASK 0x00000561
++#define MSR_RTIT_CTL 0x00000570
++#define MSR_RTIT_STATUS 0x00000571
++#define MSR_RTIT_CR3_MATCH 0x00000572
++#define MSR_RTIT_ADDR_A(n) (0x00000580 + (n) * 2)
++#define MSR_RTIT_ADDR_B(n) (0x00000581 + (n) * 2)
++
+ #define MSR_U_CET 0x000006a0
+ #define MSR_S_CET 0x000006a2
+ #define MSR_PL0_SSP 0x000006a4
diff --git a/5efcb354-x86-protect-CALL-JMP-straight-line-speculation.patch b/5efcb354-x86-protect-CALL-JMP-straight-line-speculation.patch
new file mode 100644
index 0000000..6951789
--- /dev/null
+++ b/5efcb354-x86-protect-CALL-JMP-straight-line-speculation.patch
@@ -0,0 +1,35 @@
+# Commit 3b7dab93f2401b08c673244c9ae0f92e08bd03ba
+# Date 2020-07-01 17:01:24 +0100
+# Author Andrew Cooper <andrew.cooper3@citrix.com>
+# Committer Andrew Cooper <andrew.cooper3@citrix.com>
+x86/spec-ctrl: Protect against CALL/JMP straight-line speculation
+
+Some x86 CPUs speculatively execute beyond indirect CALL/JMP instructions.
+
+With CONFIG_INDIRECT_THUNK / Retpolines, indirect CALL/JMP instructions are
+converted to direct CALL/JMP's to __x86_indirect_thunk_REG(), leaving just a
+handful of indirect JMPs implementing those stubs.
+
+There is no architectrual execution beyond an indirect JMP, so use INT3 as
+recommended by vendors to halt speculative execution. This is shorter than
+LFENCE (which would also work fine), but also shows up in logs if we do
+unexpected execute them.
+
+Signed-off-by: Andrew Cooper <andrew.cooper3@citrix.com>
+Reviewed-by: Jan Beulich <jbeulich@suse.com>
+
+--- a/xen/arch/x86/indirect-thunk.S
++++ b/xen/arch/x86/indirect-thunk.S
+@@ -24,10 +24,12 @@
+ .macro IND_THUNK_LFENCE reg:req
+ lfence
+ jmp *%\reg
++ int3 /* Halt straight-line speculation */
+ .endm
+
+ .macro IND_THUNK_JMP reg:req
+ jmp *%\reg
++ int3 /* Halt straight-line speculation */
+ .endm
+
+ /*
diff --git a/5f046c18-evtchn-dont-ignore-error-in-get_free_port.patch b/5f046c18-evtchn-dont-ignore-error-in-get_free_port.patch
new file mode 100644
index 0000000..8792d3f
--- /dev/null
+++ b/5f046c18-evtchn-dont-ignore-error-in-get_free_port.patch
@@ -0,0 +1,45 @@
+# Commit 2e9c2bc292231823a3a021d2e0a9f1956bf00b3c
+# Date 2020-07-07 14:35:36 +0200
+# Author Julien Grall <jgrall@amazon.com>
+# Committer Jan Beulich <jbeulich@suse.com>
+xen/common: event_channel: Don't ignore error in get_free_port()
+
+Currently, get_free_port() is assuming that the port has been allocated
+when evtchn_allocate_port() is not return -EBUSY.
+
+However, the function may return an error when:
+ - We exhausted all the event channels. This can happen if the limit
+ configured by the administrator for the guest ('max_event_channels'
+ in xl cfg) is higher than the ABI used by the guest. For instance,
+ if the guest is using 2L, the limit should not be higher than 4095.
+ - We cannot allocate memory (e.g Xen has not more memory).
+
+Users of get_free_port() (such as EVTCHNOP_alloc_unbound) will validly
+assuming the port was valid and will next call evtchn_from_port(). This
+will result to a crash as the memory backing the event channel structure
+is not present.
+
+Fixes: 368ae9a05fe ("xen/pvshim: forward evtchn ops between L0 Xen and L2 DomU")
+Signed-off-by: Julien Grall <jgrall@amazon.com>
+Reviewed-by: Jan Beulich <jbeulich@suse.com>
+---
+ xen/common/event_channel.c | 8 ++++----
+ 1 file changed, 4 insertions(+), 4 deletions(-)
+
+--- a/xen/common/event_channel.c
++++ b/xen/common/event_channel.c
+@@ -195,10 +195,10 @@ static int get_free_port(struct domain *
+ {
+ int rc = evtchn_allocate_port(d, port);
+
+- if ( rc == -EBUSY )
+- continue;
+-
+- return port;
++ if ( rc == 0 )
++ return port;
++ else if ( rc != -EBUSY )
++ return rc;
+ }
+
+ return -ENOSPC;
diff --git a/5f046c48-x86-shadow-dirty-VRAM-inverted-conditional.patch b/5f046c48-x86-shadow-dirty-VRAM-inverted-conditional.patch
new file mode 100644
index 0000000..b25f024
--- /dev/null
+++ b/5f046c48-x86-shadow-dirty-VRAM-inverted-conditional.patch
@@ -0,0 +1,30 @@
+# Commit 23a216f99d40fbfbc2318ade89d8213eea6ba1f8
+# Date 2020-07-07 14:36:24 +0200
+# Author Jan Beulich <jbeulich@suse.com>
+# Committer Jan Beulich <jbeulich@suse.com>
+x86/shadow: correct an inverted conditional in dirty VRAM tracking
+
+This originally was "mfn_x(mfn) == INVALID_MFN". Make it like this
+again, taking the opportunity to also drop the unnecessary nearby
+braces.
+
+This is XSA-319.
+
+Fixes: 246a5a3377c2 ("xen: Use a typesafe to define INVALID_MFN")
+Signed-off-by: Jan Beulich <jbeulich@suse.com>
+Reviewed-by: Andrew Cooper <andrew.cooper3@citrix.com>
+
+--- a/xen/arch/x86/mm/shadow/common.c
++++ b/xen/arch/x86/mm/shadow/common.c
+@@ -3249,10 +3249,8 @@ int shadow_track_dirty_vram(struct domai
+ int dirty = 0;
+ paddr_t sl1ma = dirty_vram->sl1ma[i];
+
+- if ( !mfn_eq(mfn, INVALID_MFN) )
+- {
++ if ( mfn_eq(mfn, INVALID_MFN) )
+ dirty = 1;
+- }
+ else
+ {
+ page = mfn_to_page(mfn);
diff --git a/5f046c64-EPT-set_middle_entry-adjustments.patch b/5f046c64-EPT-set_middle_entry-adjustments.patch
new file mode 100644
index 0000000..4c00c22
--- /dev/null
+++ b/5f046c64-EPT-set_middle_entry-adjustments.patch
@@ -0,0 +1,122 @@
+# Commit 1104288186ee73a7f9bfa41cbaa5bb7611521028
+# Date 2020-07-07 14:36:52 +0200
+# Author Jan Beulich <jbeulich@suse.com>
+# Committer Jan Beulich <jbeulich@suse.com>
+x86/EPT: ept_set_middle_entry() related adjustments
+
+ept_split_super_page() wants to further modify the newly allocated
+table, so have ept_set_middle_entry() return the mapped pointer rather
+than tearing it down and then getting re-established right again.
+
+Similarly ept_next_level() wants to hand back a mapped pointer of
+the next level page, so re-use the one established by
+ept_set_middle_entry() in case that path was taken.
+
+Pull the setting of suppress_ve ahead of insertion into the higher level
+table, and don't have ept_split_super_page() set the field a 2nd time.
+
+This is part of XSA-328.
+
+Signed-off-by: Jan Beulich <jbeulich@suse.com>
+Reviewed-by: Roger Pau Monné <roger.pau@citrix.com>
+
+--- a/xen/arch/x86/mm/p2m-ept.c
++++ b/xen/arch/x86/mm/p2m-ept.c
+@@ -187,8 +187,9 @@ static void ept_p2m_type_to_flags(struct
+ #define GUEST_TABLE_SUPER_PAGE 2
+ #define GUEST_TABLE_POD_PAGE 3
+
+-/* Fill in middle levels of ept table */
+-static int ept_set_middle_entry(struct p2m_domain *p2m, ept_entry_t *ept_entry)
++/* Fill in middle level of ept table; return pointer to mapped new table. */
++static ept_entry_t *ept_set_middle_entry(struct p2m_domain *p2m,
++ ept_entry_t *ept_entry)
+ {
+ mfn_t mfn;
+ ept_entry_t *table;
+@@ -196,7 +197,12 @@ static int ept_set_middle_entry(struct p
+
+ mfn = p2m_alloc_ptp(p2m, 0);
+ if ( mfn_eq(mfn, INVALID_MFN) )
+- return 0;
++ return NULL;
++
++ table = map_domain_page(mfn);
++
++ for ( i = 0; i < EPT_PAGETABLE_ENTRIES; i++ )
++ table[i].suppress_ve = 1;
+
+ ept_entry->epte = 0;
+ ept_entry->mfn = mfn_x(mfn);
+@@ -208,14 +214,7 @@ static int ept_set_middle_entry(struct p
+
+ ept_entry->suppress_ve = 1;
+
+- table = map_domain_page(mfn);
+-
+- for ( i = 0; i < EPT_PAGETABLE_ENTRIES; i++ )
+- table[i].suppress_ve = 1;
+-
+- unmap_domain_page(table);
+-
+- return 1;
++ return table;
+ }
+
+ /* free ept sub tree behind an entry */
+@@ -253,10 +252,10 @@ static bool_t ept_split_super_page(struc
+
+ ASSERT(is_epte_superpage(ept_entry));
+
+- if ( !ept_set_middle_entry(p2m, &new_ept) )
++ table = ept_set_middle_entry(p2m, &new_ept);
++ if ( !table )
+ return 0;
+
+- table = map_domain_page(_mfn(new_ept.mfn));
+ trunk = 1UL << ((level - 1) * EPT_TABLE_ORDER);
+
+ for ( i = 0; i < EPT_PAGETABLE_ENTRIES; i++ )
+@@ -267,7 +266,6 @@ static bool_t ept_split_super_page(struc
+ epte->sp = (level > 1);
+ epte->mfn += i * trunk;
+ epte->snp = is_iommu_enabled(p2m->domain) && iommu_snoop;
+- epte->suppress_ve = 1;
+
+ ept_p2m_type_to_flags(p2m, epte, epte->sa_p2mt, epte->access);
+
+@@ -306,8 +304,7 @@ static int ept_next_level(struct p2m_dom
+ ept_entry_t **table, unsigned long *gfn_remainder,
+ int next_level)
+ {
+- unsigned long mfn;
+- ept_entry_t *ept_entry, e;
++ ept_entry_t *ept_entry, *next = NULL, e;
+ u32 shift, index;
+
+ shift = next_level * EPT_TABLE_ORDER;
+@@ -332,19 +329,17 @@ static int ept_next_level(struct p2m_dom
+ if ( read_only )
+ return GUEST_TABLE_MAP_FAILED;
+
+- if ( !ept_set_middle_entry(p2m, ept_entry) )
++ next = ept_set_middle_entry(p2m, ept_entry);
++ if ( !next )
+ return GUEST_TABLE_MAP_FAILED;
+- else
+- e = atomic_read_ept_entry(ept_entry); /* Refresh */
++ /* e is now stale and hence may not be used anymore below. */
+ }
+-
+ /* The only time sp would be set here is if we had hit a superpage */
+- if ( is_epte_superpage(&e) )
++ else if ( is_epte_superpage(&e) )
+ return GUEST_TABLE_SUPER_PAGE;
+
+- mfn = e.mfn;
+ unmap_domain_page(*table);
+- *table = map_domain_page(_mfn(mfn));
++ *table = next ?: map_domain_page(_mfn(e.mfn));
+ *gfn_remainder &= (1UL << shift) - 1;
+ return GUEST_TABLE_NORMAL_PAGE;
+ }
diff --git a/5f046c78-EPT-atomically-modify-ents-in-ept_next_level.patch b/5f046c78-EPT-atomically-modify-ents-in-ept_next_level.patch
new file mode 100644
index 0000000..29c102f
--- /dev/null
+++ b/5f046c78-EPT-atomically-modify-ents-in-ept_next_level.patch
@@ -0,0 +1,53 @@
+# Commit bc3d9f95d661372b059a5539ae6cb1e79435bb95
+# Date 2020-07-07 14:37:12 +0200
+# Author Roger Pau Monné <roger.pau@citrix.com>
+# Committer Jan Beulich <jbeulich@suse.com>
+x86/ept: atomically modify entries in ept_next_level
+
+ept_next_level was passing a live PTE pointer to ept_set_middle_entry,
+which was then modified without taking into account that the PTE could
+be part of a live EPT table. This wasn't a security issue because the
+pages returned by p2m_alloc_ptp are zeroed, so adding such an entry
+before actually initializing it didn't allow a guest to access
+physical memory addresses it wasn't supposed to access.
+
+This is part of XSA-328.
+
+Reported-by: Jan Beulich <jbeulich@suse.com>
+Signed-off-by: Roger Pau Monné <roger.pau@citrix.com>
+Reviewed-by: Jan Beulich <jbeulich@suse.com>
+
+--- a/xen/arch/x86/mm/p2m-ept.c
++++ b/xen/arch/x86/mm/p2m-ept.c
+@@ -307,6 +307,8 @@ static int ept_next_level(struct p2m_dom
+ ept_entry_t *ept_entry, *next = NULL, e;
+ u32 shift, index;
+
++ ASSERT(next_level);
++
+ shift = next_level * EPT_TABLE_ORDER;
+
+ index = *gfn_remainder >> shift;
+@@ -323,16 +325,20 @@ static int ept_next_level(struct p2m_dom
+
+ if ( !is_epte_present(&e) )
+ {
++ int rc;
++
+ if ( e.sa_p2mt == p2m_populate_on_demand )
+ return GUEST_TABLE_POD_PAGE;
+
+ if ( read_only )
+ return GUEST_TABLE_MAP_FAILED;
+
+- next = ept_set_middle_entry(p2m, ept_entry);
++ next = ept_set_middle_entry(p2m, &e);
+ if ( !next )
+ return GUEST_TABLE_MAP_FAILED;
+- /* e is now stale and hence may not be used anymore below. */
++
++ rc = atomic_write_ept_entry(p2m, ept_entry, e, next_level);
++ ASSERT(rc == 0);
+ }
+ /* The only time sp would be set here is if we had hit a superpage */
+ else if ( is_epte_superpage(&e) )
diff --git a/5f046c9a-VT-d-improve-IOMMU-TLB-flush.patch b/5f046c9a-VT-d-improve-IOMMU-TLB-flush.patch
new file mode 100644
index 0000000..e87f09c
--- /dev/null
+++ b/5f046c9a-VT-d-improve-IOMMU-TLB-flush.patch
@@ -0,0 +1,35 @@
+# Commit 5fe515a0fede07543f2a3b049167b1fd8b873caf
+# Date 2020-07-07 14:37:46 +0200
+# Author Jan Beulich <jbeulich@suse.com>
+# Committer Jan Beulich <jbeulich@suse.com>
+vtd: improve IOMMU TLB flush
+
+Do not limit PSI flushes to order 0 pages, in order to avoid doing a
+full TLB flush if the passed in page has an order greater than 0 and
+is aligned. Should increase the performance of IOMMU TLB flushes when
+dealing with page orders greater than 0.
+
+This is part of XSA-321.
+
+Signed-off-by: Jan Beulich <jbeulich@suse.com>
+Reviewed-by: Roger Pau Monné <roger.pau@citrix.com>
+
+--- a/xen/drivers/passthrough/vtd/iommu.c
++++ b/xen/drivers/passthrough/vtd/iommu.c
+@@ -570,13 +570,14 @@ static int __must_check iommu_flush_iotl
+ if ( iommu_domid == -1 )
+ continue;
+
+- if ( page_count != 1 || dfn_eq(dfn, INVALID_DFN) )
++ if ( !page_count || (page_count & (page_count - 1)) ||
++ dfn_eq(dfn, INVALID_DFN) || !IS_ALIGNED(dfn_x(dfn), page_count) )
+ rc = iommu_flush_iotlb_dsi(iommu, iommu_domid,
+ 0, flush_dev_iotlb);
+ else
+ rc = iommu_flush_iotlb_psi(iommu, iommu_domid,
+ dfn_to_daddr(dfn),
+- PAGE_ORDER_4K,
++ get_order_from_pages(page_count),
+ !dma_old_pte_present,
+ flush_dev_iotlb);
+
diff --git a/5f046cb5-VT-d-prune-rename-cache-flush-funcs.patch b/5f046cb5-VT-d-prune-rename-cache-flush-funcs.patch
new file mode 100644
index 0000000..9b2e539
--- /dev/null
+++ b/5f046cb5-VT-d-prune-rename-cache-flush-funcs.patch
@@ -0,0 +1,179 @@
+# Commit 62298825b9a44f45761acbd758138b5ba059ebd1
+# Date 2020-07-07 14:38:13 +0200
+# Author Roger Pau Monné <roger.pau@citrix.com>
+# Committer Jan Beulich <jbeulich@suse.com>
+vtd: prune (and rename) cache flush functions
+
+Rename __iommu_flush_cache to iommu_sync_cache and remove
+iommu_flush_cache_page. Also remove the iommu_flush_cache_entry
+wrapper and just use iommu_sync_cache instead. Note the _entry suffix
+was meaningless as the wrapper was already taking a size parameter in
+bytes. While there also constify the addr parameter.
+
+No functional change intended.
+
+This is part of XSA-321.
+
+Signed-off-by: Roger Pau Monné <roger.pau@citrix.com>
+Reviewed-by: Jan Beulich <jbeulich@suse.com>
+
+--- a/xen/drivers/passthrough/vtd/extern.h
++++ b/xen/drivers/passthrough/vtd/extern.h
+@@ -43,8 +43,7 @@ void disable_qinval(struct vtd_iommu *io
+ int enable_intremap(struct vtd_iommu *iommu, int eim);
+ void disable_intremap(struct vtd_iommu *iommu);
+
+-void iommu_flush_cache_entry(void *addr, unsigned int size);
+-void iommu_flush_cache_page(void *addr, unsigned long npages);
++void iommu_sync_cache(const void *addr, unsigned int size);
+ int iommu_alloc(struct acpi_drhd_unit *drhd);
+ void iommu_free(struct acpi_drhd_unit *drhd);
+
+--- a/xen/drivers/passthrough/vtd/intremap.c
++++ b/xen/drivers/passthrough/vtd/intremap.c
+@@ -230,7 +230,7 @@ static void free_remap_entry(struct vtd_
+ iremap_entries, iremap_entry);
+
+ update_irte(iommu, iremap_entry, &new_ire, false);
+- iommu_flush_cache_entry(iremap_entry, sizeof(*iremap_entry));
++ iommu_sync_cache(iremap_entry, sizeof(*iremap_entry));
+ iommu_flush_iec_index(iommu, 0, index);
+
+ unmap_vtd_domain_page(iremap_entries);
+@@ -406,7 +406,7 @@ static int ioapic_rte_to_remap_entry(str
+ }
+
+ update_irte(iommu, iremap_entry, &new_ire, !init);
+- iommu_flush_cache_entry(iremap_entry, sizeof(*iremap_entry));
++ iommu_sync_cache(iremap_entry, sizeof(*iremap_entry));
+ iommu_flush_iec_index(iommu, 0, index);
+
+ unmap_vtd_domain_page(iremap_entries);
+@@ -695,7 +695,7 @@ static int msi_msg_to_remap_entry(
+ update_irte(iommu, iremap_entry, &new_ire, msi_desc->irte_initialized);
+ msi_desc->irte_initialized = true;
+
+- iommu_flush_cache_entry(iremap_entry, sizeof(*iremap_entry));
++ iommu_sync_cache(iremap_entry, sizeof(*iremap_entry));
+ iommu_flush_iec_index(iommu, 0, index);
+
+ unmap_vtd_domain_page(iremap_entries);
+--- a/xen/drivers/passthrough/vtd/iommu.c
++++ b/xen/drivers/passthrough/vtd/iommu.c
+@@ -140,7 +140,8 @@ static int context_get_domain_id(struct
+ }
+
+ static int iommus_incoherent;
+-static void __iommu_flush_cache(void *addr, unsigned int size)
++
++void iommu_sync_cache(const void *addr, unsigned int size)
+ {
+ int i;
+ static unsigned int clflush_size = 0;
+@@ -155,16 +156,6 @@ static void __iommu_flush_cache(void *ad
+ cacheline_flush((char *)addr + i);
+ }
+
+-void iommu_flush_cache_entry(void *addr, unsigned int size)
+-{
+- __iommu_flush_cache(addr, size);
+-}
+-
+-void iommu_flush_cache_page(void *addr, unsigned long npages)
+-{
+- __iommu_flush_cache(addr, PAGE_SIZE * npages);
+-}
+-
+ /* Allocate page table, return its machine address */
+ uint64_t alloc_pgtable_maddr(unsigned long npages, nodeid_t node)
+ {
+@@ -183,7 +174,7 @@ uint64_t alloc_pgtable_maddr(unsigned lo
+ vaddr = __map_domain_page(cur_pg);
+ memset(vaddr, 0, PAGE_SIZE);
+
+- iommu_flush_cache_page(vaddr, 1);
++ iommu_sync_cache(vaddr, PAGE_SIZE);
+ unmap_domain_page(vaddr);
+ cur_pg++;
+ }
+@@ -216,7 +207,7 @@ static u64 bus_to_context_maddr(struct v
+ }
+ set_root_value(*root, maddr);
+ set_root_present(*root);
+- iommu_flush_cache_entry(root, sizeof(struct root_entry));
++ iommu_sync_cache(root, sizeof(struct root_entry));
+ }
+ maddr = (u64) get_context_addr(*root);
+ unmap_vtd_domain_page(root_entries);
+@@ -263,7 +254,7 @@ static u64 addr_to_dma_page_maddr(struct
+ */
+ dma_set_pte_readable(*pte);
+ dma_set_pte_writable(*pte);
+- iommu_flush_cache_entry(pte, sizeof(struct dma_pte));
++ iommu_sync_cache(pte, sizeof(struct dma_pte));
+ }
+
+ if ( level == 2 )
+@@ -640,7 +631,7 @@ static int __must_check dma_pte_clear_on
+ *flush_flags |= IOMMU_FLUSHF_modified;
+
+ spin_unlock(&hd->arch.mapping_lock);
+- iommu_flush_cache_entry(pte, sizeof(struct dma_pte));
++ iommu_sync_cache(pte, sizeof(struct dma_pte));
+
+ unmap_vtd_domain_page(page);
+
+@@ -679,7 +670,7 @@ static void iommu_free_page_table(struct
+ iommu_free_pagetable(dma_pte_addr(*pte), next_level);
+
+ dma_clear_pte(*pte);
+- iommu_flush_cache_entry(pte, sizeof(struct dma_pte));
++ iommu_sync_cache(pte, sizeof(struct dma_pte));
+ }
+
+ unmap_vtd_domain_page(pt_vaddr);
+@@ -1400,7 +1391,7 @@ int domain_context_mapping_one(
+ context_set_address_width(*context, agaw);
+ context_set_fault_enable(*context);
+ context_set_present(*context);
+- iommu_flush_cache_entry(context, sizeof(struct context_entry));
++ iommu_sync_cache(context, sizeof(struct context_entry));
+ spin_unlock(&iommu->lock);
+
+ /* Context entry was previously non-present (with domid 0). */
+@@ -1564,7 +1555,7 @@ int domain_context_unmap_one(
+
+ context_clear_present(*context);
+ context_clear_entry(*context);
+- iommu_flush_cache_entry(context, sizeof(struct context_entry));
++ iommu_sync_cache(context, sizeof(struct context_entry));
+
+ iommu_domid= domain_iommu_domid(domain, iommu);
+ if ( iommu_domid == -1 )
+@@ -1791,7 +1782,7 @@ static int __must_check intel_iommu_map_
+
+ *pte = new;
+
+- iommu_flush_cache_entry(pte, sizeof(struct dma_pte));
++ iommu_sync_cache(pte, sizeof(struct dma_pte));
+ spin_unlock(&hd->arch.mapping_lock);
+ unmap_vtd_domain_page(page);
+
+@@ -1866,7 +1857,7 @@ int iommu_pte_flush(struct domain *d, ui
+ int iommu_domid;
+ int rc = 0;
+
+- iommu_flush_cache_entry(pte, sizeof(struct dma_pte));
++ iommu_sync_cache(pte, sizeof(struct dma_pte));
+
+ for_each_drhd_unit ( drhd )
+ {
+@@ -2724,7 +2715,7 @@ static int __init intel_iommu_quarantine
+ dma_set_pte_addr(*pte, maddr);
+ dma_set_pte_readable(*pte);
+ }
+- iommu_flush_cache_page(parent, 1);
++ iommu_sync_cache(parent, PAGE_SIZE);
+
+ unmap_vtd_domain_page(parent);
+ parent = map_vtd_domain_page(maddr);
diff --git a/5f046cca-x86-IOMMU-introduce-cache-sync-hook.patch b/5f046cca-x86-IOMMU-introduce-cache-sync-hook.patch
new file mode 100644
index 0000000..f2ad08f
--- /dev/null
+++ b/5f046cca-x86-IOMMU-introduce-cache-sync-hook.patch
@@ -0,0 +1,86 @@
+# Commit 91526b460e5009fc56edbd6809e66c327281faba
+# Date 2020-07-07 14:38:34 +0200
+# Author Roger Pau Monné <roger.pau@citrix.com>
+# Committer Jan Beulich <jbeulich@suse.com>
+x86/iommu: introduce a cache sync hook
+
+The hook is only implemented for VT-d and it uses the already existing
+iommu_sync_cache function present in VT-d code. The new hook is
+added so that the cache can be flushed by code outside of VT-d when
+using shared page tables.
+
+Note that alloc_pgtable_maddr must use the now locally defined
+sync_cache function, because IOMMU ops are not yet setup the first
+time the function gets called during IOMMU initialization.
+
+No functional change intended.
+
+This is part of XSA-321.
+
+Signed-off-by: Roger Pau Monné <roger.pau@citrix.com>
+Reviewed-by: Jan Beulich <jbeulich@suse.com>
+
+--- a/xen/drivers/passthrough/vtd/extern.h
++++ b/xen/drivers/passthrough/vtd/extern.h
+@@ -43,7 +43,6 @@ void disable_qinval(struct vtd_iommu *io
+ int enable_intremap(struct vtd_iommu *iommu, int eim);
+ void disable_intremap(struct vtd_iommu *iommu);
+
+-void iommu_sync_cache(const void *addr, unsigned int size);
+ int iommu_alloc(struct acpi_drhd_unit *drhd);
+ void iommu_free(struct acpi_drhd_unit *drhd);
+
+--- a/xen/drivers/passthrough/vtd/iommu.c
++++ b/xen/drivers/passthrough/vtd/iommu.c
+@@ -141,7 +141,7 @@ static int context_get_domain_id(struct
+
+ static int iommus_incoherent;
+
+-void iommu_sync_cache(const void *addr, unsigned int size)
++static void sync_cache(const void *addr, unsigned int size)
+ {
+ int i;
+ static unsigned int clflush_size = 0;
+@@ -174,7 +174,7 @@ uint64_t alloc_pgtable_maddr(unsigned lo
+ vaddr = __map_domain_page(cur_pg);
+ memset(vaddr, 0, PAGE_SIZE);
+
+- iommu_sync_cache(vaddr, PAGE_SIZE);
++ sync_cache(vaddr, PAGE_SIZE);
+ unmap_domain_page(vaddr);
+ cur_pg++;
+ }
+@@ -2763,6 +2763,7 @@ const struct iommu_ops __initconstrel in
+ .iotlb_flush_all = iommu_flush_iotlb_all,
+ .get_reserved_device_memory = intel_iommu_get_reserved_device_memory,
+ .dump_p2m_table = vtd_dump_p2m_table,
++ .sync_cache = sync_cache,
+ };
+
+ const struct iommu_init_ops __initconstrel intel_iommu_init_ops = {
+--- a/xen/include/asm-x86/iommu.h
++++ b/xen/include/asm-x86/iommu.h
+@@ -121,6 +121,13 @@ extern bool untrusted_msi;
+ int pi_update_irte(const struct pi_desc *pi_desc, const struct pirq *pirq,
+ const uint8_t gvec);
+
++#define iommu_sync_cache(addr, size) ({ \
++ const struct iommu_ops *ops = iommu_get_ops(); \
++ \
++ if ( ops->sync_cache ) \
++ iommu_vcall(ops, sync_cache, addr, size); \
++})
++
+ #endif /* !__ARCH_X86_IOMMU_H__ */
+ /*
+ * Local variables:
+--- a/xen/include/xen/iommu.h
++++ b/xen/include/xen/iommu.h
+@@ -250,6 +250,7 @@ struct iommu_ops {
+ int (*setup_hpet_msi)(struct msi_desc *);
+
+ int (*adjust_irq_affinities)(void);
++ void (*sync_cache)(const void *addr, unsigned int size);
+ #endif /* CONFIG_X86 */
+
+ int __must_check (*suspend)(void);
diff --git a/5f046ce9-VT-d-sync_cache-misaligned-addresses.patch b/5f046ce9-VT-d-sync_cache-misaligned-addresses.patch
new file mode 100644
index 0000000..9f710c6
--- /dev/null
+++ b/5f046ce9-VT-d-sync_cache-misaligned-addresses.patch
@@ -0,0 +1,41 @@
+# Commit b6d9398144f21718d25daaf8d72669a75592abc5
+# Date 2020-07-07 14:39:05 +0200
+# Author Roger Pau Monné <roger.pau@citrix.com>
+# Committer Jan Beulich <jbeulich@suse.com>
+vtd: don't assume addresses are aligned in sync_cache
+
+Current code in sync_cache assume that the address passed in is
+aligned to a cache line size. Fix the code to support passing in
+arbitrary addresses not necessarily aligned to a cache line size.
+
+This is part of XSA-321.
+
+Reported-by: Jan Beulich <jbeulich@suse.com>
+Signed-off-by: Roger Pau Monné <roger.pau@citrix.com>
+Reviewed-by: Jan Beulich <jbeulich@suse.com>
+
+--- a/xen/drivers/passthrough/vtd/iommu.c
++++ b/xen/drivers/passthrough/vtd/iommu.c
+@@ -143,8 +143,8 @@ static int iommus_incoherent;
+
+ static void sync_cache(const void *addr, unsigned int size)
+ {
+- int i;
+- static unsigned int clflush_size = 0;
++ static unsigned long clflush_size = 0;
++ const void *end = addr + size;
+
+ if ( !iommus_incoherent )
+ return;
+@@ -152,8 +152,9 @@ static void sync_cache(const void *addr,
+ if ( clflush_size == 0 )
+ clflush_size = get_cache_line_size();
+
+- for ( i = 0; i < size; i += clflush_size )
+- cacheline_flush((char *)addr + i);
++ addr -= (unsigned long)addr & (clflush_size - 1);
++ for ( ; addr < end; addr += clflush_size )
++ cacheline_flush((char *)addr);
+ }
+
+ /* Allocate page table, return its machine address */
diff --git a/5f046cfd-x86-introduce-alternative_2.patch b/5f046cfd-x86-introduce-alternative_2.patch
new file mode 100644
index 0000000..4519f70
--- /dev/null
+++ b/5f046cfd-x86-introduce-alternative_2.patch
@@ -0,0 +1,28 @@
+# Commit 23570bce00ee6ba2139ece978ab6f03ff166e21d
+# Date 2020-07-07 14:39:25 +0200
+# Author Roger Pau Monné <roger.pau@citrix.com>
+# Committer Jan Beulich <jbeulich@suse.com>
+x86/alternative: introduce alternative_2
+
+It's based on alternative_io_2 without inputs or outputs but with an
+added memory clobber.
+
+This is part of XSA-321.
+
+Signed-off-by: Roger Pau Monné <roger.pau@citrix.com>
+Acked-by: Jan Beulich <jbeulich@suse.com>
+
+--- a/xen/include/asm-x86/alternative.h
++++ b/xen/include/asm-x86/alternative.h
+@@ -114,6 +114,11 @@ extern void alternative_branches(void);
+ #define alternative(oldinstr, newinstr, feature) \
+ asm volatile (ALTERNATIVE(oldinstr, newinstr, feature) : : : "memory")
+
++#define alternative_2(oldinstr, newinstr1, feature1, newinstr2, feature2) \
++ asm volatile (ALTERNATIVE_2(oldinstr, newinstr1, feature1, \
++ newinstr2, feature2) \
++ : : : "memory")
++
+ /*
+ * Alternative inline assembly with input.
+ *
diff --git a/5f046d1a-VT-d-optimize-CPU-cache-sync.patch b/5f046d1a-VT-d-optimize-CPU-cache-sync.patch
new file mode 100644
index 0000000..3eb5378
--- /dev/null
+++ b/5f046d1a-VT-d-optimize-CPU-cache-sync.patch
@@ -0,0 +1,95 @@
+# Commit a64ea16522a73a13a0d66cfa4b66a9d3b95dd9d6
+# Date 2020-07-07 14:39:54 +0200
+# Author Roger Pau Monné <roger.pau@citrix.com>
+# Committer Jan Beulich <jbeulich@suse.com>
+vtd: optimize CPU cache sync
+
+Some VT-d IOMMUs are non-coherent, which requires a cache write back
+in order for the changes made by the CPU to be visible to the IOMMU.
+This cache write back was unconditionally done using clflush, but there are
+other more efficient instructions to do so, hence implement support
+for them using the alternative framework.
+
+This is part of XSA-321.
+
+Signed-off-by: Roger Pau Monné <roger.pau@citrix.com>
+Reviewed-by: Jan Beulich <jbeulich@suse.com>
+
+--- a/xen/drivers/passthrough/vtd/extern.h
++++ b/xen/drivers/passthrough/vtd/extern.h
+@@ -68,7 +68,6 @@ int __must_check qinval_device_iotlb_syn
+ u16 did, u16 size, u64 addr);
+
+ unsigned int get_cache_line_size(void);
+-void cacheline_flush(char *);
+ void flush_all_cache(void);
+
+ uint64_t alloc_pgtable_maddr(unsigned long npages, nodeid_t node);
+--- a/xen/drivers/passthrough/vtd/iommu.c
++++ b/xen/drivers/passthrough/vtd/iommu.c
+@@ -31,6 +31,7 @@
+ #include <xen/pci_regs.h>
+ #include <xen/keyhandler.h>
+ #include <asm/msi.h>
++#include <asm/nops.h>
+ #include <asm/irq.h>
+ #include <asm/hvm/vmx/vmx.h>
+ #include <asm/p2m.h>
+@@ -154,7 +155,42 @@ static void sync_cache(const void *addr,
+
+ addr -= (unsigned long)addr & (clflush_size - 1);
+ for ( ; addr < end; addr += clflush_size )
+- cacheline_flush((char *)addr);
++/*
++ * The arguments to a macro must not include preprocessor directives. Doing so
++ * results in undefined behavior, so we have to create some defines here in
++ * order to avoid it.
++ */
++#if defined(HAVE_AS_CLWB)
++# define CLWB_ENCODING "clwb %[p]"
++#elif defined(HAVE_AS_XSAVEOPT)
++# define CLWB_ENCODING "data16 xsaveopt %[p]" /* clwb */
++#else
++# define CLWB_ENCODING ".byte 0x66, 0x0f, 0xae, 0x30" /* clwb (%%rax) */
++#endif
++
++#define BASE_INPUT(addr) [p] "m" (*(const char *)(addr))
++#if defined(HAVE_AS_CLWB) || defined(HAVE_AS_XSAVEOPT)
++# define INPUT BASE_INPUT
++#else
++# define INPUT(addr) "a" (addr), BASE_INPUT(addr)
++#endif
++ /*
++ * Note regarding the use of NOP_DS_PREFIX: it's faster to do a clflush
++ * + prefix than a clflush + nop, and hence the prefix is added instead
++ * of letting the alternative framework fill the gap by appending nops.
++ */
++ alternative_io_2(".byte " __stringify(NOP_DS_PREFIX) "; clflush %[p]",
++ "data16 clflush %[p]", /* clflushopt */
++ X86_FEATURE_CLFLUSHOPT,
++ CLWB_ENCODING,
++ X86_FEATURE_CLWB, /* no outputs */,
++ INPUT(addr));
++#undef INPUT
++#undef BASE_INPUT
++#undef CLWB_ENCODING
++
++ alternative_2("", "sfence", X86_FEATURE_CLFLUSHOPT,
++ "sfence", X86_FEATURE_CLWB);
+ }
+
+ /* Allocate page table, return its machine address */
+--- a/xen/drivers/passthrough/vtd/x86/vtd.c
++++ b/xen/drivers/passthrough/vtd/x86/vtd.c
+@@ -51,11 +51,6 @@ unsigned int get_cache_line_size(void)
+ return ((cpuid_ebx(1) >> 8) & 0xff) * 8;
+ }
+
+-void cacheline_flush(char * addr)
+-{
+- clflush(addr);
+-}
+-
+ void flush_all_cache()
+ {
+ wbinvd();
diff --git a/5f046d2b-EPT-flush-cache-when-modifying-PTEs.patch b/5f046d2b-EPT-flush-cache-when-modifying-PTEs.patch
new file mode 100644
index 0000000..9726fba
--- /dev/null
+++ b/5f046d2b-EPT-flush-cache-when-modifying-PTEs.patch
@@ -0,0 +1,157 @@
+# Commit c23274fd0412381bd75068ebc9f8f8c90a4be748
+# Date 2020-07-07 14:40:11 +0200
+# Author Roger Pau Monné <roger.pau@citrix.com>
+# Committer Jan Beulich <jbeulich@suse.com>
+x86/ept: flush cache when modifying PTEs and sharing page tables
+
+Modifications made to the page tables by EPT code need to be written
+to memory when the page tables are shared with the IOMMU, as Intel
+IOMMUs can be non-coherent and thus require changes to be written to
+memory in order to be visible to the IOMMU.
+
+In order to achieve this make sure data is written back to memory
+after writing an EPT entry when the recalc bit is not set in
+atomic_write_ept_entry. If such bit is set, the entry will be
+adjusted and atomic_write_ept_entry will be called a second time
+without the recalc bit set. Note that when splitting a super page the
+new tables resulting of the split should also be written back.
+
+Failure to do so can allow devices behind the IOMMU access to the
+stale super page, or cause coherency issues as changes made by the
+processor to the page tables are not visible to the IOMMU.
+
+This allows to remove the VT-d specific iommu_pte_flush helper, since
+the cache write back is now performed by atomic_write_ept_entry, and
+hence iommu_iotlb_flush can be used to flush the IOMMU TLB. The newly
+used method (iommu_iotlb_flush) can result in less flushes, since it
+might sometimes be called rightly with 0 flags, in which case it
+becomes a no-op.
+
+This is part of XSA-321.
+
+Signed-off-by: Roger Pau Monné <roger.pau@citrix.com>
+Reviewed-by: Jan Beulich <jbeulich@suse.com>
+
+--- a/xen/arch/x86/mm/p2m-ept.c
++++ b/xen/arch/x86/mm/p2m-ept.c
+@@ -58,6 +58,19 @@ static int atomic_write_ept_entry(struct
+
+ write_atomic(&entryptr->epte, new.epte);
+
++ /*
++ * The recalc field on the EPT is used to signal either that a
++ * recalculation of the EMT field is required (which doesn't effect the
++ * IOMMU), or a type change. Type changes can only be between ram_rw,
++ * logdirty and ioreq_server: changes to/from logdirty won't work well with
++ * an IOMMU anyway, as IOMMU #PFs are not synchronous and will lead to
++ * aborts, and changes to/from ioreq_server are already fully flushed
++ * before returning to guest context (see
++ * XEN_DMOP_map_mem_type_to_ioreq_server).
++ */
++ if ( !new.recalc && iommu_use_hap_pt(p2m->domain) )
++ iommu_sync_cache(entryptr, sizeof(*entryptr));
++
+ return 0;
+ }
+
+@@ -278,6 +291,9 @@ static bool_t ept_split_super_page(struc
+ break;
+ }
+
++ if ( iommu_use_hap_pt(p2m->domain) )
++ iommu_sync_cache(table, EPT_PAGETABLE_ENTRIES * sizeof(ept_entry_t));
++
+ unmap_domain_page(table);
+
+ /* Even failed we should install the newly allocated ept page. */
+@@ -337,6 +353,9 @@ static int ept_next_level(struct p2m_dom
+ if ( !next )
+ return GUEST_TABLE_MAP_FAILED;
+
++ if ( iommu_use_hap_pt(p2m->domain) )
++ iommu_sync_cache(next, EPT_PAGETABLE_ENTRIES * sizeof(ept_entry_t));
++
+ rc = atomic_write_ept_entry(p2m, ept_entry, e, next_level);
+ ASSERT(rc == 0);
+ }
+@@ -821,7 +840,10 @@ out:
+ need_modify_vtd_table )
+ {
+ if ( iommu_use_hap_pt(d) )
+- rc = iommu_pte_flush(d, gfn, &ept_entry->epte, order, vtd_pte_present);
++ rc = iommu_iotlb_flush(d, _dfn(gfn), (1u << order),
++ (iommu_flags ? IOMMU_FLUSHF_added : 0) |
++ (vtd_pte_present ? IOMMU_FLUSHF_modified
++ : 0));
+ else if ( need_iommu_pt_sync(d) )
+ rc = iommu_flags ?
+ iommu_legacy_map(d, _dfn(gfn), mfn, order, iommu_flags) :
+--- a/xen/drivers/passthrough/vtd/iommu.c
++++ b/xen/drivers/passthrough/vtd/iommu.c
+@@ -1884,53 +1884,6 @@ static int intel_iommu_lookup_page(struc
+ return 0;
+ }
+
+-int iommu_pte_flush(struct domain *d, uint64_t dfn, uint64_t *pte,
+- int order, int present)
+-{
+- struct acpi_drhd_unit *drhd;
+- struct vtd_iommu *iommu = NULL;
+- struct domain_iommu *hd = dom_iommu(d);
+- bool_t flush_dev_iotlb;
+- int iommu_domid;
+- int rc = 0;
+-
+- iommu_sync_cache(pte, sizeof(struct dma_pte));
+-
+- for_each_drhd_unit ( drhd )
+- {
+- iommu = drhd->iommu;
+- if ( !test_bit(iommu->index, &hd->arch.iommu_bitmap) )
+- continue;
+-
+- flush_dev_iotlb = !!find_ats_dev_drhd(iommu);
+- iommu_domid= domain_iommu_domid(d, iommu);
+- if ( iommu_domid == -1 )
+- continue;
+-
+- rc = iommu_flush_iotlb_psi(iommu, iommu_domid,
+- __dfn_to_daddr(dfn),
+- order, !present, flush_dev_iotlb);
+- if ( rc > 0 )
+- {
+- iommu_flush_write_buffer(iommu);
+- rc = 0;
+- }
+- }
+-
+- if ( unlikely(rc) )
+- {
+- if ( !d->is_shutting_down && printk_ratelimit() )
+- printk(XENLOG_ERR VTDPREFIX
+- " d%d: IOMMU pages flush failed: %d\n",
+- d->domain_id, rc);
+-
+- if ( !is_hardware_domain(d) )
+- domain_crash(d);
+- }
+-
+- return rc;
+-}
+-
+ static int __init vtd_ept_page_compatible(struct vtd_iommu *iommu)
+ {
+ u64 ept_cap, vtd_cap = iommu->cap;
+--- a/xen/include/asm-x86/iommu.h
++++ b/xen/include/asm-x86/iommu.h
+@@ -97,10 +97,6 @@ static inline int iommu_adjust_irq_affin
+ : 0;
+ }
+
+-/* While VT-d specific, this must get declared in a generic header. */
+-int __must_check iommu_pte_flush(struct domain *d, u64 gfn, u64 *pte,
+- int order, int present);
+-
+ static inline bool iommu_supports_x2apic(void)
+ {
+ return iommu_init_ops && iommu_init_ops->supports_x2apic
diff --git a/5f046d5c-check-VCPUOP_register_vcpu_info-alignment.patch b/5f046d5c-check-VCPUOP_register_vcpu_info-alignment.patch
new file mode 100644
index 0000000..353b5cd
--- /dev/null
+++ b/5f046d5c-check-VCPUOP_register_vcpu_info-alignment.patch
@@ -0,0 +1,55 @@
+# Commit 3fdc211b01b29f252166937238efe02d15cb5780
+# Date 2020-07-07 14:41:00 +0200
+# Author Julien Grall <jgrall@amazon.com>
+# Committer Jan Beulich <jbeulich@suse.com>
+xen: Check the alignment of the offset pased via VCPUOP_register_vcpu_info
+
+Currently a guest is able to register any guest physical address to use
+for the vcpu_info structure as long as the structure can fits in the
+rest of the frame.
+
+This means a guest can provide an address that is not aligned to the
+natural alignment of the structure.
+
+On Arm 32-bit, unaligned access are completely forbidden by the
+hypervisor. This will result to a data abort which is fatal.
+
+On Arm 64-bit, unaligned access are only forbidden when used for atomic
+access. As the structure contains fields (such as evtchn_pending_self)
+that are updated using atomic operations, any unaligned access will be
+fatal as well.
+
+While the misalignment is only fatal on Arm, a generic check is added
+as an x86 guest shouldn't sensibly pass an unaligned address (this
+would result to a split lock).
+
+This is XSA-327.
+
+Reported-by: Julien Grall <jgrall@amazon.com>
+Signed-off-by: Julien Grall <jgrall@amazon.com>
+Reviewed-by: Andrew Cooper <andrew.cooper3@citrix.com>
+Reviewed-by: Stefano Stabellini <sstabellini@kernel.org>
+
+--- a/xen/common/domain.c
++++ b/xen/common/domain.c
+@@ -1300,10 +1300,20 @@ int map_vcpu_info(struct vcpu *v, unsign
+ void *mapping;
+ vcpu_info_t *new_info;
+ struct page_info *page;
++ unsigned int align;
+
+ if ( offset > (PAGE_SIZE - sizeof(vcpu_info_t)) )
+ return -EINVAL;
+
++#ifdef CONFIG_COMPAT
++ if ( has_32bit_shinfo(d) )
++ align = alignof(new_info->compat);
++ else
++#endif
++ align = alignof(*new_info);
++ if ( offset & (align - 1) )
++ return -EINVAL;
++
+ if ( !mfn_eq(v->vcpu_info_mfn, INVALID_MFN) )
+ return -EINVAL;
+
diff --git a/5f1a9916-x86-S3-put-data-sregs-into-known-state.patch b/5f1a9916-x86-S3-put-data-sregs-into-known-state.patch
new file mode 100644
index 0000000..c6a0e78
--- /dev/null
+++ b/5f1a9916-x86-S3-put-data-sregs-into-known-state.patch
@@ -0,0 +1,35 @@
+# Commit 55f8c389d4348cc517946fdcb10794112458e81e
+# Date 2020-07-24 10:17:26 +0200
+# Author Jan Beulich <jbeulich@suse.com>
+# Committer Jan Beulich <jbeulich@suse.com>
+x86/S3: put data segment registers into known state upon resume
+
+wakeup_32 sets %ds and %es to BOOT_DS, while leaving %fs at what
+wakeup_start did set it to, and %gs at whatever BIOS did load into it.
+All of this may end up confusing the first load_segments() to run on
+the BSP after resume, in particular allowing a non-nul selector value
+to be left in %fs.
+
+Alongside %ss, also put all other data segment registers into the same
+state that the boot and CPU bringup paths put them in.
+
+Reported-by: M. Vefa Bicakci <m.v.b@runbox.com>
+Signed-off-by: Jan Beulich <jbeulich@suse.com>
+Reviewed-by: Roger Pau Monné <roger.pau@citrix.com>
+Reviewed-by: Andrew Cooper <andrew.cooper3@citrix.com>
+
+--- a/xen/arch/x86/acpi/wakeup_prot.S
++++ b/xen/arch/x86/acpi/wakeup_prot.S
+@@ -66,6 +66,12 @@ ENTRY(__ret_point)
+ mov REF(saved_ss), %ss
+ LOAD_GREG(sp)
+
++ mov $__HYPERVISOR_DS64, %eax
++ mov %eax, %ds
++ mov %eax, %es
++ mov %eax, %fs
++ mov %eax, %gs
++
+ /* Reload code selector */
+ pushq $__HYPERVISOR_CS
+ leaq 1f(%rip),%rax
diff --git a/5f21b9fd-x86-cpuid-APIC-bit-clearing.patch b/5f21b9fd-x86-cpuid-APIC-bit-clearing.patch
new file mode 100644
index 0000000..ae96985
--- /dev/null
+++ b/5f21b9fd-x86-cpuid-APIC-bit-clearing.patch
@@ -0,0 +1,25 @@
+# Commit 64219fa179c3e48adad12bfce3f6b3f1596cccbf
+# Date 2020-07-29 19:03:41 +0100
+# Author Fam Zheng <famzheng@amazon.com>
+# Committer Andrew Cooper <andrew.cooper3@citrix.com>
+x86/cpuid: Fix APIC bit clearing
+
+The bug is obvious here, other places in this function used
+"cpufeat_mask" correctly.
+
+Fixed: b648feff8ea2 ("xen/x86: Improvements to in-hypervisor cpuid sanity checks")
+Signed-off-by: Fam Zheng <famzheng@amazon.com>
+Reviewed-by: Roger Pau Monné <roger.pau@citrix.com>
+Reviewed-by: Andrew Cooper <andrew.cooper3@citrix.com>
+
+--- a/xen/arch/x86/cpuid.c
++++ b/xen/arch/x86/cpuid.c
+@@ -961,7 +961,7 @@ void guest_cpuid(const struct vcpu *v, u
+ {
+ /* Fast-forward MSR_APIC_BASE.EN. */
+ if ( vlapic_hw_disabled(vcpu_vlapic(v)) )
+- res->d &= ~cpufeat_bit(X86_FEATURE_APIC);
++ res->d &= ~cpufeat_mask(X86_FEATURE_APIC);
+
+ /*
+ * PSE36 is not supported in shadow mode. This bit should be
diff --git a/5f479d9e-x86-begin-to-support-MSR_ARCH_CAPS.patch b/5f479d9e-x86-begin-to-support-MSR_ARCH_CAPS.patch
new file mode 100644
index 0000000..e8b9180
--- /dev/null
+++ b/5f479d9e-x86-begin-to-support-MSR_ARCH_CAPS.patch
@@ -0,0 +1,113 @@
+# Commit e32605b07ef2e01c9d05da9b2d5d7b8f9a5c7c1b
+# Date 2020-08-27 12:48:46 +0100
+# Author Andrew Cooper <andrew.cooper3@citrix.com>
+# Committer Andrew Cooper <andrew.cooper3@citrix.com>
+x86: Begin to introduce support for MSR_ARCH_CAPS
+
+... including serialisation/deserialisation logic and unit tests.
+
+There is no current way to configure this MSR correctly for guests.
+The toolstack side this logic needs building, which is far easier to
+do with it in place.
+
+Signed-off-by: Andrew Cooper <andrew.cooper3@citrix.com>
+Reviewed-by: Jan Beulich <jbeulich@suse.com>
+
+--- a/tools/tests/cpu-policy/test-cpu-policy.c
++++ b/tools/tests/cpu-policy/test-cpu-policy.c
+@@ -328,6 +328,11 @@ static void test_msr_deserialise_failure
+ .msr = { .idx = 0xce, .val = ~0ull },
+ .rc = -EOVERFLOW,
+ },
++ {
++ .name = "truncated val",
++ .msr = { .idx = 0x10a, .val = ~0ull },
++ .rc = -EOVERFLOW,
++ },
+ };
+
+ printf("Testing MSR deserialise failure:\n");
+--- a/xen/arch/x86/msr.c
++++ b/xen/arch/x86/msr.c
+@@ -183,8 +183,10 @@ int guest_rdmsr(struct vcpu *v, uint32_t
+ break;
+
+ case MSR_ARCH_CAPABILITIES:
+- /* Not implemented yet. */
+- goto gp_fault;
++ if ( !cp->feat.arch_caps )
++ goto gp_fault;
++ *val = mp->arch_caps.raw;
++ break;
+
+ case MSR_INTEL_MISC_FEATURES_ENABLES:
+ *val = msrs->misc_features_enables.raw;
+--- a/xen/include/public/arch-x86/cpufeatureset.h
++++ b/xen/include/public/arch-x86/cpufeatureset.h
+@@ -259,7 +259,7 @@ XEN_CPUFEATURE(CET_IBT, 9*32+20) /
+ XEN_CPUFEATURE(IBRSB, 9*32+26) /*A IBRS and IBPB support (used by Intel) */
+ XEN_CPUFEATURE(STIBP, 9*32+27) /*A STIBP */
+ XEN_CPUFEATURE(L1D_FLUSH, 9*32+28) /*S MSR_FLUSH_CMD and L1D flush. */
+-XEN_CPUFEATURE(ARCH_CAPS, 9*32+29) /* IA32_ARCH_CAPABILITIES MSR */
++XEN_CPUFEATURE(ARCH_CAPS, 9*32+29) /*! IA32_ARCH_CAPABILITIES MSR */
+ XEN_CPUFEATURE(SSBD, 9*32+31) /*A MSR_SPEC_CTRL.SSBD available */
+
+ /* Intel-defined CPU features, CPUID level 0x00000007:1.eax, word 10 */
+--- a/xen/include/xen/lib/x86/msr.h
++++ b/xen/include/xen/lib/x86/msr.h
+@@ -3,7 +3,7 @@
+ #define XEN_LIB_X86_MSR_H
+
+ /* Maximum number of MSRs written when serialising msr_policy. */
+-#define MSR_MAX_SERIALISED_ENTRIES 1
++#define MSR_MAX_SERIALISED_ENTRIES 2
+
+ /* MSR policy object for shared per-domain MSRs */
+ struct msr_policy
+@@ -23,6 +23,28 @@ struct msr_policy
+ bool cpuid_faulting:1;
+ };
+ } platform_info;
++
++ /*
++ * 0x0000010a - MSR_ARCH_CAPABILITIES
++ *
++ * This is an Intel-only MSR, which provides miscellaneous enumeration,
++ * including those which indicate that microarchitectrual sidechannels are
++ * fixed in hardware.
++ */
++ union {
++ uint32_t raw;
++ struct {
++ bool rdcl_no:1;
++ bool ibrs_all:1;
++ bool rsba:1;
++ bool skip_l1dfl:1;
++ bool ssb_no:1;
++ bool mds_no:1;
++ bool if_pschange_mc_no:1;
++ bool tsx_ctrl:1;
++ bool taa_no:1;
++ };
++ } arch_caps;
+ };
+
+ #ifdef __XEN__
+--- a/xen/lib/x86/msr.c
++++ b/xen/lib/x86/msr.c
+@@ -39,6 +39,7 @@ int x86_msr_copy_to_buffer(const struct
+ })
+
+ COPY_MSR(MSR_INTEL_PLATFORM_INFO, p->platform_info.raw);
++ COPY_MSR(MSR_ARCH_CAPABILITIES, p->arch_caps.raw);
+
+ #undef COPY_MSR
+
+@@ -99,6 +100,7 @@ int x86_msr_copy_from_buffer(struct msr_
+ })
+
+ case MSR_INTEL_PLATFORM_INFO: ASSIGN(platform_info.raw); break;
++ case MSR_ARCH_CAPABILITIES: ASSIGN(arch_caps.raw); break;
+
+ #undef ASSIGN
+
diff --git a/5f4cf06e-x86-Dom0-expose-MSR_ARCH_CAPS.patch b/5f4cf06e-x86-Dom0-expose-MSR_ARCH_CAPS.patch
new file mode 100644
index 0000000..dda046b
--- /dev/null
+++ b/5f4cf06e-x86-Dom0-expose-MSR_ARCH_CAPS.patch
@@ -0,0 +1,60 @@
+# Commit e46474278a0e87e2b32ad5dd5fc20e8d2cb0688b
+# Date 2020-08-31 13:43:26 +0100
+# Author Andrew Cooper <andrew.cooper3@citrix.com>
+# Committer Andrew Cooper <andrew.cooper3@citrix.com>
+x86/intel: Expose MSR_ARCH_CAPS to dom0
+
+The overhead of (the lack of) MDS_NO alone has been measured at 30% on some
+workloads. While we're not in a position yet to offer MSR_ARCH_CAPS generally
+to guests, dom0 doesn't migrate, so we can pass a subset of hardware values
+straight through.
+
+This will cause PVH dom0's not to use KPTI by default, and all dom0's not to
+use VERW flushing by default, and to use eIBRS in preference to retpoline on
+recent Intel CPUs.
+
+Signed-off-by: Andrew Cooper <andrew.cooper3@citrix.com>
+Reviewed-by: Jan Beulich <jbeulich@suse.com>
+
+--- a/xen/arch/x86/cpuid.c
++++ b/xen/arch/x86/cpuid.c
+@@ -627,6 +627,14 @@ int init_domain_cpuid_policy(struct doma
+
+ recalculate_cpuid_policy(d);
+
++ /*
++ * Expose the "hardware speculation behaviour" bits of ARCH_CAPS to dom0,
++ * so dom0 can turn off workarounds as appropriate. Temporary, until the
++ * domain policy logic gains a better understanding of MSRs.
++ */
++ if ( is_hardware_domain(d) && boot_cpu_has(X86_FEATURE_ARCH_CAPS) )
++ p->feat.arch_caps = true;
++
+ return 0;
+ }
+
+--- a/xen/arch/x86/msr.c
++++ b/xen/arch/x86/msr.c
+@@ -96,6 +96,22 @@ int init_domain_msr_policy(struct domain
+ if ( !opt_dom0_cpuid_faulting && is_control_domain(d) && is_pv_domain(d) )
+ mp->platform_info.cpuid_faulting = false;
+
++ /*
++ * Expose the "hardware speculation behaviour" bits of ARCH_CAPS to dom0,
++ * so dom0 can turn off workarounds as appropriate. Temporary, until the
++ * domain policy logic gains a better understanding of MSRs.
++ */
++ if ( is_hardware_domain(d) && boot_cpu_has(X86_FEATURE_ARCH_CAPS) )
++ {
++ uint64_t val;
++
++ rdmsrl(MSR_ARCH_CAPABILITIES, val);
++
++ mp->arch_caps.raw = val &
++ (ARCH_CAPS_RDCL_NO | ARCH_CAPS_IBRS_ALL | ARCH_CAPS_RSBA |
++ ARCH_CAPS_SSB_NO | ARCH_CAPS_MDS_NO | ARCH_CAPS_TAA_NO);
++ }
++
+ d->arch.msr = mp;
+
+ return 0;
diff --git a/5f4cf96a-x86-PV-fix-SEGBASE_GS_USER_SEL.patch b/5f4cf96a-x86-PV-fix-SEGBASE_GS_USER_SEL.patch
new file mode 100644
index 0000000..025f917
--- /dev/null
+++ b/5f4cf96a-x86-PV-fix-SEGBASE_GS_USER_SEL.patch
@@ -0,0 +1,92 @@
+# Commit afe018e041ec112d90a8b4e6ed607d22aa06f280
+# Date 2020-08-31 14:21:46 +0100
+# Author Andrew Cooper <andrew.cooper3@citrix.com>
+# Committer Andrew Cooper <andrew.cooper3@citrix.com>
+x86/pv: Fix multiple bugs with SEGBASE_GS_USER_SEL
+
+The logic takes the segment selector unmodified from guest context. This
+allowed the guest to load DPL0 descriptors into %gs. Fix up the RPL for
+non-NUL selectors to be 3.
+
+Xen's context switch logic skips saving the inactive %gs base, as it cannot be
+modified by the guest behind Xen's back. This depends on Xen caching updates
+to the inactive base, which is was missing from this path.
+
+The consequence is that, following SEGBASE_GS_USER_SEL, the next context
+switch will restore the stale inactive %gs base, and corrupt vcpu state.
+
+Rework the hypercall to update the cached idea of gs_base_user, and fix the
+behaviour in the case of the AMD NUL selector bug to always zero the segment
+base.
+
+Reported-by: Andy Lutomirski <luto@kernel.org>
+Signed-off-by: Andrew Cooper <andrew.cooper3@citrix.com>
+Reviewed-by: Jan Beulich <jbeulich@suse.com>
+
+--- a/xen/arch/x86/x86_64/mm.c
++++ b/xen/arch/x86/x86_64/mm.c
+@@ -1056,17 +1056,54 @@ long do_set_segment_base(unsigned int wh
+ break;
+
+ case SEGBASE_GS_USER_SEL:
+- __asm__ __volatile__ (
+- " swapgs \n"
+- "1: movl %k0,%%gs \n"
+- " "safe_swapgs" \n"
+- ".section .fixup,\"ax\" \n"
+- "2: xorl %k0,%k0 \n"
+- " jmp 1b \n"
+- ".previous \n"
+- _ASM_EXTABLE(1b, 2b)
+- : "+r" (base) );
++ {
++ unsigned int sel = (uint16_t)base;
++
++ /*
++ * We wish to update the user %gs from the GDT/LDT. Currently, the
++ * guest kernel's GS_BASE is in context.
++ */
++ asm volatile ( "swapgs" );
++
++ if ( sel > 3 )
++ /* Fix up RPL for non-NUL selectors. */
++ sel |= 3;
++ else if ( boot_cpu_data.x86_vendor &
++ (X86_VENDOR_AMD | X86_VENDOR_HYGON) )
++ /* Work around NUL segment behaviour on AMD hardware. */
++ asm volatile ( "mov %[sel], %%gs"
++ :: [sel] "r" (FLAT_USER_DS32) );
++
++ /*
++ * Load the chosen selector, with fault handling.
++ *
++ * Errors ought to fail the hypercall, but that was never built in
++ * originally, and Linux will BUG() if this call fails.
++ *
++ * NUL the selector in the case of an error. This too needs to deal
++ * with the AMD NUL segment behaviour, but it is already a slowpath in
++ * #GP context so perform the flat load unconditionally to avoid
++ * complicated logic.
++ *
++ * Anyone wanting to check for errors from this hypercall should
++ * re-read %gs and compare against the input.
++ */
++ asm volatile ( "1: mov %[sel], %%gs\n\t"
++ ".section .fixup, \"ax\", @progbits\n\t"
++ "2: mov %k[flat], %%gs\n\t"
++ " xor %[sel], %[sel]\n\t"
++ " jmp 1b\n\t"
++ ".previous\n\t"
++ _ASM_EXTABLE(1b, 2b)
++ : [sel] "+r" (sel)
++ : [flat] "r" (FLAT_USER_DS32) );
++
++ /* Update the cache of the inactive base, as read from the GDT/LDT. */
++ v->arch.pv.gs_base_user = rdgsbase();
++
++ asm volatile ( safe_swapgs );
+ break;
++ }
+
+ default:
+ ret = -EINVAL;
diff --git a/5f560c42-x86-PV-64bit-segbase-consistency.patch b/5f560c42-x86-PV-64bit-segbase-consistency.patch
new file mode 100644
index 0000000..c068fd3
--- /dev/null
+++ b/5f560c42-x86-PV-64bit-segbase-consistency.patch
@@ -0,0 +1,212 @@
+# Commit a5eaac9245f4f382a3cd0e9710e9d1cba7db20e4
+# Date 2020-09-07 11:32:34 +0100
+# Author Andrew Cooper <andrew.cooper3@citrix.com>
+# Committer Andrew Cooper <andrew.cooper3@citrix.com>
+x86/pv: Fix consistency of 64bit segment bases
+
+The comments in save_segments(), _toggle_guest_pt() and write_cr() are false.
+The %fs and %gs bases can be updated at any time by the guest.
+
+As a consequence, Xen's fs_base/etc tracking state is always stale when the
+vcpu is in context, and must not be used to complete MSR_{FS,GS}_BASE reads, etc.
+
+In particular, a sequence such as:
+
+ wrmsr(MSR_FS_BASE, 0x1ull << 32);
+ write_fs(__USER_DS);
+ base = rdmsr(MSR_FS_BASE);
+
+will return the stale base, not the new base. This may cause guest a guest
+kernel's context switching of userspace to malfunction.
+
+Therefore:
+ * Update save_segments(), _toggle_guest_pt() and read_msr() to always read
+ the segment bases from hardware.
+ * Update write_cr(), write_msr() and do_set_segment_base() to not not waste
+ time caching data which is instantly going to become stale again.
+ * Provide comments explaining when the tracking state is and isn't stale.
+
+This bug has been present for 14 years, but several bugfixes since have built
+on and extended the original flawed logic.
+
+Fixes: ba9adb737ba ("Apply stricter checking to RDMSR/WRMSR emulations.")
+Fixes: c42494acb2f ("x86: fix FS/GS base handling when using the fsgsbase feature")
+Fixed: eccc170053e ("x86/pv: Don't have %cr4.fsgsbase active behind a guest kernels back")
+Signed-off-by: Andrew Cooper <andrew.cooper3@citrix.com>
+Reviewed-by: Jan Beulich <jbeulich@suse.com>
+
+--- a/xen/arch/x86/domain.c
++++ b/xen/arch/x86/domain.c
+@@ -1546,6 +1546,16 @@ static void load_segments(struct vcpu *n
+ }
+ }
+
++/*
++ * Record all guest segment state. The guest can load segment selectors
++ * without trapping, which will also alter the 64bit FS/GS bases. Arbitrary
++ * changes to bases can also be made with the WR{FS,GS}BASE instructions, when
++ * enabled.
++ *
++ * Guests however cannot use SWAPGS, so there is no mechanism to modify the
++ * inactive GS base behind Xen's back. Therefore, Xen's copy of the inactive
++ * GS base is still accurate, and doesn't need reading back from hardware.
++ */
+ static void save_segments(struct vcpu *v)
+ {
+ struct cpu_user_regs *regs = &v->arch.user_regs;
+@@ -1556,14 +1566,15 @@ static void save_segments(struct vcpu *v
+ regs->fs = read_sreg(fs);
+ regs->gs = read_sreg(gs);
+
+- /* %fs/%gs bases can only be stale if WR{FS,GS}BASE are usable. */
+- if ( (read_cr4() & X86_CR4_FSGSBASE) && !is_pv_32bit_vcpu(v) )
++ if ( !is_pv_32bit_vcpu(v) )
+ {
+- v->arch.pv.fs_base = __rdfsbase();
++ unsigned long gs_base = rdgsbase();
++
++ v->arch.pv.fs_base = rdfsbase();
+ if ( v->arch.flags & TF_kernel_mode )
+- v->arch.pv.gs_base_kernel = __rdgsbase();
++ v->arch.pv.gs_base_kernel = gs_base;
+ else
+- v->arch.pv.gs_base_user = __rdgsbase();
++ v->arch.pv.gs_base_user = gs_base;
+ }
+
+ if ( regs->ds )
+--- a/xen/arch/x86/pv/domain.c
++++ b/xen/arch/x86/pv/domain.c
+@@ -408,16 +408,19 @@ static void _toggle_guest_pt(struct vcpu
+
+ void toggle_guest_mode(struct vcpu *v)
+ {
++ unsigned long gs_base;
++
+ ASSERT(!is_pv_32bit_vcpu(v));
+
+- /* %fs/%gs bases can only be stale if WR{FS,GS}BASE are usable. */
+- if ( read_cr4() & X86_CR4_FSGSBASE )
+- {
+- if ( v->arch.flags & TF_kernel_mode )
+- v->arch.pv.gs_base_kernel = __rdgsbase();
+- else
+- v->arch.pv.gs_base_user = __rdgsbase();
+- }
++ /*
++ * Update the cached value of the GS base about to become inactive, as a
++ * subsequent context switch won't bother re-reading it.
++ */
++ gs_base = rdgsbase();
++ if ( v->arch.flags & TF_kernel_mode )
++ v->arch.pv.gs_base_kernel = gs_base;
++ else
++ v->arch.pv.gs_base_user = gs_base;
+ asm volatile ( "swapgs" );
+
+ _toggle_guest_pt(v);
+--- a/xen/arch/x86/pv/emul-priv-op.c
++++ b/xen/arch/x86/pv/emul-priv-op.c
+@@ -779,17 +779,6 @@ static int write_cr(unsigned int reg, un
+ }
+
+ case 4: /* Write CR4 */
+- /*
+- * If this write will disable FSGSBASE, refresh Xen's idea of the
+- * guest bases now that they can no longer change.
+- */
+- if ( (curr->arch.pv.ctrlreg[4] & X86_CR4_FSGSBASE) &&
+- !(val & X86_CR4_FSGSBASE) )
+- {
+- curr->arch.pv.fs_base = __rdfsbase();
+- curr->arch.pv.gs_base_kernel = __rdgsbase();
+- }
+-
+ curr->arch.pv.ctrlreg[4] = pv_fixup_guest_cr4(curr, val);
+ write_cr4(pv_make_cr4(curr));
+ ctxt_switch_levelling(curr);
+@@ -838,15 +827,13 @@ static int read_msr(unsigned int reg, ui
+ case MSR_FS_BASE:
+ if ( is_pv_32bit_domain(currd) )
+ break;
+- *val = (read_cr4() & X86_CR4_FSGSBASE) ? __rdfsbase()
+- : curr->arch.pv.fs_base;
++ *val = rdfsbase();
+ return X86EMUL_OKAY;
+
+ case MSR_GS_BASE:
+ if ( is_pv_32bit_domain(currd) )
+ break;
+- *val = (read_cr4() & X86_CR4_FSGSBASE) ? __rdgsbase()
+- : curr->arch.pv.gs_base_kernel;
++ *val = rdgsbase();
+ return X86EMUL_OKAY;
+
+ case MSR_SHADOW_GS_BASE:
+@@ -975,14 +962,12 @@ static int write_msr(unsigned int reg, u
+ if ( is_pv_32bit_domain(currd) || !is_canonical_address(val) )
+ break;
+ wrfsbase(val);
+- curr->arch.pv.fs_base = val;
+ return X86EMUL_OKAY;
+
+ case MSR_GS_BASE:
+ if ( is_pv_32bit_domain(currd) || !is_canonical_address(val) )
+ break;
+ wrgsbase(val);
+- curr->arch.pv.gs_base_kernel = val;
+ return X86EMUL_OKAY;
+
+ case MSR_SHADOW_GS_BASE:
+--- a/xen/arch/x86/x86_64/mm.c
++++ b/xen/arch/x86/x86_64/mm.c
+@@ -1027,10 +1027,7 @@ long do_set_segment_base(unsigned int wh
+ {
+ case SEGBASE_FS:
+ if ( is_canonical_address(base) )
+- {
+ wrfsbase(base);
+- v->arch.pv.fs_base = base;
+- }
+ else
+ ret = -EINVAL;
+ break;
+@@ -1047,10 +1044,7 @@ long do_set_segment_base(unsigned int wh
+
+ case SEGBASE_GS_KERNEL:
+ if ( is_canonical_address(base) )
+- {
+ wrgsbase(base);
+- v->arch.pv.gs_base_kernel = base;
+- }
+ else
+ ret = -EINVAL;
+ break;
+--- a/xen/include/asm-x86/domain.h
++++ b/xen/include/asm-x86/domain.h
+@@ -505,7 +505,24 @@ struct pv_vcpu
+ bool_t syscall32_disables_events;
+ bool_t sysenter_disables_events;
+
+- /* Segment base addresses. */
++ /*
++ * 64bit segment bases.
++ *
++ * FS and the active GS are always stale when the vCPU is in context, as
++ * the guest can change them behind Xen's back with MOV SREG, or
++ * WR{FS,GS}BASE on capable hardware.
++ *
++ * The inactive GS base is never stale, as guests can't use SWAPGS to
++ * access it - all modification is performed by Xen either directly
++ * (hypercall, #GP emulation), or indirectly (toggle_guest_mode()).
++ *
++ * The vCPU context switch path is optimised based on this fact, so any
++ * path updating or swapping the inactive base must update the cached
++ * value as well.
++ *
++ * Which GS base is active and inactive depends on whether the vCPU is in
++ * user or kernel context.
++ */
+ unsigned long fs_base;
+ unsigned long gs_base_kernel;
+ unsigned long gs_base_user;
diff --git a/README.SUSE b/README.SUSE
new file mode 100644
index 0000000..3d39ccd
--- /dev/null
+++ b/README.SUSE
@@ -0,0 +1,704 @@
+README for the Xen packages
+===========================
+
+This file contains SUSE-specific instructions and suggestions for using Xen.
+
+For more in-depth documentation of using Xen on SUSE, consult the
+virtualization chapter in the SLES or SUSE Linux manual, or read up-to-date
+virtualization information, at
+https://www.suse.com/documentation/sles11/singlehtml/book_xen/book_xen.html
+
+For more complete documentation on Xen itself, please install the xen-doc-html
+package and read the documentation installed into /usr/share/doc/packages/xen/.
+
+
+About
+-----
+Xen allows you to run multiple virtual machines on a single physical machine.
+
+See the Xen homepage for more information:
+ http://www.xenproject.org/
+
+If you want to use Xen, you need to install the Xen hypervisor and a number of
+supporting packages. During the initial SUSE installation (or when installing
+from YaST) check-mark the "Xen Virtual Machine Host Server" pattern. If,
+instead, you wish to install Xen manually later, click on the "Install
+Hypervisor and Tools" icon in YaST.
+
+If you want to install and manage VMs graphically, be sure to install a
+graphical desktop environment like KDE or GNOME. The following optional
+packages are needed to manage VMs graphically. Note that "Install Hypervisor
+and Tools" installs all the packages below:
+ virt-install (Optional, to install VMs)
+ virt-manager (Optional, to manage VMs graphically)
+ virt-viewer (Optional, to view VMs outside virt-manager)
+ vm-install (Optional, to install VMs with xl only)
+
+You then need to reboot your machine. Instead of booting a normal Linux
+kernel, you will boot the Xen hypervisor and a slightly changed Linux kernel.
+This Linux kernel runs in the first virtual machine and will drive most of
+your hardware.
+
+This approach is called paravirtualization, since it is a partial
+virtualization (the Linux kernel needs to be changed slightly, to make the
+virtualization easier). It results in very good performance (consult
+http://www.cl.cam.ac.uk/research/srg/netos/xen/performance.html) but has the
+downside of unchanged operating systems not being supported. However, new
+hardware features (e.g., Intel VT and AMD-V) are overcoming this limitation.
+
+
+Terminology
+-----------
+The Xen open-source community has a number of terms that you should be
+familiar with.
+
+A "domain" is Xen's term for a virtual machine.
+
+"Domain 0" is the first virtual machine. It can control all other virtual
+machines. It also (usually) controls the physical hardware. A kernel used in
+domain 0 may sometimes be referred to as a dom0 kernel.
+
+"Domain U" is any virtual machine other than domain 0. The "U" indicates it
+is unprivileged (that is, it cannot control other domains). A kernel used in
+an unprivileged domain may be referred to as a domU kernel.
+
+SUSE documentation will use the more industry-standard term "virtual
+machine", or "VM", rather than "domain" where possible. And to that end,
+domain 0 will be called the "virtual machine server", since it essentially the
+server on which the other VMs run. All other domains are simply "virtual
+machines".
+
+The acronym "HVM" refers to a hardware-assisted virtual machine. These are
+VMs that have not been modified (e.g., Windows) and therefore need hardware
+support such as Intel VT or AMD-V to run on Xen.
+
+
+Kernels
+-------
+Xen supports two kinds of kernels: A privileged kernel (which boots the
+machine, controls other VMs, and usually controls all your physical hardware)
+and unprivileged kernels (which can't control other VMs, and usually don't need
+drivers for physical hardware). The privileged kernel boots first (as the VM
+server); an unprivileged kernel is used in all subsequent VMs.
+
+The VM server takes control of the boot process after Xen has initialized the
+CPU and the memory. This VM contains a privileged kernel and all the hardware
+drivers.
+
+For the other virtual machines, you usually don't need the hardware drivers.
+(It is possible to hide a PCI device from the VM server and re-assign it to
+another VM for direct access, but that is a more advanced topic.) Instead you
+use virtual network and block device drivers in the unprivileged VMs to access
+the physical network and block drivers in the VM server.
+
+For simplicity, SUSE ships a single Xen-enabled Linux kernel, rather than
+separate privileged and unprivileged kernels. As most of the hardware drivers
+are modules anyway, using this kernel as an unprivileged kernel has very
+little extra overhead.
+
+The kernel is contained in the kernel-xen package, which you need to install to
+use Xen.
+
+
+Booting
+-------
+If you installed Xen during the initial SUSE installation, or installed one
+of the kernel-xen* packages later, a "XEN" option should exist in your Grub
+bootloader. Select that to boot SUSE on top of Xen.
+
+If you want to add additional entries, or modify the existing ones, you may
+run the YaST2 Boot Loader program.
+
+Once you have booted this configuration successfully, you are running Xen with
+a privileged kernel on top of it.
+
+
+Xen Boot Parameters
+-------------------
+Normally, xen.gz requires no parameters. However, in special cases (such as
+debugging or a dedicated VM server) you may wish to pass it parameters.
+
+Adding parameters to xen.gz can be done by editing the /etc/default/grub file.
+Add the following line to this file; GRUB_CMDLINE_XEN_DEFAULT="<parameters>". The
+parameters may be valid options passed to xen.gz (the hypervisor). After
+editing this file, you must first run 'grub2-mkconfig -o /boot/grub2/grub.cfg'
+and then reboot for the changes to take effect.
+
+For more information on how to add options to the hypervisor, see the sections
+below called; "Dom0 Memory Ballooning" and "Troubleshooting".
+
+For a more complete discussion of possible parameters, see the user
+documentation in the xen-doc-html package.
+
+
+Creating a VM with virt-install
+-------------------------------
+The virt-install program (part of the virt-install package, and accessible
+through YaST's Control Center) is the recommended method to create VMs. This
+program handles creating both the VM's libvirt XML definition and disk(s).
+It can help install any operating system, not just SUSE. virt-install has both
+a command line only mode and a graphical wizard mode that may be used to define
+and start VM installations.
+
+virt-install may be launched from the virt-manager VM management tool. Start
+virt-manager either from the YaST Control Center or from the command line.
+The installation icon from the main virt-manager screen may be selected to
+begin the virt-install installation wizard.
+
+The use of virt-install or virt-manager requires the installation of the
+libvirt packages and the libvirt daemon must be running on the host unless
+you are managing a remote host.
+
+Each VM needs to have its own root filesystem. The root filesystem can live
+on a block device (e.g., a hard disk partition, or an LVM2 or EVMS volume) or
+in a file that holds the filesystem image.
+
+VMs can share filesystems, such as /usr or /opt, that are mounted read-only
+from _all_ VMs. Never try to share a filesystem that is mounted read-write;
+filesystem corruption will result. For sharing writable data between VMs, use
+NFS or other networked or cluster filesystems.
+
+When defining the virtual network adapter(s), we recommend using a static MAC
+for the VM rather than allowing Xen to randomly select one each time the VM
+boots. (See "Network Troubleshooting" below.) The Xen Project has been
+allocated a range of MAC addresses with the OUI of 00-16-3E. By using MACs
+from this range you can be sure they will not conflict with any physical
+adapters.
+
+When the VM shuts down (because the installation -- or at least the first
+stage of it -- is done), the wizard finalizes the VM's configuration and
+restarts the VM.
+
+The creation of VMs can be automated; read the virt-install man page for more
+details. The installation of an OS within the VM can be automated if the OS
+supports it.
+
+
+Creating a VM with vm-install
+-----------------------------
+The vm-install program is also provided to create VMs. Like virt-install,
+this optional program handles creating both the VM's libvirt XML definition
+and disk(s). It also creates a legacy configuration file for use with 'xl'.
+It can help install any operating system, not just SUSE.
+
+From the command line, run "vm-install". If the DISPLAY environment variable
+is set and the supporting packages (python-gtk) are installed, a graphical
+wizard will start. Otherwise, a text wizard will start. If vm-install is
+started with the '--use-xl' flag, it will not require libvirt nor attempt
+to communicate with libvirt when creating a VM and instead will only use the
+'xl' toolstack to start VM installations.
+
+Once you have the VM configured, click "OK". The wizard will now create a
+configuration file for the VM, and create a disk image. The disk image will
+exist in /var/lib/xen/images, and a corresponding configuration file will exist
+in /etc/xen/vm. The operating system's installation program will then run
+within the VM.
+
+When the VM shuts down (because the installation -- or at least the first
+stage of it -- is done), the wizard finalizes the VM's configuration and
+restarts the VM.
+
+The creation of VMs can be automated; read the vm-install man page for more
+details. The installation of an OS within the VM can be automated if the OS
+supports it.
+
+
+Creating a VM Manually
+----------------------
+If you create a VM manually (as opposed to using virt-install, which is the
+recommended way), you will need to create a disk (or reuse an existing one)
+and a configuration file.
+
+If you are using a disk or disk image that is already installed with an
+operating system and you want the VM to run in paravirtual mode, you'll
+probably need to replace its kernel with a Xen-enabled kernel.
+
+The kernel and ramdisk used to bootstrap the VM must match any kernel modules
+that might be present in the VM's disk. It is possible to manually copy the
+kernel and ramdisk from the VM's disk (for example, after updating the kernel
+within that VM) to the VM server's filesystem. However, an easier (and less
+error-prone) method is to use /usr/lib/grub2/x86_64-xen/grub.xen as the VM
+kernel. When the new VM is started, it runs grub.xen to read the grub
+configuration from the VM disk, selecting the configured kernel and ramdisk
+so that it can be used to bootstrap the new VM.
+
+Next, make a copy of one of the /etc/xen/examples/* files, and modify it to
+suit your needs. You'll need to change (at very least) the "name" and "disk"
+parameters. See /etc/xen/examples/ for example configuration files.
+
+
+Managing Virtual Machines
+-------------------------
+VMs can be managed from the command line using 'virsh' or from virt-manager.
+
+VMs created by virt-install or vm-install (without vm-install's --use-xl flag)
+will automatically be defined in libvirt. VMs defined in libvirt may be managed
+by virt-manager or from the command line using the 'virsh' command. However,
+if you copy a VM from another machine and manually create a VM XML configuration
+file, you will need to import it into libvirt with a command like:
+ virsh define <path to>/my-vm.xml
+This imports the configuration into libvirt (and therefore virt-manager becomes
+aware of it, also).
+
+Now to start the VM:
+ virsh start my-vm
+or start it from virt-manager's graphical menu.
+
+Have a look at running VMs with "virsh list". Attach to the VM's text console
+with "virsh console <vm-name>". Attaching to multiple VM consoles is most
+conveniently done with the terminal multiplexer "screen".
+
+Have a look at the other virsh commands by typing "virsh help". Note that most
+virsh commands must be done as root.
+
+
+Changes in the Xen VM Management Toolstack
+------------------------------------------
+With SUSE Linux Enterprise Server 12, the way VMs are managed has changed
+when compared with older SLES versions. Users familiar with the 'xm' command
+and the xend management daemon will notice that these are absent. The xm/xend
+toolstack has been replaced with the xl toolstack. The xl toolstack is
+intended to remain backwards compatible with existing xm domain configuration
+files. Most 'xm' commands can simply be replaced with 'xl'. One significant
+difference is that xl does not support the concept of Managed Domains. The xl
+command can only modify running VMs. Once the VM is shutdown, there is no
+preserved state information other than what is saved in the configuration
+file used to start the VM. In order to provide Managed Domains, users are
+encouraged to use libvirt and it's tools to create and modify VMs. These
+tools include the command line tool 'virsh' and the graphical tools
+virt-manager and virt-install.
+
+Warning: Using xl commands to modify libvirt managed domains will result in
+errors when virsh or virt-manager is used. Please use only virsh or
+virt-manager to manage libvirt managed domains. If you are not using libvirt
+managed domains then using xl commands is the correct way to modify running
+domains.
+
+
+Using the Mouse via VNC in Fully Virtual Mode
+---------------------------------------------
+In a fully virtualized VM, the mouse may be emulated as a PS/2 mouse, USB
+mouse, or USB tablet. The virt-install tool selects the best emulation that is
+known to be automatically detected and supported by the operating system.
+
+However, when accessing some fully virtualized operating systems via VNC, the
+mouse may be difficult to control if the VM is emulating a PS/2 mouse. PS/2
+provides mouse deltas, but VNC only provides absolute coordinates. In such
+cases, you may want to manually switch the operating system and VM to use a
+USB tablet.
+
+Emulation of a SummaSketch graphics tablet is provided for this reason. To
+use the Summa emulation, you will need to configure your fully virtualized OS.
+Note that the virtual tablet is connected to the second virtual serial port
+(/dev/ttyS1 or COM2).
+
+Most Linux distributions ship with appropriate drivers, and only need to be
+configured. To configure gpm, edit /etc/sysconfig/mouse and add these lines:
+MOUSETYPE="summa"
+XMOUSETYPE="SUMMA"
+DEVICE=/dev/ttyS1
+The format and location of your configuration file could vary depending upon
+your Linux distribution. The goal is to run the gpm daemon as follows:
+ gpm -t summa -m /dev/ttyS1
+X also needs to be configured to use the Summa emulation. Add the following
+stanza to /etc/X11/xorg.conf, or use your distribution's tools to add these
+settings:
+Section "InputDevice"
+ Identifier "Mouse0"
+ Driver "summa"
+ Option "Device" "/dev/ttyS1"
+ Option "InputFashion" "Tablet"
+ Option "Mode" "Absolute"
+ Option "Name" "EasyPen"
+ Option "Compatible" "True"
+ Option "Protocol" "Auto"
+ Option "SendCoreEvents" "on"
+ Option "Vendor" "GENIUS"
+EndSection
+After making these changes, restart gpm and X.
+
+
+HVM Console in Fully Virtual Mode
+---------------------------------
+When running a VM in fully virtual mode, a special console is available that
+provides some additional ways to control the VM. Press Ctrl-Alt-2 to access
+the console; press Ctrl-Alt-1 to return to the VM. While at the console,
+type "help" for help.
+
+The two most important commands are "send-key" and "change". The "send-key"
+command allows you to send any key sequence to the VM, which might otherwise
+be intercepted by your local window manager.
+
+The "change" command allows the target of a block device to be changed; for
+example, use it to change from one CD ISO to another. Some versions of Xen
+have this command disabled for security reasons. Consult the online
+documentation for workarounds.
+
+
+Networking
+----------
+Your virtual machines become much more useful if you can reach them via the
+network. Starting with openSUSE11.1 and SLE11, networking in domain 0 is
+configured and managed via YaST. The yast2-networking module can be used
+to create and manage bridged networks. During initial installation, a bridged
+networking proposal will be presented if the "Xen Virtual Machine Host Server"
+pattern is selected. The proposal will also be presented if you install Xen
+after initial installation using the "Install Hypervisor and Tools" module in
+YaST.
+
+The default proposal creates a virtual bridge in domain 0 for each active
+ethernet device, enslaving the device to the bridge. Consider a machine
+containing two ethernet devices (eth0 and eth1), both with active carriers.
+YaST will create br0 and br1, enslaving the eth0 and eth1 devices repectively.
+
+VMs get a virtual network interface (e.g. eth0), which is visible in domain 0
+as vifN.0 and connected to the bridge. This means that if you set up an IP
+address in the VMs belonging to the same subnet as br0 from your domain 0,
+you'll be able to communicate not only with the other slave VMs, but also with
+domain 0 and with the external network. If you have a DHCP server running in
+your network, your VMs should succeed in getting an IP address.
+
+Be aware that this may have unwanted security implications. You may want to
+opt for routing instead of bridging, so you can set up firewalling rules in
+domain 0.
+
+Please read about the network configuration in the Xen manual. You can set up
+bridging or routing for other interfaces also.
+
+For debugging, here's what happens on bootup of a domU:
+- xenstored saves the device setup in xenstore
+- domU is created
+- vifN.0 shows up in domain 0 and a hotplug event is triggered
+- hotplug is /sbin/udev; udev looks at /etc/udev/rules.d/40-xen.rules and
+ calls /etc/xen/scripts/vif-bridge online
+- vif-bridge set the vifN.0 device up and enslaves it to the bridge
+- eth0 shows up in domU (hotplug event triggered)
+Similar things happen for block devices, except that /etc/xen/scripts/block is
+called.
+
+It's not recommended to use ifplugd nor NetworkManager for managing the
+interfaces if you use bridging mode. Use routing with nat or proxy-arp
+in that case. You also need to do that in case you want to send out packets
+on wireless; you can't bridge Xen "ethernet" packets into 802.11 packets.
+
+
+Network Troubleshooting
+-----------------------
+First ensure the VM server is configured correctly and can access the network.
+
+Do not use ifplugd or NetworkManager, neither are bridge aware.
+
+Specify a static virtual MAC in the VM's configuration file. Random MACs can
+be problematic, since with each boot of the VM it appears that some hardware
+has been removed (the previous random MAC) and new hardware is present (the
+new random MAC). This can cause network configuration files (which were
+intended for the old MAC) to not be matched up with the new virtual hardware.
+
+In the VM's filesystem, ensure the ifcfg-eth* files are named appropriately.
+For example, if you do decide to use a randomly-selected MAC for the VM, the
+ifcfg-eth* file must not include the MAC in its name; name it generically
+("ifcfg-eth0") instead. If you use a static virtual MAC for the VM, be sure
+that is reflected in the file's name.
+
+
+Thread-Local Storage
+--------------------
+For some time now, the glibc thread library (NPTL) has used a shortcut to
+access thread-local variables at a negative segment offset from the segment
+selector GS instead of reading the linear address from the TDB (offset 0).
+Unfortunately, this optimization has been made the default by the glibc and
+gcc maintainers, as it saves one indirection. For Xen this is bad: The access
+to these variables will trap, and Xen will need to use some tricks to make the
+access work. It does work, but it's very slow.
+
+SUSE Linux 9.1 and SLES 9 were prior to this change, and thus are not
+affected. SUSE Linux 9.2 and 9.3 are affected. For SUSE Linux 10.x and SLES
+10, we have disabled negative segment references in gcc and glibc, and so
+these are not affected. Other non-SUSE Linux distributions may be affected.
+
+For affected distributions, one way to work around the problem is to rename
+the /lib/tls directory, so the pre-i686 version gets used, where no such
+tricks are done. An example LSB-compliant init script which automates these
+steps is installed at /usr/share/doc/packages/xen/boot.xen. This script
+renames /lib/tls when running on Xen, and restores it when not running on Xen.
+Modify this script to work with your specific distribution.
+
+Mono has a similar problem, but this has been fixed in SUSE Linux 10.1 and
+SLES 10. Older or non-SUSE versions of Mono may have a performance impact.
+
+
+Security
+--------
+Domain 0 has control over all domains. This means that care should be taken to
+keep domain 0 safe; ideally you strip it down to only do as little there as
+possible, preferably with no local users except for the system administrator.
+Most commands in domain 0 can only be performed as root, but this protection
+scheme only has moderate security and might be defeated. In case domain 0 is
+compromised, all other domains are compromised as well.
+
+To allow relocation of VMs (migration), the receiving machine listens on TCP
+port 8002. You might want to put firewall rules in place in domain 0 to
+restrict this to machines which you trust. Relocating VMs with sensitive data
+is not a good idea in untrusted networks, since the data is not sent encrypted.
+
+The memory protections for the domUs are effective; so far no way to break out
+of a virtual machine is known. A VM is an effective jail.
+
+
+Limitations
+-----------
+When booting, Linux reserves data structures matching the amount of RAM found.
+This has the side-effect that you can't dynamically grow the memory beyond
+what the kernel has been booted with. But you can trick domU Linux to prepare
+for a larger amount of RAM by passing the mem= boot parameter.
+
+The export of virtual hard disks from files in Xen can be handled via the
+loopback driver (although in Xen >= 3.0.4, this is can be replaced by the
+"blktap" user-space driver.) If you are still using loopback, it may be
+possible to run out of loopback devices, as by default only 64 are supported.
+You can change this by inserting:
+options loop max_loop=128
+into /etc/modprobe.conf.local in domain 0.
+
+
+Upgrading the Host Operating System
+-----------------------------------
+When upgrading the host operating system from one major release to another
+(for example, SLES 11 to SLES 12 or openSUSE 12.3 to openSUSE 13.1) or when
+applying a service pack like SLES 11 SP3 to SLES 11 SP2 all running VMs must
+be shut down before the upgrade process is begun.
+
+On versions of SLES 11 and openSUSE 12 you are using the xm/xend toolstack.
+After upgrading to SLES 12 and newer openSUSE versions this toolstack will be
+replaced with the xl toolstack. The xl toolstack does not support Managed
+Domains. If you wish to continue using Managed Domains you must switch to
+using libvirt and its command line interface 'virsh'. You may also use
+virt-manager as a GUI interface to libvirt. After upgrading the host but
+before you can begin using libvirt on VMs that were previously managed by
+xm/xend, you must run a conversion tool called /usr/sbin/xen2libvirt for all
+VMs.
+
+For example, to convert all domains previously managed by xend:
+ xen2libvirt -r /var/lib/xend/domains/
+
+Now typing 'virsh list --all' will show your previously xend managed domains
+being managed by libvirt. Run 'xen2libvirt -h' to see additional options for
+using this tool.
+
+
+Memory Ballooning in VMs
+------------------------
+Setting a VMs maximum memory value greater than the initial memory value
+requires support for memory ballooning in the VMs operating system. Modern SLES
+and openSUSE guests have this capability built-in. Windows installation media
+does not support memory ballooning so you must first install the VM without
+memory ballooning (maxmem equal to initial memory). After the installation, the
+Virtual Machine Driver Pack (vmdp) must be installed. After this, the VMs
+maxmem value may be increased. A reboot of the VM is required for this action
+to take effect.
+
+
+Dom0 Memory Ballooning
+----------------------
+It is strongly recommended that you dedicate a fixed amount of RAM to dom0
+rather than relying on dom0 auto ballooning. Doing so will ensure your dom0
+has enough resources to operate well and will improve startup times for your
+VMs. The amount of RAM dedicated to dom0 should never be less than the
+recommended minimum amount for running your SUSE distribution in native mode.
+The actual amount of RAM needed for dom0 depends on several factors including
+how much physical RAM is on the host, the number of physical CPUs, and the
+number of VMs running simultaneously where each VM has a specific requirement
+for RAM. The following example shows the syntax for doing this. This would be
+added to your grub1 or grub2 configuration;
+
+Grub2 Example:
+ Edit /etc/default/grub and add,
+ GRUB_CMDLINE_XEN_DEFAULT="dom0_mem=1024M,max:1024M"
+ and then run
+ grub2-mkconfig -o /boot/grub2/grub.cfg
+
+Grub1 Example:
+ Edit /boot/grub/menu.lst and edit the line containing xen.gz
+ kernel /boot/xen.gz dom0_mem=1024M,max:1024M
+
+After modifying your grub configuration, you will need to edit /etc/xen/xl.conf
+and set autoballoon="off". This will prevent xl from automatically adjusting
+the amount of memory assigned to dom0. Reboot the host for these changes to
+take effect.
+
+
+Adjusting LIBXL_HOTPLUG_TIMEOUT at runtime
+------------------------------------------
+A domU with a large amount of disks may run into the hardcoded
+LIBXL_HOTPLUG_TIMEOUT limit, which is 40 seconds. This happens if the
+preparation for each disk takes an unexpected large amount of time. Then
+the sum of all configured disks and the individual preparation time will
+be larger than 40 seconds. The hotplug script which does the preparation
+takes a lock before doing the actual preparation. Since the hotplug
+scripts for each disk are spawned at nearly the same time, each one has
+to wait for the lock. Due to this contention, the total execution time
+of a script can easily exceed the timeout. In this case libxl will
+terminate the script because it has to assume an error condition.
+
+Example:
+10 configured disks, each one takes 3 seconds within the critital
+section. The total execution time will be 30 seconds, which is still
+within the limit. With 5 additional configured disks, the total
+execution time will be 45 seconds, which would trigger the timeout.
+
+To handle such setup without a recompile of libxl, a special key/value
+has to be created in xenstore prior domain creation. This can be done
+either manually, or at system startup. A dedicated systemd service file
+exists to set the required value. To enable it, run these commands:
+
+/etc/systemd/system # systemctl enable xen-LIBXL_HOTPLUG_TIMEOUT.service
+/etc/systemd/system # systemctl start xen-LIBXL_HOTPLUG_TIMEOUT.service
+
+
+In case the value in this service file needs to be changed, a copy with
+the exact same name must be created in the /etc/systemd/system directory:
+
+/etc/systemd/system # cat xen-LIBXL_HOTPLUG_TIMEOUT.service
+[Unit]
+Description=set global LIBXL_HOTPLUG_TIMEOUT
+ConditionPathExists=/proc/xen/capabilities
+
+Requires=xenstored.service
+After=xenstored.service
+Requires=xen-init-dom0.service
+After=xen-init-dom0.service
+Before=xencommons.service
+
+[Service]
+Type=oneshot
+RemainAfterExit=true
+ExecStartPre=/bin/grep -q control_d /proc/xen/capabilities
+ExecStart=/usr/bin/xenstore-write /libxl/suse/per-device-LIBXL_HOTPLUG_TIMEOUT 10
+
+[Install]
+WantedBy=multi-user.target
+
+In this example the per-device value will be set to 10 seconds.
+
+The change for libxl which handles this xenstore value will enable
+additional logging if the key is found. That extra logging will show how
+the execution time of each script.
+
+
+Troubleshooting
+---------------
+First try to get Linux running on bare metal before trying with Xen.
+
+Be sure your Xen hypervisor (xen) and VM kernels (kernel-xen) are compatible.
+The hypervisor and domain 0 kernel are a matched set, and usually must be
+upgraded together. Consult the online documentation for a matrix of supported
+32- and 64-bit combinations
+
+If you have trouble early in the boot, try passing pnpacpi=off to the Linux
+kernel. If you have trouble with interrupts or timers, passing lapic to Xen
+may help. Xen and Linux understand similar ACPI boot parameters. Try the
+options acpi=off,force,ht,noirq or acpi_skip_timer_override.
+
+Other useful debugging options to Xen may be nosmp, noreboot, mem=4096M,
+sync_console, noirqbalance (Dell). For a complete list of Xen boot options,
+consult the "Xen Hypervisor Command Line Options" documentation.
+
+If domain 0 Linux crashes on X11 startup, please try to boot into runlevel 3.
+
+1) As a first step in debugging Xen you should add the following hypervisor
+options to the xen.gz line in your grub configuration file. After rebooting,
+the 'xl dmesg' command will produce more output to better analyze problems.
+
+Grub2 Example:
+ Edit /etc/default/grub and add,
+ GRUB_CMDLINE_XEN_DEFAULT="loglvl=all guest_loglvl=all"
+ and then run,
+ grub2-mkconfig -o /boot/grub2/grub.cfg
+
+Grub1 Example:
+ Edit /boot/grub/menu.lst and edit the line containing xen.gz
+ kernel /boot/xen.gz loglvl=all guest_loglvl=all
+
+2) With the log levels specified above and the host rebooted, more useful
+information about domain 0 and running VMs can be obtained using the
+'xl dmesg' and 'xl debug-keys' commands. For example, from the command line
+run:
+ xl debug-keys h
+and then run:
+ xl dmesg
+Note that at the end of the output from 'xl dmesg' it includes help on a
+series of commands that may be passed to 'xl debug-keys'. For example, by
+passing the letter 'q' to 'xl debug-keys' it will "dump domain (and guest
+debug) info".
+ xl debug-keys q
+Now you can again run 'xl dmesg' to see the domain and guest debug info.
+
+3) Sometimes it is useful to attach a serial terminal and direct Xen to send
+its output not only to the screen, but also to that terminal. First you need
+to attach a serial cable from the serial port on the server to a second
+machine's serial port. That second machine could be running minicom (or some
+other program that can be setup to read from the serial port). Do the
+following to prepare Xen to send its output over this serial line.
+
+Grub2 Example:
+ Edit /etc/default/grub and add,
+ GRUB_CMDLINE_XEN_DEFAULT="loglvl=all guest_loglvl=all console=com1 com1=115200,8n1"
+ Also append additional serial flags to the option below such that it appears as,
+ GRUB_CMDLINE_LINUX_DEFAULT="<pre-existing flags> console=ttyS0, 115200"
+ where pre-existing flags are those options already present and then run,
+ grub2-mkconfig -o /boot/grub2/grub.cfg
+
+Grub1 Example:
+ Edit the /etc/grub/menu.lst file and add the following to the Xen entry,
+ kernel /boot/xen.gz loglvl=all guest_loglvl=all console=com1 com1=115200,8n1
+ module /boot/vmlinuz-xen <pre-existing flags> console=ttyS0, 115200
+
+Once the hardware and software are configured correctly the server is rebooted
+and its output should appear on the other terminal as the server boots up.
+
+4) To further debug Xen or domain 0 Linux crashes or hangs, it may be useful to
+use the debug-enabled hypervisor, and/or to prevent automatic rebooting.
+
+Grub2 Example:
+ Edit /etc/default/grub and add,
+ GRUB_CMDLINE_XEN_DEFAULT="noreboot loglvl=all guest_loglvl=all"
+ Edit /boot/grub2/grub.cfg and look for these lines:
+ multiboot /boot/xen-<version>.gz ...
+ and replace them with:
+ multiboot /boot/xen-dbg-<version>.gz' ... Replace <version> with the
+ appropriate version string contained in the filename. Note that running
+ grub2-mkconfig -o /boot/grub2/grub.cfg will overwrite all manual changes
+ made to grub.cfg.
+
+Grub1 Example:
+ Edit your menu.lst configuration from something like this:
+ kernel (hd0,5)/xen.gz
+ To something like this:
+ kernel (hd0,5)/xen-dbg.gz noreboot loglvl=all guest_loglvl=all
+
+All hypervisor options require a reboot to take effect. After rebooting, the
+Xen hypervisor will write any error messages to the log file (viewable with
+the "xl dmesg" command).
+
+If problems persist, check if a newer version is available. Well-tested
+versions will be shipped with SUSE and via YaST Online Update.
+
+
+Resources
+---------
+https://www.suse.com/documentation/sles11/singlehtml/book_xen/book_xen.html
+http://doc.opensuse.org/products/draft/SLES/SLES-xen_sd_draft/cha.xen.basics.html
+
+
+Feedback
+--------
+In case you have remarks about, problems with, ideas for, or praise for Xen,
+please report it back to the xen-devel list:
+ xen-devel@lists.xen.org
+If you find issues with the packaging or setup done by SUSE, please report
+it through bugzilla:
+ https://bugzilla.suse.com
+
+
+ ENJOY!
+ Your SUSE Team.
diff --git a/aarch64-maybe-uninitialized.patch b/aarch64-maybe-uninitialized.patch
new file mode 100644
index 0000000..7877ba3
--- /dev/null
+++ b/aarch64-maybe-uninitialized.patch
@@ -0,0 +1,22 @@
+Index: xen-4.12.0-testing/tools/libxl/libxl_arm_acpi.c
+===================================================================
+--- xen-4.12.0-testing.orig/tools/libxl/libxl_arm_acpi.c
++++ xen-4.12.0-testing/tools/libxl/libxl_arm_acpi.c
+@@ -99,7 +99,7 @@ int libxl__get_acpi_size(libxl__gc *gc,
+ const libxl_domain_build_info *info,
+ uint64_t *out)
+ {
+- uint64_t size;
++ uint64_t size = 0;
+ int rc = 0;
+
+
+@@ -124,7 +124,7 @@ static int libxl__allocate_acpi_tables(l
+ struct acpitable acpitables[])
+ {
+ int rc;
+- size_t size;
++ size_t size = 0;
+
+ acpitables[RSDP].addr = GUEST_ACPI_BASE;
+ acpitables[RSDP].size = sizeof(struct acpi_table_rsdp);
diff --git a/aarch64-rename-PSR_MODE_ELxx-to-match-linux-headers.patch b/aarch64-rename-PSR_MODE_ELxx-to-match-linux-headers.patch
new file mode 100644
index 0000000..256006a
--- /dev/null
+++ b/aarch64-rename-PSR_MODE_ELxx-to-match-linux-headers.patch
@@ -0,0 +1,37 @@
+From 98abe3b337e69371678859c4cfd19df61aebb0d9 Mon Sep 17 00:00:00 2001
+From: Olaf Hering <olaf@aepfle.de>
+Date: Sun, 2 Feb 2014 20:42:42 +0100
+Subject: aarch64: rename PSR_MODE_ELxx to match linux headers
+
+https://bugs.launchpad.net/linaro-aarch64/+bug/1169164
+
+Signed-off-by: Olaf Hering <olaf@aepfle.de>
+---
+ xen/include/public/arch-arm.h | 14 +++++++-------
+ 1 file changed, 7 insertions(+), 7 deletions(-)
+
+Index: xen-4.13.0-testing/xen/include/public/arch-arm.h
+===================================================================
+--- xen-4.13.0-testing.orig/xen/include/public/arch-arm.h
++++ xen-4.13.0-testing/xen/include/public/arch-arm.h
+@@ -371,13 +371,13 @@ typedef uint64_t xen_callback_t;
+
+ /* 64 bit modes */
+ #define PSR_MODE_BIT 0x10 /* Set iff AArch32 */
+-#define PSR_MODE_EL3h 0x0d
+-#define PSR_MODE_EL3t 0x0c
+-#define PSR_MODE_EL2h 0x09
+-#define PSR_MODE_EL2t 0x08
+-#define PSR_MODE_EL1h 0x05
+-#define PSR_MODE_EL1t 0x04
+-#define PSR_MODE_EL0t 0x00
++#define PSR_MODE_EL3h 0x0000000d
++#define PSR_MODE_EL3t 0x0000000c
++#define PSR_MODE_EL2h 0x00000009
++#define PSR_MODE_EL2t 0x00000008
++#define PSR_MODE_EL1h 0x00000005
++#define PSR_MODE_EL1t 0x00000004
++#define PSR_MODE_EL0t 0x00000000
+
+ #define PSR_GUEST32_INIT (PSR_ABT_MASK|PSR_FIQ_MASK|PSR_IRQ_MASK|PSR_MODE_SVC)
+ #define PSR_GUEST64_INIT (PSR_ABT_MASK|PSR_FIQ_MASK|PSR_IRQ_MASK|PSR_MODE_EL1h)
diff --git a/baselibs.conf b/baselibs.conf
new file mode 100644
index 0000000..8cf2e95
--- /dev/null
+++ b/baselibs.conf
@@ -0,0 +1 @@
+xen-libs
diff --git a/bin-python3-conversion.patch b/bin-python3-conversion.patch
new file mode 100644
index 0000000..a4ba566
--- /dev/null
+++ b/bin-python3-conversion.patch
@@ -0,0 +1,428 @@
+Index: xen-4.13.0-testing/tools/misc/xencons
+===================================================================
+--- xen-4.13.0-testing.orig/tools/misc/xencons
++++ xen-4.13.0-testing/tools/misc/xencons
+@@ -1,4 +1,4 @@
+-#!/usr/bin/env python
++#!/usr/bin/python3
+
+ ##############################################
+ # Console client for Xen guest OSes
+@@ -27,13 +27,13 @@ def __recv_from_sock(sock):
+ while not stop:
+ try:
+ data = sock.recv(1024)
+- except socket.error, error:
++ except socket.error as error:
+ if error[0] != errno.EINTR:
+ raise
+ else:
+ try:
+ os.write(1, data)
+- except os.error, error:
++ except os.error as error:
+ if error[0] != errno.EINTR:
+ raise
+ os.wait()
+@@ -42,7 +42,7 @@ def __send_to_sock(sock):
+ while 1:
+ try:
+ data = os.read(0,1024)
+- except os.error, error:
++ except os.error as error:
+ if error[0] != errno.EINTR:
+ raise
+ else:
+@@ -50,7 +50,7 @@ def __send_to_sock(sock):
+ break
+ try:
+ sock.send(data)
+- except socket.error, error:
++ except socket.error as error:
+ if error[0] == errno.EPIPE:
+ sys.exit(0)
+ if error[0] != errno.EINTR:
+@@ -73,20 +73,20 @@ def connect(host,port):
+
+ if os.fork():
+ signal.signal(signal.SIGCHLD, __child_death)
+- print "************ REMOTE CONSOLE: CTRL-] TO QUIT ********"
++ print("************ REMOTE CONSOLE: CTRL-] TO QUIT ********")
+ tcsetattr(0, TCSAFLUSH, nattrs)
+ try:
+ __recv_from_sock(sock)
+ finally:
+ tcsetattr(0, TCSAFLUSH, oattrs)
+- print
+- print "************ REMOTE CONSOLE EXITED *****************"
++ print()
++ print("************ REMOTE CONSOLE EXITED *****************")
+ else:
+ signal.signal(signal.SIGPIPE, signal.SIG_IGN)
+ __send_to_sock(sock)
+
+ if __name__ == '__main__':
+ if len(sys.argv) != 3:
+- print sys.argv[0] + " <host> <port>"
++ print(sys.argv[0] + " <host> <port>")
+ sys.exit(1)
+ connect(str(sys.argv[1]),int(sys.argv[2]))
+Index: xen-4.13.0-testing/tools/misc/xencov_split
+===================================================================
+--- xen-4.13.0-testing.orig/tools/misc/xencov_split
++++ xen-4.13.0-testing/tools/misc/xencov_split
+@@ -1,4 +1,4 @@
+-#!/usr/bin/python
++#!/usr/bin/python3
+
+ import sys, os, os.path as path, struct, errno
+ from optparse import OptionParser
+@@ -51,7 +51,7 @@ def xencov_split(opts):
+ dir = opts.output_dir + path.dirname(fn)
+ try:
+ os.makedirs(dir)
+- except OSError, e:
++ except OSError as e:
+ if e.errno == errno.EEXIST and os.path.isdir(dir):
+ pass
+ else:
+@@ -89,8 +89,8 @@ def main():
+ if __name__ == "__main__":
+ try:
+ sys.exit(main())
+- except Exception, e:
+- print >>sys.stderr, "Error:", e
++ except Exception as e:
++ print("Error:", e, file=sys.stderr)
+ sys.exit(1)
+ except KeyboardInterrupt:
+ sys.exit(1)
+Index: xen-4.13.0-testing/tools/misc/xenpvnetboot
+===================================================================
+--- xen-4.13.0-testing.orig/tools/misc/xenpvnetboot
++++ xen-4.13.0-testing/tools/misc/xenpvnetboot
+@@ -1,4 +1,4 @@
+-#!/usr/bin/env python
++#!/usr/bin/python3
+ #
+ # Copyright (C) 2010 Oracle. All rights reserved.
+ #
+@@ -17,9 +17,9 @@ import time
+ import string
+ import random
+ import tempfile
+-import commands
+ import subprocess
+-import urlgrabber
++import subprocess
++import urllib.request as request
+ from optparse import OptionParser
+
+
+@@ -58,7 +58,7 @@ def mount(dev, path, option=''):
+ else:
+ mountcmd = '/bin/mount'
+ cmd = ' '.join([mountcmd, option, dev, path])
+- (status, output) = commands.getstatusoutput(cmd)
++ (status, output) = subprocess.getstatusoutput(cmd)
+ if status != 0:
+ raise RuntimeError('Command: (%s) failed: (%s) %s' % (cmd, status, output))
+
+@@ -79,7 +79,7 @@ class Fetcher:
+
+ def prepare(self):
+ if not os.path.exists(self.tmpdir):
+- os.makedirs(self.tmpdir, 0750)
++ os.makedirs(self.tmpdir, 0o750)
+
+ def cleanup(self):
+ pass
+@@ -89,8 +89,8 @@ class Fetcher:
+ suffix = ''.join(random.sample(string.ascii_letters, 6))
+ local_name = os.path.join(self.tmpdir, 'xenpvboot.%s.%s' % (os.path.basename(filename), suffix))
+ try:
+- return urlgrabber.urlgrab(url, local_name, copy_local=1)
+- except Exception, err:
++ return request.urlretrieve(url, local_name)
++ except Exception as err:
+ raise RuntimeError('Cannot get file %s: %s' % (url, err))
+
+
+@@ -155,7 +155,7 @@ class TFTPFetcher(Fetcher):
+ suffix = ''.join(random.sample(string.ascii_letters, 6))
+ local_name = os.path.join(self.tmpdir, 'xenpvboot.%s.%s' % (os.path.basename(filename), suffix))
+ cmd = '/usr/bin/tftp %s -c get %s %s' % (host, os.path.join(basedir, filename), local_name)
+- (status, output) = commands.getstatusoutput(cmd)
++ (status, output) = subprocess.getstatusoutput(cmd)
+ if status != 0:
+ raise RuntimeError('Command: (%s) failed: (%s) %s' % (cmd, status, output))
+ return local_name
+@@ -202,7 +202,7 @@ Supported locations:
+
+ if not opts.location and not opts.kernel and not opts.ramdisk:
+ if not opts.quiet:
+- print >> sys.stderr, 'You should at least specify a location or kernel/ramdisk.'
++ print('You should at least specify a location or kernel/ramdisk.', file=sys.stderr)
+ parser.print_help(sys.stderr)
+ sys.exit(1)
+
+@@ -228,14 +228,14 @@ Supported locations:
+ fetcher = TFTPFetcher(location, opts.output_directory)
+ else:
+ if not opts.quiet:
+- print >> sys.stderr, 'Unsupported location: %s' % location
++ print('Unsupported location: %s' % location, file=sys.stderr)
+ sys.exit(1)
+
+ try:
+ fetcher.prepare()
+- except Exception, err:
++ except Exception as err:
+ if not opts.quiet:
+- print >> sys.stderr, str(err)
++ print(str(err), file=sys.stderr)
+ fetcher.cleanup()
+ sys.exit(1)
+
+@@ -247,15 +247,15 @@ Supported locations:
+ for (kernel_path, _) in XEN_PATHS:
+ try:
+ kernel = fetcher.get_file(kernel_path)
+- except Exception, err:
++ except Exception as err:
+ if not opts.quiet:
+- print >> sys.stderr, str(err)
++ print(str(err), file=sys.stderr)
+ continue
+ break
+
+ if not kernel:
+ if not opts.quiet:
+- print >> sys.stderr, 'Cannot get kernel from loacation: %s' % location
++ print('Cannot get kernel from loacation: %s' % location, file=sys.stderr)
+ sys.exit(1)
+
+ ramdisk = None
+@@ -265,9 +265,9 @@ Supported locations:
+ for (_, ramdisk_path) in XEN_PATHS:
+ try:
+ ramdisk = fetcher.get_file(ramdisk_path)
+- except Exception, err:
++ except Exception as err:
+ if not opts.quiet:
+- print >> sys.stderr, str(err)
++ print(str(err), file=sys.stderr)
+ continue
+ break
+ finally:
+@@ -280,7 +280,7 @@ Supported locations:
+ elif opts.output_format == 'simple0':
+ output = format_simple(kernel, ramdisk, opts.args, '\0')
+ else:
+- print >> sys.stderr, 'Unknown output format: %s' % opts.output_format
++ print('Unknown output format: %s' % opts.output_format, file=sys.stderr)
+ sys.exit(1)
+
+ sys.stdout.flush()
+Index: xen-4.13.0-testing/tools/python/scripts/convert-legacy-stream
+===================================================================
+--- xen-4.13.0-testing.orig/tools/python/scripts/convert-legacy-stream
++++ xen-4.13.0-testing/tools/python/scripts/convert-legacy-stream
+@@ -1,4 +1,4 @@
+-#!/usr/bin/env python
++#!/usr/bin/python3
+ # -*- coding: utf-8 -*-
+
+ """
+@@ -39,16 +39,16 @@ def info(msg):
+ for line in msg.split("\n"):
+ syslog.syslog(syslog.LOG_INFO, line)
+ else:
+- print msg
++ print(msg)
+
+ def err(msg):
+ """Error message, routed to appropriate destination"""
+ if log_to_syslog:
+ for line in msg.split("\n"):
+ syslog.syslog(syslog.LOG_ERR, line)
+- print >> sys.stderr, msg
++ print(msg, file=sys.stderr)
+
+-class StreamError(StandardError):
++class StreamError(Exception):
+ """Error with the incoming migration stream"""
+ pass
+
+@@ -637,7 +637,7 @@ def open_file_or_fd(val, mode):
+ else:
+ return open(val, mode, 0)
+
+- except StandardError, e:
++ except Exception as e:
+ if fd != -1:
+ err("Unable to open fd %d: %s: %s" %
+ (fd, e.__class__.__name__, e))
+@@ -723,7 +723,7 @@ def main():
+ if __name__ == "__main__":
+ try:
+ sys.exit(main())
+- except SystemExit, e:
++ except SystemExit as e:
+ sys.exit(e.code)
+ except KeyboardInterrupt:
+ sys.exit(1)
+Index: xen-4.13.0-testing/tools/python/scripts/verify-stream-v2
+===================================================================
+--- xen-4.13.0-testing.orig/tools/python/scripts/verify-stream-v2
++++ xen-4.13.0-testing/tools/python/scripts/verify-stream-v2
+@@ -1,4 +1,4 @@
+-#!/usr/bin/env python
++#!/usr/bin/python3
+ # -*- coding: utf-8 -*-
+
+ """ Verify a v2 format migration stream """
+@@ -25,7 +25,7 @@ def info(msg):
+ for line in msg.split("\n"):
+ syslog.syslog(syslog.LOG_INFO, line)
+ else:
+- print msg
++ print(msg)
+
+ def err(msg):
+ """Error message, routed to appropriate destination"""
+@@ -33,7 +33,7 @@ def err(msg):
+ if log_to_syslog:
+ for line in msg.split("\n"):
+ syslog.syslog(syslog.LOG_ERR, line)
+- print >> sys.stderr, msg
++ print(msg, file=sys.stderr)
+
+ def stream_read(_ = None):
+ """Read from input"""
+@@ -86,7 +86,7 @@ def read_stream(fmt):
+ err(traceback.format_exc())
+ return 1
+
+- except StandardError:
++ except Exception:
+ err("Script Error:")
+ err(traceback.format_exc())
+ err("Please fix me")
+@@ -114,7 +114,7 @@ def open_file_or_fd(val, mode, buffering
+ else:
+ return open(val, mode, buffering)
+
+- except StandardError, e:
++ except Exception as e:
+ if fd != -1:
+ err("Unable to open fd %d: %s: %s" %
+ (fd, e.__class__.__name__, e))
+@@ -168,7 +168,7 @@ def main():
+ if __name__ == "__main__":
+ try:
+ sys.exit(main())
+- except SystemExit, e:
++ except SystemExit as e:
+ sys.exit(e.code)
+ except KeyboardInterrupt:
+ sys.exit(2)
+Index: xen-4.13.0-testing/tools/xenmon/xenmon.py
+===================================================================
+--- xen-4.13.0-testing.orig/tools/xenmon/xenmon.py
++++ xen-4.13.0-testing/tools/xenmon/xenmon.py
+@@ -1,4 +1,4 @@
+-#!/usr/bin/env python
++#!/usr/bin/python3
+
+ #####################################################################
+ # xenmon is a front-end for xenbaked.
+Index: xen-4.13.0-testing/tools/xentrace/xentrace_format
+===================================================================
+--- xen-4.13.0-testing.orig/tools/xentrace/xentrace_format
++++ xen-4.13.0-testing/tools/xentrace/xentrace_format
+@@ -1,4 +1,4 @@
+-#!/usr/bin/env python
++#!/usr/bin/python3
+
+ # by Mark Williamson, (C) 2004 Intel Research Cambridge
+
+@@ -7,8 +7,7 @@
+ import re, sys, string, signal, struct, os, getopt
+
+ def usage():
+- print >> sys.stderr, \
+- "Usage: " + sys.argv[0] + """ defs-file
++ print("Usage: " + sys.argv[0] + """ defs-file
+ Parses trace data in binary format, as output by Xentrace and
+ reformats it according to the rules in a file of definitions. The
+ rules in this file should have the format ({ and } show grouping
+@@ -29,7 +28,7 @@ def usage():
+ this script may not be able to keep up with the output of xentrace
+ if it is piped directly. In these circumstances you should have
+ xentrace output to a file for processing off-line.
+- """
++ """, file=sys.stderr)
+ sys.exit(1)
+
+ def read_defs(defs_file):
+@@ -49,7 +48,7 @@ def read_defs(defs_file):
+
+ m = reg.match(line)
+
+- if not m: print >> sys.stderr, "Bad format file" ; sys.exit(1)
++ if not m: print("Bad format file", file=sys.stderr) ; sys.exit(1)
+
+ defs[str(eval(m.group(1)))] = m.group(2)
+
+@@ -83,8 +82,8 @@ interrupted = 0
+
+ try:
+ defs = read_defs(arg[0])
+-except IOError, exn:
+- print exn
++except IOError as exn:
++ print(exn)
+ sys.exit(1)
+
+ # structure of trace record (as output by xentrace):
+@@ -211,7 +210,7 @@ while not interrupted:
+ if cpu >= len(last_tsc):
+ last_tsc += [0] * (cpu - len(last_tsc) + 1)
+ elif tsc < last_tsc[cpu] and tsc_in == 1:
+- print "TSC stepped backward cpu %d ! %d %d" % (cpu,tsc,last_tsc[cpu])
++ print("TSC stepped backward cpu %d ! %d %d" % (cpu,tsc,last_tsc[cpu]))
+
+ # provide relative TSC
+ if last_tsc[cpu] > 0 and tsc_in == 1:
+@@ -239,18 +238,20 @@ while not interrupted:
+
+ try:
+
+- if defs.has_key(str(event)):
+- print defs[str(event)] % args
++ if str(event) in defs:
++ print(defs[str(event)] % args)
+ else:
+- if defs.has_key(str(0)): print defs[str(0)] % args
++ if str(0) in defs: print(defs[str(0)] % args)
+ except TypeError:
+- if defs.has_key(str(event)):
+- print defs[str(event)]
+- print args
++ if str(event) in defs:
++ print(defs[str(event)])
++ print(args)
+ else:
+- if defs.has_key(str(0)):
+- print defs[str(0)]
+- print args
++ if str(0) in defs:
++ print(defs[str(0)])
++ print(args)
+
+
+- except IOError, struct.error: sys.exit()
++ except IOError as xxx_todo_changeme:
++ struct.error = xxx_todo_changeme
++ sys.exit(1)
diff --git a/block-dmmd b/block-dmmd
new file mode 100644
index 0000000..58534f8
--- /dev/null
+++ b/block-dmmd
@@ -0,0 +1,384 @@
+#! /bin/bash
+
+# Usage: block-dmmd [add args | remove args]
+#
+# the dmmd device syntax (in xl commands/configs) is something like:
+# script=block-dmmd,md;/dev/md0;md;/dev/md1;lvm;/dev/vg1/lv1
+# or
+# script=block-dmmd,lvm;/dev/vg1/lv1;lvm;/dev/vg1/lv2;md;/dev/md0
+# device pairs (type;dev) are processed in order, with the last device
+# assigned to the VM
+#
+# Note - When using the libxl stack, the "script=block-dmmd" option
+# is required. See man xl-disk-configuration(5) for more information.
+#
+# md devices can optionally:
+# specify a config file through:
+# md;/dev/md100(/var/xen/config/mdadm.conf)
+# use an array name (mdadm -N option):
+# md;My-MD-name;lvm;/dev/vg1/lv1
+#
+# Completely expressive syntax should be similar to:
+# "format=raw, vdev=xvdb, access=rw, script=block-dmmd, \
+# target=md;/dev/md0(/etc/mdadm.conf);lvm;/dev/vg1/lv1"
+#
+##
+# History:
+# 2017-07-10, mlatimer@suse.com:
+# Modification to use syslog for progress messages by ldevulder@suse.com
+# 2017-06-12, mlatimer@suse.com:
+# Merge LVM improvements by loic.devulder@mpsa.com
+# Document libxl "script=block-dmmd" syntax in examples
+# Remove xm/xend references (e.g. parsed_timeout from xend-config.sxp)
+# 2016-05-27, mlatimer@suse.com:
+# Merge improvements by loic.devulder@mpsa.com. Highlights include:
+# - Re-write and simplification to speed up the script!
+# - Add some (useful) logging messages and comments
+# Minor tweaks and logging improvements
+# 2016-05-26, mlatimer@suse.com:
+# Verify MD activation if mdadm returns 2
+# 2016-05-20, mlatimer@suse.com:
+# Strip leading "dmmd:" if present in xenstore params value
+# 2013-07-03, loic.devulder@mpsa.com:
+# Partial rewrite of the script for supporting MD activation by name
+# 2009-06-09, mh@novell.com:
+# Emit debugging messages into a temporary file; if no longer needed,
+# just comment the exec I/O redirection below
+# Make variables used in functions local to avoid global overridings
+# Use vgscan and vgchange where required
+# Use the C locale to avoid dealing with localized messages
+# Assign output from assembling an MD device to a variable to aid
+# debugging
+
+# We do not want to deal with localized messages
+# We use LC_ALL because LC_ALL superse LANG
+# But we also use LANG because some applications may still use LANG...
+export LC_ALL=C
+export LANG=${LC_ALL}
+
+# Loading common libraries
+. $(dirname $0)/block-common.sh
+
+# Constants
+typeset -rx MDADM_BIN=/sbin/mdadm
+typeset -rx LVCHANGE_BIN=/sbin/lvchange
+typeset -rx PVSCAN_BIN=/sbin/pvscan
+typeset -rx VGSCAN_BIN=/sbin/vgscan
+typeset -rx VGCHANGE_BIN=/sbin/vgchange
+typeset -rx CLVMD_BIN=/usr/sbin/clvmd
+typeset -rx DATE_SEC="date +%s"
+
+# We check for errors ourselves
+set +e
+
+function reload_clvm()
+{
+ # If we are in cluster mode
+ if ps -e | grep -q [c]lvmd 2>/dev/null; then
+ # Logging message
+ log info "Synchronizing cLVM..."
+
+ # Synchronize cLVM
+ ${CLVMD_BIN} -R > /dev/null 2>&1 \
+ || return 1
+ fi
+
+ return 0
+}
+
+function run_mdadm()
+{
+ local mdadm_cmd=$1
+ local msg
+ local rc
+
+ msg="$(${MDADM_BIN} ${mdadm_cmd} 2>&1)"
+ rc=$?
+ case "${msg}" in
+ *"has been started"* | *"already active"*)
+ return 0
+ ;;
+ *"is already in use"*)
+ # Hmm, might be used by another device in this domU
+ # Leave it to upper layers to detect a real error
+ return 2
+ ;;
+ *)
+ return ${rc}
+ ;;
+ esac
+
+ # Normally we should not get here, but if this happens
+ # we have to return an error
+ return 1
+}
+
+function activate_md()
+{
+ # Make it explicitly local
+ local par=$1
+ local cfg dev dev_path rc t mdadm_opts
+
+ if [[ ${par} == ${par%%(*} ]]; then
+ # No configuration file specified
+ dev=${par}
+ cfg=""
+ else
+ dev=${par%%(*}
+ t=${par#*(}
+ cfg="-c ${t%%)*}"
+ fi
+
+ # Looking for device name or aliase
+ if [[ ${dev:0:1} == / ]]; then
+ dev_path=${dev%/*}
+ mdadm_opts=""
+ else
+ dev_path=/dev/md
+ mdadm_opts="-s -N"
+ fi
+
+ # Logging message
+ log info "Activating MD device ${dev}..."
+
+ # Is MD device already active?
+ # We need to use full path name, aliase is not possible...
+ if [ -e ${dev_path}/${dev##*/} ]; then
+ ${MDADM_BIN} -Q -D ${dev_path}/${dev##*/} 2>/dev/null \
+ | grep -iq state.*\:.*inactive || return 0
+ fi
+
+ # Activate MD device
+ run_mdadm "-A ${mdadm_opts} ${dev} ${cfg}"
+ rc=$?
+
+ # A return code of 2 can indicate the array configuration was incorrect
+ if [[ ${rc} == 2 ]]; then
+ # Logging message
+ log info "Verifying MD device ${dev} activation..."
+
+ # If the array is active, return 0, otherwise return an error
+ ${MDADM_BIN} -Q -D ${dev_path}/${dev##*/} &>/dev/null && return 0 \
+ || return 1
+ fi
+
+ return ${rc}
+}
+
+function deactivate_md()
+{
+ local par=$1
+ local dev
+
+ if [[ ${par} == ${par%%(*} ]]; then
+ # No configuration file specified
+ dev=${par}
+ else
+ dev=${par%%(*}
+ fi
+
+ # Looking for device name or aliase
+ if [[ ${dev:0:1} == / ]]; then
+ dev_path=${dev%/*}
+ else
+ dev_path=/dev/md
+ fi
+
+ # Logging message
+ log info "Deactivating MD device ${dev}..."
+
+ # We need the device name only while deactivating
+ ${MDADM_BIN} -S ${dev_path}/${dev##*/} > /dev/null 2>&1
+
+ return $?
+}
+
+function lvm_action()
+{
+ local action=$1
+ local dev=$2
+ local run_timeout=90
+ local end_time
+
+ # Logging message
+ log info "${action} LVM device ${dev}..."
+
+ # Set end_time for the loop
+ (( end_time = $(${DATE_SEC}) + run_timeout ))
+
+ while true; do
+ # Action depends of what the user asks
+ if [[ ${action} == activate ]]; then
+ # First scan for PVs and VGs
+ # We need this for using MD device as PV
+ ${PVSCAN_BIN} > /dev/null 2>&1
+
+ ${LVCHANGE_BIN} -aey ${dev} > /dev/null 2>&1 \
+ && [[ -e ${dev} ]] \
+ && return 0
+ elif [[ ${action} == deactivate ]]; then
+ ${LVCHANGE_BIN} -aen ${dev} > /dev/null 2>&1 \
+ && return 0
+
+ # If the LV is already deactivated we may be in an infinite loop
+ # So we need to test if the LV is still present
+ [[ -e ${dev} ]] || return 0
+ fi
+
+ # It seems that we had a problem during lvchange
+ # If we are in a cluster the problem may be due to a cLVM locking bug,
+ # so try to reload it
+ reload_clvm
+
+ # If it takes too long we need to return an error
+ if (( $(${DATE_SEC}) >= end_time )); then
+ log err "Failed to ${action} $1 within ${run_timeout} seconds"
+ return 1
+ fi
+
+ # Briefly sleep before restarting the loop
+ sleep 0.1
+
+ done
+
+ # Normally we should not get here, but if this happens
+ # we have to return an error
+ return 1
+}
+
+# Variables
+typeset command=$1
+typeset BP=100
+typeset SP=${BP}
+typeset VBD
+typeset -a stack
+
+function push()
+{
+ local value="$1"
+
+ [[ -n "${value}" ]] \
+ && stack[$((--SP))]="${value}"
+
+ return 0
+}
+
+function pop()
+{
+ [[ "${SP}" != "${BP}" ]] \
+ && VBD=${stack[$((SP++))]} \
+ || VBD=""
+
+ return 0
+}
+
+function activate_dmmd()
+{
+ case "$1" in
+ "md")
+ activate_md $2
+ return $?
+ ;;
+ "lvm")
+ lvm_action activate $2
+ return $?
+ ;;
+ esac
+
+ # Normally we should not get here, but if this happens
+ # we have to return an error
+ return 1
+}
+
+function deactivate_dmmd()
+{
+ case "$1" in
+ "md")
+ deactivate_md $2
+ return $?
+ ;;
+ "lvm")
+ lvm_action deactivate $2
+ return $?
+ ;;
+ esac
+
+ # Normally we should not get here, but if this happens
+ # we have to return an error
+ return 1
+}
+
+function cleanup_stack()
+{
+ while true; do
+ pop
+ [[ -z "${VBD}" ]] && break
+ deactivate_dmmd ${VBD}
+ done
+}
+
+function parse_par()
+{
+ # Make these vars explicitly local
+ local ac par rc s t
+
+ ac=$1
+ par="$2"
+
+ par="${par};"
+ while true; do
+ t=${par%%;*}
+
+ [[ -z "${t}" ]] && return 0
+ par=${par#*;}
+
+ s=${par%%;*}
+ [[ -z "${s}" ]] && return 1
+ par=${par#*;}
+
+ if [[ "${ac}" == "activate" ]]; then
+ activate_dmmd ${t} ${s} \
+ || return 1
+ fi
+ push "${t} ${s}"
+ done
+}
+
+case "${command}" in
+ "add")
+ p=$(xenstore-read ${XENBUS_PATH}/params) || true
+ claim_lock "dmmd"
+ dmmd=${p#dmmd:}
+
+ if ! parse_par activate "${dmmd}"; then
+ cleanup_stack
+ release_lock "dmmd"
+ exit 1
+ fi
+
+ lastparam=${dmmd##*;}
+ usedevice=${lastparam%(*}
+ xenstore-write ${XENBUS_PATH}/node "${usedevice}"
+ write_dev "${usedevice}"
+ release_lock "dmmd"
+
+ exit 0
+ ;;
+
+ "remove")
+ p=$(xenstore-read ${XENBUS_PATH}/params) || true
+ claim_lock "dmmd"
+ dmmd=${p#dmmd:}
+
+ parse_par noactivate "${dmmd}"
+
+ cleanup_stack
+ release_lock "dmmd"
+
+ exit 0
+ ;;
+esac
+
+# Normally we should not get here, but if this happens
+# we have to return an error
+return 1
diff --git a/block-npiv b/block-npiv
new file mode 100644
index 0000000..ff38787
--- /dev/null
+++ b/block-npiv
@@ -0,0 +1,129 @@
+#!/bin/bash
+
+# Usage: block-npiv [add npiv | remove dev]
+
+dir=$(dirname "$0")
+. "$dir/block-npiv-common.sh"
+. "$dir/block-common.sh"
+
+#set -x
+#command=$1
+
+case "$command" in
+ add)
+ # Params is one big arg, with fields separated by hyphens:
+ # single path:
+ # VPWWPN-TGTWWPN-LUN#
+ # multipath:
+ # {VPWWPN1.VPWWPN2....VPWWPNx}-{TGTWWPN1.TGTWWPN2....TGTWWPNx}-LUN#
+ # arg 1 - VPORT's WWPN
+ # arg 2 - Target's WWPN
+ # arg 3 - LUN # on Target
+ # no wwn contains a leading 0x - it is a 16 character hex value
+ # You may want to optionally pick a specific adapter ?
+ par=`xenstore-read $XENBUS_PATH/params` || true
+ NPIVARGS=(${par//-/ })
+ wc=${#NPIVARGS[@]}
+ if [ $wc -eq 5 ]; then
+ # support old syntax
+ # FABRIC-VPWWPN-VPWWNN-TGTWWPN-LUN
+ VPORTWWPNS=${NPIVARGS[1]}
+ VPORTWWNNS=${NPIVARGS[2]}
+ TGTWWPNS=${NPIVARGS[3]}
+ LUN=${NPIVARGS[4]}
+ elif [ $wc -eq 3 ]; then
+ # new syntax
+ VPORTWWPNS=${NPIVARGS[0]}
+ TGTWWPNS=${NPIVARGS[1]}
+ LUN=${NPIVARGS[2]}
+ else
+ # wrong syntax
+ exit 1
+ fi
+
+ # Ensure we compare everything using lower-case hex characters
+ TGTWWPNS=`echo $TGTWWPNS | tr A-Z a-z |sed 's/[{.}]/ /g'`
+ VPORTWWPNS=`echo $VPORTWWPNS | tr A-Z a-z |sed 's/[{.}]/ /g'`
+ # Only one VPWWNN is supported
+ VPORTWWNN=`echo $VPORTWWNNS | tr A-Z a-z | sed -e 's/\..*//g' -e 's/{//'`
+
+ claim_lock "npiv"
+ paths=0
+ for VPORTWWPN in $VPORTWWPNS; do
+ find_vhost $VPORTWWPN
+ if test -z "$vhost" ; then
+ create_vport $VPORTWWPN $VPORTWWNN
+ if [ $? -ne 0 ] ; then exit 2; fi
+ sleep 8
+ find_vhost $VPORTWWPN
+ if test -z "$vhost" ; then exit 3; fi
+ fi
+ for TGTWWPN in $TGTWWPNS; do
+ find_sdev $vhost $TGTWWPN $LUN
+ if test -z "$dev"; then
+ echo "- - -" > /sys/class/scsi_host/$vhost/scan
+ sleep 2
+ find_sdev $vhost $TGTWWPN $LUN
+ fi
+ if test -z "$dev"; then
+ exit 4
+ fi
+ paths=$(($paths+1))
+ done
+ done
+ release_lock "npiv"
+
+ if test $paths -gt 1; then
+ xenstore-write $XENBUS_PATH/multipath 1
+ /etc/init.d/multipathd start
+ if test $? -ne 0 ; then exit 4; fi
+ dm=`multipath -l /dev/$dev | grep dm | cut -f2 -d' '`
+ else
+ xenstore-write $XENBUS_PATH/multipath 0
+ dm=$dev
+ fi
+
+ if test ! -z "$dm"; then
+ xenstore-write $XENBUS_PATH/node /dev/$dm
+ write_dev /dev/$dm
+ exit 0
+ fi
+
+ exit 4
+ ;;
+
+ remove)
+ node=`xenstore-read $XENBUS_PATH/node` || true
+ multipath=`xenstore-read $XENBUS_PATH/multipath` || true
+ # this is really screwy. the first delete of a lun will
+ # terminate the entire vport (all luns)
+ if test $multipath = 1; then
+ par=`xenstore-read $XENBUS_PATH/params` || true
+ NPIVARGS=(${par//-/ })
+ wc=${#NPIVARGS[@]}
+ if [ $wc -eq 5 ]; then
+ # old syntax
+ # FABRIC-VPWWPN-VPWWNN-TGTWWPN-LUN
+ VPORTWWPNS=${NPIVARGS[1]}
+ elif [ $wc -eq 3 ]; then
+ # new syntax
+ VPORTWWPNS=${NPIVARGS[0]}
+ fi
+ VPORTWWPNS=`echo $VPORTWWPNS | tr A-Z a-z |sed 's/[{.}]/ /g'`
+ for VPORTWWPN in $VPORTWWPNS; do
+ find_vhost $VPORTWWPN
+ if test -z "$vhost" ; then exit 5; fi
+ flush_nodes_on_vhost $vhost
+ delete_vhost $vhost
+ done
+ else
+ dev=$node; dev=${dev#/dev/}
+ find_vhost_from_dev $dev
+ if test -z "$vhost" ; then exit 5; fi
+ flush_nodes_on_vhost $vhost
+ delete_vhost $vhost
+ fi
+
+ exit 0
+ ;;
+esac
diff --git a/block-npiv-common.sh b/block-npiv-common.sh
new file mode 100644
index 0000000..b9a4ce9
--- /dev/null
+++ b/block-npiv-common.sh
@@ -0,0 +1,277 @@
+
+
+# Look for the NPIV vport with the WWPN
+# $1 contains the WWPN (assumes it does not contain a leading "0x")
+find_vhost()
+{
+ unset vhost
+
+ # look in upstream locations
+ for fchost in /sys/class/fc_vports/* ; do
+ if test -e $fchost/port_name ; then
+ wwpn=`cat $fchost/port_name | sed -e s/^0x//`
+ if test $wwpn = $1 ; then
+ # Note: makes the assumption the vport will always have an scsi_host child
+ vhost=`ls -d $fchost/device/host*`
+ vhost=`basename $vhost`
+ return
+ fi
+ fi
+ done
+
+ # look in vendor-specific locations
+
+ # Emulex - just looks like another scsi_host - so look at fc_hosts...
+ for fchost in /sys/class/fc_host/* ; do
+ if test -e $fchost/port_name ; then
+ wwpn=`cat $fchost/port_name | sed -e s/^0x//`
+ if test $wwpn = $1 ; then
+ # Note: makes the assumption the vport will always have an scsi_host child
+ vhost=`basename $fchost`
+ return
+ fi
+ fi
+ done
+}
+
+
+# Create a NPIV vport with WWPN
+# $1 contains the VPORT WWPN
+# $2 may contain the VPORT WWNN
+# (assumes no name contains a leading "0x")
+create_vport()
+{
+ wwpn=$1
+ wwnn=$2
+ if [ -z "$wwnn" ]; then
+ # auto generate wwnn, follow FluidLabUpdateForEmulex.pdf
+ # Novell specific identifier
+ # byte 6 = 0 indicates WWNN, = 1 indicates WWPN
+ wwnn=${wwpn:0:6}"0"${wwpn:7}
+ fi
+ # find a base adapter with npiv support that is on the right fabric
+
+ # Look via upstream interfaces
+ for fchost in /sys/class/fc_host/* ; do
+ if test -e $fchost/vport_create ; then
+ # is the link up, w/ NPIV support ?
+ pstate=`cat $fchost/port_state`
+ ptype=`cat $fchost/port_type | cut -c 1-5`
+ if [ $pstate = "Online" -a $ptype = "NPort" ] ; then
+ vmax=`cat $fchost/max_npiv_vports`
+ vinuse=`cat $fchost/npiv_vports_inuse`
+ avail=`expr $vmax - $vinuse`
+ if [ $avail -gt 0 ] ; then
+ # create the vport
+ echo $wwpn":"$wwnn > $fchost/vport_create
+ if [ $? -eq 0 ] ; then
+ return 0
+ fi
+ # failed - so we'll just look for the next adapter
+ fi
+ fi
+ fi
+ done
+
+ # Look in vendor-specific locations
+
+ # Emulex: interfaces mirror upstream, but are under adapter scsi_host
+ for shost in /sys/class/scsi_host/* ; do
+ if [ -e $shost/vport_create ] ; then
+ fchost=`ls -d $shost/device/fc_host*`
+ # is the link up, w/ NPIV support ?
+ if [ -e $fchost/port_state ] ; then
+ pstate=`cat $fchost/port_state`
+ ptype=`cat $fchost/port_type | cut -c 1-5`
+ if [ $pstate = "Online" -a $ptype = "NPort" ] ; then
+ vmax=`cat $shost/max_npiv_vports`
+ vinuse=`cat $shost/npiv_vports_inuse`
+ avail=`expr $vmax - $vinuse`
+ if [ $avail -gt 0 ] ; then
+ # create the vport
+ echo $wwpn":"$wwnn > $shost/vport_create
+ if [ $? -eq 0 ] ; then
+ return 0
+ fi
+ # failed - so we'll just look for the next adapter
+ fi
+ fi
+ fi
+ fi
+ done
+
+ # BFA are under adapter scsi_host
+ for shost in /sys/class/scsi_host/* ; do
+ if [ -e $shost/vport_create ] ; then
+ fchost=`ls -d $shost/device/fc_host/*`
+ # is the link up, w/ NPIV support ?
+ if [ -e $fchost/port_state ] ; then
+ pstate=`cat $fchost/port_state`
+ ptype=`cat $fchost/port_type | cut -c 1-5`
+ if [ $pstate = "Online" -a $ptype = "NPort" ] ; then
+ # create the vport
+ echo $wwpn":"$wwnn > $shost/vport_create
+ if [ $? -eq 0 ] ; then
+ return 0
+ fi
+ # failed - so we'll just look for the next adapter
+ fi
+ fi
+ fi
+ done
+
+ return 1
+}
+
+
+# Look for the LUN on the indicated scsi_host (which is an NPIV vport)
+# $1 is the scsi_host name (normalized to simply the hostX name)
+# $2 is the WWPN of the tgt port the lun is on
+# Note: this implies we don't support a multipath'd lun, or we
+# are explicitly identifying a "path"
+# $3 is the LUN number of the scsi device
+find_sdev()
+{
+ unset dev
+ hostno=${1/*host/}
+ for sdev in /sys/class/scsi_device/${hostno}:*:$3 ; do
+ if test -e $sdev/device/../fc_trans*/target${hostno}*/port_name ; then
+ tgtwwpn=`cat $sdev/device/../fc_trans*/target${hostno}*/port_name | sed -e s/^0x//`
+ if test $tgtwwpn = $2 ; then
+ if test -e $sdev/device/block* ; then
+ dev=`ls $sdev/device/block*`
+ dev=${dev##*/}
+ return
+ fi
+ fi
+ fi
+ done
+}
+
+
+# Look for the NPIV vhost based on a scsi "sdX" name
+# $1 is the "sdX" name
+find_vhost_from_dev()
+{
+ unset vhost
+ hostno=`readlink /sys/block/$1/device`
+ hostno=${hostno##*/}
+ hostno=${hostno%%:*}
+ if test -z "$hostno" ; then return; fi
+ vhost="host"$hostno
+}
+
+
+# We're about to terminate a vhost based on a scsi device
+# Flush all nodes on that vhost as they are about to go away
+# $1 is the vhost
+flush_nodes_on_vhost()
+{
+ if test ! -x /sbin/blockdev ; then return; fi
+ hostno=${1/*host/}
+ for sdev in /sys/class/scsi_device/${hostno}:* ; do
+ if test -e $sdev/device/block* ; then
+ dev=`ls $sdev/device/block*`
+ dev="/dev/"$dev
+ if test -n "$dev"; then
+ blockdev --flushbufs $dev
+ fi
+ fi
+ done
+}
+
+
+# Terminate a NPIV vhost
+# $1 is vhost
+delete_vhost()
+{
+ # use upstream interface
+ for vport in /sys/class/fc_vports/* ; do
+ if test -e $vport/device/$1 ; then
+ if test -e $vport/vport_delete ; then
+ echo "1" > $vport/vport_delete
+ if test $? -ne 0 ; then exit 6; fi
+ sleep 4
+ return
+ fi
+ fi
+ done
+
+ # use vendor specific interface
+
+ # Emulex
+ if test -e /sys/class/fc_host/$1/device/../scsi_host*/lpfc_drvr_version ; then
+ shost=`ls -1d /sys/class/fc_host/$1/device/../scsi_host* | sed s/.*scsi_host://`
+ vportwwpn=`cat /sys/class/fc_host/$1/port_name | sed s/^0x//`
+ vportwwnn=`cat /sys/class/fc_host/$1/node_name | sed s/^0x//`
+ echo "$vportwwpn:$vportwwnn" > /sys/class/scsi_host/$shost/vport_delete
+ if test $? -ne 0 ; then exit 6; fi
+ sleep 4
+ return
+ fi
+
+ # Qlogic
+ if test -e /sys/class/fc_host/$1/device/../scsi_host*/driver_version ; then
+ shost=`ls -1d /sys/class/fc_host/$1/device/../scsi_host* | sed s/.*scsi_host://`
+ vportwwpn=`cat /sys/class/fc_host/$1/port_name | sed s/^0x//`
+ vportwwnn=`cat /sys/class/fc_host/$1/node_name | sed s/^0x//`
+ echo "$vportwwpn:$vportwwnn" > /sys/class/scsi_host/$shost/vport_delete
+ if test $? -ne 0 ; then exit 6; fi
+ sleep 4
+ return
+ fi
+
+ # BFA
+ if test -e /sys/class/fc_host/$1/device/../scsi_host/*/driver_name ; then
+ shost=`ls -1d /sys/class/fc_host/$1/device/../scsi_host/* | sed s#.*scsi_host/##`
+ vportwwpn=`cat /sys/class/fc_host/$1/port_name | sed s/^0x//`
+ vportwwnn=`cat /sys/class/fc_host/$1/node_name | sed s/^0x//`
+ echo "$vportwwpn:$vportwwnn" > /sys/class/scsi_host/$shost/vport_delete
+ if test $? -ne 0 ; then exit 6; fi
+ sleep 4
+ return
+ fi
+
+
+ exit 6
+}
+
+
+vport_status()
+{
+ # Look via upstream interfaces
+ for fchost in /sys/class/fc_host/* ; do
+ if test -e $fchost/vport_create ; then
+ vport_status_display $fchost $fchost
+ fi
+ done
+
+ # Look in vendor-specific locations
+
+ # Emulex: interfaces mirror upstream, but are under adapter scsi_host
+ for shost in /sys/class/scsi_host/* ; do
+ if [ -e $shost/vport_create ] ; then
+ fchost=`ls -d $shost/device/fc_host*`
+ vport_status_display $fchost $shost
+ fi
+ done
+
+ return 0
+}
+
+
+vport_status_display()
+{
+ echo
+ echo "fc_host: " $2
+ echo "port_state: " `cat $1/port_state`
+ echo "port_type: " `cat $1/port_type`
+ echo "fabric_name: " `cat $1/fabric_name`
+ echo "max_npiv_vports: " `cat $2/max_npiv_vports`
+ echo "npiv_vports_inuse: " `cat $2/npiv_vports_inuse`
+ echo "modeldesc: " `cat $2/modeldesc`
+ echo "speed: " `cat $1/speed`
+
+ return 0
+}
+
diff --git a/block-npiv-vport b/block-npiv-vport
new file mode 100644
index 0000000..d374a71
--- /dev/null
+++ b/block-npiv-vport
@@ -0,0 +1,79 @@
+#!/bin/bash
+
+# Usage: block-npiv-vport [create npivargs | delete vportwwpn | status]
+
+dir=$(dirname "$0")
+. "$dir/block-npiv-common.sh"
+
+#set -x
+command=$1
+params=$2
+
+case "$command" in
+ create)
+ # Params is one big arg, with fields separated by hyphens:
+ # FABRIC-VPWWPN-VPWWNN-TGTWWPN-LUN#
+ # arg 2 - Fabric Name
+ # arg 3 - VPORT's WWPN
+ # arg 4 - VPORT's WWNN
+ # arg 5 - Target's WWPN
+ # arg 6 - LUN # on Target
+ # no wwn contains a leading 0x - it is a 16 character hex value
+ # You may want to optionally pick a specific adapter ?
+ NPIVARGS=$params;
+ LUN=${NPIVARGS##*-*-*-*-}; NPIVARGS=${NPIVARGS%-*}
+ if test $LUN = $NPIVARGS ; then exit 1; fi
+ TGTWWPN=${NPIVARGS##*-*-*-}; NPIVARGS=${NPIVARGS%-*}
+ if test $TGTWWPN = $NPIVARGS ; then exit 1; fi
+ VPORTWWNN=${NPIVARGS##*-*-}; NPIVARGS=${NPIVARGS%-*}
+ if test $VPORTWWNN = $NPIVARGS ; then exit 1; fi
+ VPORTWWPN=${NPIVARGS##*-}; NPIVARGS=${NPIVARGS%-*}
+ if test $VPORTWWPN = $NPIVARGS ; then exit 1; fi
+ FABRICNM=$NPIVARGS
+
+ # Ensure we compare everything using lower-case hex characters
+ TGTWWPN=`echo $TGTWWPN | tr A-Z a-z`
+ VPORTWWPN=`echo $VPORTWWPN | tr A-Z a-z`
+ VPORTWWNN=`echo $VPORTWWNN | tr A-Z a-z`
+ FABRICNM=`echo $FABRICNM | tr A-Z a-z`
+
+ find_vhost $VPORTWWPN $FABRICNM
+ if test -z "$vhost" ; then
+ create_vport $FABRICNM $VPORTWWPN $VPORTWWNN
+ if [ $? -ne 0 ] ; then exit 2; fi
+ sleep 8
+ find_vhost $VPORTWWPN $FABRICNM
+ if test -z "$vhost" ; then exit 3; fi
+ fi
+
+ exit 0
+ ;;
+
+ delete)
+ # Params is VPORT's WWPN
+ # no wwn contains a leading 0x - it is a 16 character hex value
+ VPORTWWPN=$params
+
+ # Ensure we compare everything using lower-case hex characters
+ VPORTWWPN=`echo $VPORTWWPN | tr A-Z a-z`
+
+ find_vhost $VPORTWWPN $FABRICNM
+ if test -z "$vhost" ; then exit 4; fi
+ delete_vhost $vhost
+
+ exit 0
+ ;;
+
+ status)
+ vport_status
+
+ exit 0
+ ;;
+
+ *)
+ echo "Usage: block-npiv-vport [create npivargs | delete vportwwpn | status]"
+
+ exit 1
+ ;;
+esac
+
diff --git a/boot.local.xenU b/boot.local.xenU
new file mode 100644
index 0000000..3d8be45
--- /dev/null
+++ b/boot.local.xenU
@@ -0,0 +1,79 @@
+#! /bin/sh
+#
+# Copyright (c) 2014 SUSE GmbH Nuernberg, Germany. All rights reserved.
+#
+# Author: Werner Fink <werner@suse.de>, 1996
+# Burchard Steinbild <bs@suse.de>, 1996
+#
+# /etc/init.d/boot.local
+#
+# script with local commands to be executed from init on system startup
+#
+#
+# Here you should add things, that should happen directly after booting
+# before we're going to the first run level.
+#
+
+date
+
+# echo "$MACHINE: running $0 $*"
+my_REDIRECT="$(echo $REDIRECT | sed 's#^/dev/##')"
+my_DEVICE="$(echo $my_REDIRECT | sed 's#^tty##')"
+my_SPEED="$(stty speed)"
+# echo REDIRECT $REDIRECT $my_REDIRECT
+# echo my_DEVICE $my_DEVICE
+# echo my_SPEED $my_SPEED
+
+# compose a line like that for inittab
+# S0:12345:respawn:/sbin/agetty -L 9600 ttyS0 vt102
+
+case $my_REDIRECT in
+ ttyS*)
+ echo adding this line to inittab
+ echo "$my_DEVICE:12345:respawn:/sbin/agetty -L $my_SPEED $my_REDIRECT vt102"
+ echo "$my_DEVICE:12345:respawn:/sbin/agetty -L $my_SPEED $my_REDIRECT vt102" >> /etc/inittab
+ echo $my_REDIRECT >> /etc/securetty
+ ;;
+
+ hvc*)
+ echo adding this line to inittab
+ echo "$my_DEVICE:12345:respawn:/sbin/agetty -L $my_SPEED $my_REDIRECT vt320"
+ echo "$my_DEVICE:12345:respawn:/sbin/agetty -L $my_SPEED $my_REDIRECT vt320" >> /etc/inittab
+ echo $my_REDIRECT >> /etc/securetty
+ ;;
+
+ *)
+ echo "no modification in inittab needed for: $my_REDIRECT"
+ ;;
+esac
+
+telinit q
+
+# Changes for Xen
+test -f /lib/modules/`uname -r`/modules.dep || depmod -ae
+
+CMDLINE=`cat /proc/cmdline | grep 'ip='`
+if test ! -z "$CMDLINE"; then
+ OLDIFS=$IFS
+ IFS=":"
+ read ip oth mask gw hostname dev dhcp rest < /proc/cmdline
+ IFS=$OLDIFS
+ hostname $hostname
+ ip=`echo $ip | sed 's/ip= *//'`
+ if test ! -z "$ip"; then
+ if test -z "$mask"; then
+ if [ ${ip%/*} = $ip ]; then
+ ip="$ip/27"
+ fi
+ echo "ip addr add $ip dev $dev"
+ ip addr add $ip dev $dev
+ ip link set $dev up
+ else
+ ifconfig add $ip netmask $mask $dev
+ fi
+ fi
+ if test "${dhcp#dhcp}" != "$dhcp"; then
+ ifup-dhcp $dev
+ fi
+fi
+
diff --git a/boot.xen b/boot.xen
new file mode 100644
index 0000000..1aa22ea
--- /dev/null
+++ b/boot.xen
@@ -0,0 +1,101 @@
+#! /bin/sh
+# Copyright (c) 2005-2006 SUSE Linux AG, Nuernberg, Germany.
+# All rights reserved.
+#
+# /etc/init.d/boot.xen
+#
+# LSB compatible service control script; see http://www.linuxbase.org/spec/
+#
+### BEGIN INIT INFO
+# Provides: Xen
+# Required-Start: boot.localfs
+# Should-Start: boot.localnet
+# Required-Stop: boot.localfs
+# Should-Stop:
+# Default-Start: B
+# Default-Stop:
+# Short-Description: Switch on and off TLS depending on whether Xen is running
+# Description: Xen gets a major performance hit by the way
+# recent glibc (& gcc) set up the TLS offset, as it needs to
+# play segmentation tricks. This can be avoided by moving away
+# the tls libs.
+### END INIT INFO
+
+. /etc/rc.status
+
+# Reset status of this service
+rc_reset
+
+case "$1" in
+ start)
+ echo -n "Starting Xen setup "
+ if test -d /proc/xen; then
+ export LD_ASSUME_KERNEL=2.4.21
+ echo -n "Xen running "
+ fi
+ if test -d /proc/xen -a -d /lib/tls; then
+ echo -n "move /lib/tls away "
+ mv /lib/tls /lib/tls.save
+ elif test ! -d /proc/xen -a -d /lib/tls.save; then
+ echo -n "move back /lib/tls "
+ mv /lib/tls.save /lib/tls
+ fi
+ rc_status -v
+ ;;
+ stop)
+ # rc_status -v
+ ;;
+ try-restart|condrestart)
+ $0 restart
+ # Remember status and be quiet
+ rc_status
+ ;;
+ restart)
+ ## Stop the service and regardless of whether it was
+ ## running or not, start it again.
+ $0 start
+ # Remember status and be quiet
+ rc_status
+ ;;
+ force-reload)
+ $0 try-restart
+ rc_status
+ ;;
+ reload)
+ rc_failed 3
+ rc_status -v
+ ;;
+ status)
+ echo -n "Checking for Xen "
+ # Return value is slightly different for the status command:
+ # 0 - service up and running
+ # 1 - service dead, but /var/run/ pid file exists
+ # 2 - service dead, but /var/lock/ lock file exists
+ # 3 - service not running (unused)
+ # 4 - service status unknown :-(
+ # 5--199 reserved (5--99 LSB, 100--149 distro, 150--199 appl.)
+
+ if test -d /proc/xen; then
+ if test -d /lib/tls; then
+ echo -n "Xen running, /lib/tls existing "
+ rc_failed 1
+ else
+ echo -n "Xen running, /lib/tls not existing "
+ fi
+ else
+ if test -d /lib/tls.save; then
+ echo -n "Xen not running, /lib/tls existing "
+ rc_failed 2
+ else
+ echo -n "Xen not running, /lib/tls not existing "
+ rc_failed 3
+ fi
+ fi
+ rc_status -v
+ ;;
+ *)
+ echo "Usage: $0 {start|stop|status|try-restart|restart|force-reload|reload}"
+ exit 1
+ ;;
+esac
+rc_exit
diff --git a/build-python3-conversion.patch b/build-python3-conversion.patch
new file mode 100644
index 0000000..4ac9ed6
--- /dev/null
+++ b/build-python3-conversion.patch
@@ -0,0 +1,598 @@
+Index: xen-4.13.0-testing/Config.mk
+===================================================================
+--- xen-4.13.0-testing.orig/Config.mk
++++ xen-4.13.0-testing/Config.mk
+@@ -82,7 +82,7 @@ EXTRA_INCLUDES += $(EXTRA_PREFIX)/includ
+ EXTRA_LIB += $(EXTRA_PREFIX)/lib
+ endif
+
+-PYTHON ?= python
++PYTHON ?= python3
+ PYTHON_PREFIX_ARG ?= --prefix="$(prefix)"
+ # The above requires that prefix contains *no spaces*. This variable is here
+ # to permit the user to set PYTHON_PREFIX_ARG to '' to workaround this bug:
+Index: xen-4.13.0-testing/tools/configure
+===================================================================
+--- xen-4.13.0-testing.orig/tools/configure
++++ xen-4.13.0-testing/tools/configure
+@@ -6926,7 +6926,7 @@ then
+ fi;;
+ esac
+ if test -z "$PYTHON"; then :
+- for ac_prog in python python3 python2
++ for ac_prog in python3 python python2
+ do
+ # Extract the first word of "$ac_prog", so it can be a program name with args.
+ set dummy $ac_prog; ac_word=$2
+@@ -7065,15 +7065,15 @@ if test x"${PYTHONPATH}" = x"no"
+ then
+ as_fn_error $? "Unable to find $PYTHON, please install $PYTHON" "$LINENO" 5
+ fi
+-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for python version >= 2.6 " >&5
+-$as_echo_n "checking for python version >= 2.6 ... " >&6; }
+-`$PYTHON -c 'import sys; sys.exit(eval("sys.version_info < (2, 6)"))'`
++{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for python3 version >= 3.0 " >&5
++$as_echo_n "checking for python3 version >= 3.0 ... " >&6; }
++`$PYTHON -c 'import sys; sys.exit(eval("sys.version_info < (3, 0)"))'`
+ if test "$?" != "0"
+ then
+ python_version=`$PYTHON -V 2>&1`
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+ $as_echo "no" >&6; }
+- as_fn_error $? "$python_version is too old, minimum required version is 2.6" "$LINENO" 5
++ as_fn_error $? "$python_version is too old, minimum required version is 3.0" "$LINENO" 5
+ else
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
+ $as_echo "yes" >&6; }
+Index: xen-4.13.0-testing/tools/python/test.py
+===================================================================
+--- xen-4.13.0-testing.orig/tools/python/test.py
++++ xen-4.13.0-testing/tools/python/test.py
+@@ -1,4 +1,4 @@
+-#! /usr/bin/env python2.3
++#!/usr/bin/python3
+ ##############################################################################
+ #
+ # Copyright (c) 2001, 2002 Zope Corporation and Contributors.
+@@ -289,9 +289,9 @@ class ImmediateTestResult(unittest._Text
+ def stopTest(self, test):
+ self._testtimes[test] = time.time() - self._testtimes[test]
+ if gc.garbage:
+- print "The following test left garbage:"
+- print test
+- print gc.garbage
++ print("The following test left garbage:")
++ print(test)
++ print(gc.garbage)
+ # XXX Perhaps eat the garbage here, so that the garbage isn't
+ # printed for every subsequent test.
+
+@@ -301,23 +301,23 @@ class ImmediateTestResult(unittest._Text
+ and
+ t not in self._threads)]
+ if new_threads:
+- print "The following test left new threads behind:"
+- print test
+- print "New thread(s):", new_threads
++ print("The following test left new threads behind:")
++ print(test)
++ print("New thread(s):", new_threads)
+
+ def print_times(self, stream, count=None):
+- results = self._testtimes.items()
++ results = list(self._testtimes.items())
+ results.sort(lambda x, y: cmp(y[1], x[1]))
+ if count:
+ n = min(count, len(results))
+ if n:
+- print >>stream, "Top %d longest tests:" % n
++ print("Top %d longest tests:" % n, file=stream)
+ else:
+ n = len(results)
+ if not n:
+ return
+ for i in range(n):
+- print >>stream, "%6dms" % int(results[i][1] * 1000), results[i][0]
++ print("%6dms" % int(results[i][1] * 1000), results[i][0], file=stream)
+
+ def _print_traceback(self, msg, err, test, errlist):
+ if self.showAll or self.dots or self._progress:
+@@ -369,7 +369,7 @@ class ImmediateTestResult(unittest._Text
+ if self._progress:
+ self.stream.write("\r")
+ if self._debug:
+- raise err[0], err[1], err[2]
++ raise err[0](err[1]).with_traceback(err[2])
+ self._print_traceback("Error in test %s" % test, err,
+ test, self.errors)
+
+@@ -377,7 +377,7 @@ class ImmediateTestResult(unittest._Text
+ if self._progress:
+ self.stream.write("\r")
+ if self._debug:
+- raise err[0], err[1], err[2]
++ raise err[0](err[1]).with_traceback(err[2])
+ self._print_traceback("Failure in test %s" % test, err,
+ test, self.failures)
+
+@@ -480,11 +480,11 @@ class PathInit:
+ kind = functional and "FUNCTIONAL" or "UNIT"
+ if libdir:
+ extra = os.path.join(self.org_cwd, libdir)
+- print "Running %s tests from %s" % (kind, extra)
++ print("Running %s tests from %s" % (kind, extra))
+ self.libdir = extra
+ sys.path.insert(0, extra)
+ else:
+- print "Running %s tests from %s" % (kind, self.cwd)
++ print("Running %s tests from %s" % (kind, self.cwd))
+ # Make sure functional tests find ftesting.zcml
+ if functional:
+ config_file = 'ftesting.zcml'
+@@ -492,7 +492,7 @@ class PathInit:
+ # We chdired into build, so ftesting.zcml is in the
+ # parent directory
+ config_file = os.path.join('..', 'ftesting.zcml')
+- print "Parsing %s" % config_file
++ print("Parsing %s" % config_file)
+ from zope.app.tests.functional import FunctionalTestSetup
+ FunctionalTestSetup(config_file)
+
+@@ -530,7 +530,7 @@ class TestFileFinder:
+ if not "__init__.py" in files:
+ if not files or files == ["CVS"]:
+ return
+- print "not a package", dir
++ print("not a package", dir)
+ return
+
+ # Put matching files in matches. If matches is non-empty,
+@@ -549,9 +549,9 @@ class TestFileFinder:
+ __import__(pkg)
+ # We specifically do not want to catch ImportError since that's useful
+ # information to know when running the tests.
+- except RuntimeError, e:
++ except RuntimeError as e:
+ if VERBOSE:
+- print "skipping %s because: %s" % (pkg, e)
++ print("skipping %s because: %s" % (pkg, e))
+ return
+ else:
+ self.files.extend(matches)
+@@ -698,16 +698,16 @@ class TrackRefs:
+ ct = [(type2count[t] - self.type2count.get(t, 0),
+ type2all[t] - self.type2all.get(t, 0),
+ t)
+- for t in type2count.iterkeys()]
++ for t in type2count.keys()]
+ ct.sort()
+ ct.reverse()
+ printed = False
+ for delta1, delta2, t in ct:
+ if delta1 or delta2:
+ if not printed:
+- print "%-55s %8s %8s" % ('', 'insts', 'refs')
++ print("%-55s %8s %8s" % ('', 'insts', 'refs'))
+ printed = True
+- print "%-55s %8d %8d" % (t, delta1, delta2)
++ print("%-55s %8d %8d" % (t, delta1, delta2))
+
+ self.type2count = type2count
+ self.type2all = type2all
+@@ -729,25 +729,25 @@ def runner(files, test_filter, debug):
+ if TIMESFN:
+ r.print_times(open(TIMESFN, "w"))
+ if VERBOSE:
+- print "Wrote timing data to", TIMESFN
++ print("Wrote timing data to", TIMESFN)
+ if TIMETESTS:
+ r.print_times(sys.stdout, TIMETESTS)
+ except:
+ if DEBUGGER:
+- print "%s:" % (sys.exc_info()[0], )
+- print sys.exc_info()[1]
++ print("%s:" % (sys.exc_info()[0], ))
++ print(sys.exc_info()[1])
+ pdb.post_mortem(sys.exc_info()[2])
+ else:
+ raise
+
+ def remove_stale_bytecode(arg, dirname, names):
+- names = map(os.path.normcase, names)
++ names = list(map(os.path.normcase, names))
+ for name in names:
+ if name.endswith(".pyc") or name.endswith(".pyo"):
+ srcname = name[:-1]
+ if srcname not in names:
+ fullname = os.path.join(dirname, name)
+- print "Removing stale bytecode file", fullname
++ print("Removing stale bytecode file", fullname)
+ os.unlink(fullname)
+
+ def main(module_filter, test_filter, libdir):
+@@ -773,12 +773,12 @@ def main(module_filter, test_filter, lib
+ runner(files, test_filter, DEBUG)
+ gc.collect()
+ if gc.garbage:
+- print "GARBAGE:", len(gc.garbage), gc.garbage
++ print("GARBAGE:", len(gc.garbage), gc.garbage)
+ return
+ if REFCOUNT:
+ prev = rc
+ rc = sys.gettotalrefcount()
+- print "totalrefcount=%-8d change=%-6d" % (rc, rc - prev)
++ print("totalrefcount=%-8d change=%-6d" % (rc, rc - prev))
+ track.update()
+ else:
+ runner(files, test_filter, DEBUG)
+@@ -801,7 +801,7 @@ def configure_logging():
+ else:
+ logging.basicConfig()
+
+- if os.environ.has_key("LOGGING"):
++ if "LOGGING" in os.environ:
+ level = int(os.environ["LOGGING"])
+ logging.getLogger().setLevel(level)
+
+@@ -865,8 +865,8 @@ def process_args(argv=None):
+
+ # import the config file
+ if os.path.isfile(config_filename):
+- print 'Configuration file found.'
+- execfile(config_filename, globals())
++ print('Configuration file found.')
++ exec(compile(open(config_filename).read(), config_filename, 'exec'), globals())
+
+
+ try:
+@@ -884,9 +884,9 @@ def process_args(argv=None):
+ # fixme: add the long names
+ # fixme: add the extra documentation
+ # fixme: test for functional first!
+- except getopt.error, msg:
+- print msg
+- print "Try `python %s -h' for more information." % argv[0]
++ except getopt.error as msg:
++ print(msg)
++ print("Try `python %s -h' for more information." % argv[0])
+ sys.exit(2)
+
+ for k, v in opts:
+@@ -916,13 +916,13 @@ def process_args(argv=None):
+ RUN_UNIT = True
+ RUN_FUNCTIONAL = True
+ elif k in ("-h", "--help"):
+- print __doc__
++ print(__doc__)
+ sys.exit(0)
+ elif k in ("-g", "--gc-threshold"):
+ GC_THRESHOLD = int(v)
+ elif k in ("-G", "--gc-option"):
+ if not v.startswith("DEBUG_"):
+- print "-G argument must be DEBUG_ flag, not", repr(v)
++ print("-G argument must be DEBUG_ flag, not", repr(v))
+ sys.exit(1)
+ GC_FLAGS.append(v)
+ elif k in ('-k', '--keepbytecode'):
+@@ -968,30 +968,30 @@ def process_args(argv=None):
+ import pychecker.checker
+
+ if REFCOUNT and not hasattr(sys, "gettotalrefcount"):
+- print "-r ignored, because it needs a debug build of Python"
++ print("-r ignored, because it needs a debug build of Python")
+ REFCOUNT = False
+
+ if sys.version_info < ( 2,3,2 ):
+- print """\
++ print("""\
+ ERROR: Your python version is not supported by Zope3.
+- Zope3 needs Python 2.3.2 or greater. You are running:""" + sys.version
++ Zope3 needs Python 2.3.2 or greater. You are running:""" + sys.version)
+ sys.exit(1)
+
+ if GC_THRESHOLD is not None:
+ if GC_THRESHOLD == 0:
+ gc.disable()
+- print "gc disabled"
++ print("gc disabled")
+ else:
+ gc.set_threshold(GC_THRESHOLD)
+- print "gc threshold:", gc.get_threshold()
++ print("gc threshold:", gc.get_threshold())
+
+ if GC_FLAGS:
+ val = 0
+ for flag in GC_FLAGS:
+ v = getattr(gc, flag, None)
+ if v is None:
+- print "Unknown gc flag", repr(flag)
+- print gc.set_debug.__doc__
++ print("Unknown gc flag", repr(flag))
++ print(gc.set_debug.__doc__)
+ sys.exit(1)
+ val |= v
+ gcdebug |= v
+@@ -1009,10 +1009,10 @@ def process_args(argv=None):
+ if BUILD_INPLACE:
+ cmd += "_ext -i"
+ if VERBOSE:
+- print cmd
++ print(cmd)
+ sts = os.system(cmd)
+ if sts:
+- print "Build failed", hex(sts)
++ print("Build failed", hex(sts))
+ sys.exit(1)
+
+ k = []
+@@ -1027,9 +1027,9 @@ def process_args(argv=None):
+ if VERBOSE:
+ kind = functional and "FUNCTIONAL" or "UNIT"
+ if LEVEL == 0:
+- print "Running %s tests at all levels" % kind
++ print("Running %s tests at all levels" % kind)
+ else:
+- print "Running %s tests at level %d" % (kind, LEVEL)
++ print("Running %s tests at level %d" % (kind, LEVEL))
+
+ # This was to avoid functional tests outside of z3, but this doesn't really
+ # work right.
+@@ -1073,20 +1073,20 @@ def process_args(argv=None):
+ globals=globals(), locals=vars())
+ r = tracer.results()
+ path = "/tmp/trace.%s" % os.getpid()
+- import cPickle
++ import pickle
+ f = open(path, "wb")
+- cPickle.dump(r, f)
++ pickle.dump(r, f)
+ f.close()
+- print path
++ print(path)
+ r.write_results(show_missing=True,
+ summary=True, coverdir=coverdir)
+ else:
+ bad = main(MODULE_FILTER, TEST_FILTER, LIBDIR)
+ if bad:
+ sys.exit(1)
+- except ImportError, err:
+- print err
+- print sys.path
++ except ImportError as err:
++ print(err)
++ print(sys.path)
+ raise
+
+
+Index: xen-4.13.0-testing/tools/configure.ac
+===================================================================
+--- xen-4.13.0-testing.orig/tools/configure.ac
++++ xen-4.13.0-testing/tools/configure.ac
+@@ -337,14 +337,14 @@ case "$host_os" in
+ freebsd*) ;;
+ *) AX_PATH_PROG_OR_FAIL([BASH], [bash]);;
+ esac
+-AS_IF([test -z "$PYTHON"], [AC_CHECK_PROGS([PYTHON], [python python3 python2], err)])
++AS_IF([test -z "$PYTHON"], [AC_CHECK_PROGS([PYTHON], [python3 python python2], err)])
+ AS_IF([test "$PYTHON" = "err"], [AC_MSG_ERROR([No python interpreter found])])
+ AS_IF([echo "$PYTHON" | grep -q "^/"], [], [AC_PATH_PROG([PYTHON], [$PYTHON])])
+ PYTHONPATH=$PYTHON
+ PYTHON=`basename $PYTHONPATH`
+
+ AX_PATH_PROG_OR_FAIL([PYTHONPATH], [$PYTHON])
+-AX_CHECK_PYTHON_VERSION([2], [6])
++AX_CHECK_PYTHON_VERSION([3], [0])
+
+ AS_IF([test "$cross_compiling" != yes], [
+ AX_CHECK_PYTHON_DEVEL()
+Index: xen-4.13.0-testing/tools/libxl/idl.py
+===================================================================
+--- xen-4.13.0-testing.orig/tools/libxl/idl.py
++++ xen-4.13.0-testing/tools/libxl/idl.py
+@@ -271,7 +271,7 @@ class KeyedUnion(Aggregate):
+ if not isinstance(keyvar_type, Enumeration):
+ raise ValueError
+
+- kv_kwargs = dict([(x.lstrip('keyvar_'),y) for (x,y) in kwargs.items() if x.startswith('keyvar_')])
++ kv_kwargs = dict([(x.lstrip('keyvar_'),y) for (x,y) in list(kwargs.items()) if x.startswith('keyvar_')])
+
+ self.keyvar = Field(keyvar_type, keyvar_name, **kv_kwargs)
+
+@@ -317,7 +317,7 @@ class Array(Type):
+ kwargs.setdefault('json_parse_type', 'JSON_ARRAY')
+ Type.__init__(self, namespace=elem_type.namespace, typename=elem_type.rawname + " *", **kwargs)
+
+- lv_kwargs = dict([(x.lstrip('lenvar_'),y) for (x,y) in kwargs.items() if x.startswith('lenvar_')])
++ lv_kwargs = dict([(x.lstrip('lenvar_'),y) for (x,y) in list(kwargs.items()) if x.startswith('lenvar_')])
+
+ self.lenvar = Field(integer, lenvar_name, **lv_kwargs)
+ self.elem_type = elem_type
+@@ -353,7 +353,7 @@ def parse(f):
+ globs = {}
+ locs = OrderedDict()
+
+- for n,t in globals().items():
++ for n,t in list(globals().items()):
+ if isinstance(t, Type):
+ globs[n] = t
+ elif isinstance(t,type(object)) and issubclass(t, Type):
+Index: xen-4.13.0-testing/tools/libxl/gentest.py
+===================================================================
+--- xen-4.13.0-testing.orig/tools/libxl/gentest.py
++++ xen-4.13.0-testing/tools/libxl/gentest.py
+@@ -1,4 +1,4 @@
+-#!/usr/bin/python
++#!/usr/bin/python3
+
+ from __future__ import print_function
+
+Index: xen-4.13.0-testing/tools/libxl/gentypes.py
+===================================================================
+--- xen-4.13.0-testing.orig/tools/libxl/gentypes.py
++++ xen-4.13.0-testing/tools/libxl/gentypes.py
+@@ -1,4 +1,4 @@
+-#!/usr/bin/python
++#!/usr/bin/python3
+
+ from __future__ import print_function
+
+Index: xen-4.13.0-testing/tools/ocaml/libs/xentoollog/genlevels.py
+===================================================================
+--- xen-4.13.0-testing.orig/tools/ocaml/libs/xentoollog/genlevels.py
++++ xen-4.13.0-testing/tools/ocaml/libs/xentoollog/genlevels.py
+@@ -89,7 +89,7 @@ def gen_c(level):
+ def autogen_header(open_comment, close_comment):
+ s = open_comment + " AUTO-GENERATED FILE DO NOT EDIT " + close_comment + "\n"
+ s += open_comment + " autogenerated by \n"
+- s += reduce(lambda x,y: x + " ", range(len(open_comment + " ")), "")
++ s += reduce(lambda x,y: x + " ", list(range(len(open_comment + " "))), "")
+ s += "%s" % " ".join(sys.argv)
+ s += "\n " + close_comment + "\n\n"
+ return s
+Index: xen-4.13.0-testing/tools/include/xen-foreign/mkheader.py
+===================================================================
+--- xen-4.13.0-testing.orig/tools/include/xen-foreign/mkheader.py
++++ xen-4.13.0-testing/tools/include/xen-foreign/mkheader.py
+@@ -1,4 +1,4 @@
+-#!/usr/bin/python
++#!/usr/bin/python3
+
+ import sys, re;
+ from structs import unions, structs, defines;
+Index: xen-4.13.0-testing/tools/include/xen-foreign/mkchecker.py
+===================================================================
+--- xen-4.13.0-testing.orig/tools/include/xen-foreign/mkchecker.py
++++ xen-4.13.0-testing/tools/include/xen-foreign/mkchecker.py
+@@ -1,4 +1,4 @@
+-#!/usr/bin/python
++#!/usr/bin/python3
+
+ import sys;
+ from structs import structs, compat_arches;
+Index: xen-4.13.0-testing/xen/tools/gen-cpuid.py
+===================================================================
+--- xen-4.13.0-testing.orig/xen/tools/gen-cpuid.py
++++ xen-4.13.0-testing/xen/tools/gen-cpuid.py
+@@ -1,4 +1,4 @@
+-#!/usr/bin/env python
++#!/usr/bin/python3
+ # -*- coding: utf-8 -*-
+
+ import sys, os, re
+@@ -135,7 +135,7 @@ def crunch_numbers(state):
+ common_1d = (FPU, VME, DE, PSE, TSC, MSR, PAE, MCE, CX8, APIC,
+ MTRR, PGE, MCA, CMOV, PAT, PSE36, MMX, FXSR)
+
+- state.known = featureset_to_uint32s(state.names.keys(), nr_entries)
++ state.known = featureset_to_uint32s(list(state.names.keys()), nr_entries)
+ state.common_1d = featureset_to_uint32s(common_1d, 1)[0]
+ state.special = featureset_to_uint32s(state.raw_special, nr_entries)
+ state.pv = featureset_to_uint32s(state.raw_pv, nr_entries)
+@@ -317,11 +317,11 @@ def crunch_numbers(state):
+
+ state.deep_deps[feat] = seen[1:]
+
+- state.deep_features = featureset_to_uint32s(deps.keys(), nr_entries)
+- state.nr_deep_deps = len(state.deep_deps.keys())
++ state.deep_features = featureset_to_uint32s(list(deps.keys()), nr_entries)
++ state.nr_deep_deps = len(list(state.deep_deps.keys()))
+
+ try:
+- _tmp = state.deep_deps.iteritems()
++ _tmp = state.deep_deps.items()
+ except AttributeError:
+ _tmp = state.deep_deps.items()
+
+@@ -329,10 +329,10 @@ def crunch_numbers(state):
+ state.deep_deps[k] = featureset_to_uint32s(v, nr_entries)
+
+ # Calculate the bitfield name declarations
+- for word in xrange(nr_entries):
++ for word in range(nr_entries):
+
+ names = []
+- for bit in xrange(32):
++ for bit in range(32):
+
+ name = state.names.get(word * 32 + bit, "")
+
+Index: xen-4.13.0-testing/xen/tools/compat-build-source.py
+===================================================================
+--- xen-4.13.0-testing.orig/xen/tools/compat-build-source.py
++++ xen-4.13.0-testing/xen/tools/compat-build-source.py
+@@ -1,4 +1,4 @@
+-#!/usr/bin/env python
++#!/usr/bin/python3
+
+ import re,sys
+
+Index: xen-4.13.0-testing/xen/tools/compat-build-header.py
+===================================================================
+--- xen-4.13.0-testing.orig/xen/tools/compat-build-header.py
++++ xen-4.13.0-testing/xen/tools/compat-build-header.py
+@@ -1,4 +1,4 @@
+-#!/usr/bin/env python
++#!/usr/bin/python3
+
+ import re,sys
+
+Index: xen-4.13.0-testing/xen/tools/fig-to-oct.py
+===================================================================
+--- xen-4.13.0-testing.orig/xen/tools/fig-to-oct.py
++++ xen-4.13.0-testing/xen/tools/fig-to-oct.py
+@@ -1,4 +1,4 @@
+-#!/usr/bin/env python
++#!/usr/bin/python3
+ import sys
+
+ chars_per_line = 18
+Index: xen-4.13.0-testing/tools/misc/xensymoops
+===================================================================
+--- xen-4.13.0-testing.orig/tools/misc/xensymoops
++++ xen-4.13.0-testing/tools/misc/xensymoops
+@@ -1,4 +1,4 @@
+-#!/usr/bin/env python
++#!/usr/bin/python3
+
+ # An oops analyser for Xen
+ # Usage: xensymoops path-to-xen.s < oops-message
+@@ -43,12 +43,12 @@ def read_oops():
+ return (eip_addr, stack_addresses)
+
+ def usage():
+- print >> sys.stderr, """Usage: %s path-to-asm < oops-msg
++ print("""Usage: %s path-to-asm < oops-msg
+ The oops message should be fed to the standard input. The
+ command-line argument specifies the path to the Xen assembly dump
+ produced by \"make debug\". The location of EIP and the backtrace
+ will be output to standard output.
+- """ % sys.argv[0]
++ """ % sys.argv[0], file=sys.stderr)
+ sys.exit()
+
+ ##### main
+@@ -99,7 +99,7 @@ while True:
+
+ # if this address was seen as a potential code address in the backtrace then
+ # record it in the backtrace list
+- if stk_addrs.has_key(address):
++ if address in stk_addrs:
+ backtrace.append((stk_addrs[address], address, func))
+
+ # if this was the address that EIP...
+@@ -107,12 +107,12 @@ while True:
+ eip_func = func
+
+
+-print "EIP %s in function %s" % (eip_addr, eip_func)
+-print "Backtrace:"
++print("EIP %s in function %s" % (eip_addr, eip_func))
++print("Backtrace:")
+
+ # sorting will order primarily by the first element of each tuple,
+ # i.e. the order in the original oops
+ backtrace.sort()
+
+ for (i, a, f) in backtrace:
+- print "%s in function %s" % ( a, f )
++ print("%s in function %s" % ( a, f ))
diff --git a/disable-building-pv-shim.patch b/disable-building-pv-shim.patch
new file mode 100644
index 0000000..91714af
--- /dev/null
+++ b/disable-building-pv-shim.patch
@@ -0,0 +1,13 @@
+--- xen-4.13.0-testing/xen/arch/x86/configs/pvshim_defconfig.orig 2019-10-14 09:46:44.567846243 -0600
++++ xen-4.13.0-testing/xen/arch/x86/configs/pvshim_defconfig 2019-10-14 09:47:17.722552005 -0600
+@@ -2,8 +2,8 @@
+ CONFIG_PV=y
+ CONFIG_XEN_GUEST=y
+ CONFIG_PVH_GUEST=y
+-CONFIG_PV_SHIM=y
+-CONFIG_PV_SHIM_EXCLUSIVE=y
++CONFIG_PV_SHIM=n
++CONFIG_PV_SHIM_EXCLUSIVE=n
+ CONFIG_NR_CPUS=32
+ # Disable features not used by the PV shim
+ # CONFIG_SHADOW_PAGING is not set
diff --git a/etc_pam.d_xen-api b/etc_pam.d_xen-api
new file mode 100644
index 0000000..b8a194d
--- /dev/null
+++ b/etc_pam.d_xen-api
@@ -0,0 +1,7 @@
+#%PAM-1.0
+auth required pam_listfile.so onerr=fail item=user \
+ sense=allow file=/etc/xen/xenapiusers
+auth include common-auth
+account include common-account
+password include common-password
+session include common-session
diff --git a/gcc10-fixes.patch b/gcc10-fixes.patch
new file mode 100644
index 0000000..409fb74
--- /dev/null
+++ b/gcc10-fixes.patch
@@ -0,0 +1,202 @@
+References: bsc#1158414
+
+For libxlu_pci.c
+libxlu_pci.c: In function 'xlu_pci_parse_bdf':
+libxlu_pci.c:32:18: error: 'func' may be used uninitialized in this function [-Werror=maybe-uninitialized]
+ 32 | pcidev->func = func;
+ | ~~~~~~~~~~~~~^~~~~~
+libxlu_pci.c:51:29: note: 'func' was declared here
+ 51 | unsigned dom, bus, dev, func, vslot = 0;
+ | ^~~~
+libxlu_pci.c:31:17: error: 'dev' may be used uninitialized in this function [-Werror=maybe-uninitialized]
+ 31 | pcidev->dev = dev;
+ | ~~~~~~~~~~~~^~~~~
+libxlu_pci.c:51:24: note: 'dev' was declared here
+ 51 | unsigned dom, bus, dev, func, vslot = 0;
+ | ^~~
+libxlu_pci.c:30:17: error: 'bus' may be used uninitialized in this function [-Werror=maybe-uninitialized]
+ 30 | pcidev->bus = bus;
+ | ~~~~~~~~~~~~^~~~~
+libxlu_pci.c:51:19: note: 'bus' was declared here
+ 51 | unsigned dom, bus, dev, func, vslot = 0;
+ | ^~~
+libxlu_pci.c:29:20: error: 'dom' may be used uninitialized in this function [-Werror=maybe-uninitialized]
+ 29 | pcidev->domain = domain;
+ | ~~~~~~~~~~~~~~~^~~~~~~~
+libxlu_pci.c:51:14: note: 'dom' was declared here
+ 51 | unsigned dom, bus, dev, func, vslot = 0;
+ | ^~~
+
+
+For kdd.c
+kdd.c: In function 'kdd_tx':
+kdd.c:408:30: error: array subscript 65534 is outside the bounds of an interior zero-length array 'uint8_t[0]' {aka 'unsigned char[0]'} [-Werror=zero-length-bounds]
+ 408 | sum += s->txp.payload[i];
+ | ~~~~~~~~~~~~~~^~~
+In file included from kdd.c:52:
+kdd.h:326:17: note: while referencing 'payload'
+ 326 | uint8_t payload[0];
+ | ^~~~~~~
+cc1: all warnings being treated as errors
+
+
+For ssl_tls.c
+ssl_tls.c: In function 'ssl_session_reset':
+ssl_tls.c:1778:5: warning: 'memset' used with length equal to number of elements without multiplication by element size [-Wmemset-elt-size]
+ 1778 | memset( ssl->ctx_enc, 0, 128 );
+ | ^~~~~~
+ssl_tls.c:1779:5: warning: 'memset' used with length equal to number of elements without multiplication by element size [-Wmemset-elt-size]
+ 1779 | memset( ssl->ctx_dec, 0, 128 );
+ | ^~~~~~
+ssl_tls.c: In function 'ssl_encrypt_buf':
+ssl_tls.c:633:68: warning: this statement may fall through [-Wimplicit-fallthrough=]
+ 633 | ssl->session->ciphersuite == SSL_RSA_CAMELLIA_256_SHA ||
+ssl_tls.c:643:13: note: here
+ 643 | default:
+ | ^~~~~~~
+ssl_tls.c: In function 'ssl_decrypt_buf':
+ssl_tls.c:738:68: warning: this statement may fall through [-Wimplicit-fallthrough=]
+ 738 | ssl->session->ciphersuite == SSL_RSA_CAMELLIA_256_SHA ||
+ssl_tls.c:748:13: note: here
+ 748 | default:
+ | ^~~~~~~
+
+For xenstored_core.h
+ld: /home/abuild/rpmbuild/BUILD/xen-4.13.0-testing/stubdom/xenstore/xenstored.a(xenstored_watch.o):/home/abuild/rpmbuild/BUILD/xen-4.13.0-testing/stubdom/xenstore/xenstored_core.h:207: multiple definition of `xgt_handle'; /home/abuild/rpmbuild/BUILD/xen-4.13.0-testing/stubdom/xenstore/xenstored.a(xenstored_core.o):/home/abuild/rpmbuild/BUILD/xen-4.13.0-testing/stubdom/xenstore/xenstored_core.h:207: first defined here
+
+
+For utils.h
+ld: /home/abuild/rpmbuild/BUILD/xen-4.13.0-testing/stubdom/xenstore/xenstored.a(xenstored_watch.o):/home/abuild/rpmbuild/BUILD/xen-4.13.0-testing/stubdom/xenstore/utils.h:27: multiple definition of `xprintf'; /home/abuild/rpmbuild/BUILD/xen-4.13.0-testing/stubdom/xenstore/xenstored.a(xenstored_core.o):/home/abuild/rpmbuild/BUILD/xen-4.13.0-testing/stubdom/xenstore/utils.h:27: first defined here
+
+
+for libxl_utils.h
+specified bound 108 equals destination size [-Werror=stringop-truncation]
+
+
+xenpmd.c: In function 'get_next_battery_file':
+xenpmd.c:92:37: error: '%s' directive output may be truncated writing between 4 and 2147483645 bytes into a region of size 271 [-Werror=format-truncation=]
+ 92 | #define BATTERY_STATE_FILE_PATH "/tmp/battery/%s/state"
+ | ^~~~~~~~~~~~~~~~~~~~~~~
+xenpmd.c:117:52: note: in expansion of macro 'BATTERY_STATE_FILE_PATH'
+ 117 | snprintf(file_name, sizeof(file_name), BATTERY_STATE_FILE_PATH,
+ | ^~~~~~~~~~~~~~~~~~~~~~~
+
+
+Index: xen-4.13.0-testing/tools/libxl/libxlu_pci.c
+===================================================================
+--- xen-4.13.0-testing.orig/tools/libxl/libxlu_pci.c
++++ xen-4.13.0-testing/tools/libxl/libxlu_pci.c
+@@ -22,6 +22,9 @@ static int hex_convert(const char *str,
+ return 0;
+ }
+
++#if __GNUC__ >= 10
++#pragma GCC diagnostic ignored "-Wmaybe-uninitialized"
++#endif
+ static int pcidev_struct_fill(libxl_device_pci *pcidev, unsigned int domain,
+ unsigned int bus, unsigned int dev,
+ unsigned int func, unsigned int vdevfn)
+Index: xen-4.13.0-testing/tools/debugger/kdd/kdd.c
+===================================================================
+--- xen-4.13.0-testing.orig/tools/debugger/kdd/kdd.c
++++ xen-4.13.0-testing/tools/debugger/kdd/kdd.c
+@@ -396,6 +396,9 @@ static void find_os(kdd_state *s)
+ */
+
+
++#if __GNUC__ >= 10
++#pragma GCC diagnostic ignored "-Wzero-length-bounds"
++#endif
+ /* Send a serial packet */
+ static void kdd_tx(kdd_state *s)
+ {
+Index: xen-4.13.0-testing/stubdom/polarssl.patch
+===================================================================
+--- xen-4.13.0-testing.orig/stubdom/polarssl.patch
++++ xen-4.13.0-testing/stubdom/polarssl.patch
+@@ -62,3 +62,25 @@ diff -Naur polarssl-1.1.4/library/bignum
+ t_udbl r;
+
+ r = (t_udbl) X.p[i] << biL;
++--- polarssl-1.1.4/library/ssl_tls.c.orig 2012-05-30 01:39:36.000000000 -0600
+++++ polarssl-1.1.4/library/ssl_tls.c 2020-03-10 10:17:26.270755351 -0600
++@@ -487,6 +487,9 @@ static void ssl_mac_sha1( unsigned char
++ sha1_finish( &sha1, buf + len );
++ }
++
+++#if __GNUC__ >= 10
+++#pragma GCC diagnostic ignored "-Wimplicit-fallthrough="
+++#endif
++ /*
++ * Encryption/decryption functions
++ */
++@@ -1739,6 +1742,9 @@ int ssl_init( ssl_context *ssl )
++ return( 0 );
++ }
++
+++#if __GNUC__ >= 10
+++#pragma GCC diagnostic ignored "-Wmemset-elt-size"
+++#endif
++ /*
++ * Reset an initialized and used SSL context for re-use while retaining
++ * all application-set variables, function pointers and data.
+Index: xen-4.13.0-testing/tools/xenstore/xenstored_core.h
+===================================================================
+--- xen-4.13.0-testing.orig/tools/xenstore/xenstored_core.h
++++ xen-4.13.0-testing/tools/xenstore/xenstored_core.h
+@@ -204,7 +204,11 @@ void finish_daemonize(void);
+ /* Open a pipe for signal handling */
+ void init_pipe(int reopen_log_pipe[2]);
+
++#if __GNUC__ >= 10
++extern xengnttab_handle **xgt_handle;
++#else
+ xengnttab_handle **xgt_handle;
++#endif
+
+ int remember_string(struct hashtable *hash, const char *str);
+
+Index: xen-4.13.0-testing/tools/xenstore/utils.h
+===================================================================
+--- xen-4.13.0-testing.orig/tools/xenstore/utils.h
++++ xen-4.13.0-testing/tools/xenstore/utils.h
+@@ -24,7 +24,11 @@ static inline bool strends(const char *a
+ void barf(const char *fmt, ...) __attribute__((noreturn));
+ void barf_perror(const char *fmt, ...) __attribute__((noreturn));
+
++#if __GNUC__ >= 10
++extern void (*xprintf)(const char *fmt, ...);
++#else
+ void (*xprintf)(const char *fmt, ...);
++#endif
+
+ #define eprintf(_fmt, _args...) xprintf("[ERR] %s" _fmt, __FUNCTION__, ##_args)
+
+Index: xen-4.13.0-testing/tools/libxl/libxl_utils.c
+===================================================================
+--- xen-4.13.0-testing.orig/tools/libxl/libxl_utils.c
++++ xen-4.13.0-testing/tools/libxl/libxl_utils.c
+@@ -1248,6 +1248,9 @@ int libxl__random_bytes(libxl__gc *gc, u
+ return ret;
+ }
+
++#if __GNUC__ >= 10
++#pragma GCC diagnostic ignored "-Wstringop-truncation"
++#endif
+ int libxl__prepare_sockaddr_un(libxl__gc *gc,
+ struct sockaddr_un *un, const char *path,
+ const char *what)
+Index: xen-4.13.0-testing/tools/xenpmd/xenpmd.c
+===================================================================
+--- xen-4.13.0-testing.orig/tools/xenpmd/xenpmd.c
++++ xen-4.13.0-testing/tools/xenpmd/xenpmd.c
+@@ -86,6 +86,9 @@ struct battery_status {
+
+ static struct xs_handle *xs;
+
++#if __GNUC__ >= 10
++#pragma GCC diagnostic ignored "-Wformat-truncation"
++#endif
+ #ifdef RUN_IN_SIMULATE_MODE
+ #define BATTERY_DIR_PATH "/tmp/battery"
+ #define BATTERY_INFO_FILE_PATH "/tmp/battery/%s/info"
diff --git a/hibernate.patch b/hibernate.patch
new file mode 100644
index 0000000..d3b1bb7
--- /dev/null
+++ b/hibernate.patch
@@ -0,0 +1,44 @@
+Index: xen-4.8.0-testing/tools/libacpi/ssdt_s3.asl
+===================================================================
+--- xen-4.8.0-testing.orig/tools/libacpi/ssdt_s3.asl
++++ xen-4.8.0-testing/tools/libacpi/ssdt_s3.asl
+@@ -16,13 +16,9 @@
+
+ DefinitionBlock ("SSDT_S3.aml", "SSDT", 2, "Xen", "HVM", 0)
+ {
+- /* Must match piix emulation */
+- Name (\_S3, Package (0x04)
+- {
+- 0x01, /* PM1a_CNT.SLP_TYP */
+- 0x01, /* PM1b_CNT.SLP_TYP */
+- 0x0, /* reserved */
+- 0x0 /* reserved */
+- })
++ /*
++ * Turn off support for s3 sleep state to deal with SVVP tests.
++ * This is what MSFT does on HyperV.
++ */
+ }
+
+Index: xen-4.8.0-testing/tools/libacpi/ssdt_s4.asl
+===================================================================
+--- xen-4.8.0-testing.orig/tools/libacpi/ssdt_s4.asl
++++ xen-4.8.0-testing/tools/libacpi/ssdt_s4.asl
+@@ -16,13 +16,9 @@
+
+ DefinitionBlock ("SSDT_S4.aml", "SSDT", 2, "Xen", "HVM", 0)
+ {
+- /* Must match piix emulation */
+- Name (\_S4, Package (0x04)
+- {
+- 0x00, /* PM1a_CNT.SLP_TYP */
+- 0x00, /* PM1b_CNT.SLP_TYP */
+- 0x00, /* reserved */
+- 0x00 /* reserved */
+- })
++ /*
++ * Turn off support for s4 sleep state to deal with SVVP tests.
++ * This is what MSFT does on HyperV.
++ */
+ }
+
diff --git a/ignore-ip-command-script-errors.patch b/ignore-ip-command-script-errors.patch
new file mode 100644
index 0000000..7457873
--- /dev/null
+++ b/ignore-ip-command-script-errors.patch
@@ -0,0 +1,48 @@
+References: bsc#1172356
+The bug is that virt-manager reports a failure when in fact
+the host and guest have added the network interface. The Xen
+scripts are failing with an error when in fact that command
+is succeeding.
+
+The 'ip' commands seem to abort the script due to a 'set -e' in
+xen-script-common.sh with what appears to be an error condition.
+However, the command actually succeeds when checked from the
+host console or also by inserting a sleep before each ip command
+and executing it manually at the command line. This seems to be
+an artifact of using 'set -e' everywhere.
+
+--- xen-4.13.1-testing.orig/tools/hotplug/Linux/xen-network-common.sh
++++ xen-4.13.1-testing/tools/hotplug/Linux/xen-network-common.sh
+@@ -90,7 +90,7 @@ _setup_bridge_port() {
+ local virtual="$2"
+
+ # take interface down ...
+- ip link set dev ${dev} down
++ (ip link set dev ${dev} down || true)
+
+ if [ $virtual -ne 0 ] ; then
+ # Initialise a dummy MAC address. We choose the numerically
+@@ -101,7 +101,7 @@ _setup_bridge_port() {
+ fi
+
+ # ... and configure it
+- ip address flush dev ${dev}
++ (ip address flush dev ${dev} || true)
+ }
+
+ setup_physical_bridge_port() {
+@@ -138,11 +138,11 @@ add_to_bridge () {
+ return
+ fi
+ if [ "$legacy_tools" ]; then
+- brctl addif ${bridge} ${dev}
++ (brctl addif ${bridge} ${dev} || true)
+ else
+- ip link set "$dev" master "$bridge"
++ (ip link set "$dev" master "$bridge" || true)
+ fi
+- ip link set dev ${dev} up
++ (ip link set dev ${dev} up || true)
+ }
+
+ # Usage: set_mtu bridge dev
diff --git a/init.pciback b/init.pciback
new file mode 100644
index 0000000..db0d79d
--- /dev/null
+++ b/init.pciback
@@ -0,0 +1,119 @@
+#!/bin/bash
+#
+# Copyright (c) 2014 SUSE GmbH Nuernberg, Germany. All rights reserved.
+#
+# /etc/init.d/pciback
+#
+### BEGIN INIT INFO
+# Provides: pciback
+# Required-Start: $syslog $network
+# Should-Start: $null
+# Required-Stop: $syslog $network
+# Should-Stop: $null
+# Default-Start: 3 5
+# Default-Stop: 0 1 2 6
+# Description: bind PCI devices to pciback
+### END INIT INFO
+
+. /etc/rc.status
+. /etc/sysconfig/pciback
+
+rc_reset
+
+load_pciback() {
+ if ! lsmod | grep -qi "pciback"
+ then
+ echo "Loading pciback ..."
+ modprobe pciback
+ fi
+}
+
+unload_pciback() {
+ if lsmod | grep -qi "pciback"
+ then
+ echo "Unloading pciback ..."
+ modprobe -r pciback
+ fi
+}
+
+bind_dev_to_pciback() {
+ for DEVICE in ${XEN_PCI_HIDE_LIST}
+ do
+ local DRV=`echo ${DEVICE} | /usr/bin/cut -d "," -f 1`
+ local PCIID=`echo ${DEVICE} | /usr/bin/cut -d "," -f 2`
+
+ if ! ls /sys/bus/pci/drivers/pciback/${PCIID} > /dev/null 2>&1
+ then
+ echo "Binding ${PCIID} ..."
+ if ls /sys/bus/pci/drivers/${DRV}/${PCIID} > /dev/null 2>&1
+ then
+ echo -n ${PCIID} > /sys/bus/pci/drivers/${DRV}/unbind
+ fi
+ echo -n ${PCIID} > /sys/bus/pci/drivers/pciback/new_slot
+ echo -n ${PCIID} > /sys/bus/pci/drivers/pciback/bind
+ fi
+ done
+}
+
+unbind_dev_from_pciback() {
+ for DEVICE in ${XEN_PCI_HIDE_LIST}
+ do
+ local DRV=`echo ${DEVICE} | /usr/bin/cut -d "," -f 1`
+ local PCIID=`echo ${DEVICE} | /usr/bin/cut -d "," -f 2`
+
+ if ls /sys/bus/pci/drivers/pciback/${PCIID} > /dev/null
+ then
+ echo "Unbinding ${PCIID} ..."
+ echo -n ${PCIID} > /sys/bus/pci/drivers/pciback/unbind
+ fi
+ done
+}
+
+test "uname -r" | grep xen && exit 0
+
+case $1 in
+ start)
+ echo "Starting pciback ..."
+ echo
+ load_pciback
+ bind_dev_to_pciback
+
+ rc_status -v -r
+ ;;
+ stop)
+ echo "Stopping pciback ..."
+ echo
+ unbind_dev_from_pciback
+ unload_pciback
+
+ rc_status -v
+ ;;
+ reload|restart)
+ echo "Stopping pciback ..."
+ echo
+ unbind_dev_from_pciback
+ unload_pciback
+ echo "Starting pciback ..."
+ echo
+ load_pciback
+ bind_dev_to_pciback
+ ;;
+ status)
+ if lsmod | grep -qi pciback
+ then
+ echo
+ echo "pciback: loaded"
+ echo
+ echo "Currently bound devices ..."
+ echo "-----------------------------"
+ ls /sys/bus/pci/drivers/pciback | grep ^0000
+ echo
+ else
+ echo "pciback: not loaded"
+ fi
+ ;;
+ *)
+ echo "Usage: $0 [start|stop|restart|reload|status]"
+ exit 1
+ ;;
+esac
diff --git a/init.xen_loop b/init.xen_loop
new file mode 100644
index 0000000..a60fc11
--- /dev/null
+++ b/init.xen_loop
@@ -0,0 +1,2 @@
+# Increase the number of loopback devices available for vm creation
+options loop max_loop=64
diff --git a/ipxe-enable-nics.patch b/ipxe-enable-nics.patch
new file mode 100644
index 0000000..2379374
--- /dev/null
+++ b/ipxe-enable-nics.patch
@@ -0,0 +1,9 @@
+Index: xen-4.2.0-testing/tools/firmware/etherboot/Config
+===================================================================
+--- xen-4.2.0-testing.orig/tools/firmware/etherboot/Config
++++ xen-4.2.0-testing/tools/firmware/etherboot/Config
+@@ -1,3 +1,4 @@
++NICS = rtl8139 8086100e eepro100 e1000 pcnet32 10ec8029
+
+ CFLAGS += -UPXE_DHCP_STRICT
+ CFLAGS += -DPXE_DHCP_STRICT
diff --git a/ipxe-no-error-logical-not-parentheses.patch b/ipxe-no-error-logical-not-parentheses.patch
new file mode 100644
index 0000000..92a0562
--- /dev/null
+++ b/ipxe-no-error-logical-not-parentheses.patch
@@ -0,0 +1,23 @@
+Index: xen-4.8.0-testing/tools/firmware/etherboot/patches/ipxe-no-error-logical-not-parentheses.patch
+===================================================================
+--- /dev/null
++++ xen-4.8.0-testing/tools/firmware/etherboot/patches/ipxe-no-error-logical-not-parentheses.patch
+@@ -0,0 +1,11 @@
++--- ipxe/src/Makefile.housekeeping.orig 2015-03-12 12:15:50.054891858 +0000
+++++ ipxe/src/Makefile.housekeeping 2015-03-12 12:16:05.978071221 +0000
++@@ -415,7 +415,7 @@
++ # Inhibit -Werror if NO_WERROR is specified on make command line
++ #
++ ifneq ($(NO_WERROR),1)
++-CFLAGS += -Werror
+++CFLAGS += -Werror -Wno-logical-not-parentheses
++ ASFLAGS += --fatal-warnings
++ endif
++
+Index: xen-4.8.0-testing/tools/firmware/etherboot/patches/series
+===================================================================
+--- xen-4.8.0-testing.orig/tools/firmware/etherboot/patches/series
++++ xen-4.8.0-testing/tools/firmware/etherboot/patches/series
+@@ -1 +1,2 @@
+ boot_prompt_option.patch
++ipxe-no-error-logical-not-parentheses.patch
diff --git a/ipxe-use-rpm-opt-flags.patch b/ipxe-use-rpm-opt-flags.patch
new file mode 100644
index 0000000..a96c5d6
--- /dev/null
+++ b/ipxe-use-rpm-opt-flags.patch
@@ -0,0 +1,26 @@
+References: bsc#969377 - xen does not build with GCC 6
+
+Index: xen-4.8.0-testing/tools/firmware/etherboot/patches/ipxe-use-rpm-opt-flags.patch
+===================================================================
+--- /dev/null
++++ xen-4.8.0-testing/tools/firmware/etherboot/patches/ipxe-use-rpm-opt-flags.patch
+@@ -0,0 +1,11 @@
++--- ipxe/src/Makefile.orig 2016-03-04 15:48:15.000000000 -0700
+++++ ipxe/src/Makefile 2016-03-04 15:48:40.000000000 -0700
++@@ -4,7 +4,7 @@
++ #
++
++ CLEANUP :=
++-CFLAGS :=
+++CFLAGS := $(RPM_OPT_FLAGS) -Wno-error=array-bounds -Wno-nonnull-compare -Wno-unused-const-variable -Wno-misleading-indentation -Wno-shift-negative-value -Wno-implicit-fallthrough -Wno-nonnull
++ ASFLAGS :=
++ LDFLAGS :=
++ MAKEDEPS := Makefile
+Index: xen-4.8.0-testing/tools/firmware/etherboot/patches/series
+===================================================================
+--- xen-4.8.0-testing.orig/tools/firmware/etherboot/patches/series
++++ xen-4.8.0-testing/tools/firmware/etherboot/patches/series
+@@ -1,2 +1,3 @@
+ boot_prompt_option.patch
+ ipxe-no-error-logical-not-parentheses.patch
++ipxe-use-rpm-opt-flags.patch
diff --git a/libxc.migrate_tracking.patch b/libxc.migrate_tracking.patch
new file mode 100644
index 0000000..14d1624
--- /dev/null
+++ b/libxc.migrate_tracking.patch
@@ -0,0 +1,220 @@
+Track live migration state unconditionally in logfiles to see how long a domU was suspended.
+Depends on libxc.sr.superpage.patch
+
+--- a/tools/libxc/xc_domain.c
++++ b/tools/libxc/xc_domain.c
+@@ -69,20 +69,26 @@ int xc_domain_cacheflush(xc_interface *x
+ int xc_domain_pause(xc_interface *xch,
+ uint32_t domid)
+ {
++ int ret;
+ DECLARE_DOMCTL;
+ domctl.cmd = XEN_DOMCTL_pausedomain;
+ domctl.domain = domid;
+- return do_domctl(xch, &domctl);
++ ret = do_domctl(xch, &domctl);
++ SUSEINFO("domid %u: %s returned %d", domid, __func__, ret);
++ return ret;
+ }
+
+
+ int xc_domain_unpause(xc_interface *xch,
+ uint32_t domid)
+ {
++ int ret;
+ DECLARE_DOMCTL;
+ domctl.cmd = XEN_DOMCTL_unpausedomain;
+ domctl.domain = domid;
+- return do_domctl(xch, &domctl);
++ ret = do_domctl(xch, &domctl);
++ SUSEINFO("domid %u: %s returned %d", domid, __func__, ret);
++ return ret;
+ }
+
+
+--- a/tools/libxc/xc_private.h
++++ b/tools/libxc/xc_private.h
+@@ -42,6 +42,11 @@
+
+ #include <xen-tools/libs.h>
+
++#define SUSEINFO(_m, _a...) do { int ERROR_errno = errno; \
++ xc_report(xch, xch->error_handler, XTL_ERROR, XC_ERROR_NONE, "SUSEINFO: " _m , ## _a ); \
++ errno = ERROR_errno; \
++ } while (0)
++
+ #if defined(HAVE_VALGRIND_MEMCHECK_H) && !defined(NDEBUG) && !defined(__MINIOS__)
+ /* Compile in Valgrind client requests? */
+ #include <valgrind/memcheck.h>
+--- a/tools/libxc/xc_resume.c
++++ b/tools/libxc/xc_resume.c
+@@ -284,7 +284,9 @@ out:
+ */
+ int xc_domain_resume(xc_interface *xch, uint32_t domid, int fast)
+ {
+- return (fast
++ int ret = (fast
+ ? xc_domain_resume_cooperative(xch, domid)
+ : xc_domain_resume_any(xch, domid));
++ SUSEINFO("domid %u: %s%s returned %d", domid, __func__, fast ? " fast" : "", ret);
++ return ret;
+ }
+--- a/tools/libxc/xc_sr_common.c
++++ b/tools/libxc/xc_sr_common.c
+@@ -196,6 +196,65 @@ bool _xc_sr_bitmap_resize(struct xc_sr_b
+ return true;
+ }
+
++/* Write a two-character hex representation of 'byte' to digits[].
++ Pre-condition: sizeof(digits) >= 2 */
++static void byte_to_hex(char *digits, const uint8_t byte)
++{
++ uint8_t nybbel = byte >> 4;
++
++ if ( nybbel > 9 )
++ digits[0] = 'a' + nybbel-10;
++ else
++ digits[0] = '0' + nybbel;
++
++ nybbel = byte & 0x0f;
++ if ( nybbel > 9 )
++ digits[1] = 'a' + nybbel-10;
++ else
++ digits[1] = '0' + nybbel;
++}
++
++/* Convert an array of 16 unsigned bytes to a DCE/OSF formatted UUID
++ string.
++
++ Pre-condition: sizeof(dest) >= 37 */
++void sr_uuid_to_string(char *dest, const uint8_t *uuid)
++{
++ int i = 0;
++ char *p = dest;
++
++ for (; i < 4; i++ )
++ {
++ byte_to_hex(p, uuid[i]);
++ p += 2;
++ }
++ *p++ = '-';
++ for (; i < 6; i++ )
++ {
++ byte_to_hex(p, uuid[i]);
++ p += 2;
++ }
++ *p++ = '-';
++ for (; i < 8; i++ )
++ {
++ byte_to_hex(p, uuid[i]);
++ p += 2;
++ }
++ *p++ = '-';
++ for (; i < 10; i++ )
++ {
++ byte_to_hex(p, uuid[i]);
++ p += 2;
++ }
++ *p++ = '-';
++ for (; i < 16; i++ )
++ {
++ byte_to_hex(p, uuid[i]);
++ p += 2;
++ }
++ *p = '\0';
++}
++
+ /*
+ * Local variables:
+ * mode: C
+--- a/tools/libxc/xc_sr_common.h
++++ b/tools/libxc/xc_sr_common.h
+@@ -195,6 +195,7 @@ struct xc_sr_context
+ int fd;
+
+ xc_dominfo_t dominfo;
++ char uuid[16*2+4+1];
+
+ union /* Common save or restore data. */
+ {
+@@ -427,6 +428,8 @@ static inline int pfn_set_populated(stru
+ return 0;
+ }
+
++extern void sr_uuid_to_string(char *dest, const uint8_t *uuid);
++
+ struct xc_sr_record
+ {
+ uint32_t type;
+--- a/tools/libxc/xc_sr_restore.c
++++ b/tools/libxc/xc_sr_restore.c
+@@ -608,6 +608,7 @@ static int restore(struct xc_sr_context
+ struct xc_sr_record rec;
+ int rc, saved_rc = 0, saved_errno = 0;
+
++ SUSEINFO("domid %u: %s %s start", ctx->domid, ctx->uuid, __func__);
+ IPRINTF("Restoring domain");
+
+ rc = setup(ctx);
+@@ -684,6 +685,7 @@ static int restore(struct xc_sr_context
+ PERROR("Restore failed");
+
+ done:
++ SUSEINFO("domid %u: %s done", ctx->domid, __func__);
+ cleanup(ctx);
+
+ if ( saved_rc )
+@@ -748,6 +750,7 @@ int xc_domain_restore(xc_interface *xch,
+ }
+
+ ctx.domid = dom;
++ sr_uuid_to_string(ctx.uuid, ctx.dominfo.handle);
+
+ if ( read_headers(&ctx) )
+ return -1;
+--- a/tools/libxc/xc_sr_save.c
++++ b/tools/libxc/xc_sr_save.c
+@@ -852,6 +852,7 @@ static int save(struct xc_sr_context *ct
+ xc_interface *xch = ctx->xch;
+ int rc, saved_rc = 0, saved_errno = 0;
+
++ SUSEINFO("domid %u: %s %s start, %lu pages allocated", ctx->domid, ctx->uuid, __func__, ctx->dominfo.nr_pages);
+ IPRINTF("Saving domain %d, type %s",
+ ctx->domid, dhdr_type_to_str(guest_type));
+
+@@ -964,6 +965,7 @@ static int save(struct xc_sr_context *ct
+ PERROR("Save failed");
+
+ done:
++ SUSEINFO("domid %u: %s done", ctx->domid, __func__);
+ cleanup(ctx);
+
+ if ( saved_rc )
+@@ -1019,6 +1021,10 @@ static int suse_precopy_policy(struct pr
+ goto out;
+ }
+ /* Keep going */
++ if ( stats.dirty_count >= 0 )
++ SUSEINFO("domid %u: dirty pages %ld after iteration %u/%u",
++ suse_flags.ctx->domid,
++ suse_flags.dirty_count, stats.iteration, suse_flags.max_iters);
+ return XGS_POLICY_CONTINUE_PRECOPY;
+
+ out:
+@@ -1032,6 +1038,8 @@ out:
+ return XGS_POLICY_ABORT;
+ }
+ suspend:
++ SUSEINFO("domid %u: suspending, remaining dirty pages %ld prior final transit",
++ suse_flags.ctx->domid, suse_flags.dirty_count);
+ return XGS_POLICY_STOP_AND_COPY;
+ }
+
+@@ -1095,6 +1103,7 @@ int xc_domain_save_suse(xc_interface *xc
+ }
+
+ ctx.domid = dom;
++ sr_uuid_to_string(ctx.uuid, ctx.dominfo.handle);
+
+ if ( ctx.dominfo.hvm )
+ {
diff --git a/libxc.sr.superpage.patch b/libxc.sr.superpage.patch
new file mode 100644
index 0000000..ccb66bc
--- /dev/null
+++ b/libxc.sr.superpage.patch
@@ -0,0 +1,905 @@
+tools/libxc: use superpages during restore of HVM guest
+bsc#1035231 - migration of HVM domU does not use superpages on destination dom0
+bsc#1055695 - XEN: 11SP4 and 12SP3 HVM guests can not be restored
+
+During creating of a HVM domU meminit_hvm() tries to map superpages.
+After save/restore or migration this mapping is lost, everything is
+allocated in single pages. This causes a performance degradition after
+migration.
+
+Add neccessary code to preallocate a superpage for the chunk of pfns
+that is received. In case a pfn was not populated on the sending side it
+must be freed on the receiving side to avoid over-allocation.
+
+The existing code for x86_pv is moved unmodified into its own file.
+Index: xen-4.13.1-testing/tools/libxc/xc_dom_x86.c
+===================================================================
+--- xen-4.13.1-testing.orig/tools/libxc/xc_dom_x86.c
++++ xen-4.13.1-testing/tools/libxc/xc_dom_x86.c
+@@ -45,11 +45,6 @@
+
+ #define SUPERPAGE_BATCH_SIZE 512
+
+-#define SUPERPAGE_2MB_SHIFT 9
+-#define SUPERPAGE_2MB_NR_PFNS (1UL << SUPERPAGE_2MB_SHIFT)
+-#define SUPERPAGE_1GB_SHIFT 18
+-#define SUPERPAGE_1GB_NR_PFNS (1UL << SUPERPAGE_1GB_SHIFT)
+-
+ #define X86_CR0_PE 0x01
+ #define X86_CR0_ET 0x10
+
+Index: xen-4.13.1-testing/tools/libxc/xc_private.h
+===================================================================
+--- xen-4.13.1-testing.orig/tools/libxc/xc_private.h
++++ xen-4.13.1-testing/tools/libxc/xc_private.h
+@@ -71,6 +71,11 @@ struct iovec {
+ #define DECLARE_FLASK_OP struct xen_flask_op op
+ #define DECLARE_PLATFORM_OP struct xen_platform_op platform_op
+
++#define SUPERPAGE_2MB_SHIFT 9
++#define SUPERPAGE_2MB_NR_PFNS (1UL << SUPERPAGE_2MB_SHIFT)
++#define SUPERPAGE_1GB_SHIFT 18
++#define SUPERPAGE_1GB_NR_PFNS (1UL << SUPERPAGE_1GB_SHIFT)
++
+ #undef PAGE_SHIFT
+ #undef PAGE_SIZE
+ #undef PAGE_MASK
+Index: xen-4.13.1-testing/tools/libxc/xc_sr_common.c
+===================================================================
+--- xen-4.13.1-testing.orig/tools/libxc/xc_sr_common.c
++++ xen-4.13.1-testing/tools/libxc/xc_sr_common.c
+@@ -156,6 +156,47 @@ static void __attribute__((unused)) buil
+ }
+
+ /*
++ * Expand the tracking structures as needed.
++ * To avoid realloc()ing too excessively, the size increased to the nearest power
++ * of two large enough to contain the required number of bits.
++ */
++bool _xc_sr_bitmap_resize(struct xc_sr_bitmap *bm, unsigned long bits)
++{
++ if (bits > bm->bits)
++ {
++ size_t new_max;
++ size_t old_sz, new_sz;
++ void *p;
++
++ /* Round up to the nearest power of two larger than bit, less 1. */
++ new_max = bits;
++ new_max |= new_max >> 1;
++ new_max |= new_max >> 2;
++ new_max |= new_max >> 4;
++ new_max |= new_max >> 8;
++ new_max |= new_max >> 16;
++#ifdef __x86_64__
++ new_max |= new_max >> 32;
++#endif
++
++ old_sz = bitmap_size(bm->bits + 1);
++ new_sz = bitmap_size(new_max + 1);
++ p = realloc(bm->p, new_sz);
++ if (!p)
++ return false;
++
++ if (bm->p)
++ memset(p + old_sz, 0, new_sz - old_sz);
++ else
++ memset(p, 0, new_sz);
++
++ bm->p = p;
++ bm->bits = new_max;
++ }
++ return true;
++}
++
++/*
+ * Local variables:
+ * mode: C
+ * c-file-style: "BSD"
+Index: xen-4.13.1-testing/tools/libxc/xc_sr_common.h
+===================================================================
+--- xen-4.13.1-testing.orig/tools/libxc/xc_sr_common.h
++++ xen-4.13.1-testing/tools/libxc/xc_sr_common.h
+@@ -140,6 +140,16 @@ struct xc_sr_restore_ops
+ int (*setup)(struct xc_sr_context *ctx);
+
+ /**
++ * Populate PFNs
++ *
++ * Given a set of pfns, obtain memory from Xen to fill the physmap for the
++ * unpopulated subset.
++ */
++ int (*populate_pfns)(struct xc_sr_context *ctx, unsigned count,
++ const xen_pfn_t *original_pfns, const uint32_t *types);
++
++
++ /**
+ * Process an individual record from the stream. The caller shall take
+ * care of processing common records (e.g. END, PAGE_DATA).
+ *
+@@ -172,6 +182,12 @@ struct xc_sr_x86_pv_restore_vcpu
+ size_t basicsz, extdsz, xsavesz, msrsz;
+ };
+
++struct xc_sr_bitmap
++{
++ void *p;
++ unsigned long bits;
++};
++
+ struct xc_sr_context
+ {
+ xc_interface *xch;
+@@ -216,6 +232,8 @@ struct xc_sr_context
+
+ int send_back_fd;
+ unsigned long p2m_size;
++ unsigned long max_pages;
++ unsigned long tot_pages;
+ xc_hypercall_buffer_t dirty_bitmap_hbuf;
+
+ /* From Image Header. */
+@@ -253,8 +271,7 @@ struct xc_sr_context
+ uint32_t xenstore_domid, console_domid;
+
+ /* Bitmap of currently populated PFNs during restore. */
+- unsigned long *populated_pfns;
+- xen_pfn_t max_populated_pfn;
++ struct xc_sr_bitmap populated_pfns;
+
+ /* Sender has invoked verify mode on the stream. */
+ bool verify;
+@@ -329,6 +346,12 @@ struct xc_sr_context
+ /* HVM context blob. */
+ void *context;
+ size_t contextsz;
++
++ /* Bitmap of currently allocated PFNs during restore. */
++ struct xc_sr_bitmap attempted_1g;
++ struct xc_sr_bitmap attempted_2m;
++ struct xc_sr_bitmap allocated_pfns;
++ xen_pfn_t idx1G_prev, idx2M_prev;
+ } restore;
+ };
+ } x86_hvm;
+@@ -341,6 +364,69 @@ extern struct xc_sr_save_ops save_ops_x8
+ extern struct xc_sr_restore_ops restore_ops_x86_pv;
+ extern struct xc_sr_restore_ops restore_ops_x86_hvm;
+
++extern bool _xc_sr_bitmap_resize(struct xc_sr_bitmap *bm, unsigned long bits);
++
++static inline bool xc_sr_bitmap_resize(struct xc_sr_bitmap *bm, unsigned long bits)
++{
++ if (bits > bm->bits)
++ return _xc_sr_bitmap_resize(bm, bits);
++ return true;
++}
++
++static inline void xc_sr_bitmap_free(struct xc_sr_bitmap *bm)
++{
++ free(bm->p);
++ bm->p = NULL;
++}
++
++static inline bool xc_sr_set_bit(unsigned long bit, struct xc_sr_bitmap *bm)
++{
++ if (!xc_sr_bitmap_resize(bm, bit))
++ return false;
++
++ set_bit(bit, bm->p);
++ return true;
++}
++
++static inline bool xc_sr_test_bit(unsigned long bit, struct xc_sr_bitmap *bm)
++{
++ if (bit > bm->bits)
++ return false;
++ return !!test_bit(bit, bm->p);
++}
++
++static inline bool xc_sr_test_and_clear_bit(unsigned long bit, struct xc_sr_bitmap *bm)
++{
++ if (bit > bm->bits)
++ return false;
++ return !!test_and_clear_bit(bit, bm->p);
++}
++
++static inline bool xc_sr_test_and_set_bit(unsigned long bit, struct xc_sr_bitmap *bm)
++{
++ if (bit > bm->bits)
++ return false;
++ return !!test_and_set_bit(bit, bm->p);
++}
++
++static inline bool pfn_is_populated(struct xc_sr_context *ctx, xen_pfn_t pfn)
++{
++ return xc_sr_test_bit(pfn, &ctx->restore.populated_pfns);
++}
++
++static inline int pfn_set_populated(struct xc_sr_context *ctx, xen_pfn_t pfn)
++{
++ xc_interface *xch = ctx->xch;
++
++ if ( !xc_sr_set_bit(pfn, &ctx->restore.populated_pfns) )
++ {
++ ERROR("Failed to realloc populated_pfns bitmap");
++ errno = ENOMEM;
++ return -1;
++ }
++ return 0;
++}
++
+ struct xc_sr_record
+ {
+ uint32_t type;
+@@ -389,14 +475,6 @@ static inline int write_record(struct xc
+ */
+ int read_record(struct xc_sr_context *ctx, int fd, struct xc_sr_record *rec);
+
+-/*
+- * This would ideally be private in restore.c, but is needed by
+- * x86_pv_localise_page() if we receive pagetables frames ahead of the
+- * contents of the frames they point at.
+- */
+-int populate_pfns(struct xc_sr_context *ctx, unsigned count,
+- const xen_pfn_t *original_pfns, const uint32_t *types);
+-
+ #endif
+ /*
+ * Local variables:
+Index: xen-4.13.1-testing/tools/libxc/xc_sr_restore.c
+===================================================================
+--- xen-4.13.1-testing.orig/tools/libxc/xc_sr_restore.c
++++ xen-4.13.1-testing/tools/libxc/xc_sr_restore.c
+@@ -69,132 +69,6 @@ static int read_headers(struct xc_sr_con
+ }
+
+ /*
+- * Is a pfn populated?
+- */
+-static bool pfn_is_populated(const struct xc_sr_context *ctx, xen_pfn_t pfn)
+-{
+- if ( pfn > ctx->restore.max_populated_pfn )
+- return false;
+- return test_bit(pfn, ctx->restore.populated_pfns);
+-}
+-
+-/*
+- * Set a pfn as populated, expanding the tracking structures if needed. To
+- * avoid realloc()ing too excessively, the size increased to the nearest power
+- * of two large enough to contain the required pfn.
+- */
+-static int pfn_set_populated(struct xc_sr_context *ctx, xen_pfn_t pfn)
+-{
+- xc_interface *xch = ctx->xch;
+-
+- if ( pfn > ctx->restore.max_populated_pfn )
+- {
+- xen_pfn_t new_max;
+- size_t old_sz, new_sz;
+- unsigned long *p;
+-
+- /* Round up to the nearest power of two larger than pfn, less 1. */
+- new_max = pfn;
+- new_max |= new_max >> 1;
+- new_max |= new_max >> 2;
+- new_max |= new_max >> 4;
+- new_max |= new_max >> 8;
+- new_max |= new_max >> 16;
+-#ifdef __x86_64__
+- new_max |= new_max >> 32;
+-#endif
+-
+- old_sz = bitmap_size(ctx->restore.max_populated_pfn + 1);
+- new_sz = bitmap_size(new_max + 1);
+- p = realloc(ctx->restore.populated_pfns, new_sz);
+- if ( !p )
+- {
+- ERROR("Failed to realloc populated bitmap");
+- errno = ENOMEM;
+- return -1;
+- }
+-
+- memset((uint8_t *)p + old_sz, 0x00, new_sz - old_sz);
+-
+- ctx->restore.populated_pfns = p;
+- ctx->restore.max_populated_pfn = new_max;
+- }
+-
+- assert(!test_bit(pfn, ctx->restore.populated_pfns));
+- set_bit(pfn, ctx->restore.populated_pfns);
+-
+- return 0;
+-}
+-
+-/*
+- * Given a set of pfns, obtain memory from Xen to fill the physmap for the
+- * unpopulated subset. If types is NULL, no page type checking is performed
+- * and all unpopulated pfns are populated.
+- */
+-int populate_pfns(struct xc_sr_context *ctx, unsigned count,
+- const xen_pfn_t *original_pfns, const uint32_t *types)
+-{
+- xc_interface *xch = ctx->xch;
+- xen_pfn_t *mfns = malloc(count * sizeof(*mfns)),
+- *pfns = malloc(count * sizeof(*pfns));
+- unsigned i, nr_pfns = 0;
+- int rc = -1;
+-
+- if ( !mfns || !pfns )
+- {
+- ERROR("Failed to allocate %zu bytes for populating the physmap",
+- 2 * count * sizeof(*mfns));
+- goto err;
+- }
+-
+- for ( i = 0; i < count; ++i )
+- {
+- if ( (!types || (types &&
+- (types[i] != XEN_DOMCTL_PFINFO_XTAB &&
+- types[i] != XEN_DOMCTL_PFINFO_BROKEN))) &&
+- !pfn_is_populated(ctx, original_pfns[i]) )
+- {
+- rc = pfn_set_populated(ctx, original_pfns[i]);
+- if ( rc )
+- goto err;
+- pfns[nr_pfns] = mfns[nr_pfns] = original_pfns[i];
+- ++nr_pfns;
+- }
+- }
+-
+- if ( nr_pfns )
+- {
+- rc = xc_domain_populate_physmap_exact(
+- xch, ctx->domid, nr_pfns, 0, 0, mfns);
+- if ( rc )
+- {
+- PERROR("Failed to populate physmap");
+- goto err;
+- }
+-
+- for ( i = 0; i < nr_pfns; ++i )
+- {
+- if ( mfns[i] == INVALID_MFN )
+- {
+- ERROR("Populate physmap failed for pfn %u", i);
+- rc = -1;
+- goto err;
+- }
+-
+- ctx->restore.ops.set_gfn(ctx, pfns[i], mfns[i]);
+- }
+- }
+-
+- rc = 0;
+-
+- err:
+- free(pfns);
+- free(mfns);
+-
+- return rc;
+-}
+-
+-/*
+ * Given a list of pfns, their types, and a block of page data from the
+ * stream, populate and record their types, map the relevant subset and copy
+ * the data into the guest.
+@@ -219,7 +93,7 @@ static int process_page_data(struct xc_s
+ goto err;
+ }
+
+- rc = populate_pfns(ctx, count, pfns, types);
++ rc = ctx->restore.ops.populate_pfns(ctx, count, pfns, types);
+ if ( rc )
+ {
+ ERROR("Failed to populate pfns for batch of %u pages", count);
+@@ -684,10 +558,8 @@ static int setup(struct xc_sr_context *c
+ if ( rc )
+ goto err;
+
+- ctx->restore.max_populated_pfn = (32 * 1024 / 4) - 1;
+- ctx->restore.populated_pfns = bitmap_alloc(
+- ctx->restore.max_populated_pfn + 1);
+- if ( !ctx->restore.populated_pfns )
++ rc = !xc_sr_bitmap_resize(&ctx->restore.populated_pfns, 32 * 1024 / 4);
++ if ( rc )
+ {
+ ERROR("Unable to allocate memory for populated_pfns bitmap");
+ rc = -1;
+@@ -722,7 +594,7 @@ static void cleanup(struct xc_sr_context
+ xc_hypercall_buffer_free_pages(xch, dirty_bitmap,
+ NRPAGES(bitmap_size(ctx->restore.p2m_size)));
+ free(ctx->restore.buffered_records);
+- free(ctx->restore.populated_pfns);
++ xc_sr_bitmap_free(&ctx->restore.populated_pfns);
+ if ( ctx->restore.ops.cleanup(ctx) )
+ PERROR("Failed to clean up");
+ }
+@@ -886,7 +758,12 @@ int xc_domain_restore(xc_interface *xch,
+ return -1;
+ }
+
++ /* See xc_domain_getinfo */
++ ctx.restore.max_pages = ctx.dominfo.max_memkb >> (PAGE_SHIFT-10);
++ ctx.restore.tot_pages = ctx.dominfo.nr_pages;
+ ctx.restore.p2m_size = nr_pfns;
++ DPRINTF("dom %u p2m_size %lx max_pages %lx",
++ ctx.domid, ctx.restore.p2m_size, ctx.restore.max_pages);
+
+ if ( ctx.dominfo.hvm )
+ {
+Index: xen-4.13.1-testing/tools/libxc/xc_sr_restore_x86_hvm.c
+===================================================================
+--- xen-4.13.1-testing.orig/tools/libxc/xc_sr_restore_x86_hvm.c
++++ xen-4.13.1-testing/tools/libxc/xc_sr_restore_x86_hvm.c
+@@ -135,6 +135,8 @@ static int x86_hvm_localise_page(struct
+ static int x86_hvm_setup(struct xc_sr_context *ctx)
+ {
+ xc_interface *xch = ctx->xch;
++ struct xc_sr_bitmap *bm;
++ unsigned long bits;
+
+ if ( ctx->restore.guest_type != DHDR_TYPE_X86_HVM )
+ {
+@@ -158,7 +160,30 @@ static int x86_hvm_setup(struct xc_sr_co
+ }
+ #endif
+
++ bm = &ctx->x86_hvm.restore.attempted_1g;
++ bits = (ctx->restore.p2m_size >> SUPERPAGE_1GB_SHIFT) + 1;
++ if ( xc_sr_bitmap_resize(bm, bits) == false )
++ goto out;
++
++ bm = &ctx->x86_hvm.restore.attempted_2m;
++ bits = (ctx->restore.p2m_size >> SUPERPAGE_2MB_SHIFT) + 1;
++ if ( xc_sr_bitmap_resize(bm, bits) == false )
++ goto out;
++
++ bm = &ctx->x86_hvm.restore.allocated_pfns;
++ bits = ctx->restore.p2m_size + 1;
++ if ( xc_sr_bitmap_resize(bm, bits) == false )
++ goto out;
++
++ /* No superpage in 1st 2MB due to VGA hole */
++ xc_sr_set_bit(0, &ctx->x86_hvm.restore.attempted_1g);
++ xc_sr_set_bit(0, &ctx->x86_hvm.restore.attempted_2m);
++
+ return 0;
++
++out:
++ ERROR("Unable to allocate memory for pfn bitmaps");
++ return -1;
+ }
+
+ /*
+@@ -233,10 +258,325 @@ static int x86_hvm_stream_complete(struc
+ static int x86_hvm_cleanup(struct xc_sr_context *ctx)
+ {
+ free(ctx->x86_hvm.restore.context);
++ xc_sr_bitmap_free(&ctx->x86_hvm.restore.attempted_1g);
++ xc_sr_bitmap_free(&ctx->x86_hvm.restore.attempted_2m);
++ xc_sr_bitmap_free(&ctx->x86_hvm.restore.allocated_pfns);
++
++ return 0;
++}
++
++/*
++ * Set a pfn as allocated, expanding the tracking structures if needed.
++ */
++static int pfn_set_allocated(struct xc_sr_context *ctx, xen_pfn_t pfn)
++{
++ xc_interface *xch = ctx->xch;
+
++ if ( !xc_sr_set_bit(pfn, &ctx->x86_hvm.restore.allocated_pfns) )
++ {
++ ERROR("Failed to realloc allocated_pfns bitmap");
++ errno = ENOMEM;
++ return -1;
++ }
+ return 0;
+ }
+
++struct x86_hvm_sp {
++ xen_pfn_t pfn;
++ xen_pfn_t base_pfn;
++ unsigned long index;
++ unsigned long count;
++};
++
++/*
++ * Try to allocate a 1GB page for this pfn, but avoid Over-allocation.
++ * If this succeeds, mark the range of 2MB pages as busy.
++ */
++static bool x86_hvm_alloc_1g(struct xc_sr_context *ctx, struct x86_hvm_sp *sp)
++{
++ xc_interface *xch = ctx->xch;
++ struct xc_sr_bitmap *bm;
++ unsigned int order, shift;
++ int i, done;
++ xen_pfn_t extent;
++
++ bm = &ctx->x86_hvm.restore.attempted_1g;
++
++ /* Only one attempt to avoid overlapping allocation */
++ if ( xc_sr_test_and_set_bit(sp->index, bm) )
++ return false;
++
++ order = SUPERPAGE_1GB_SHIFT;
++ sp->count = 1ULL << order;
++
++ /* Allocate only if there is room for another superpage */
++ if ( ctx->restore.tot_pages + sp->count > ctx->restore.max_pages )
++ return false;
++
++ extent = sp->base_pfn = (sp->pfn >> order) << order;
++ done = xc_domain_populate_physmap(xch, ctx->domid, 1, order, 0, &extent);
++ if ( done < 0 ) {
++ PERROR("populate_physmap failed.");
++ return false;
++ }
++ if ( done == 0 )
++ return false;
++
++ DPRINTF("1G base_pfn %" PRI_xen_pfn "\n", sp->base_pfn);
++
++ /* Mark all 2MB pages as done to avoid overlapping allocation */
++ bm = &ctx->x86_hvm.restore.attempted_2m;
++ shift = SUPERPAGE_1GB_SHIFT - SUPERPAGE_2MB_SHIFT;
++ for ( i = 0; i < (sp->count >> shift); i++ )
++ xc_sr_set_bit((sp->base_pfn >> SUPERPAGE_2MB_SHIFT) + i, bm);
++
++ return true;
++}
++
++/* Allocate a 2MB page if x86_hvm_alloc_1g failed, avoid Over-allocation. */
++static bool x86_hvm_alloc_2m(struct xc_sr_context *ctx, struct x86_hvm_sp *sp)
++{
++ xc_interface *xch = ctx->xch;
++ struct xc_sr_bitmap *bm;
++ unsigned int order;
++ int done;
++ xen_pfn_t extent;
++
++ bm = &ctx->x86_hvm.restore.attempted_2m;
++
++ /* Only one attempt to avoid overlapping allocation */
++ if ( xc_sr_test_and_set_bit(sp->index, bm) )
++ return false;
++
++ order = SUPERPAGE_2MB_SHIFT;
++ sp->count = 1ULL << order;
++
++ /* Allocate only if there is room for another superpage */
++ if ( ctx->restore.tot_pages + sp->count > ctx->restore.max_pages )
++ return false;
++
++ extent = sp->base_pfn = (sp->pfn >> order) << order;
++ done = xc_domain_populate_physmap(xch, ctx->domid, 1, order, 0, &extent);
++ if ( done < 0 ) {
++ PERROR("populate_physmap failed.");
++ return false;
++ }
++ if ( done == 0 )
++ return false;
++
++ DPRINTF("2M base_pfn %" PRI_xen_pfn "\n", sp->base_pfn);
++ return true;
++}
++
++/* Allocate a single page if x86_hvm_alloc_2m failed. */
++static bool x86_hvm_alloc_4k(struct xc_sr_context *ctx, struct x86_hvm_sp *sp)
++{
++ xc_interface *xch = ctx->xch;
++ unsigned int order;
++ int done;
++ xen_pfn_t extent;
++
++ order = 0;
++ sp->count = 1ULL << order;
++
++ /* Allocate only if there is room for another page */
++ if ( ctx->restore.tot_pages + sp->count > ctx->restore.max_pages )
++ return false;
++
++ extent = sp->base_pfn = (sp->pfn >> order) << order;
++ done = xc_domain_populate_physmap(xch, ctx->domid, 1, order, 0, &extent);
++ if ( done < 0 ) {
++ PERROR("populate_physmap failed.");
++ return false;
++ }
++ if ( done == 0 )
++ return false;
++
++ DPRINTF("4K base_pfn %" PRI_xen_pfn "\n", sp->base_pfn);
++ return true;
++}
++/*
++ * Attempt to allocate a superpage where the pfn resides.
++ */
++static int x86_hvm_allocate_pfn(struct xc_sr_context *ctx, xen_pfn_t pfn)
++{
++ xc_interface *xch = ctx->xch;
++ bool success;
++ int rc = -1;
++ unsigned long idx_1g, idx_2m;
++ struct x86_hvm_sp sp = {
++ .pfn = pfn
++ };
++
++ if ( xc_sr_test_bit(pfn, &ctx->x86_hvm.restore.allocated_pfns) )
++ return 0;
++
++ idx_1g = pfn >> SUPERPAGE_1GB_SHIFT;
++ idx_2m = pfn >> SUPERPAGE_2MB_SHIFT;
++ if ( !xc_sr_bitmap_resize(&ctx->x86_hvm.restore.attempted_1g, idx_1g) )
++ {
++ PERROR("Failed to realloc attempted_1g");
++ return -1;
++ }
++ if ( !xc_sr_bitmap_resize(&ctx->x86_hvm.restore.attempted_2m, idx_2m) )
++ {
++ PERROR("Failed to realloc attempted_2m");
++ return -1;
++ }
++
++ sp.index = idx_1g;
++ success = x86_hvm_alloc_1g(ctx, &sp);
++
++ if ( success == false ) {
++ sp.index = idx_2m;
++ success = x86_hvm_alloc_2m(ctx, &sp);
++ }
++
++ if ( success == false ) {
++ sp.index = 0;
++ success = x86_hvm_alloc_4k(ctx, &sp);
++ }
++
++ if ( success == true ) {
++ do {
++ sp.count--;
++ ctx->restore.tot_pages++;
++ rc = pfn_set_allocated(ctx, sp.base_pfn + sp.count);
++ if ( rc )
++ break;
++ } while ( sp.count );
++ }
++ return rc;
++}
++
++static bool x86_hvm_punch_hole(struct xc_sr_context *ctx, xen_pfn_t max_pfn)
++{
++ xc_interface *xch = ctx->xch;
++ struct xc_sr_bitmap *bm;
++ xen_pfn_t _pfn, pfn, min_pfn;
++ uint32_t domid, freed = 0, order;
++ int rc = -1;
++
++ /*
++ * Scan the entire superpage because several batches will fit into
++ * a superpage, and it is unknown which pfn triggered the allocation.
++ */
++ order = SUPERPAGE_1GB_SHIFT;
++ pfn = min_pfn = (max_pfn >> order) << order;
++
++ while ( pfn <= max_pfn )
++ {
++ bm = &ctx->x86_hvm.restore.allocated_pfns;
++ if ( !xc_sr_bitmap_resize(bm, pfn) )
++ {
++ PERROR("Failed to realloc allocated_pfns %" PRI_xen_pfn, pfn);
++ return false;
++ }
++ if ( !pfn_is_populated(ctx, pfn) &&
++ xc_sr_test_and_clear_bit(pfn, bm) ) {
++ domid = ctx->domid;
++ _pfn = pfn;
++ rc = xc_domain_decrease_reservation_exact(xch, domid, 1, 0, &_pfn);
++ if ( rc )
++ {
++ PERROR("Failed to release pfn %" PRI_xen_pfn, pfn);
++ return false;
++ }
++ ctx->restore.tot_pages--;
++ freed++;
++ }
++ pfn++;
++ }
++ if ( freed )
++ DPRINTF("freed %u between %" PRI_xen_pfn " %" PRI_xen_pfn "\n",
++ freed, min_pfn, max_pfn);
++ return true;
++}
++
++/*
++ * Try to allocate superpages.
++ * This works without memory map only if the pfns arrive in incremental order.
++ */
++static int x86_hvm_populate_pfns(struct xc_sr_context *ctx, unsigned count,
++ const xen_pfn_t *original_pfns,
++ const uint32_t *types)
++{
++ xc_interface *xch = ctx->xch;
++ xen_pfn_t pfn, min_pfn = original_pfns[0], max_pfn = original_pfns[0];
++ xen_pfn_t idx1G, idx2M;
++ unsigned i, order;
++ int rc = -1;
++
++ /* Loop once over the array to show statistics */
++ for ( i = 0; i < count; ++i )
++ {
++ if ( original_pfns[i] < min_pfn )
++ min_pfn = original_pfns[i];
++ if ( original_pfns[i] > max_pfn )
++ max_pfn = original_pfns[i];
++ }
++ DPRINTF("batch of %u pfns between %" PRI_xen_pfn " %" PRI_xen_pfn "\n",
++ count, min_pfn, max_pfn);
++
++ for ( i = 0; i < count; ++i )
++ {
++ pfn = original_pfns[i];
++ idx1G = pfn >> SUPERPAGE_1GB_SHIFT;
++ idx2M = pfn >> SUPERPAGE_2MB_SHIFT;
++
++ /*
++ * If this pfn is in another 2MB superpage it is required to punch holes
++ * to release memory, starting from the 1GB boundary up to the highest
++ * pfn within the previous 2MB superpage.
++ */
++ if ( ctx->x86_hvm.restore.idx1G_prev == idx1G &&
++ ctx->x86_hvm.restore.idx2M_prev == idx2M )
++ {
++ /* Same 2MB superpage, nothing to do */
++ ;
++ } else {
++ /*
++ * If this next pfn is within another 1GB or 2MB superpage it is
++ * required to scan the entire previous superpage because there
++ * might be holes between the last pfn and the end of the superpage.
++ */
++ if ( ctx->x86_hvm.restore.idx1G_prev != idx1G )
++ {
++ order = SUPERPAGE_1GB_SHIFT;
++ max_pfn = ((ctx->x86_hvm.restore.idx1G_prev + 1) << order) - 1;
++ }
++ else
++ {
++ order = SUPERPAGE_2MB_SHIFT;
++ max_pfn = ((ctx->x86_hvm.restore.idx2M_prev + 1) << order) - 1;
++ }
++
++ if ( x86_hvm_punch_hole(ctx, max_pfn) == false )
++ goto err;
++ }
++
++ if ( (types[i] != XEN_DOMCTL_PFINFO_XTAB &&
++ types[i] != XEN_DOMCTL_PFINFO_BROKEN) &&
++ !pfn_is_populated(ctx, pfn) )
++ {
++ rc = x86_hvm_allocate_pfn(ctx, pfn);
++ if ( rc )
++ goto err;
++ rc = pfn_set_populated(ctx, pfn);
++ if ( rc )
++ goto err;
++ }
++ ctx->x86_hvm.restore.idx1G_prev = idx1G;
++ ctx->x86_hvm.restore.idx2M_prev = idx2M;
++ }
++
++ rc = 0;
++
++ err:
++ return rc;
++}
++
++
+ struct xc_sr_restore_ops restore_ops_x86_hvm =
+ {
+ .pfn_is_valid = x86_hvm_pfn_is_valid,
+@@ -245,6 +585,7 @@ struct xc_sr_restore_ops restore_ops_x86
+ .set_page_type = x86_hvm_set_page_type,
+ .localise_page = x86_hvm_localise_page,
+ .setup = x86_hvm_setup,
++ .populate_pfns = x86_hvm_populate_pfns,
+ .process_record = x86_hvm_process_record,
+ .stream_complete = x86_hvm_stream_complete,
+ .cleanup = x86_hvm_cleanup,
+Index: xen-4.13.1-testing/tools/libxc/xc_sr_restore_x86_pv.c
+===================================================================
+--- xen-4.13.1-testing.orig/tools/libxc/xc_sr_restore_x86_pv.c
++++ xen-4.13.1-testing/tools/libxc/xc_sr_restore_x86_pv.c
+@@ -960,6 +960,75 @@ static void x86_pv_set_gfn(struct xc_sr_
+ }
+
+ /*
++ * Given a set of pfns, obtain memory from Xen to fill the physmap for the
++ * unpopulated subset. If types is NULL, no page type checking is performed
++ * and all unpopulated pfns are populated.
++ */
++static int x86_pv_populate_pfns(struct xc_sr_context *ctx, unsigned count,
++ const xen_pfn_t *original_pfns,
++ const uint32_t *types)
++{
++ xc_interface *xch = ctx->xch;
++ xen_pfn_t *mfns = malloc(count * sizeof(*mfns)),
++ *pfns = malloc(count * sizeof(*pfns));
++ unsigned i, nr_pfns = 0;
++ int rc = -1;
++
++ if ( !mfns || !pfns )
++ {
++ ERROR("Failed to allocate %zu bytes for populating the physmap",
++ 2 * count * sizeof(*mfns));
++ goto err;
++ }
++
++ for ( i = 0; i < count; ++i )
++ {
++ if ( (!types || (types &&
++ (types[i] != XEN_DOMCTL_PFINFO_XTAB &&
++ types[i] != XEN_DOMCTL_PFINFO_BROKEN))) &&
++ !pfn_is_populated(ctx, original_pfns[i]) )
++ {
++ rc = pfn_set_populated(ctx, original_pfns[i]);
++ if ( rc )
++ goto err;
++ pfns[nr_pfns] = mfns[nr_pfns] = original_pfns[i];
++ ++nr_pfns;
++ }
++ }
++
++ if ( nr_pfns )
++ {
++ rc = xc_domain_populate_physmap_exact(
++ xch, ctx->domid, nr_pfns, 0, 0, mfns);
++ if ( rc )
++ {
++ PERROR("Failed to populate physmap");
++ goto err;
++ }
++
++ for ( i = 0; i < nr_pfns; ++i )
++ {
++ if ( mfns[i] == INVALID_MFN )
++ {
++ ERROR("Populate physmap failed for pfn %u", i);
++ rc = -1;
++ goto err;
++ }
++
++ ctx->restore.ops.set_gfn(ctx, pfns[i], mfns[i]);
++ }
++ }
++
++ rc = 0;
++
++ err:
++ free(pfns);
++ free(mfns);
++
++ return rc;
++}
++
++/*
+ * restore_ops function. Convert pfns back to mfns in pagetables. Possibly
+ * needs to populate new frames if a PTE is found referring to a frame which
+ * hasn't yet been seen from PAGE_DATA records.
+@@ -1003,7 +1072,7 @@ static int x86_pv_localise_page(struct x
+ }
+ }
+
+- if ( to_populate && populate_pfns(ctx, to_populate, pfns, NULL) )
++ if ( to_populate && x86_pv_populate_pfns(ctx, to_populate, pfns, NULL) )
+ return -1;
+
+ for ( i = 0; i < (PAGE_SIZE / sizeof(uint64_t)); ++i )
+@@ -1183,6 +1252,7 @@ struct xc_sr_restore_ops restore_ops_x86
+ .set_gfn = x86_pv_set_gfn,
+ .localise_page = x86_pv_localise_page,
+ .setup = x86_pv_setup,
++ .populate_pfns = x86_pv_populate_pfns,
+ .process_record = x86_pv_process_record,
+ .stream_complete = x86_pv_stream_complete,
+ .cleanup = x86_pv_cleanup,
diff --git a/libxl.LIBXL_HOTPLUG_TIMEOUT.patch b/libxl.LIBXL_HOTPLUG_TIMEOUT.patch
new file mode 100644
index 0000000..b08d4e8
--- /dev/null
+++ b/libxl.LIBXL_HOTPLUG_TIMEOUT.patch
@@ -0,0 +1,318 @@
+References: bsc#1120095
+
+A domU with a large amount of disks may run into the hardcoded
+LIBXL_HOTPLUG_TIMEOUT limit, which is 40 seconds. This happens if the
+preparation for each disk takes an unexpected large amount of time. Then
+the sum of all configured disks and the individual preparation time will
+be larger than 40 seconds. The hotplug script which does the preparation
+takes a lock before doing the actual preparation. Since the hotplug
+scripts for each disk are spawned at nearly the same time, each one has
+to wait for the lock. Due to this contention, the total execution time
+of a script can easily exceed the timeout. In this case libxl will
+terminate the script because it has to assume an error condition.
+
+Example:
+10 configured disks, each one takes 3 seconds within the critital
+section. The total execution time will be 30 seconds, which is still
+within the limit. With 5 additional configured disks, the total
+execution time will be 45 seconds, which would trigger the timeout.
+
+To handle such setup without a recompile of libxl, a special key/value
+has to be created in xenstore prior domain creation. This can be done
+either manually, or at system startup.
+
+If this systemd service file is placed in /etc/systemd/system/, and
+activated, it will create the required entry in xenstore:
+
+/etc/systemd/system # cat xen-LIBXL_HOTPLUG_TIMEOUT.service
+[Unit]
+Description=set global LIBXL_HOTPLUG_TIMEOUT
+ConditionPathExists=/proc/xen/capabilities
+
+Requires=xenstored.service
+After=xenstored.service
+Requires=xen-init-dom0.service
+After=xen-init-dom0.service
+Before=xencommons.service
+
+[Service]
+Type=oneshot
+RemainAfterExit=true
+ExecStartPre=/bin/grep -q control_d /proc/xen/capabilities
+ExecStart=/usr/bin/xenstore-write /libxl/suse/per-device-LIBXL_HOTPLUG_TIMEOUT 5
+
+[Install]
+WantedBy=multi-user.target
+
+/etc/systemd/system # systemctl enable xen-LIBXL_HOTPLUG_TIMEOUT.service
+/etc/systemd/system # systemctl start xen-LIBXL_HOTPLUG_TIMEOUT.service
+
+In this example the per-device value will be set to 5 seconds.
+
+The change for libxl which handles this xenstore value will enable
+additional logging if the key is found. That extra logging will show how
+the execution time of each script.
+Index: xen-4.13.0-testing/tools/libxl/libxl_aoutils.c
+===================================================================
+--- xen-4.13.0-testing.orig/tools/libxl/libxl_aoutils.c
++++ xen-4.13.0-testing/tools/libxl/libxl_aoutils.c
+@@ -529,6 +529,8 @@ static void async_exec_timeout(libxl__eg
+ {
+ libxl__async_exec_state *aes = CONTAINER_OF(ev, *aes, time);
+ STATE_AO_GC(aes->ao);
++ char b[64];
++ libxl__suse_diff_timespec(&aes->start, b, sizeof(b));
+
+ if (!aes->rc)
+ aes->rc = rc;
+@@ -536,7 +538,7 @@ static void async_exec_timeout(libxl__eg
+ libxl__ev_time_deregister(gc, &aes->time);
+
+ assert(libxl__ev_child_inuse(&aes->child));
+- LOG(ERROR, "killing execution of %s because of timeout", aes->what);
++ LOG(ERROR, "killing execution of %s because of timeout%s", aes->what, b);
+
+ if (kill(aes->child.pid, SIGKILL)) {
+ LOGEV(ERROR, errno, "unable to kill %s [%ld]",
+@@ -552,6 +554,10 @@ static void async_exec_done(libxl__egc *
+ {
+ libxl__async_exec_state *aes = CONTAINER_OF(child, *aes, child);
+ STATE_AO_GC(aes->ao);
++ char b[64];
++ libxl__suse_diff_timespec(&aes->start, b, sizeof(b));
++ if (b[0])
++ LOG(NOTICE, "finished execution of '%s'%s", aes->what, b);
+
+ libxl__ev_time_deregister(gc, &aes->time);
+
+Index: xen-4.13.0-testing/tools/libxl/libxl_create.c
+===================================================================
+--- xen-4.13.0-testing.orig/tools/libxl/libxl_create.c
++++ xen-4.13.0-testing/tools/libxl/libxl_create.c
+@@ -1116,6 +1116,7 @@ static void initiate_domain_create(libxl
+ * build info around just to know if the domain has a device model or not.
+ */
+ store_libxl_entry(gc, domid, &d_config->b_info);
++ libxl__suse_domain_set_hotplug_timeout(gc, domid, d_config->num_disks, d_config->num_nics);
+
+ for (i = 0; i < d_config->num_disks; i++) {
+ ret = libxl__disk_devtype.set_default(gc, domid, &d_config->disks[i],
+Index: xen-4.13.0-testing/tools/libxl/libxl_device.c
+===================================================================
+--- xen-4.13.0-testing.orig/tools/libxl/libxl_device.c
++++ xen-4.13.0-testing/tools/libxl/libxl_device.c
+@@ -1212,7 +1212,7 @@ static void device_hotplug(libxl__egc *e
+ }
+
+ aes->ao = ao;
+- aes->what = GCSPRINTF("%s %s", args[0], args[1]);
++ aes->what = GCSPRINTF("%s %s for %s", args[0], args[1], be_path);
+ aes->env = env;
+ aes->args = args;
+ aes->callback = device_hotplug_child_death_cb;
+@@ -1221,6 +1221,15 @@ static void device_hotplug(libxl__egc *e
+ aes->stdfds[1] = 2;
+ aes->stdfds[2] = -1;
+
++ switch (aodev->dev->backend_kind) {
++ case LIBXL__DEVICE_KIND_VBD:
++ case LIBXL__DEVICE_KIND_VIF:
++ if (aodev->num_exec == 0)
++ libxl__suse_domain_get_hotplug_timeout(gc, aodev->dev->domid, aodev->dev->backend_kind, &aes->start, &aes->timeout_ms, be_path);
++ default:
++ break;
++ }
++
+ rc = libxl__async_exec_start(aes);
+ if (rc)
+ goto out;
+Index: xen-4.13.0-testing/tools/libxl/libxl_event.c
+===================================================================
+--- xen-4.13.0-testing.orig/tools/libxl/libxl_event.c
++++ xen-4.13.0-testing/tools/libxl/libxl_event.c
+@@ -858,27 +858,29 @@ static void devstate_callback(libxl__egc
+ {
+ EGC_GC;
+ libxl__ev_devstate *ds = CONTAINER_OF(xsw, *ds, w);
++ char b[64];
++ libxl__suse_diff_timespec(&ds->w.start, b, sizeof(b));
+
+ if (rc) {
+ if (rc == ERROR_TIMEDOUT)
+- LOG(DEBUG, "backend %s wanted state %d "" timed out", ds->w.path,
+- ds->wanted);
++ LOG(DEBUG, "backend %s wanted state %d "" timed out%s", ds->w.path,
++ ds->wanted, b);
+ goto out;
+ }
+ if (!sstate) {
+- LOG(DEBUG, "backend %s wanted state %d"" but it was removed",
+- ds->w.path, ds->wanted);
++ LOG(DEBUG, "backend %s wanted state %d"" but it was removed%s",
++ ds->w.path, ds->wanted, b);
+ rc = ERROR_INVAL;
+ goto out;
+ }
+
+ int got = atoi(sstate);
+ if (got == ds->wanted) {
+- LOG(DEBUG, "backend %s wanted state %d ok", ds->w.path, ds->wanted);
++ LOG(DEBUG, "backend %s wanted state %d ok%s", ds->w.path, ds->wanted, b);
+ rc = 0;
+ } else {
+- LOG(DEBUG, "backend %s wanted state %d"" still waiting state %d",
+- ds->w.path, ds->wanted, got);
++ LOG(DEBUG, "backend %s wanted state %d"" still waiting state %d%s",
++ ds->w.path, ds->wanted, got, b);
+ return;
+ }
+
+@@ -904,6 +906,8 @@ int libxl__ev_devstate_wait(libxl__ao *a
+ ds->w.path = state_path;
+ ds->w.timeout_ms = milliseconds;
+ ds->w.callback = devstate_callback;
++ rc = clock_gettime(CLOCK_MONOTONIC, &ds->w.start);
++ if (rc) goto out;
+ rc = libxl__xswait_start(gc, &ds->w);
+ if (rc) goto out;
+
+Index: xen-4.13.0-testing/tools/libxl/libxl_internal.c
+===================================================================
+--- xen-4.13.0-testing.orig/tools/libxl/libxl_internal.c
++++ xen-4.13.0-testing/tools/libxl/libxl_internal.c
+@@ -17,6 +17,97 @@
+
+ #include "libxl_internal.h"
+
++#define LIBXL_SUSE_PATH_TIMEOUT "/libxl/suse/per-device-LIBXL_HOTPLUG_TIMEOUT"
++#define LIBXL_SUSE_PATH_DISK_TIMEOUT "suse/disks-LIBXL_HOTPLUG_TIMEOUT"
++#define LIBXL_SUSE_PATH_NIC_TIMEOUT "suse/nics-LIBXL_HOTPLUG_TIMEOUT"
++
++void libxl__suse_domain_set_hotplug_timeout(libxl__gc *gc, uint32_t domid, long d, long n)
++{
++ char *path;
++ char *val, *p;
++ long v;
++
++ val = libxl__xs_read(gc, XBT_NULL, LIBXL_SUSE_PATH_TIMEOUT);
++ if (!val)
++ return;
++
++ v = strtol(val, NULL, 0);
++ if (v <= 0)
++ return;
++
++ path = libxl__xs_libxl_path(gc, domid);
++ if (d > 0) {
++ p = GCSPRINTF("%s/" LIBXL_SUSE_PATH_DISK_TIMEOUT, path);
++ LOGD(NOTICE, domid, "Setting %s to %ld*%ld=%ld", p, d, v, d*v);
++ libxl__xs_printf(gc, XBT_NULL, p, "%ld", d*v);
++ }
++ if (n > 0) {
++ p = GCSPRINTF("%s/" LIBXL_SUSE_PATH_NIC_TIMEOUT, path);
++ LOGD(NOTICE, domid, "Setting %s to %ld*%ld=%ld", p, n, v, n*v);
++ libxl__xs_printf(gc, XBT_NULL, p, "%ld", n*v);
++ }
++}
++
++void libxl__suse_domain_get_hotplug_timeout(libxl__gc *gc, uint32_t domid, libxl__device_kind kind, struct timespec *ts, int *timeout_ms, const char *be_path)
++{
++ char *path;
++ char *val, *p;
++ long v = 0;
++
++ path = libxl__xs_libxl_path(gc, domid);
++ if (!path)
++ return;
++
++ switch (kind) {
++ case LIBXL__DEVICE_KIND_VBD:
++ p = GCSPRINTF("%s/" LIBXL_SUSE_PATH_DISK_TIMEOUT, path);
++ break;
++ case LIBXL__DEVICE_KIND_VIF:
++ p = GCSPRINTF("%s/" LIBXL_SUSE_PATH_NIC_TIMEOUT, path);
++ break;
++ default:
++ return;
++ }
++ errno = 0;
++ val = libxl__xs_read(gc, XBT_NULL, p);
++ if (val)
++ v = strtol(val, NULL, 0);
++ LOGED(DEBUG, domid, "Got from '%s' = %ld from %s for %s", val?:"", v, p, be_path);
++ if (!val || v <= 0)
++ return;
++
++ if (v > (INT_MAX/1000))
++ v = (INT_MAX/1000);
++ v *= 1000;
++ LOGD(NOTICE, domid, "Replacing timeout %d with %ld for %s", *timeout_ms, v, be_path);
++ *timeout_ms = v;
++ if (clock_gettime(CLOCK_MONOTONIC, ts) < 0) {
++ LOGED(ERROR, domid, "clock_gettime failed for %s", be_path);
++ ts->tv_sec = ts->tv_nsec = 0;
++ }
++
++}
++
++void libxl__suse_diff_timespec(const struct timespec *old, char *b, size_t s)
++{
++ struct timespec new, diff;
++
++ if (old->tv_sec == 0 && old->tv_nsec == 0) {
++ *b = '\0';
++ return;
++ }
++ if (clock_gettime(CLOCK_MONOTONIC, &new))
++ new = *old;
++ if ((new.tv_nsec - old->tv_nsec) < 0) {
++ diff.tv_sec = new.tv_sec - old->tv_sec - 1;
++ diff.tv_nsec = new.tv_nsec - old->tv_nsec + (1000*1000*1000);
++ } else {
++ diff.tv_sec = new.tv_sec - old->tv_sec;
++ diff.tv_nsec = new.tv_nsec - old->tv_nsec;
++ }
++ snprintf(b, s, " (%ld.%09lds)", (long)diff.tv_sec, diff.tv_nsec);
++}
++
+ void libxl__alloc_failed(libxl_ctx *ctx, const char *func,
+ size_t nmemb, size_t size) {
+ #define M "libxl: FATAL ERROR: memory allocation failure"
+Index: xen-4.13.0-testing/tools/libxl/libxl_internal.h
+===================================================================
+--- xen-4.13.0-testing.orig/tools/libxl/libxl_internal.h
++++ xen-4.13.0-testing/tools/libxl/libxl_internal.h
+@@ -50,6 +50,7 @@
+ #include <sys/un.h>
+ #include <sys/file.h>
+ #include <sys/ioctl.h>
++#include <time.h>
+
+ #include <xenevtchn.h>
+ #include <xenstore.h>
+@@ -1593,6 +1594,7 @@ struct libxl__xswait_state {
+ const char *what; /* for error msgs: noun phrase, what we're waiting for */
+ const char *path;
+ int timeout_ms; /* as for poll(2) */
++ struct timespec start;
+ libxl__xswait_callback *callback;
+ /* remaining fields are private to xswait */
+ libxl__ev_time time_ev;
+@@ -2652,6 +2654,7 @@ struct libxl__async_exec_state {
+ char **args; /* execution arguments */
+ char **env; /* execution environment */
+
++ struct timespec start;
+ /* private */
+ libxl__ev_time time;
+ libxl__ev_child child;
+@@ -4783,6 +4786,9 @@ _hidden int libxl__domain_pvcontrol(libx
+
+ #endif
+
++_hidden void libxl__suse_domain_set_hotplug_timeout(libxl__gc *gc, uint32_t domid, long d, long n);
++_hidden void libxl__suse_domain_get_hotplug_timeout(libxl__gc *gc, uint32_t domid, libxl__device_kind kind, struct timespec *ts, int *timeout_ms, const char *be_path);
++_hidden void libxl__suse_diff_timespec(const struct timespec *old, char *b, size_t s);
+ /*
+ * Local variables:
+ * mode: C
diff --git a/libxl.add-option-to-disable-disk-cache-flushes-in-qdisk.patch b/libxl.add-option-to-disable-disk-cache-flushes-in-qdisk.patch
new file mode 100644
index 0000000..bdd553d
--- /dev/null
+++ b/libxl.add-option-to-disable-disk-cache-flushes-in-qdisk.patch
@@ -0,0 +1,215 @@
+https://bugzilla.novell.com/show_bug.cgi?id=879425
+---
+ tools/libxl/libxl.c | 2 ++
+ tools/libxl/libxl.h | 12 ++++++++++++
+ tools/libxl/libxlu_disk.c | 2 ++
+ tools/libxl/libxlu_disk_i.h | 2 +-
+ tools/libxl/libxlu_disk_l.l | 1 +
+ 5 files changed, 18 insertions(+), 1 deletion(-)
+
+Index: xen-4.13.0-testing/docs/man/xl-disk-configuration.5.pod
+===================================================================
+--- xen-4.13.0-testing.orig/docs/man/xl-disk-configuration.5.pod
++++ xen-4.13.0-testing/docs/man/xl-disk-configuration.5.pod
+@@ -344,6 +344,32 @@ can be used to disable "hole punching" f
+ were intentionally created non-sparse to avoid fragmentation of the
+ file.
+
++=item B<suse-diskcache-disable-flush>
++
++=over 4
++
++=item Description
++
++Request that the qemu block driver does not automatically flush written data to the backend storage.
++
++=item Supported values
++
++absent, present
++
++=item Mandatory
++
++No
++
++=item Default value
++
++absent
++
++=back
++
++This enables the '-disk cache=unsafe' mode inside qemu.
++In this mode writes to the underlying blockdevice are delayed.
++While using this option in production is dangerous, it improves performance during installation of a domU.
++
+ =back
+
+
+Index: xen-4.13.0-testing/tools/libxl/libxl.h
+===================================================================
+--- xen-4.13.0-testing.orig/tools/libxl/libxl.h
++++ xen-4.13.0-testing/tools/libxl/libxl.h
+@@ -439,6 +439,21 @@
+ #define LIBXL_HAVE_CREATEINFO_PASSTHROUGH 1
+
+ /*
++ * The libxl_device_disk has no way to indicate that cache=unsafe is
++ * supposed to be used. Provide this knob without breaking the ABI.
++ * This is done by overloading struct libxl_device_disk->readwrite:
++ * readwrite == 0: disk is readonly, cache= does not matter
++ * readwrite == 1: disk is readwrite, backend driver may tweak cache=
++ * readwrite == MAGIC: disk is readwrite, backend driver should ignore
++ * flush requests from the frontend driver.
++ * Note: the macro with MAGIC is used by libvirt to decide if this patch is applied
++ */
++#define LIBXL_HAVE_LIBXL_DEVICE_DISK_DISABLE_FLUSH_MAGIC 0x00006000U
++#define LIBXL_HAVE_LIBXL_DEVICE_DISK_DISABLE_FLUSH_MASK 0xffff0fffU
++#define LIBXL_SUSE_IS_CACHE_UNSAFE(rw) (((rw) & ~LIBXL_HAVE_LIBXL_DEVICE_DISK_DISABLE_FLUSH_MASK) == LIBXL_HAVE_LIBXL_DEVICE_DISK_DISABLE_FLUSH_MAGIC)
++#define LIBXL_SUSE_SET_CACHE_UNSAFE(rw) (((rw) & LIBXL_HAVE_LIBXL_DEVICE_DISK_DISABLE_FLUSH_MASK) | LIBXL_HAVE_LIBXL_DEVICE_DISK_DISABLE_FLUSH_MAGIC)
++
++/*
+ * libxl ABI compatibility
+ *
+ * The only guarantee which libxl makes regarding ABI compatibility
+Index: xen-4.13.0-testing/tools/libxl/libxl_disk.c
+===================================================================
+--- xen-4.13.0-testing.orig/tools/libxl/libxl_disk.c
++++ xen-4.13.0-testing/tools/libxl/libxl_disk.c
+@@ -386,6 +386,8 @@ static void device_disk_add(libxl__egc *
+ flexarray_append_pair(back, "discard-enable",
+ libxl_defbool_val(disk->discard_enable) ?
+ "1" : "0");
++ if (LIBXL_SUSE_IS_CACHE_UNSAFE(disk->readwrite))
++ flexarray_append_pair(back, "suse-diskcache-disable-flush", "1");
+
+ flexarray_append(front, "backend-id");
+ flexarray_append(front, GCSPRINTF("%d", disk->backend_domid));
+Index: xen-4.13.0-testing/tools/libxl/libxl_dm.c
+===================================================================
+--- xen-4.13.0-testing.orig/tools/libxl/libxl_dm.c
++++ xen-4.13.0-testing/tools/libxl/libxl_dm.c
+@@ -984,14 +984,27 @@ enum {
+ LIBXL__COLO_SECONDARY,
+ };
+
++static const char *qemu_cache_mode(const libxl_device_disk *disk)
++{
++ static const char cache_directsync[] = "directsync";
++ static const char cache_writeback[] = "writeback";
++ static const char cache_unsafe[] = "unsafe";
++
++ if (LIBXL_SUSE_IS_CACHE_UNSAFE(disk->readwrite))
++ return cache_unsafe;
++ if (disk->direct_io_safe)
++ return cache_directsync;
++ return cache_writeback;
++}
++
+ static char *qemu_disk_scsi_drive_string(libxl__gc *gc, const char *target_path,
+ int unit, const char *format,
+ const libxl_device_disk *disk,
+ int colo_mode, const char **id_ptr)
+ {
+ char *drive = NULL;
+- char *common = GCSPRINTF("if=none,readonly=%s,cache=writeback",
+- disk->readwrite ? "off" : "on");
++ char *common = GCSPRINTF("if=none,readonly=%s,cache=%s",
++ disk->readwrite ? "off" : "on", qemu_cache_mode(disk));
+ const char *exportname = disk->colo_export;
+ const char *active_disk = disk->active_disk;
+ const char *hidden_disk = disk->hidden_disk;
+@@ -1050,8 +1063,8 @@ static char *qemu_disk_ide_drive_string(
+ switch (colo_mode) {
+ case LIBXL__COLO_NONE:
+ drive = GCSPRINTF
+- ("file=%s,if=ide,index=%d,media=disk,format=%s,cache=writeback",
+- target_path, unit, format);
++ ("file=%s,if=ide,index=%d,media=disk,format=%s,cache=%s",
++ target_path, unit, format, qemu_cache_mode(disk));
+ break;
+ case LIBXL__COLO_PRIMARY:
+ /*
+@@ -1064,13 +1077,14 @@ static char *qemu_disk_ide_drive_string(
+ * vote-threshold=1
+ */
+ drive = GCSPRINTF(
+- "if=ide,index=%d,media=disk,cache=writeback,driver=quorum,"
++ "if=ide,index=%d,media=disk,cache=%s,driver=quorum,"
+ "id=%s,"
+ "children.0.file.filename=%s,"
+ "children.0.driver=%s,"
+ "read-pattern=fifo,"
+ "vote-threshold=1",
+- unit, exportname, target_path, format);
++ unit, qemu_cache_mode(disk),
++ exportname, target_path, format);
+ break;
+ case LIBXL__COLO_SECONDARY:
+ /*
+@@ -1084,7 +1098,7 @@ static char *qemu_disk_ide_drive_string(
+ * file.backing.backing=exportname,
+ */
+ drive = GCSPRINTF(
+- "if=ide,index=%d,id=top-colo,media=disk,cache=writeback,"
++ "if=ide,index=%d,id=top-colo,media=disk,cache=%s,"
+ "driver=replication,"
+ "mode=secondary,"
+ "top-id=top-colo,"
+@@ -1093,7 +1107,8 @@ static char *qemu_disk_ide_drive_string(
+ "file.backing.driver=qcow2,"
+ "file.backing.file.filename=%s,"
+ "file.backing.backing=%s",
+- unit, active_disk, hidden_disk, exportname);
++ unit, qemu_cache_mode(disk),
++ active_disk, hidden_disk, exportname);
+ break;
+ default:
+ abort();
+@@ -1881,8 +1896,8 @@ static int libxl__build_device_model_arg
+ return ERROR_INVAL;
+ }
+ flexarray_vappend(dm_args, "-drive",
+- GCSPRINTF("file=%s,if=none,id=ahcidisk-%d,format=%s,cache=writeback",
+- target_path, disk, format),
++ GCSPRINTF("file=%s,if=none,id=ahcidisk-%d,format=%s,cache=%s",
++ target_path, disk, format, qemu_cache_mode(&disks[i])),
+ "-device", GCSPRINTF("ide-hd,bus=ahci0.%d,unit=0,drive=ahcidisk-%d",
+ disk, disk), NULL);
+ continue;
+Index: xen-4.13.0-testing/tools/libxl/libxlu_disk.c
+===================================================================
+--- xen-4.13.0-testing.orig/tools/libxl/libxlu_disk.c
++++ xen-4.13.0-testing/tools/libxl/libxlu_disk.c
+@@ -79,6 +79,8 @@ int xlu_disk_parse(XLU_Config *cfg,
+ if (!disk->pdev_path || !strcmp(disk->pdev_path, ""))
+ disk->format = LIBXL_DISK_FORMAT_EMPTY;
+ }
++ if (disk->readwrite && dpc.suse_diskcache_disable_flush)
++ disk->readwrite = LIBXL_SUSE_SET_CACHE_UNSAFE(disk->readwrite);
+
+ if (!disk->vdev) {
+ xlu__disk_err(&dpc,0, "no vdev specified");
+Index: xen-4.13.0-testing/tools/libxl/libxlu_disk_i.h
+===================================================================
+--- xen-4.13.0-testing.orig/tools/libxl/libxlu_disk_i.h
++++ xen-4.13.0-testing/tools/libxl/libxlu_disk_i.h
+@@ -10,7 +10,7 @@ typedef struct {
+ void *scanner;
+ YY_BUFFER_STATE buf;
+ libxl_device_disk *disk;
+- int access_set, had_depr_prefix;
++ int access_set, suse_diskcache_disable_flush, had_depr_prefix;
+ const char *spec;
+ } DiskParseContext;
+
+Index: xen-4.13.0-testing/tools/libxl/libxlu_disk_l.l
+===================================================================
+--- xen-4.13.0-testing.orig/tools/libxl/libxlu_disk_l.l
++++ xen-4.13.0-testing/tools/libxl/libxlu_disk_l.l
+@@ -196,6 +196,7 @@ colo-port=[^,]*,? { STRIP(','); setcolop
+ colo-export=[^,]*,? { STRIP(','); SAVESTRING("colo-export", colo_export, FROMEQUALS); }
+ active-disk=[^,]*,? { STRIP(','); SAVESTRING("active-disk", active_disk, FROMEQUALS); }
+ hidden-disk=[^,]*,? { STRIP(','); SAVESTRING("hidden-disk", hidden_disk, FROMEQUALS); }
++suse-diskcache-disable-flush,? { DPC->suse_diskcache_disable_flush = 1; }
+
+ /* the target magic parameter, eats the rest of the string */
+
diff --git a/libxl.helper_done-crash.patch b/libxl.helper_done-crash.patch
new file mode 100644
index 0000000..d45d14d
--- /dev/null
+++ b/libxl.helper_done-crash.patch
@@ -0,0 +1,53 @@
+From fb0f946726ff8aaa15b76bc3ec3b18878851a447 Mon Sep 17 00:00:00 2001
+From: Olaf Hering <olaf@aepfle.de>
+Date: Fri, 27 Sep 2019 18:06:12 +0200
+Subject: libxl: fix crash in helper_done due to uninitialized data
+
+A crash in helper_done, called from libxl_domain_suspend, was reported,
+triggered by 'virsh migrate --live xen+ssh://host':
+
+ #1 helper_done (...) at libxl_save_callout.c:371
+ helper_failed
+ helper_stop
+ libxl__save_helper_abort
+ #2 check_all_finished (..., rc=-3) at libxl_stream_write.c:671
+ stream_done
+ stream_complete
+ write_done
+ dc->callback == write_done
+ efd->func == datacopier_writable
+ #3 afterpoll_internal (...) at libxl_event.c:1269
+
+This is triggered by a failed poll, the actual error was:
+
+libxl_aoutils.c:328:datacopier_writable: unexpected poll event 0x1c on fd 37 (should be POLLOUT) writing libxc header during copy of save v2 stream
+
+In this case revents in datacopier_writable is POLLHUP|POLLERR|POLLOUT,
+which triggers datacopier_callback. In helper_done,
+shs->completion_callback is still zero. libxl__xc_domain_save fills
+dss.sws.shs. But that function is only called after stream_header_done.
+Any error before that will leave dss partly uninitialized.
+
+Fix this crash by checking if ->completion_callback is valid.
+
+Signed-off-by: Olaf Hering <olaf@aepfle.de>
+---
+ tools/libxl/libxl_save_callout.c | 5 +++--
+ 1 file changed, 3 insertions(+), 2 deletions(-)
+
+diff --git a/tools/libxl/libxl_save_callout.c b/tools/libxl/libxl_save_callout.c
+index 6452d70036..89a2f6ecf0 100644
+--- a/tools/libxl/libxl_save_callout.c
++++ b/tools/libxl/libxl_save_callout.c
+@@ -368,8 +368,9 @@ static void helper_done(libxl__egc *egc, libxl__save_helper_state *shs)
+ assert(!libxl__save_helper_inuse(shs));
+
+ shs->egc = egc;
+- shs->completion_callback(egc, shs->caller_state,
+- shs->rc, shs->retval, shs->errnoval);
++ if (shs->completion_callback)
++ shs->completion_callback(egc, shs->caller_state,
++ shs->rc, shs->retval, shs->errnoval);
+ shs->egc = 0;
+ }
+
diff --git a/libxl.libxl__domain_pvcontrol.patch b/libxl.libxl__domain_pvcontrol.patch
new file mode 100644
index 0000000..178e004
--- /dev/null
+++ b/libxl.libxl__domain_pvcontrol.patch
@@ -0,0 +1,27 @@
+References: bsc#1161480
+
+Fix xl shutdown for HVM without PV drivers
+
+A return value of zero means no PV drivers. Restore the hunk which was removed.
+
+Fixes commit b183e180bce93037d3ef385a8c2338bbfb7f23d9
+
+Signed-off-by: Olaf Hering <olaf@aepfle.de>
+---
+ tools/libxl/libxl_domain.c | 3 +++
+ 1 file changed, 3 insertions(+)
+
+Index: xen-4.13.1-testing/tools/libxl/libxl_domain.c
+===================================================================
+--- xen-4.13.1-testing.orig/tools/libxl/libxl_domain.c
++++ xen-4.13.1-testing/tools/libxl/libxl_domain.c
+@@ -795,6 +795,9 @@ int libxl__domain_pvcontrol(libxl__egc *
+ if (rc < 0)
+ return rc;
+
++ if (!rc)
++ return ERROR_NOPARAVIRT;
++
+ shutdown_path = libxl__domain_pvcontrol_xspath(gc, domid);
+ if (!shutdown_path)
+ return ERROR_FAIL;
diff --git a/libxl.max_event_channels.patch b/libxl.max_event_channels.patch
new file mode 100644
index 0000000..6c7cffc
--- /dev/null
+++ b/libxl.max_event_channels.patch
@@ -0,0 +1,16 @@
+References: bsc#1167608
+unbound limits for max_event_channels
+1023 is too low for a three digit value of vcpus
+it is difficult to make the value depend on the number of vcpus
+adding devices at runtime also needs event channels
+--- a/tools/libxl/libxl_create.c
++++ b/tools/libxl/libxl_create.c
+@@ -224,7 +224,7 @@ int libxl__domain_build_info_setdefault(
+ b_info->iomem[i].gfn = b_info->iomem[i].start;
+
+ if (!b_info->event_channels)
+- b_info->event_channels = 1023;
++ b_info->event_channels = -1U;
+
+ libxl__arch_domain_build_info_setdefault(gc, b_info);
+ libxl_defbool_setdefault(&b_info->dm_restrict, false);
diff --git a/libxl.pvscsi.patch b/libxl.pvscsi.patch
new file mode 100644
index 0000000..4b868ca
--- /dev/null
+++ b/libxl.pvscsi.patch
@@ -0,0 +1,2538 @@
+Subject: [PATCH v12 1/2] libxl: add support for vscsi
+Date: Wed, 13 Apr 2016 08:56:59 +0000
+Message-Id: <1460537820-15398-2-git-send-email-olaf@aepfle.de>
+fate#316613 , https://fate.suse.com/316613
+
+Port pvscsi support from xend to libxl:
+
+ vscsi=['pdev,vdev{,options}']
+ xl scsi-attach
+ xl scsi-detach
+ xl scsi-list
+
+Signed-off-by: Olaf Hering <olaf@aepfle.de>
+Cc: Ian Jackson <ian.jackson@eu.citrix.com>
+Cc: Stefano Stabellini <stefano.stabellini@eu.citrix.com>
+Cc: Ian Campbell <ian.campbell@citrix.com>
+Cc: Wei Liu <wei.liu2@citrix.com>
+---
+ docs/man/xl.cfg.pod.5 | 56 +
+ docs/man/xl.pod.1 | 18
+ tools/libxl/Makefile | 2
+ tools/libxl/libxl.c | 9
+ tools/libxl/libxl.h | 42 +
+ tools/libxl/libxl_create.c | 41 +
+ tools/libxl/libxl_device.c | 2
+ tools/libxl/libxl_internal.h | 8
+ tools/libxl/libxl_types.idl | 53 +
+ tools/libxl/libxl_types_internal.idl | 1
+ tools/libxl/libxl_vscsi.c | 1169 +++++++++++++++++++++++++++++++++++
+ tools/libxl/libxlu_vscsi.c | 667 +++++++++++++++++++
+ tools/libxl/libxlutil.h | 19
+ tools/libxl/xl.h | 3
+ tools/libxl/xl_cmdimpl.c | 225 ++++++
+ tools/libxl/xl_cmdtable.c | 15
+ 16 files changed, 2326 insertions(+), 4 deletions(-)
+
+Index: xen-4.13.0-testing/docs/man/xl.cfg.5.pod.in
+===================================================================
+--- xen-4.13.0-testing.orig/docs/man/xl.cfg.5.pod.in
++++ xen-4.13.0-testing/docs/man/xl.cfg.5.pod.in
+@@ -756,6 +756,62 @@ frontend to backend. It can be used as a
+ For more information about the protocol, see
+ https://xenbits.xenproject.org/docs/unstable/misc/pvcalls.html.
+
++=item B<vscsi=[ "VSCSI_SPEC_STRING", "VSCSI_SPEC_STRING", ...]>
++
++Specifies the PVSCSI devices to be provided to the guest. PVSCSI passes
++SCSI devices from the backend domain to the guest.
++
++Each VSCSI_SPEC_STRING consists of "pdev,vdev[,options]".
++'pdev' describes the physical device, preferable in a persistent format
++such as /dev/disk/by-*/*.
++'vdev' is the domU device in vHOST:CHANNEL:TARGET:LUN notation, all integers.
++'options' lists additional flags which a backend may recognize.
++
++The supported values for "pdev" and "options" depends on the backend driver used:
++
++=over 4
++
++=item B<Linux>
++
++=over 4
++
++=item C<pdev>
++
++The backend driver in the pvops kernel is part of the Linux-IO Target framework
++(LIO). As such the SCSI devices have to be configured first with the tools
++provided by this framework, such as a xen-scsiback aware targetcli. The "pdev"
++in domU.cfg has to refer to a config item in that framework instead of the raw
++device. Usually this is a WWN in the form of "naa.WWN:LUN".
++
++=item C<options>
++
++No options recognized.
++
++=back
++
++=item B<Linux based on classic Xen kernel>
++
++=over 4
++
++=item C<pdev>
++
++The dom0 device in either /dev/scsidev or pHOST:CHANNEL:TARGET:LUN notation.
++
++It's recommended to use persistent names "/dev/disk/by-*/*" to refer to a "pdev".
++The toolstack will translate this internally to "h:c:t:l" notation, which is how
++the backend driver will access the device. Using the "h:c:t:l" notation for
++"pdev" in domU.cfg is discouraged because this value will change across reboots,
++depending on the detection order in the OS.
++
++=item C<options>
++
++Currently only the option value "feature-host" is recognized. SCSI command
++emulation in backend driver is bypassed when "feature-host" is specified.
++
++=back
++
++=back
++
+ =item B<vfb=[ "VFB_SPEC_STRING", "VFB_SPEC_STRING", ...]>
+
+ Specifies the paravirtual framebuffer devices which should be supplied
+Index: xen-4.13.0-testing/docs/man/xl.1.pod.in
+===================================================================
+--- xen-4.13.0-testing.orig/docs/man/xl.1.pod.in
++++ xen-4.13.0-testing/docs/man/xl.1.pod.in
+@@ -1575,6 +1575,24 @@ List virtual network interfaces for a do
+
+ =back
+
++=head2 PVSCSI DEVICES
++
++=over 4
++
++=item B<scsi-attach> I<domain-id> I<pdev> I<vdev>,I<[feature-host]>
++
++Creates a new vscsi device in the domain specified by I<domain-id>.
++
++=item B<scsi-detach> I<domain-id> I<vdev>
++
++Removes the vscsi device from domain specified by I<domain-id>.
++
++=item B<scsi-list> I<domain-id> I<[domain-id] ...>
++
++List vscsi devices for the domain specified by I<domain-id>.
++
++=back
++
+ =head1 PCI PASS-THROUGH
+
+ =over 4
+Index: xen-4.13.0-testing/tools/libxl/Makefile
+===================================================================
+--- xen-4.13.0-testing.orig/tools/libxl/Makefile
++++ xen-4.13.0-testing/tools/libxl/Makefile
+@@ -127,6 +127,7 @@ endif
+ LIBXL_LIBS += -lyajl
+
+ LIBXL_OBJS = flexarray.o libxl.o libxl_create.o libxl_dm.o libxl_pci.o \
++ libxl_vscsi.o \
+ libxl_dom.o libxl_exec.o libxl_xshelp.o libxl_device.o \
+ libxl_internal.o libxl_utils.o libxl_uuid.o \
+ libxl_json.o libxl_aoutils.o libxl_numa.o libxl_vnuma.o \
+@@ -173,6 +174,7 @@ AUTOINCS= libxlu_cfg_y.h libxlu_cfg_l.h
+ AUTOSRCS= libxlu_cfg_y.c libxlu_cfg_l.c
+ AUTOSRCS += _libxl_save_msgs_callout.c _libxl_save_msgs_helper.c
+ LIBXLU_OBJS = libxlu_cfg_y.o libxlu_cfg_l.o libxlu_cfg.o \
++ libxlu_vscsi.o \
+ libxlu_disk_l.o libxlu_disk.o libxlu_vif.o libxlu_pci.o
+ $(LIBXLU_OBJS): CFLAGS += $(CFLAGS_libxenctrl) # For xentoollog.h
+
+Index: xen-4.13.0-testing/tools/libxl/libxl.h
+===================================================================
+--- xen-4.13.0-testing.orig/tools/libxl/libxl.h
++++ xen-4.13.0-testing/tools/libxl/libxl.h
+@@ -1134,6 +1134,13 @@ void libxl_mac_copy(libxl_ctx *ctx, libx
+ #define LIBXL_HAVE_PCITOPOLOGY 1
+
+ /*
++ * LIBXL_HAVE_VSCSI
++ *
++ * If this is defined, the PV SCSI feature is supported.
++ */
++#define LIBXL_HAVE_VSCSI 1
++
++/*
+ * LIBXL_HAVE_SOCKET_BITMAP
+ *
+ * If this is defined, then libxl_socket_bitmap_alloc and
+@@ -2150,6 +2157,41 @@ int libxl_device_channel_getinfo(libxl_c
+ const libxl_device_channel *channel,
+ libxl_channelinfo *channelinfo);
+
++/* Virtual SCSI */
++int libxl_device_vscsictrl_add(libxl_ctx *ctx, uint32_t domid,
++ libxl_device_vscsictrl *vscsi,
++ const libxl_asyncop_how *ao_how)
++ LIBXL_EXTERNAL_CALLERS_ONLY;
++int libxl_device_vscsictrl_remove(libxl_ctx *ctx, uint32_t domid,
++ libxl_device_vscsictrl *vscsi,
++ const libxl_asyncop_how *ao_how)
++ LIBXL_EXTERNAL_CALLERS_ONLY;
++int libxl_device_vscsictrl_destroy(libxl_ctx *ctx, uint32_t domid,
++ libxl_device_vscsictrl *vscsi,
++ const libxl_asyncop_how *ao_how)
++ LIBXL_EXTERNAL_CALLERS_ONLY;
++
++libxl_device_vscsictrl *libxl_device_vscsictrl_list(libxl_ctx *ctx, uint32_t domid, int *num);
++int libxl_device_vscsictrl_getinfo(libxl_ctx *ctx, uint32_t domid,
++ libxl_device_vscsictrl *vscsictrl,
++ libxl_device_vscsidev *vscsidev,
++ libxl_vscsiinfo *vscsiinfo);
++int libxl_device_vscsidev_add(libxl_ctx *ctx, uint32_t domid,
++ libxl_device_vscsidev *dev,
++ const libxl_asyncop_how *ao_how)
++ LIBXL_EXTERNAL_CALLERS_ONLY;
++/* Remove vscsidev connected to vscsictrl */
++int libxl_device_vscsidev_remove(libxl_ctx *ctx, uint32_t domid,
++ libxl_device_vscsidev *dev,
++ const libxl_asyncop_how *ao_how)
++ LIBXL_EXTERNAL_CALLERS_ONLY;
++void libxl_device_vscsictrl_append_vscsidev(libxl_ctx *ctx,
++ libxl_device_vscsictrl *ctrl,
++ libxl_device_vscsidev *dev);
++void libxl_device_vscsictrl_remove_vscsidev(libxl_ctx *ctx,
++ libxl_device_vscsictrl *ctrl,
++ unsigned int idx);
++
+ /* Virtual TPMs */
+ int libxl_device_vtpm_add(libxl_ctx *ctx, uint32_t domid, libxl_device_vtpm *vtpm,
+ const libxl_asyncop_how *ao_how)
+Index: xen-4.13.0-testing/tools/libxl/libxl_create.c
+===================================================================
+--- xen-4.13.0-testing.orig/tools/libxl/libxl_create.c
++++ xen-4.13.0-testing/tools/libxl/libxl_create.c
+@@ -1655,6 +1655,7 @@ const libxl__device_type *device_type_tb
+ &libxl__disk_devtype,
+ &libxl__nic_devtype,
+ &libxl__vtpm_devtype,
++ &libxl__vscsictrl_devtype,
+ &libxl__usbctrl_devtype,
+ &libxl__usbdev_devtype,
+ &libxl__pcidev_devtype,
+Index: xen-4.13.0-testing/tools/libxl/libxl_internal.h
+===================================================================
+--- xen-4.13.0-testing.orig/tools/libxl/libxl_internal.h
++++ xen-4.13.0-testing/tools/libxl/libxl_internal.h
+@@ -3936,6 +3936,7 @@ extern const libxl__device_type libxl__v
+ extern const libxl__device_type libxl__disk_devtype;
+ extern const libxl__device_type libxl__nic_devtype;
+ extern const libxl__device_type libxl__vtpm_devtype;
++extern const libxl__device_type libxl__vscsictrl_devtype;
+ extern const libxl__device_type libxl__usbctrl_devtype;
+ extern const libxl__device_type libxl__usbdev_devtype;
+ extern const libxl__device_type libxl__pcidev_devtype;
+Index: xen-4.13.0-testing/tools/libxl/libxl_types.idl
+===================================================================
+--- xen-4.13.0-testing.orig/tools/libxl/libxl_types.idl
++++ xen-4.13.0-testing/tools/libxl/libxl_types.idl
+@@ -929,6 +929,43 @@ libxl_device_vsnd = Struct("device_vsnd"
+ ("pcms", Array(libxl_vsnd_pcm, "num_vsnd_pcms"))
+ ])
+
++libxl_vscsi_pdev_type = Enumeration("vscsi_pdev_type", [
++ (0, "INVALID"),
++ (1, "HCTL"),
++ (2, "WWN"),
++ ])
++
++libxl_vscsi_hctl = Struct("vscsi_hctl", [
++ ("hst", uint32),
++ ("chn", uint32),
++ ("tgt", uint32),
++ ("lun", uint64),
++ ])
++
++libxl_vscsi_pdev = Struct("vscsi_pdev", [
++ ("p_devname", string),
++ ("u", KeyedUnion(None, libxl_vscsi_pdev_type, "type",
++ [
++ ("invalid", None),
++ ("hctl", Struct(None, [("m", libxl_vscsi_hctl)])),
++ ("wwn", Struct(None, [("m", string)])),
++ ])),
++ ])
++
++libxl_device_vscsidev = Struct("device_vscsidev", [
++ ("vscsidev_id", libxl_devid),
++ ("pdev", libxl_vscsi_pdev),
++ ("vdev", libxl_vscsi_hctl),
++ ])
++
++libxl_device_vscsictrl = Struct("device_vscsictrl", [
++ ("backend_domid", libxl_domid),
++ ("devid", libxl_devid),
++ ("idx", libxl_devid),
++ ("vscsidevs", Array(libxl_device_vscsidev, "num_vscsidevs")),
++ ("scsi_raw_cmds", libxl_defbool),
++ ])
++
+ libxl_domain_config = Struct("domain_config", [
+ ("c_info", libxl_domain_create_info),
+ ("b_info", libxl_domain_build_info),
+@@ -940,6 +977,7 @@ libxl_domain_config = Struct("domain_con
+ ("dtdevs", Array(libxl_device_dtdev, "num_dtdevs")),
+ ("vfbs", Array(libxl_device_vfb, "num_vfbs")),
+ ("vkbs", Array(libxl_device_vkb, "num_vkbs")),
++ ("vscsictrls", Array(libxl_device_vscsictrl, "num_vscsictrls")),
+ ("vtpms", Array(libxl_device_vtpm, "num_vtpms")),
+ ("p9s", Array(libxl_device_p9, "num_p9s")),
+ ("pvcallsifs", Array(libxl_device_pvcallsif, "num_pvcallsifs")),
+@@ -981,6 +1019,21 @@ libxl_nicinfo = Struct("nicinfo", [
+ ("rref_rx", integer),
+ ], dir=DIR_OUT)
+
++libxl_vscsiinfo = Struct("vscsiinfo", [
++ ("backend", string),
++ ("backend_id", uint32),
++ ("frontend", string),
++ ("frontend_id", uint32),
++ ("devid", libxl_devid),
++ ("pdev", libxl_vscsi_pdev),
++ ("vdev", libxl_vscsi_hctl),
++ ("idx", libxl_devid),
++ ("vscsidev_id", libxl_devid),
++ ("scsi_raw_cmds", bool),
++ ("vscsictrl_state", integer),
++ ("vscsidev_state", integer),
++ ], dir=DIR_OUT)
++
+ libxl_vtpminfo = Struct("vtpminfo", [
+ ("backend", string),
+ ("backend_id", uint32),
+Index: xen-4.13.0-testing/tools/libxl/libxl_types_internal.idl
+===================================================================
+--- xen-4.13.0-testing.orig/tools/libxl/libxl_types_internal.idl
++++ xen-4.13.0-testing/tools/libxl/libxl_types_internal.idl
+@@ -32,6 +32,7 @@ libxl__device_kind = Enumeration("device
+ (14, "PVCALLS"),
+ (15, "VSND"),
+ (16, "VINPUT"),
++ (17, "VSCSI"),
+ ])
+
+ libxl__console_backend = Enumeration("console_backend", [
+Index: xen-4.13.0-testing/tools/libxl/libxl_vscsi.c
+===================================================================
+--- /dev/null
++++ xen-4.13.0-testing/tools/libxl/libxl_vscsi.c
+@@ -0,0 +1,1185 @@
++/*
++ * Copyright (C) 2016 SUSE Linux GmbH
++ * Author Olaf Hering <olaf@aepfle.de>
++ *
++ * This program is free software; you can redistribute it and/or modify
++ * it under the terms of the GNU Lesser General Public License as published
++ * by the Free Software Foundation; version 2.1 only. with the special
++ * exception on linking described in file LICENSE.
++ *
++ * This program is distributed in the hope that it will be useful,
++ * but WITHOUT ANY WARRANTY; without even the implied warranty of
++ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
++ * GNU Lesser General Public License for more details.
++ */
++#include "libxl_osdeps.h" /* must come before any other headers */
++#include "libxl_internal.h"
++
++typedef struct vscsidev_rm {
++ libxl_device_vscsictrl *ctrl;
++ char *be_path;
++ int dev_wait;
++ libxl__device dev;
++} vscsidev_rm_t;
++
++typedef void (*vscsictrl_add)(libxl__egc *egc,
++ libxl__ao_device *aodev,
++ libxl_device_vscsictrl *vscsictrl,
++ libxl_domain_config *d_config);
++
++#define LIBXL_CTRL_INDEX "libxl_ctrl_index"
++
++#define XLU_WWN_LEN 16
++
++static int vscsi_parse_hctl(char *str, libxl_vscsi_hctl *hctl)
++{
++ unsigned int hst, chn, tgt;
++ unsigned long long lun;
++
++ if (sscanf(str, "%u:%u:%u:%llu", &hst, &chn, &tgt, &lun) != 4)
++ return ERROR_INVAL;
++
++ hctl->hst = hst;
++ hctl->chn = chn;
++ hctl->tgt = tgt;
++ hctl->lun = lun;
++ return 0;
++}
++
++/* Translate p-dev back into pdev.type */
++static bool vscsi_parse_pdev(libxl__gc *gc, libxl_device_vscsidev *dev,
++ char *c, char *p, char *v)
++{
++ libxl_vscsi_hctl hctl;
++ unsigned long long lun;
++ char wwn[XLU_WWN_LEN + 1];
++ bool parsed_ok = false;
++
++ libxl_vscsi_hctl_init(&hctl);
++
++ dev->pdev.p_devname = libxl__strdup(NOGC, c);
++
++ if (strncmp(p, "naa.", 4) == 0) {
++ /* WWN as understood by pvops */
++ memset(wwn, 0, sizeof(wwn));
++ if (sscanf(p, "naa.%16[0-9a-fA-F]:%llu", wwn, &lun) == 2) {
++ libxl_vscsi_pdev_init_type(&dev->pdev, LIBXL_VSCSI_PDEV_TYPE_WWN);
++ dev->pdev.u.wwn.m = libxl__strdup(NOGC, p);
++ parsed_ok = true;
++ }
++ } else if (vscsi_parse_hctl(p, &hctl) == 0) {
++ /* Either xenlinux, or pvops with properly configured alias in sysfs */
++ libxl_vscsi_pdev_init_type(&dev->pdev, LIBXL_VSCSI_PDEV_TYPE_HCTL);
++ libxl_vscsi_hctl_copy(CTX, &dev->pdev.u.hctl.m, &hctl);
++ parsed_ok = true;
++ }
++
++ if (parsed_ok && vscsi_parse_hctl(v, &dev->vdev) != 0)
++ parsed_ok = false;
++
++ libxl_vscsi_hctl_dispose(&hctl);
++
++ return parsed_ok;
++}
++
++static bool vscsi_fill_dev(libxl__gc *gc,
++ xs_transaction_t t,
++ const char *devs_path,
++ const char *dev_dir,
++ libxl_device_vscsidev *dev)
++{
++ char *path, *c, *p, *v, *s;
++ unsigned int devid;
++ int r;
++
++ r = sscanf(dev_dir, "dev-%u", &devid);
++ if (r != 1) {
++ LOG(ERROR, "expected dev-N, got '%s'", dev_dir);
++ return false;
++ }
++ dev->vscsidev_id = devid;
++
++ path = GCSPRINTF("%s/%s", devs_path, dev_dir);
++ c = libxl__xs_read(gc, t, GCSPRINTF("%s/p-devname", path));
++ p = libxl__xs_read(gc, t, GCSPRINTF("%s/p-dev", path));
++ v = libxl__xs_read(gc, t, GCSPRINTF("%s/v-dev", path));
++ s = libxl__xs_read(gc, t, GCSPRINTF("%s/state", path));
++ LOG(DEBUG, "%s/state is %s", path, s);
++ if (!(c && p && v && s)) {
++ LOG(ERROR, "p-devname '%s' p-dev '%s' v-dev '%s'", c, p, v);
++ return false;
++ }
++
++ if (!vscsi_parse_pdev(gc, dev, c, p, v)) {
++ LOG(ERROR, "failed to parse %s: %s %s %s %s", path, c, p, v, s);
++ return false;
++ }
++
++ return true;
++}
++
++static bool vscsi_fill_ctrl(libxl__gc *gc,
++ uint32_t tgt_domid,
++ xs_transaction_t t,
++ const char *fe_path,
++ const char *dir,
++ libxl_device_vscsictrl *ctrl)
++{
++ libxl_device_vscsidev dev;
++ char *tmp, *devs_path;
++ const char *be_path;
++ char **dev_dirs;
++ unsigned int ndev_dirs, dev_dir;
++ uint32_t be_domid, fe_domid;
++ char be_type[16];
++ int r;
++ bool ok;
++
++ ctrl->devid = atoi(dir);
++
++ tmp = GCSPRINTF("%s/%s/backend", fe_path, dir);
++ r = libxl__xs_read_checked(gc, t, tmp, &be_path);
++ if (r || !be_path)
++ goto out;
++
++ r = sscanf(be_path, "/local/domain/%u/backend/%15[^/]/%u",
++ &be_domid, be_type, &fe_domid);
++ if (r != 3 || fe_domid != tgt_domid)
++ goto out;
++ ctrl->backend_domid = be_domid;
++
++ tmp = libxl__xs_read(gc, t, GCSPRINTF("%s/" LIBXL_CTRL_INDEX, be_path));
++ if (!tmp)
++ goto out;
++ ctrl->idx = atoi(tmp);
++
++ tmp = libxl__xs_read(gc, t, GCSPRINTF("%s/feature-host", be_path));
++ if (!tmp)
++ goto out;
++ ok = atoi(tmp) != 0;
++ libxl_defbool_set(&ctrl->scsi_raw_cmds, ok);
++
++ ok = true;
++ devs_path = GCSPRINTF("%s/vscsi-devs", be_path);
++ dev_dirs = libxl__xs_directory(gc, t, devs_path, &ndev_dirs);
++ for (dev_dir = 0; dev_dirs && dev_dir < ndev_dirs; dev_dir++) {
++ libxl_device_vscsidev_init(&dev);
++ ok = vscsi_fill_dev(gc, t, devs_path, dev_dirs[dev_dir], &dev);
++ if (ok == true)
++ ok = ctrl->idx == dev.vdev.hst;
++ if (ok == true)
++ libxl_device_vscsictrl_append_vscsidev(CTX, ctrl, &dev);
++ libxl_device_vscsidev_dispose(&dev);
++ if (ok == false)
++ break;
++ }
++
++ return ok;
++
++out:
++ libxl_defbool_set(&ctrl->scsi_raw_cmds, false);
++ return false;
++}
++
++/* return an array of vscsictrls with num elements */
++static int vscsi_collect_ctrls(libxl__gc *gc,
++ uint32_t domid,
++ libxl_device_vscsictrl **ctrls,
++ int *num)
++{
++ xs_transaction_t t = XBT_NULL;
++ libxl_device_vscsictrl ctrl;
++ char *fe_path;
++ char **dirs;
++ unsigned int ndirs = 0, dir;
++ int rc;
++
++ fe_path = GCSPRINTF("%s/device/vscsi", libxl__xs_get_dompath(gc, domid));
++
++ for (;;) {
++ *num = 0;
++
++ rc = libxl__xs_transaction_start(gc, &t);
++ if (rc) goto out;
++
++ dirs = libxl__xs_directory(gc, t, fe_path, &ndirs);
++ /* Nothing to do */
++ if (!(dirs && ndirs))
++ break;
++
++ /* List of ctrls to be returned to the caller */
++ *ctrls = libxl__malloc(NOGC, ndirs * sizeof(**ctrls));
++
++ for (dir = 0; dir < ndirs; dir++) {
++ libxl_device_vscsictrl_init(*ctrls + dir);
++
++ libxl_device_vscsictrl_init(&ctrl);
++ if (vscsi_fill_ctrl(gc, domid, t, fe_path, dirs[dir], &ctrl)) {
++ libxl_device_vscsictrl_copy(CTX, *ctrls + *num, &ctrl);
++ (*num)++;
++ }
++ libxl_device_vscsictrl_dispose(&ctrl);
++ }
++
++ rc = libxl__xs_transaction_commit(gc, &t);
++ if (!rc) break;
++
++ if (rc < 0) {
++ for (dir = 0; dir < ndirs; dir++)
++ libxl_device_vscsictrl_dispose(*ctrls + dir);
++ free(*ctrls);
++ *ctrls = NULL;
++ *num = 0;
++ goto out;
++ }
++ }
++
++out:
++ libxl__xs_transaction_abort(gc, &t);
++ return rc;
++}
++
++/* Simplified variant of device_addrm_aocomplete */
++static void vscsi_aodev_complete(libxl__egc *egc, libxl__ao_device *aodev)
++{
++ STATE_AO_GC(aodev->ao);
++ libxl__ao_complete(egc, ao, aodev->rc);
++}
++
++static int libxl__device_from_vscsictrl(libxl__gc *gc, uint32_t domid,
++ libxl_device_vscsictrl *vscsictrl,
++ libxl__device *device)
++{
++ device->backend_devid = vscsictrl->devid;
++ device->backend_domid = vscsictrl->backend_domid;
++ device->devid = vscsictrl->devid;
++ device->domid = domid;
++ device->backend_kind = LIBXL__DEVICE_KIND_VSCSI;
++ device->kind = LIBXL__DEVICE_KIND_VSCSI;
++
++ return 0;
++}
++
++static int vscsictrl_remove(libxl_ctx *ctx,
++ uint32_t domid,
++ libxl_device_vscsictrl *vscsictrl,
++ const libxl_asyncop_how *ao_how,
++ int force)
++{
++ AO_CREATE(ctx, domid, ao_how);
++ libxl__device *device;
++ libxl__ao_device *aodev;
++ int rc;
++
++ GCNEW(device);
++ rc = libxl__device_from_vscsictrl(gc, domid, vscsictrl, device);
++ if (rc != 0) goto out;
++
++ GCNEW(aodev);
++ libxl__prepare_ao_device(ao, aodev);
++ aodev->action = LIBXL__DEVICE_ACTION_REMOVE;
++ aodev->dev = device;
++ aodev->callback = vscsi_aodev_complete;
++ aodev->force = force;
++ libxl__initiate_device_generic_remove(egc, aodev);
++
++out:
++ if (rc) return AO_CREATE_FAIL(rc);
++ return AO_INPROGRESS;
++}
++
++static int vscsidev_be_set_rm(libxl__gc *gc,
++ libxl_device_vscsidev *v,
++ flexarray_t *back)
++{
++ int rc;
++ char *dir;
++
++ dir = GCSPRINTF("vscsi-devs/dev-%u", v->vscsidev_id);
++ rc = flexarray_append_pair(back,
++ GCSPRINTF("%s/state", dir),
++ GCSPRINTF("%d", XenbusStateClosing));
++ return rc;
++}
++
++static int vscsictrl_reconfigure_rm(libxl__ao_device *aodev,
++ const char *state_path,
++ int *be_wait)
++
++{
++ STATE_AO_GC(aodev->ao);
++ vscsidev_rm_t *vscsidev_rm = CONTAINER_OF(aodev->dev, *vscsidev_rm, dev);
++ libxl_device_vscsictrl *ctrl = vscsidev_rm->ctrl;
++ const char *be_path = vscsidev_rm->be_path;
++ int rc, i, be_state;
++ char *dev_path, *state_val;
++ flexarray_t *back;
++ libxl_device_vscsidev *v;
++ xs_transaction_t t = XBT_NULL;
++
++ /* Prealloc key+value: 1 toplevel + 1 per device */
++ i = 2 * (1 + 1);
++ back = flexarray_make(gc, i, 1);
++
++ for (;;) {
++ rc = libxl__xs_transaction_start(gc, &t);
++ if (rc) goto out;
++
++ state_val = libxl__xs_read(gc, t, state_path);
++ LOG(DEBUG, "%s is %s", state_path, state_val);
++ if (!state_val) {
++ rc = ERROR_NOTFOUND;
++ goto out;
++ }
++
++ be_state = atoi(state_val);
++ switch (be_state) {
++ case XenbusStateUnknown:
++ case XenbusStateInitialising:
++ case XenbusStateClosing:
++ case XenbusStateClosed:
++ default:
++ /* The backend is in a bad state */
++ rc = ERROR_FAIL;
++ goto out;
++ case XenbusStateInitialised:
++ case XenbusStateReconfiguring:
++ case XenbusStateReconfigured:
++ /* Backend is still busy, caller has to retry */
++ rc = ERROR_NOT_READY;
++ goto out;
++ case XenbusStateInitWait:
++ /* The frontend did not connect yet */
++ *be_wait = XenbusStateInitWait;
++ vscsidev_rm->dev_wait = XenbusStateClosing;
++ break;
++ case XenbusStateConnected:
++ /* The backend can handle reconfigure */
++ *be_wait = XenbusStateConnected;
++ vscsidev_rm->dev_wait = XenbusStateClosed;
++ flexarray_append_pair(back, "state",
++ GCSPRINTF("%d", XenbusStateReconfiguring));
++ break;
++ }
++
++ /* Append new vscsidev or skip existing */
++ for (i = 0; i < ctrl->num_vscsidevs; i++) {
++ unsigned int nb = 0;
++ v = ctrl->vscsidevs + i;
++ dev_path = GCSPRINTF("%s/vscsi-devs/dev-%u", be_path, v->vscsidev_id);
++ if (!libxl__xs_directory(gc, XBT_NULL, dev_path, &nb)) {
++ /* FIXME Sanity check */
++ LOG(DEBUG, "%s does not exist anymore", dev_path);
++ continue;
++ }
++ rc = vscsidev_be_set_rm(gc, v, back);
++ if (rc) goto out;
++ }
++
++ libxl__xs_writev(gc, t, be_path, libxl__xs_kvs_of_flexarray(gc, back));
++
++ rc = libxl__xs_transaction_commit(gc, &t);
++ if (!rc) break;
++ if (rc < 0) goto out;
++ }
++
++ rc = 0;
++
++out:
++ libxl__xs_transaction_abort(gc, &t);
++ return rc;
++}
++
++static void vscsictrl_remove_be_dev(libxl__gc *gc,
++ libxl_device_vscsidev *v,
++ xs_transaction_t t,
++ const char *be_path,
++ int dev_wait)
++{
++ char *dir, *path, *val;
++
++ dir = GCSPRINTF("%s/vscsi-devs/dev-%u", be_path, v->vscsidev_id);
++ path = GCSPRINTF("%s/state", dir);
++ val = libxl__xs_read(gc, t, path);
++ LOG(DEBUG, "%s is %s", path, val);
++ if (val && strcmp(val, GCSPRINTF("%d", dev_wait)) == 0) {
++ xs_rm(CTX->xsh, t, GCSPRINTF("%s/state", dir));
++ xs_rm(CTX->xsh, t, GCSPRINTF("%s/p-devname", dir));
++ xs_rm(CTX->xsh, t, GCSPRINTF("%s/p-dev", dir));
++ xs_rm(CTX->xsh, t, GCSPRINTF("%s/v-dev", dir));
++ xs_rm(CTX->xsh, t, dir);
++ } else {
++ LOG(ERROR, "%s has %s, expected %d", path, val, dev_wait);
++ }
++}
++
++static void vscsictrl_remove_be_cb(libxl__egc *egc,
++ libxl__ev_devstate *ds,
++ int rc)
++{
++ libxl__ao_device *aodev = CONTAINER_OF(ds, *aodev, backend_ds);
++ STATE_AO_GC(aodev->ao);
++ vscsidev_rm_t *vscsidev_rm = CONTAINER_OF(aodev->dev, *vscsidev_rm, dev);
++ libxl_device_vscsictrl *ctrl = vscsidev_rm->ctrl;
++ xs_transaction_t t = XBT_NULL;
++ int i;
++
++ for (;;) {
++ rc = libxl__xs_transaction_start(gc, &t);
++ if (rc) goto out;
++
++ for (i = 0; i < ctrl->num_vscsidevs; i++)
++ vscsictrl_remove_be_dev(gc, ctrl->vscsidevs + i, t,
++ vscsidev_rm->be_path,
++ vscsidev_rm->dev_wait);
++
++ rc = libxl__xs_transaction_commit(gc, &t);
++ if (!rc) break;
++ if (rc < 0) goto out;
++ }
++
++out:
++ aodev->rc = rc;
++ aodev->callback(egc, aodev);
++}
++
++static void vscsidev__remove(libxl__egc *egc, libxl__ao_device *aodev)
++{
++ STATE_AO_GC(aodev->ao);
++ vscsidev_rm_t *vscsidev_rm = CONTAINER_OF(aodev->dev, *vscsidev_rm, dev);
++ char *state_path;
++ int rc, be_wait;
++
++ vscsidev_rm->be_path = libxl__device_backend_path(gc, aodev->dev);
++ state_path = GCSPRINTF("%s/state", vscsidev_rm->be_path);
++
++ rc = vscsictrl_reconfigure_rm(aodev, state_path, &be_wait);
++ if (rc) goto out;
++
++ rc = libxl__ev_devstate_wait(ao, &aodev->backend_ds,
++ vscsictrl_remove_be_cb,
++ state_path, be_wait,
++ LIBXL_DESTROY_TIMEOUT * 1000);
++ if (rc) {
++ LOG(ERROR, "unable to wait for %s", state_path);
++ goto out;
++ }
++
++ return;
++
++out:
++ aodev->rc = rc;
++ /* Notify that this is done */
++ aodev->callback(egc, aodev);
++}
++
++static int vscsidev_remove(libxl_ctx *ctx,
++ uint32_t domid,
++ libxl_device_vscsictrl *vscsictrl,
++ const libxl_asyncop_how *ao_how)
++{
++ AO_CREATE(ctx, domid, ao_how);
++ libxl__ao_device *aodev;
++ vscsidev_rm_t *vscsidev_rm;
++ libxl__device *device;
++ int rc;
++
++ GCNEW(aodev);
++
++ GCNEW(vscsidev_rm);
++ vscsidev_rm->ctrl = vscsictrl;
++ device = &vscsidev_rm->dev;
++
++ rc = libxl__device_from_vscsictrl(gc, domid, vscsictrl, device);
++ if (rc) goto out;
++
++ libxl__prepare_ao_device(ao, aodev);
++ aodev->dev = device;
++ aodev->action = LIBXL__DEVICE_ACTION_REMOVE;
++ aodev->callback = vscsi_aodev_complete;
++
++ vscsidev__remove(egc, aodev);
++
++out:
++ if (rc) AO_CREATE_FAIL(rc);
++ return AO_INPROGRESS;
++}
++
++static int vscsidev_backend_add(libxl__gc *gc,
++ libxl_device_vscsidev *v,
++ flexarray_t *back)
++{
++ int rc;
++ char *dir;
++ unsigned int hst, chn, tgt;
++ unsigned long long lun;
++
++
++ dir = GCSPRINTF("vscsi-devs/dev-%u", v->vscsidev_id);
++ switch (v->pdev.type) {
++ case LIBXL_VSCSI_PDEV_TYPE_WWN:
++ flexarray_append_pair(back,
++ GCSPRINTF("%s/p-dev", dir),
++ v->pdev.u.wwn.m);
++ break;
++ case LIBXL_VSCSI_PDEV_TYPE_HCTL:
++ hst = v->pdev.u.hctl.m.hst;
++ chn = v->pdev.u.hctl.m.chn;
++ tgt = v->pdev.u.hctl.m.tgt;
++ lun = v->pdev.u.hctl.m.lun;
++ flexarray_append_pair(back,
++ GCSPRINTF("%s/p-dev", dir),
++ GCSPRINTF("%u:%u:%u:%llu", hst, chn, tgt, lun));
++ break;
++ case LIBXL_VSCSI_PDEV_TYPE_INVALID:
++ /* fallthrough */
++ default:
++ rc = ERROR_FAIL;
++ goto out;
++ }
++ flexarray_append_pair(back,
++ GCSPRINTF("%s/p-devname", dir),
++ v->pdev.p_devname);
++ hst = v->vdev.hst;
++ chn = v->vdev.chn;
++ tgt = v->vdev.tgt;
++ lun = v->vdev.lun;
++ flexarray_append_pair(back,
++ GCSPRINTF("%s/v-dev", dir),
++ GCSPRINTF("%u:%u:%u:%llu", hst, chn, tgt, lun));
++ flexarray_append_pair(back,
++ GCSPRINTF("%s/state", dir),
++ GCSPRINTF("%d", XenbusStateInitialising));
++ rc = 0;
++out:
++ return rc;
++}
++
++static void vscsictrl_new_backend(libxl__egc *egc,
++ libxl__ao_device *aodev,
++ libxl_device_vscsictrl *vscsictrl,
++ libxl_domain_config *d_config)
++{
++ STATE_AO_GC(aodev->ao);
++ int rc, i;
++ flexarray_t *back;
++ flexarray_t *front;
++ libxl_device_vscsidev *v;
++ xs_transaction_t t = XBT_NULL;
++
++ /* Prealloc key+value: 4 toplevel + 4 per device */
++ i = 2 * (4 + (4 * vscsictrl->num_vscsidevs));
++ back = flexarray_make(gc, i, 1);
++ front = flexarray_make(gc, 2 * 2, 1);
++
++ flexarray_append_pair(back,
++ "frontend-id",
++ GCSPRINTF("%d", aodev->dev->domid));
++ flexarray_append_pair(back, "online", "1");
++ flexarray_append_pair(back,
++ "state",
++ GCSPRINTF("%d", XenbusStateInitialising));
++ flexarray_append_pair(back,
++ LIBXL_CTRL_INDEX,
++ GCSPRINTF("%d", vscsictrl->idx));
++ flexarray_append_pair(back, "feature-host",
++ libxl_defbool_val(vscsictrl->scsi_raw_cmds) ?
++ "1" : "0");
++
++ flexarray_append_pair(front,
++ "backend-id",
++ GCSPRINTF("%d", vscsictrl->backend_domid));
++ flexarray_append_pair(front,
++ "state",
++ GCSPRINTF("%d", XenbusStateInitialising));
++
++ for (i = 0; i < vscsictrl->num_vscsidevs; i++) {
++ v = vscsictrl->vscsidevs + i;
++ rc = vscsidev_backend_add(gc, v, back);
++ if (rc) goto out;
++ }
++
++ for (;;) {
++ rc = libxl__xs_transaction_start(gc, &t);
++ if (rc) goto out;
++
++ rc = libxl__device_exists(gc, t, aodev->dev);
++ if (rc < 0) goto out;
++ if (rc == 1) { /* already exists in xenstore */
++ LOG(ERROR, "device already exists in xenstore");
++ rc = ERROR_DEVICE_EXISTS;
++ goto out;
++ }
++
++ if (aodev->update_json) {
++ rc = libxl__set_domain_configuration(gc, aodev->dev->domid, d_config);
++ if (rc) goto out;
++ }
++
++ libxl__device_generic_add(gc, t, aodev->dev,
++ libxl__xs_kvs_of_flexarray(gc, back),
++ libxl__xs_kvs_of_flexarray(gc, front),
++ NULL);
++
++ rc = libxl__xs_transaction_commit(gc, &t);
++ if (!rc) break;
++ if (rc < 0) goto out;
++ }
++
++ libxl__wait_device_connection(egc, aodev);
++ return;
++
++out:
++ libxl__xs_transaction_abort(gc, &t);
++ aodev->rc = rc;
++ aodev->callback(egc, aodev);
++}
++
++static void vscsictrl_do_reconfigure_add_cb(libxl__egc *egc,
++ libxl__ev_devstate *ds,
++ int rc)
++{
++ libxl__ao_device *aodev = CONTAINER_OF(ds, *aodev, backend_ds);
++ STATE_AO_GC(aodev->ao);
++ aodev->rc = rc;
++ aodev->callback(egc, aodev);
++}
++
++static void vscsictrl_do_reconfigure_add(libxl__egc *egc,
++ libxl__ao_device *aodev,
++ libxl_device_vscsictrl *vscsictrl,
++ libxl_domain_config *d_config)
++{
++ STATE_AO_GC(aodev->ao);
++ int rc, i, be_state, be_wait;
++ const char *be_path;
++ char *dev_path, *state_path, *state_val;
++ flexarray_t *back;
++ libxl_device_vscsidev *v;
++ xs_transaction_t t = XBT_NULL;
++ bool do_reconfigure = false;
++
++ /* Prealloc key+value: 1 toplevel + 4 per device */
++ i = 2 * (1 + (4 * vscsictrl->num_vscsidevs));
++ back = flexarray_make(gc, i, 1);
++
++ be_path = libxl__device_backend_path(gc, aodev->dev);
++ state_path = GCSPRINTF("%s/state", be_path);
++
++ for (;;) {
++ rc = libxl__xs_transaction_start(gc, &t);
++ if (rc) goto out;
++
++ state_val = libxl__xs_read(gc, t, state_path);
++ LOG(DEBUG, "%s is %s", state_path, state_val);
++ if (!state_val) {
++ rc = ERROR_FAIL;
++ goto out;
++ }
++
++ be_state = atoi(state_val);
++ switch (be_state) {
++ case XenbusStateUnknown:
++ case XenbusStateInitialising:
++ case XenbusStateClosing:
++ case XenbusStateClosed:
++ default:
++ /* The backend is in a bad state */
++ rc = ERROR_FAIL;
++ goto out;
++ case XenbusStateInitialised:
++ case XenbusStateReconfiguring:
++ case XenbusStateReconfigured:
++ /* Backend is still busy, caller has to retry */
++ rc = ERROR_NOT_READY;
++ goto out;
++ case XenbusStateInitWait:
++ /* The frontend did not connect yet */
++ be_wait = XenbusStateInitWait;
++ do_reconfigure = false;
++ break;
++ case XenbusStateConnected:
++ /* The backend can handle reconfigure */
++ be_wait = XenbusStateConnected;
++ flexarray_append_pair(back, "state", GCSPRINTF("%d", XenbusStateReconfiguring));
++ do_reconfigure = true;
++ break;
++ }
++
++ /* Append new vscsidev or skip existing */
++ for (i = 0; i < vscsictrl->num_vscsidevs; i++) {
++ unsigned int nb = 0;
++ v = vscsictrl->vscsidevs + i;
++ dev_path = GCSPRINTF("%s/vscsi-devs/dev-%u", be_path, v->vscsidev_id);
++ if (libxl__xs_directory(gc, XBT_NULL, dev_path, &nb)) {
++ /* FIXME Sanity check */
++ LOG(DEBUG, "%s exists already with %u entries", dev_path, nb);
++ continue;
++ }
++ rc = vscsidev_backend_add(gc, v, back);
++ if (rc) goto out;
++ }
++
++ if (aodev->update_json) {
++ rc = libxl__set_domain_configuration(gc, aodev->dev->domid, d_config);
++ if (rc) goto out;
++ }
++
++ libxl__xs_writev(gc, t, be_path, libxl__xs_kvs_of_flexarray(gc, back));
++
++ rc = libxl__xs_transaction_commit(gc, &t);
++ if (!rc) break;
++ if (rc < 0) goto out;
++ }
++
++ if (do_reconfigure) {
++ rc = libxl__ev_devstate_wait(ao, &aodev->backend_ds,
++ vscsictrl_do_reconfigure_add_cb,
++ state_path, be_wait,
++ LIBXL_INIT_TIMEOUT * 1000);
++ if (rc) goto out;
++ }
++ return;
++
++out:
++ libxl__xs_transaction_abort(gc, &t);
++ aodev->rc = rc;
++ aodev->callback(egc, aodev);
++}
++
++static int vscsictrl_next_vscsidev_id(libxl__gc *gc,
++ const char *libxl_path,
++ libxl_devid *vscsidev_id)
++{
++ const char *val;
++ xs_transaction_t t = XBT_NULL;
++ unsigned int id;
++ int rc;
++
++ for (;;) {
++ rc = libxl__xs_transaction_start(gc, &t);
++ if (rc) goto out;
++
++ val = libxl__xs_read(gc, t, libxl_path);
++ id = val ? strtoul(val, NULL, 10) : 0;
++
++ LOG(DEBUG, "%s = %s vscsidev_id %u", libxl_path, val, id);
++
++ val = GCSPRINTF("%u", id + 1);
++ rc = libxl__xs_write_checked(gc, t, libxl_path, val);
++ if (rc) goto out;
++
++ rc = libxl__xs_transaction_commit(gc, &t);
++ if (!rc) break;
++ if (rc < 0) goto out;
++ }
++
++ *vscsidev_id = id;
++ rc = 0;
++
++out:
++ libxl__xs_transaction_abort(gc, &t);
++ return rc;
++}
++
++static int vscsictrl_assign_vscsidev_ids(libxl__gc *gc,
++ uint32_t domid,
++ libxl_device_vscsictrl *vscsictrl)
++{
++ libxl_device_vscsidev *dev;
++ libxl_devid vscsidev_id;
++ const char *libxl_path;
++ int rc, i;
++
++ libxl_path = GCSPRINTF("%s/vscsi/%u/next_vscsidev_id",
++ libxl__xs_libxl_path(gc, domid),
++ vscsictrl->devid);
++ for (i = 0; i < vscsictrl->num_vscsidevs; i++) {
++ dev = &vscsictrl->vscsidevs[i];
++ if (dev->vscsidev_id >= 0)
++ continue;
++ rc = vscsictrl_next_vscsidev_id(gc, libxl_path, &vscsidev_id);
++ if (rc) {
++ LOG(ERROR, "failed to assign vscsidev_id to %s for %s",
++ libxl_path, dev->pdev.p_devname);
++ goto out;
++ }
++ dev->vscsidev_id = vscsidev_id;
++ }
++
++ rc = 0;
++out:
++ return rc;
++}
++
++static void vscsictrl_update_json(libxl__egc *egc,
++ libxl__ao_device *aodev,
++ libxl_device_vscsictrl *vscsictrl,
++ vscsictrl_add fn)
++{
++ STATE_AO_GC(aodev->ao);
++ int rc;
++ uint32_t domid = aodev->dev->domid;
++ libxl_device_vscsictrl vscsictrl_saved;
++ libxl_domain_config d_config;
++ libxl__domain_userdata_lock *lock = NULL;
++
++ libxl_domain_config_init(&d_config);
++ libxl_device_vscsictrl_init(&vscsictrl_saved);
++
++ libxl_device_vscsictrl_copy(CTX, &vscsictrl_saved, vscsictrl);
++
++ rc = vscsictrl_assign_vscsidev_ids(gc, domid, &vscsictrl_saved);
++ if (rc) goto out;
++
++ if (aodev->update_json) {
++ lock = libxl__lock_domain_userdata(gc, domid);
++ if (!lock) {
++ rc = ERROR_LOCK_FAIL;
++ goto out;
++ }
++
++ rc = libxl__get_domain_configuration(gc, domid, &d_config);
++ if (rc) goto out;
++
++ /* Replace or append the copy to the domain config */
++ device_add_domain_config(gc, &d_config, &libxl__vscsictrl_devtype,
++ &vscsictrl_saved);
++ }
++
++ fn(egc, aodev, &vscsictrl_saved, &d_config);
++
++out:
++ if (lock) libxl__unlock_domain_userdata(lock);
++ libxl_device_vscsictrl_dispose(&vscsictrl_saved);
++ libxl_domain_config_dispose(&d_config);
++ if (rc) {
++ aodev->rc = rc;
++ aodev->callback(egc, aodev);
++ }
++}
++
++static void vscsictrl__reconfigure_add(libxl__egc *egc,
++ uint32_t domid,
++ libxl_device_vscsictrl *vscsictrl,
++ libxl__ao_device *aodev)
++{
++ STATE_AO_GC(aodev->ao);
++ libxl__device *device;
++ vscsictrl_add fn;
++ int rc;
++
++ GCNEW(device);
++ rc = libxl__device_from_vscsictrl(gc, domid, vscsictrl, device);
++ if (rc) goto out;
++ aodev->dev = device;
++
++ fn = vscsictrl_do_reconfigure_add;
++ vscsictrl_update_json(egc, aodev, vscsictrl, fn);
++ return;
++
++out:
++ aodev->rc = rc;
++ aodev->callback(egc, aodev);
++}
++
++static int vscsictrl_reconfigure_add(libxl_ctx *ctx,
++ uint32_t domid,
++ libxl_device_vscsictrl *vscsictrl,
++ const libxl_asyncop_how *ao_how)
++{
++ AO_CREATE(ctx, domid, ao_how);
++ libxl__ao_device *aodev;
++
++ GCNEW(aodev);
++ libxl__prepare_ao_device(ao, aodev);
++ aodev->action = LIBXL__DEVICE_ACTION_ADD;
++ aodev->callback = vscsi_aodev_complete;
++ aodev->update_json = true;
++ vscsictrl__reconfigure_add(egc, domid, vscsictrl, aodev);
++
++ return AO_INPROGRESS;
++}
++
++static LIBXL_DEFINE_UPDATE_DEVID(vscsictrl)
++
++static int libxl__device_vscsictrl_setdefault(libxl__gc *gc, uint32_t domid,
++ libxl_device_vscsictrl *vscsictrl, bool hotplug)
++{
++ return 0;
++}
++
++static void libxl__device_vscsictrl_add(libxl__egc *egc, uint32_t domid,
++ libxl_device_vscsictrl *vscsictrl,
++ libxl__ao_device *aodev)
++{
++ STATE_AO_GC(aodev->ao);
++ libxl__device *device;
++ vscsictrl_add fn;
++ int rc;
++
++ if (vscsictrl->devid == -1) {
++ if ((vscsictrl->devid = libxl__device_nextid(gc, domid, LIBXL__DEVICE_KIND_VSCSI)) < 0) {
++ rc = ERROR_FAIL;
++ goto out;
++ }
++ }
++
++ GCNEW(device);
++ rc = libxl__device_from_vscsictrl(gc, domid, vscsictrl, device);
++ if (rc) goto out;
++ aodev->dev = device;
++
++ fn = vscsictrl_new_backend;
++ vscsictrl_update_json(egc, aodev, vscsictrl, fn);
++ return;
++
++out:
++ aodev->rc = rc;
++ aodev->callback(egc, aodev);
++}
++
++int libxl_device_vscsictrl_remove(libxl_ctx *ctx, uint32_t domid,
++ libxl_device_vscsictrl *vscsictrl,
++ const libxl_asyncop_how *ao_how)
++{
++ return vscsictrl_remove(ctx, domid, vscsictrl, ao_how, 0);
++}
++
++int libxl_device_vscsictrl_destroy(libxl_ctx *ctx, uint32_t domid,
++ libxl_device_vscsictrl *vscsictrl,
++ const libxl_asyncop_how *ao_how)
++{
++ return vscsictrl_remove(ctx, domid, vscsictrl, ao_how, 1);
++}
++
++libxl_device_vscsictrl *libxl_device_vscsictrl_list(libxl_ctx *ctx,
++ uint32_t domid,
++ int *num)
++{
++ GC_INIT(ctx);
++ libxl_device_vscsictrl *ctrls = NULL;
++ int rc, num_ctrls = 0;
++
++ *num = 0;
++
++ rc = vscsi_collect_ctrls(gc, domid, &ctrls, &num_ctrls);
++ if (rc == 0)
++ *num = num_ctrls;
++
++ GC_FREE;
++ return ctrls;
++}
++
++int libxl_device_vscsictrl_getinfo(libxl_ctx *ctx, uint32_t domid,
++ libxl_device_vscsictrl *vscsictrl,
++ libxl_device_vscsidev *vscsidev,
++ libxl_vscsiinfo *vscsiinfo)
++{
++ GC_INIT(ctx);
++ char *dompath, *vscsipath;
++ char *val;
++ int rc = ERROR_FAIL;
++
++ libxl_vscsiinfo_init(vscsiinfo);
++ dompath = libxl__xs_get_dompath(gc, domid);
++ vscsiinfo->devid = vscsictrl->devid;
++ vscsiinfo->vscsidev_id = vscsidev->vscsidev_id;
++ libxl_vscsi_pdev_copy(ctx, &vscsiinfo->pdev, &vscsidev->pdev);
++ libxl_vscsi_hctl_copy(ctx, &vscsiinfo->vdev, &vscsidev->vdev);
++
++ vscsipath = GCSPRINTF("%s/device/vscsi/%d", dompath, vscsiinfo->devid);
++ vscsiinfo->backend = xs_read(ctx->xsh, XBT_NULL,
++ GCSPRINTF("%s/backend", vscsipath), NULL);
++ if (!vscsiinfo->backend)
++ goto out;
++ if(!libxl__xs_read(gc, XBT_NULL, vscsiinfo->backend))
++ goto out;
++
++ val = libxl__xs_read(gc, XBT_NULL, GCSPRINTF("%s/backend-id", vscsipath));
++ vscsiinfo->backend_id = val ? strtoul(val, NULL, 10) : -1;
++
++ val = libxl__xs_read(gc, XBT_NULL, GCSPRINTF("%s/state", vscsipath));
++ vscsiinfo->vscsictrl_state = val ? strtoul(val, NULL, 10) : -1;
++
++ val = libxl__xs_read(gc, XBT_NULL, GCSPRINTF("%s/" LIBXL_CTRL_INDEX, vscsipath));
++ vscsiinfo->idx = val ? strtoul(val, NULL, 10) : -1;
++
++ vscsiinfo->frontend = xs_read(ctx->xsh, XBT_NULL,
++ GCSPRINTF("%s/frontend", vscsiinfo->backend), NULL);
++
++ val = libxl__xs_read(gc, XBT_NULL,
++ GCSPRINTF("%s/frontend-id", vscsiinfo->backend));
++ vscsiinfo->frontend_id = val ? strtoul(val, NULL, 10) : -1;
++
++ val = libxl__xs_read(gc, XBT_NULL,
++ GCSPRINTF("%s/vscsi-devs/dev-%u/state",
++ vscsiinfo->backend, vscsidev->vscsidev_id));
++ vscsiinfo->vscsidev_state = val ? strtoul(val, NULL, 10) : -1;
++
++ rc = 0;
++out:
++ GC_FREE;
++ return rc;
++}
++
++int libxl_device_vscsidev_add(libxl_ctx *ctx, uint32_t domid,
++ libxl_device_vscsidev *vscsidev,
++ const libxl_asyncop_how *ao_how)
++{
++ GC_INIT(ctx);
++ libxl_device_vscsictrl *vc, *ctrls = NULL;
++ libxl_device_vscsidev *vd;
++ int c, d, rc, num_ctrls = 0;
++ int duplicate = 0;
++
++ rc = vscsi_collect_ctrls(gc, domid, &ctrls, &num_ctrls);
++ if (rc != 0) goto out;
++
++
++ for (c = 0; c < num_ctrls; ++c) {
++ vc = ctrls + c;
++ if (vc->idx != vscsidev->vdev.hst)
++ continue;
++
++ for (d = 0; d < vc->num_vscsidevs; d++) {
++ vd = vc->vscsidevs + d;
++ if (vd->vdev.hst == vscsidev->vdev.hst &&
++ vd->vdev.chn == vscsidev->vdev.chn &&
++ vd->vdev.tgt == vscsidev->vdev.tgt &&
++ vd->vdev.lun == vscsidev->vdev.lun) {
++ unsigned long long lun = vd->vdev.lun;
++ LOG(ERROR, "vdev '%u:%u:%u:%llu' is already used.\n",
++ vd->vdev.hst, vd->vdev.chn, vd->vdev.tgt, lun);
++ rc = ERROR_DEVICE_EXISTS;
++ duplicate = 1;
++ break;
++ }
++ }
++
++ if (!duplicate) {
++ /* Append vscsidev to this vscsictrl, trigger reconfigure */
++ libxl_device_vscsictrl_append_vscsidev(ctx, vc, vscsidev);
++ rc = vscsictrl_reconfigure_add(ctx, domid, vc, ao_how);
++ }
++ break;
++ }
++
++ for (c = 0; c < num_ctrls; ++c)
++ libxl_device_vscsictrl_dispose(ctrls + c);
++ free(ctrls);
++
++out:
++ GC_FREE;
++ return rc;
++}
++
++int libxl_device_vscsidev_remove(libxl_ctx *ctx, uint32_t domid,
++ libxl_device_vscsidev *vscsidev,
++ const libxl_asyncop_how *ao_how)
++{
++ GC_INIT(ctx);
++ libxl_device_vscsictrl *vc, *ctrls = NULL;
++ libxl_device_vscsidev *vd;
++ int c, d, rc, num_ctrls = 0;
++ int found = 0, idx;
++ int head, tail, i;
++
++ rc = vscsi_collect_ctrls(gc, domid, &ctrls, &num_ctrls);
++ if (rc != 0) goto out;
++
++
++ for (c = 0; c < num_ctrls; ++c) {
++ vc = ctrls + c;
++
++ for (d = 0; d < vc->num_vscsidevs; d++) {
++ vd = vc->vscsidevs + d;
++ if (vd->vdev.hst == vscsidev->vdev.hst &&
++ vd->vdev.chn == vscsidev->vdev.chn &&
++ vd->vdev.tgt == vscsidev->vdev.tgt &&
++ vd->vdev.lun == vscsidev->vdev.lun) {
++ found = 1;
++ idx = d;
++ break;
++ }
++ }
++
++ if (found) {
++ if (vc->num_vscsidevs > 1) {
++ /* Prepare vscsictrl, leave only desired vscsidev */
++ head = idx;
++ tail = vc->num_vscsidevs - idx - 1;
++ for (i = 0; i < head; i++)
++ libxl_device_vscsictrl_remove_vscsidev(ctx, vc, 0);
++ for (i = 0; i < tail; i++)
++ libxl_device_vscsictrl_remove_vscsidev(ctx, vc, 1);
++
++ /* Remove single vscsidev connected to this vscsictrl */
++ rc = vscsidev_remove(ctx, domid, vc, ao_how);
++ } else {
++ /* Wipe entire vscsictrl */;
++ rc = vscsictrl_remove(ctx, domid, vc, ao_how, 0);
++ }
++ break;
++ }
++ }
++
++ for (c = 0; c < num_ctrls; ++c)
++ libxl_device_vscsictrl_dispose(ctrls + c);
++ free(ctrls);
++
++ if (!found)
++ rc = ERROR_NOTFOUND;
++
++out:
++ GC_FREE;
++ return rc;
++}
++
++void libxl_device_vscsictrl_append_vscsidev(libxl_ctx *ctx,
++ libxl_device_vscsictrl *ctrl,
++ libxl_device_vscsidev *dev)
++{
++ GC_INIT(ctx);
++ ctrl->vscsidevs = libxl__realloc(NOGC, ctrl->vscsidevs, sizeof(*dev) * (ctrl->num_vscsidevs + 1));
++ libxl_device_vscsidev_init(ctrl->vscsidevs + ctrl->num_vscsidevs);
++ libxl_device_vscsidev_copy(CTX, ctrl->vscsidevs + ctrl->num_vscsidevs, dev);
++ ctrl->num_vscsidevs++;
++ GC_FREE;
++}
++
++void libxl_device_vscsictrl_remove_vscsidev(libxl_ctx *ctx,
++ libxl_device_vscsictrl *ctrl,
++ unsigned int idx)
++{
++ GC_INIT(ctx);
++ if (idx >= ctrl->num_vscsidevs)
++ return;
++ libxl_device_vscsidev_dispose(&ctrl->vscsidevs[idx]);
++ if (ctrl->num_vscsidevs > idx + 1)
++ memmove(&ctrl->vscsidevs[idx],
++ &ctrl->vscsidevs[idx + 1],
++ (ctrl->num_vscsidevs - idx - 1) * sizeof(*ctrl->vscsidevs));
++ ctrl->vscsidevs = libxl__realloc(NOGC, ctrl->vscsidevs, sizeof(*ctrl->vscsidevs) * (ctrl->num_vscsidevs - 1));
++ ctrl->num_vscsidevs--;
++ GC_FREE;
++}
++
++static int libxl_device_vscsictrl_compare(libxl_device_vscsictrl *d1,
++ libxl_device_vscsictrl *d2)
++{
++ return COMPARE_DEVID(d1, d2);
++}
++
++LIBXL_DEFINE_DEVICE_ADD(vscsictrl)
++static LIBXL_DEFINE_DEVICES_ADD(vscsictrl)
++//LIBXL_DEFINE_DEVICE_REMOVE(vscsictrl)
++DEFINE_DEVICE_TYPE_STRUCT(vscsictrl, VSCSI, );
++
++/*
++ * Local variables:
++ * mode: C
++ * c-basic-offset: 4
++ * indent-tabs-mode: nil
++ * End:
++ */
+Index: xen-4.13.0-testing/tools/libxl/libxlu_vscsi.c
+===================================================================
+--- /dev/null
++++ xen-4.13.0-testing/tools/libxl/libxlu_vscsi.c
+@@ -0,0 +1,668 @@
++/*
++ * libxlu_vscsi.c - xl configuration file parsing: setup and helper functions
++ *
++ * Copyright (C) 2016 SUSE Linux GmbH
++ * Author Olaf Hering <olaf@aepfle.de>
++ * Author Ondřej Holeček <aaannz@gmail.com>
++ *
++ * This program is free software; you can redistribute it and/or modify
++ * it under the terms of the GNU Lesser General Public License as published
++ * by the Free Software Foundation; version 2.1 only. with the special
++ * exception on linking described in file LICENSE.
++ *
++ * This program is distributed in the hope that it will be useful,
++ * but WITHOUT ANY WARRANTY; without even the implied warranty of
++ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
++ * GNU Lesser General Public License for more details.
++ */
++#include "libxl_osdeps.h" /* must come before any other headers */
++#include <unistd.h>
++#include <ctype.h>
++#include <dirent.h>
++#include <sys/stat.h>
++#include <sys/sysmacros.h>
++#include <fcntl.h>
++#include "libxlu_internal.h"
++
++#ifdef __linux__
++#define LOG(_c, _x, _a...) \
++ if((_c) && (_c)->report) fprintf((_c)->report, "%s(%u): " _x "\n", __func__, __LINE__, ##_a)
++
++#define XLU_SYSFS_TARGET_PVSCSI "/sys/kernel/config/target/xen-pvscsi"
++#define XLU_WWN_LEN 16
++struct xlu__vscsi_target {
++ XLU_Config *cfg;
++ libxl_vscsi_hctl *pdev_hctl;
++ libxl_vscsi_pdev *pdev;
++ char path[PATH_MAX];
++ char udev_path[PATH_MAX];
++ char wwn[XLU_WWN_LEN + 1];
++ unsigned long long lun;
++};
++
++static int xlu__vscsi_parse_hctl(char *str, libxl_vscsi_hctl *hctl)
++{
++ unsigned int hst, chn, tgt;
++ unsigned long long lun;
++
++ if (sscanf(str, "%u:%u:%u:%llu", &hst, &chn, &tgt, &lun) != 4)
++ return ERROR_INVAL;
++
++ hctl->hst = hst;
++ hctl->chn = chn;
++ hctl->tgt = tgt;
++ hctl->lun = lun;
++ return 0;
++}
++
++static char *xlu__vscsi_trim_string(char *s)
++{
++ size_t len;
++
++ while (isspace(*s))
++ s++;
++ len = strlen(s);
++ while (len-- > 1 && isspace(s[len]))
++ s[len] = '\0';
++ return s;
++}
++
++
++static int xlu__vscsi_parse_dev(XLU_Config *cfg, char *pdev, libxl_vscsi_hctl *hctl)
++{
++ struct stat dentry;
++ char *sysfs = NULL;
++ const char *type;
++ int rc, found = 0;
++ DIR *dirp;
++ struct dirent *de;
++
++ /* stat pdev to get device's sysfs entry */
++ if (stat (pdev, &dentry) < 0) {
++ LOG(cfg, "%s, device node not found", pdev);
++ rc = ERROR_INVAL;
++ goto out;
++ }
++
++ if (S_ISBLK (dentry.st_mode)) {
++ type = "block";
++ } else if (S_ISCHR (dentry.st_mode)) {
++ type = "char";
++ } else {
++ LOG(cfg, "%s, device node not a block or char device", pdev);
++ rc = ERROR_INVAL;
++ goto out;
++ }
++
++ /* /sys/dev/type/major:minor symlink added in 2.6.27 */
++ if (asprintf(&sysfs, "/sys/dev/%s/%u:%u/device/scsi_device", type,
++ major(dentry.st_rdev), minor(dentry.st_rdev)) < 0) {
++ sysfs = NULL;
++ rc = ERROR_NOMEM;
++ goto out;
++ }
++
++ dirp = opendir(sysfs);
++ if (!dirp) {
++ LOG(cfg, "%s, no major:minor link in sysfs", pdev);
++ rc = ERROR_INVAL;
++ goto out;
++ }
++
++ while ((de = readdir(dirp))) {
++ if (!strcmp(de->d_name, ".") || !strcmp(de->d_name, ".."))
++ continue;
++
++ if (xlu__vscsi_parse_hctl(de->d_name, hctl))
++ continue;
++
++ found = 1;
++ break;
++ }
++ closedir(dirp);
++
++ if (!found) {
++ LOG(cfg, "%s, no h:c:t:l link in sysfs", pdev);
++ rc = ERROR_INVAL;
++ goto out;
++ }
++
++ rc = 0;
++out:
++ free(sysfs);
++ return rc;
++}
++
++static bool xlu__vscsi_compare_hctl(libxl_vscsi_hctl *a, libxl_vscsi_hctl *b)
++{
++ if (a->hst == b->hst &&
++ a->chn == b->chn &&
++ a->tgt == b->tgt &&
++ a->lun == b->lun)
++ return true;
++ return false;
++}
++
++/* Finally at
++ * /sys/kernel/config/target/xen-pvscsi/naa.<wwn>/tpgt_1/lun/lun_0/<X>/udev_path
++ */
++static bool xlu__vscsi_compare_udev(struct xlu__vscsi_target *tgt)
++{
++ bool ret;
++ int fd;
++ ssize_t read_sz;
++ libxl_vscsi_hctl udev_hctl;
++
++ libxl_vscsi_hctl_init(&udev_hctl);
++
++ fd = open(tgt->path, O_RDONLY);
++ if (fd < 0){
++ ret = false;
++ goto out;
++ }
++ read_sz = read(fd, &tgt->udev_path, sizeof(tgt->udev_path) - 1);
++ close(fd);
++
++ if (read_sz <= 0 || read_sz > sizeof(tgt->udev_path) - 1) {
++ ret = false;
++ goto out;
++ }
++ tgt->udev_path[read_sz] = '\0';
++ read_sz--;
++ if (tgt->udev_path[read_sz] == '\n')
++ tgt->udev_path[read_sz] = '\0';
++
++ if (xlu__vscsi_parse_dev(tgt->cfg, tgt->udev_path, &udev_hctl)) {
++ ret = false;
++ goto out;
++ }
++ ret = xlu__vscsi_compare_hctl(tgt->pdev_hctl, &udev_hctl);
++
++out:
++ libxl_vscsi_hctl_dispose(&udev_hctl);
++ return ret;
++}
++
++/* /sys/kernel/config/target/xen-pvscsi/naa.<wwn>/tpgt_1/lun/lun_0/<X>/udev_path */
++static bool xlu__vscsi_walk_dir_lun(struct xlu__vscsi_target *tgt)
++{
++ bool found;
++ DIR *dirp;
++ struct dirent *de;
++ size_t path_len = strlen(tgt->path);
++ char *subdir = &tgt->path[path_len];
++
++ dirp = opendir(tgt->path);
++ if (!dirp)
++ return false;
++
++ found = false;
++ while ((de = readdir(dirp))) {
++ if (!strcmp(de->d_name, ".") || !strcmp(de->d_name, ".."))
++ continue;
++
++ snprintf(subdir, sizeof(tgt->path) - path_len, "/%s/udev_path", de->d_name);
++
++ found = xlu__vscsi_compare_udev(tgt);
++ if (found)
++ break;
++
++ *subdir = '\0';
++ }
++ closedir(dirp);
++ return found;
++}
++
++/* /sys/kernel/config/target/xen-pvscsi/naa.<wwn>/tpgt_1/lun/lun_0 */
++static bool xlu__vscsi_walk_dir_luns(struct xlu__vscsi_target *tgt)
++{
++ bool found;
++ DIR *dirp;
++ struct dirent *de;
++ size_t path_len = strlen(tgt->path);
++ char *subdir = &tgt->path[path_len];
++
++ dirp = opendir(tgt->path);
++ if (!dirp)
++ return false;
++
++ found = false;
++ while ((de = readdir(dirp))) {
++ if (!strcmp(de->d_name, ".") || !strcmp(de->d_name, ".."))
++ continue;
++
++ if (sscanf(de->d_name, "lun_%llu", &tgt->lun) != 1)
++ continue;
++
++
++ snprintf(subdir, sizeof(tgt->path) - path_len, "/%s", de->d_name);
++
++ found = xlu__vscsi_walk_dir_lun(tgt);
++ if (found)
++ break;
++
++ *subdir = '\0';
++ }
++ closedir(dirp);
++ return found;
++}
++
++/* /sys/kernel/config/target/xen-pvscsi/naa.<wwn>/tpgt_1 */
++static bool xlu__vscsi_walk_dir_naa(struct xlu__vscsi_target *tgt)
++{
++ bool found;
++ DIR *dirp;
++ struct dirent *de;
++ size_t path_len = strlen(tgt->path);
++ char *subdir = &tgt->path[path_len];
++ unsigned int tpgt;
++
++ dirp = opendir(tgt->path);
++ if (!dirp)
++ return false;
++
++ found = false;
++ while ((de = readdir(dirp))) {
++ if (!strcmp(de->d_name, ".") || !strcmp(de->d_name, ".."))
++ continue;
++
++ if (sscanf(de->d_name, "tpgt_%u", &tpgt) != 1)
++ continue;
++
++ snprintf(subdir, sizeof(tgt->path) - path_len, "/%s/lun", de->d_name);
++
++ found = xlu__vscsi_walk_dir_luns(tgt);
++ if (found)
++ break;
++
++ *subdir = '\0';
++ }
++ closedir(dirp);
++ return found;
++}
++
++/* /sys/kernel/config/target/xen-pvscsi/naa.<wwn> */
++static bool xlu__vscsi_find_target_wwn(struct xlu__vscsi_target *tgt)
++{
++ bool found;
++ DIR *dirp;
++ struct dirent *de;
++ size_t path_len = strlen(tgt->path);
++ char *subdir = &tgt->path[path_len];
++
++ dirp = opendir(tgt->path);
++ if (!dirp)
++ return false;
++
++ found = false;
++ while ((de = readdir(dirp))) {
++ if (!strcmp(de->d_name, ".") || !strcmp(de->d_name, ".."))
++ continue;
++
++ if (sscanf(de->d_name, "naa.%16[0-9a-fA-F]", tgt->wwn) != 1)
++ continue;
++
++ snprintf(subdir, sizeof(tgt->path) - path_len, "/%s", de->d_name);
++
++ found = xlu__vscsi_walk_dir_naa(tgt);
++ if (found)
++ break;
++
++ *subdir = '\0';
++ }
++ closedir(dirp);
++ return found;
++}
++
++/*
++ * Convert pdev from config string into pdev property for backend,
++ * which is either h:c:t:l for xenlinux or naa.wwn:lun for pvops
++ */
++static int xlu__vscsi_dev_to_pdev(XLU_Config *cfg, libxl_ctx *ctx, char *str,
++ libxl_vscsi_hctl *pdev_hctl,
++ libxl_vscsi_pdev *pdev)
++{
++ int rc = ERROR_INVAL;
++ struct xlu__vscsi_target *tgt;
++ static const char xen_pvscsi[] = XLU_SYSFS_TARGET_PVSCSI;
++
++ /* First get hctl representation of config item */
++ if (xlu__vscsi_parse_dev(cfg, str, pdev_hctl))
++ goto out;
++
++ /* Check if a SCSI target item exists for the config item */
++ if (access(xen_pvscsi, F_OK) == 0) {
++ tgt = calloc(1, sizeof(*tgt));
++ if (!tgt) {
++ rc = ERROR_NOMEM;
++ goto out;
++ }
++ tgt->cfg = cfg;
++ tgt->pdev_hctl = pdev_hctl;
++ tgt->pdev = pdev;
++ snprintf(tgt->path, sizeof(tgt->path), "%s", xen_pvscsi);
++ if (xlu__vscsi_find_target_wwn(tgt) == true) {
++ LOG(cfg, "'%s' maps to '%s(%s)'", str, tgt->path, tgt->udev_path);
++ libxl_vscsi_pdev_init_type(pdev, LIBXL_VSCSI_PDEV_TYPE_WWN);
++ if (asprintf(&pdev->u.wwn.m, "naa.%s:%llu", tgt->wwn, tgt->lun) < 0) {
++ rc = ERROR_NOMEM;
++ goto out;
++ }
++ }
++ free(tgt);
++ } else {
++ /* Assume xenlinux backend */
++ libxl_vscsi_pdev_init_type(pdev, LIBXL_VSCSI_PDEV_TYPE_HCTL);
++ libxl_vscsi_hctl_copy(ctx, &pdev->u.hctl.m, pdev_hctl);
++ }
++ rc = 0;
++
++out:
++ return rc;
++}
++
++/* WWN as understood by pvops */
++static int xlu__vscsi_wwn_to_pdev(XLU_Config *cfg, char *str, libxl_vscsi_pdev *pdev)
++{
++ int rc = ERROR_INVAL;
++ unsigned long long lun;
++ char wwn[XLU_WWN_LEN + 1];
++
++ memset(wwn, 0, sizeof(wwn));
++ if (sscanf(str, "naa.%16[0-9a-fA-F]:%llu", wwn, &lun) == 2) {
++ libxl_vscsi_pdev_init_type(pdev, LIBXL_VSCSI_PDEV_TYPE_WWN);
++ pdev->u.wwn.m = strdup(str);
++ rc = pdev->u.wwn.m ? 0 : ERROR_NOMEM;
++ }
++ return rc;
++}
++
++static int xlu__vscsi_parse_pdev(XLU_Config *cfg, libxl_ctx *ctx, char *str,
++ libxl_vscsi_pdev *pdev)
++{
++ int rc = ERROR_INVAL;
++ libxl_vscsi_hctl pdev_hctl;
++
++ libxl_vscsi_hctl_init(&pdev_hctl);
++ if (strncmp(str, "/dev/", 5) == 0) {
++ rc = xlu__vscsi_dev_to_pdev(cfg, ctx, str, &pdev_hctl, pdev);
++ } else if (strncmp(str, "naa.", 4) == 0) {
++ rc = xlu__vscsi_wwn_to_pdev(cfg, str, pdev);
++ } else if (xlu__vscsi_parse_hctl(str, &pdev_hctl) == 0) {
++ /* Either xenlinux, or pvops with properly configured alias in sysfs */
++ libxl_vscsi_pdev_init_type(pdev, LIBXL_VSCSI_PDEV_TYPE_HCTL);
++ libxl_vscsi_hctl_copy(ctx, &pdev->u.hctl.m, &pdev_hctl);
++ rc = 0;
++ }
++
++ if (rc == 0) {
++ pdev->p_devname = strdup(str);
++ if (!pdev->p_devname)
++ rc = ERROR_NOMEM;
++ }
++
++ libxl_vscsi_hctl_dispose(&pdev_hctl);
++ return rc;
++}
++
++int xlu_vscsi_parse(XLU_Config *cfg, libxl_ctx *ctx, const char *str,
++ libxl_device_vscsictrl *new_ctrl,
++ libxl_device_vscsidev *new_dev)
++{
++ int rc;
++ char *tmp, *pdev, *vdev, *fhost;
++
++ tmp = strdup(str);
++ if (!tmp) {
++ rc = ERROR_NOMEM;
++ goto out;
++ }
++
++ pdev = strtok(tmp, ",");
++ vdev = strtok(NULL, ",");
++ fhost = strtok(NULL, ",");
++ if (!(pdev && vdev)) {
++ LOG(cfg, "invalid devspec: '%s'\n", str);
++ rc = ERROR_INVAL;
++ goto out;
++ }
++
++ pdev = xlu__vscsi_trim_string(pdev);
++ vdev = xlu__vscsi_trim_string(vdev);
++
++ rc = xlu__vscsi_parse_pdev(cfg, ctx, pdev, &new_dev->pdev);
++ if (rc) {
++ LOG(cfg, "failed to parse %s, rc == %d", pdev, rc);
++ goto out;
++ }
++
++ if (xlu__vscsi_parse_hctl(vdev, &new_dev->vdev)) {
++ LOG(cfg, "invalid '%s', expecting hst:chn:tgt:lun", vdev);
++ rc = ERROR_INVAL;
++ goto out;
++ }
++
++ new_ctrl->idx = new_dev->vdev.hst;
++
++ if (fhost) {
++ fhost = xlu__vscsi_trim_string(fhost);
++ if (strcmp(fhost, "feature-host") == 0) {
++ libxl_defbool_set(&new_ctrl->scsi_raw_cmds, true);
++ } else {
++ LOG(cfg, "invalid option '%s', expecting %s", fhost, "feature-host");
++ rc = ERROR_INVAL;
++ goto out;
++ }
++ } else
++ libxl_defbool_set(&new_ctrl->scsi_raw_cmds, false);
++ rc = 0;
++
++out:
++ free(tmp);
++ return rc;
++}
++
++int xlu_vscsi_get_ctrl(XLU_Config *cfg, libxl_ctx *ctx, uint32_t domid,
++ const char *str,
++ libxl_device_vscsictrl *ctrl,
++ libxl_device_vscsidev *dev,
++ libxl_device_vscsictrl *existing,
++ bool *found_existing)
++{
++ libxl_device_vscsictrl *vscsictrls = NULL, *tmp;
++ int rc, found_ctrl = -1, i;
++ int num_ctrls;
++
++
++ rc = xlu_vscsi_parse(cfg, ctx, str, ctrl, dev);
++ if (rc)
++ goto out;
++
++ /* Look for existing vscsictrl for given domain */
++ vscsictrls = libxl_device_vscsictrl_list(ctx, domid, &num_ctrls);
++ if (vscsictrls) {
++ for (i = 0; i < num_ctrls; ++i) {
++ if (vscsictrls[i].idx == dev->vdev.hst) {
++ found_ctrl = i;
++ break;
++ }
++ }
++ }
++
++ if (found_ctrl == -1) {
++ *found_existing = false;
++ } else {
++ *found_existing = true;
++ tmp = vscsictrls + found_ctrl;
++
++ /* Check if the vdev address is already taken */
++ for (i = 0; i < tmp->num_vscsidevs; ++i) {
++ if (tmp->vscsidevs[i].vdev.chn == dev->vdev.chn &&
++ tmp->vscsidevs[i].vdev.tgt == dev->vdev.tgt &&
++ tmp->vscsidevs[i].vdev.lun == dev->vdev.lun) {
++ unsigned long long lun = dev->vdev.lun;
++ LOG(cfg, "vdev '%u:%u:%u:%llu' is already used.\n",
++ dev->vdev.hst, dev->vdev.chn, dev->vdev.tgt, lun);
++ rc = ERROR_INVAL;
++ goto out;
++ }
++ }
++
++ if (libxl_defbool_val(ctrl->scsi_raw_cmds) !=
++ libxl_defbool_val(tmp->scsi_raw_cmds)) {
++ LOG(cfg, "different feature-host setting: "
++ "existing ctrl has it %s, new ctrl has it %s\n",
++ libxl_defbool_val(ctrl->scsi_raw_cmds) ? "set" : "unset",
++ libxl_defbool_val(tmp->scsi_raw_cmds) ? "set" : "unset");
++ rc = ERROR_INVAL;
++ goto out;
++ }
++
++ libxl_device_vscsictrl_copy(ctx, existing, tmp);
++ }
++
++ rc = 0;
++
++out:
++ if (vscsictrls) {
++ for (i = 0; i < num_ctrls; ++i)
++ libxl_device_vscsictrl_dispose(vscsictrls + i);
++ free(vscsictrls);
++ }
++ return rc;
++}
++
++int xlu_vscsi_detach(XLU_Config *cfg, libxl_ctx *ctx, uint32_t domid, char *str)
++{
++ libxl_device_vscsidev dev = { };
++ libxl_device_vscsictrl ctrl = { };
++ int rc;
++ char *tmp = NULL;
++
++ libxl_device_vscsictrl_init(&ctrl);
++ libxl_device_vscsidev_init(&dev);
++
++ /* Create a dummy cfg */
++ if (asprintf(&tmp, "0:0:0:0,%s", str) < 0) {
++ LOG(cfg, "asprintf failed while removing %s from domid %u", str, domid);
++ rc = ERROR_FAIL;
++ goto out;
++ }
++
++ rc = xlu_vscsi_parse(cfg, ctx, tmp, &ctrl, &dev);
++ if (rc) goto out;
++
++ rc = libxl_device_vscsidev_remove(ctx, domid, &dev, NULL);
++ switch (rc) {
++ case ERROR_NOTFOUND:
++ LOG(cfg, "detach failed: %s does not exist in domid %u", str, domid);
++ break;
++ default:
++ break;
++ }
++
++out:
++ free(tmp);
++ libxl_device_vscsidev_dispose(&dev);
++ libxl_device_vscsictrl_dispose(&ctrl);
++ return rc;
++}
++
++int xlu_vscsi_config_add(XLU_Config *cfg,
++ libxl_ctx *ctx,
++ const char *str,
++ int *num_vscsis,
++ libxl_device_vscsictrl **vscsis)
++{
++ int rc, i;
++ libxl_device_vscsidev dev = { };
++ libxl_device_vscsictrl *tmp_ctrl, ctrl = { };
++ bool ctrl_found = false;
++
++ /*
++ * #1: parse the devspec and place it in temporary ctrl+dev part
++ * #2: find existing vscsictrl with number vdev.hst
++ * if found, append the vscsidev to this vscsictrl
++ * #3: otherwise, create new vscsictrl and append vscsidev
++ * Note: vdev.hst does not represent the index named "num_vscsis",
++ * it is a private index used just in the config file
++ */
++ libxl_device_vscsictrl_init(&ctrl);
++ libxl_device_vscsidev_init(&dev);
++
++ rc = xlu_vscsi_parse(cfg, ctx, str, &ctrl, &dev);
++ if (rc)
++ goto out;
++
++ if (*num_vscsis) {
++ for (i = 0; i < *num_vscsis; i++) {
++ tmp_ctrl = *vscsis + i;
++ if (tmp_ctrl->idx == dev.vdev.hst) {
++ libxl_device_vscsictrl_append_vscsidev(ctx, tmp_ctrl, &dev);
++ ctrl_found = true;
++ break;
++ }
++ }
++ }
++
++ if (!ctrl_found || !*num_vscsis) {
++ tmp_ctrl = realloc(*vscsis, sizeof(ctrl) * (*num_vscsis + 1));
++ if (!tmp_ctrl) {
++ LOG(cfg, "realloc #%d failed", *num_vscsis + 1);
++ rc = ERROR_NOMEM;
++ goto out;
++ }
++ *vscsis = tmp_ctrl;
++ tmp_ctrl = *vscsis + *num_vscsis;
++ libxl_device_vscsictrl_init(tmp_ctrl);
++
++ libxl_device_vscsictrl_copy(ctx, tmp_ctrl, &ctrl);
++
++ libxl_device_vscsictrl_append_vscsidev(ctx, tmp_ctrl, &dev);
++
++ (*num_vscsis)++;
++ }
++
++ rc = 0;
++out:
++ libxl_device_vscsidev_dispose(&dev);
++ libxl_device_vscsictrl_dispose(&ctrl);
++ return rc;
++}
++#else /* ! __linux__ */
++int xlu_vscsi_get_ctrl(XLU_Config *cfg, libxl_ctx *ctx, uint32_t domid,
++ const char *str,
++ libxl_device_vscsictrl *ctrl,
++ libxl_device_vscsidev *dev,
++ libxl_device_vscsictrl *existing,
++ bool *found_existing)
++{
++ return ERROR_INVAL;
++}
++
++int xlu_vscsi_parse(XLU_Config *cfg,
++ libxl_ctx *ctx,
++ const char *str,
++ libxl_device_vscsictrl *new_ctrl,
++ libxl_device_vscsidev *new_dev)
++{
++ return ERROR_INVAL;
++}
++
++int xlu_vscsi_detach(XLU_Config *cfg,
++ libxl_ctx *ctx,
++ uint32_t domid,
++ char *str)
++{
++ return ERROR_INVAL;
++}
++
++int xlu_vscsi_config_add(XLU_Config *cfg,
++ libxl_ctx *ctx,
++ const char *str,
++ int *num_vscsis,
++ libxl_device_vscsictrl **vscsis)
++{
++ return ERROR_INVAL;
++}
++#endif
+Index: xen-4.13.0-testing/tools/libxl/libxlutil.h
+===================================================================
+--- xen-4.13.0-testing.orig/tools/libxl/libxlutil.h
++++ xen-4.13.0-testing/tools/libxl/libxlutil.h
+@@ -125,6 +125,25 @@ int xlu_rdm_parse(XLU_Config *cfg, libxl
+ int xlu_vif_parse_rate(XLU_Config *cfg, const char *rate,
+ libxl_device_nic *nic);
+
++/* Fill ctrl/dev with device described in str (pdev,vdev[,options]) */
++int xlu_vscsi_get_ctrl(XLU_Config *cfg, libxl_ctx *ctx, uint32_t domid,
++ const char *str,
++ libxl_device_vscsictrl *ctrl,
++ libxl_device_vscsidev *dev,
++ libxl_device_vscsictrl *existing,
++ bool *found_existing);
++/* Parse config string and fill provided vscsi ctrl and vscsi device */
++int xlu_vscsi_parse(XLU_Config *cfg, libxl_ctx *ctx, const char *str,
++ libxl_device_vscsictrl *new_ctrl,
++ libxl_device_vscsidev *new_dev);
++/* Detach vscsi device described in config string (pdev,vdev[,options]) */
++int xlu_vscsi_detach(XLU_Config *cfg, libxl_ctx *ctx, uint32_t domid, char *str);
++/* Add vscsi device described in config string (pdev,vdev[,options]) to d_config */
++int xlu_vscsi_config_add(XLU_Config *cfg,
++ libxl_ctx *ctx,
++ const char *str,
++ int *num_vscsis,
++ libxl_device_vscsictrl **vscsis);
+ #endif /* LIBXLUTIL_H */
+
+ /*
+Index: xen-4.13.0-testing/tools/xl/Makefile
+===================================================================
+--- xen-4.13.0-testing.orig/tools/xl/Makefile
++++ xen-4.13.0-testing/tools/xl/Makefile
+@@ -18,7 +18,7 @@ CFLAGS_XL += -Wshadow
+ XL_OBJS-$(CONFIG_X86) = xl_psr.o
+ XL_OBJS = xl.o xl_cmdtable.o xl_sxp.o xl_utils.o $(XL_OBJS-y)
+ XL_OBJS += xl_parse.o xl_cpupool.o xl_flask.o
+-XL_OBJS += xl_vtpm.o xl_block.o xl_nic.o xl_usb.o
++XL_OBJS += xl_vtpm.o xl_vscsi.o xl_block.o xl_nic.o xl_usb.o
+ XL_OBJS += xl_sched.o xl_pci.o xl_vcpu.o xl_cdrom.o xl_mem.o
+ XL_OBJS += xl_info.o xl_console.o xl_misc.o
+ XL_OBJS += xl_vmcontrol.o xl_saverestore.o xl_migrate.o
+Index: xen-4.13.0-testing/tools/xl/xl.h
+===================================================================
+--- xen-4.13.0-testing.orig/tools/xl/xl.h
++++ xen-4.13.0-testing/tools/xl/xl.h
+@@ -165,6 +165,9 @@ int main_channellist(int argc, char **ar
+ int main_blockattach(int argc, char **argv);
+ int main_blocklist(int argc, char **argv);
+ int main_blockdetach(int argc, char **argv);
++int main_vscsiattach(int argc, char **argv);
++int main_vscsilist(int argc, char **argv);
++int main_vscsidetach(int argc, char **argv);
+ int main_vtpmattach(int argc, char **argv);
+ int main_vtpmlist(int argc, char **argv);
+ int main_vtpmdetach(int argc, char **argv);
+Index: xen-4.13.0-testing/tools/xl/xl_parse.c
+===================================================================
+--- xen-4.13.0-testing.orig/tools/xl/xl_parse.c
++++ xen-4.13.0-testing/tools/xl/xl_parse.c
+@@ -1212,7 +1212,8 @@ void parse_config_data(const char *confi
+ long l, vcpus = 0;
+ XLU_Config *config;
+ XLU_ConfigList *cpus, *vbds, *nics, *pcis, *cvfbs, *cpuids, *vtpms,
+- *usbctrls, *usbdevs, *p9devs, *vdispls, *pvcallsifs_devs;
++ *usbctrls, *usbdevs, *p9devs, *vdispls, *pvcallsifs_devs,
++ *vscsictrls;
+ XLU_ConfigList *channels, *ioports, *irqs, *iomem, *viridian, *dtdevs,
+ *mca_caps;
+ int num_ioports, num_irqs, num_iomem, num_cpus, num_viridian, num_mca_caps;
+@@ -2045,6 +2046,17 @@ void parse_config_data(const char *confi
+ }
+ }
+
++ if (!xlu_cfg_get_list(config, "vscsi", &vscsictrls, 0, 0)) {
++ int num_vscsi_items = 0;
++ d_config->num_vscsictrls = 0;
++ d_config->vscsictrls = NULL;
++ while ((buf = xlu_cfg_get_listitem (vscsictrls, num_vscsi_items)) != NULL) {
++ if (xlu_vscsi_config_add(config, ctx, buf, &d_config->num_vscsictrls, &d_config->vscsictrls))
++ exit(1);
++ num_vscsi_items++;
++ }
++ }
++
+ if (!xlu_cfg_get_list(config, "vtpm", &vtpms, 0, 0)) {
+ d_config->num_vtpms = 0;
+ d_config->vtpms = NULL;
+Index: xen-4.13.0-testing/tools/xl/xl_vscsi.c
+===================================================================
+--- /dev/null
++++ xen-4.13.0-testing/tools/xl/xl_vscsi.c
+@@ -0,0 +1,229 @@
++/*
++ * Copyright 2009-2017 Citrix Ltd and other contributors
++ *
++ * This program is free software; you can redistribute it and/or modify
++ * it under the terms of the GNU Lesser General Public License as published
++ * by the Free Software Foundation; version 2.1 only. with the special
++ * exception on linking described in file LICENSE.
++ *
++ * This program is distributed in the hope that it will be useful,
++ * but WITHOUT ANY WARRANTY; without even the implied warranty of
++ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
++ * GNU Lesser General Public License for more details.
++ */
++
++#include <stdlib.h>
++#include <stdio.h>
++
++#include <libxl.h>
++#include <libxl_utils.h>
++#include <libxlutil.h>
++
++#include "xl.h"
++#include "xl_utils.h"
++#include "xl_parse.h"
++
++int main_vscsiattach(int argc, char **argv)
++{
++ uint32_t domid;
++ int opt, rc;
++ XLU_Config *config = NULL;
++ libxl_device_vscsictrl ctrl, existing;
++ libxl_device_vscsidev dev;
++ bool found_existing = false;
++ char *str = NULL, *feat_buf = NULL;
++ char *json;
++
++ SWITCH_FOREACH_OPT(opt, "", NULL, "scsi-attach", 1) {
++ /* No options */
++ }
++
++ if (argc < 4 || argc > 5) {
++ help("scsi-attach");
++ return 1;
++ }
++
++ if (libxl_domain_qualifier_to_domid(ctx, argv[optind], &domid) < 0) {
++ fprintf(stderr, "%s is an invalid domain identifier\n", argv[optind]);
++ return 1;
++ }
++
++ optind++;
++
++ if (argc == 5)
++ xasprintf(&feat_buf, ",%s", argv[4]);
++
++ xasprintf(&str, "%s,%s%s", argv[2], argv[3], feat_buf ?: "");
++
++ libxl_device_vscsictrl_init(&existing);
++ libxl_device_vscsictrl_init(&ctrl);
++ libxl_device_vscsidev_init(&dev);
++
++ config = xlu_cfg_init(stderr, "command line");
++ if (!config) {
++ fprintf(stderr, "Failed to allocate for configuration\n");
++ rc = 1;
++ goto out;
++ }
++
++ /* Parse config string and store result */
++ rc = xlu_vscsi_get_ctrl(config, ctx, domid, str, &ctrl, &dev, &existing, &found_existing);
++ if (rc < 0)
++ goto out;
++
++ if (dryrun_only) {
++ libxl_device_vscsictrl *tmp = found_existing ? &existing : &ctrl;
++ libxl_device_vscsictrl_append_vscsidev(ctx, tmp , &dev);
++ json = libxl_device_vscsictrl_to_json(ctx, tmp);
++ printf("vscsi: %s\n", json);
++ free(json);
++ if (ferror(stdout) || fflush(stdout)) { perror("stdout"); exit(-1); }
++ rc = 0;
++ goto out;
++ }
++
++ /* Finally add the device */
++ if (found_existing) {
++ if (libxl_device_vscsidev_add(ctx, domid, &dev, NULL)) {
++ fprintf(stderr, "libxl_device_vscsidev_add failed\n");
++ rc = 1;
++ goto out;
++ }
++ } else {
++ libxl_device_vscsictrl_append_vscsidev(ctx, &ctrl, &dev);
++ if (libxl_device_vscsictrl_add(ctx, domid, &ctrl, NULL)) {
++ fprintf(stderr, "libxl_device_vscsictrl_add failed.\n");
++ rc = 1;
++ goto out;
++ }
++ }
++
++ rc = 0;
++out:
++ if (config)
++ xlu_cfg_destroy(config);
++ libxl_device_vscsictrl_dispose(&existing);
++ libxl_device_vscsictrl_dispose(&ctrl);
++ libxl_device_vscsidev_dispose(&dev);
++ free(str);
++ free(feat_buf);
++ return rc;
++}
++
++int main_vscsilist(int argc, char **argv)
++{
++ int opt;
++ uint32_t domid;
++ libxl_device_vscsictrl *vscsictrls;
++ libxl_vscsiinfo vscsiinfo;
++ int num_ctrls, h, d;
++
++ SWITCH_FOREACH_OPT(opt, "", NULL, "scsi-list", 1) {
++ /* No options */
++ }
++ if (argc < 2) {
++ help("scsi-list");
++ return 1;
++ }
++
++ /* Idx BE state ctrl p_hst v_hst state */
++ printf("%-3s %-3s %-5s %-5s %-10s %-10s %-5s\n",
++ "Idx", "BE", "state", "ctrl", "phy-hctl", "vir-hctl", "devstate");
++ for (argv += optind, argc -= optind; argc > 0; --argc, ++argv) {
++ if (libxl_domain_qualifier_to_domid(ctx, *argv, &domid) < 0) {
++ fprintf(stderr, "%s is an invalid domain identifier\n", *argv);
++ continue;
++ }
++ vscsictrls = libxl_device_vscsictrl_list(ctx, domid, &num_ctrls);
++ if (!vscsictrls)
++ continue;
++
++ for (h = 0; h < num_ctrls; ++h) {
++ for (d = 0; d < vscsictrls[h].num_vscsidevs; d++) {
++ if (!libxl_device_vscsictrl_getinfo(ctx, domid, &vscsictrls[h],
++ &vscsictrls[h].vscsidevs[d],
++ &vscsiinfo)) {
++ char pdev[64], vdev[64];
++ unsigned long long lun;
++ switch (vscsiinfo.pdev.type) {
++ case LIBXL_VSCSI_PDEV_TYPE_HCTL:
++ lun = vscsiinfo.pdev.u.hctl.m.lun;
++ snprintf(pdev, sizeof(pdev), "%u:%u:%u:%llu",
++ vscsiinfo.pdev.u.hctl.m.hst,
++ vscsiinfo.pdev.u.hctl.m.chn,
++ vscsiinfo.pdev.u.hctl.m.tgt,
++ lun);
++ break;
++ case LIBXL_VSCSI_PDEV_TYPE_WWN:
++ snprintf(pdev, sizeof(pdev), "%s",
++ vscsiinfo.pdev.u.wwn.m);
++ break;
++ default:
++ pdev[0] = '\0';
++ break;
++ }
++ lun = vscsiinfo.vdev.lun;
++ snprintf(vdev, sizeof(vdev), "%u:%u:%u:%llu",
++ vscsiinfo.vdev.hst,
++ vscsiinfo.vdev.chn,
++ vscsiinfo.vdev.tgt,
++ lun);
++ /* Idx BE state Sta */
++ printf("%-3d %-3d %-5d %-5d %-10s %-10s %d\n",
++ vscsiinfo.devid,
++ vscsiinfo.backend_id,
++ vscsiinfo.vscsictrl_state,
++ vscsiinfo.backend_id,
++ pdev, vdev,
++ vscsiinfo.vscsidev_state);
++
++ }
++ libxl_vscsiinfo_dispose(&vscsiinfo);
++ }
++ libxl_device_vscsictrl_dispose(&vscsictrls[h]);
++ }
++ free(vscsictrls);
++
++ }
++
++ return 0;
++}
++
++int main_vscsidetach(int argc, char **argv)
++{
++ int opt;
++ char *dom = argv[1], *str = argv[2];
++ uint32_t domid;
++ XLU_Config *config = NULL;
++ int rc = 0;
++
++ SWITCH_FOREACH_OPT(opt, "", NULL, "scsi-detach", 1) {
++ /* No options */
++ }
++
++ if (argc < 3) {
++ help("scsi-detach");
++ return 1;
++ }
++
++ if (libxl_domain_qualifier_to_domid(ctx, dom, &domid) < 0) {
++ fprintf(stderr, "%s is an invalid domain identifier\n", dom);
++ return 1;
++ }
++
++ config = xlu_cfg_init(stderr, "command line");
++ if (!config) {
++ fprintf(stderr, "Failed to allocate for configuration\n");
++ goto out;
++ }
++
++ rc = xlu_vscsi_detach(config, ctx, domid, str);
++ if (rc)
++ fprintf(stderr, "scsi-detach %s %s failed: %d\n", dom, str, rc);
++
++out:
++ if (config)
++ xlu_cfg_destroy(config);
++ return !!rc;
++}
++
+Index: xen-4.13.0-testing/tools/xl/xl_cmdtable.c
+===================================================================
+--- xen-4.13.0-testing.orig/tools/xl/xl_cmdtable.c
++++ xen-4.13.0-testing/tools/xl/xl_cmdtable.c
+@@ -368,6 +368,21 @@ struct cmd_spec cmd_table[] = {
+ "Destroy a domain's virtual block device",
+ "<Domain> <DevId>",
+ },
++ { "scsi-attach",
++ &main_vscsiattach, 1, 1,
++ "Attach a dom0 SCSI device to a domain.",
++ "<Domain> <PhysDevice> <VirtDevice>",
++ },
++ { "scsi-list",
++ &main_vscsilist, 0, 0,
++ "List all dom0 SCSI devices currently attached to a domain.",
++ "<Domain(s)>",
++ },
++ { "scsi-detach",
++ &main_vscsidetach, 0, 1,
++ "Detach a specified SCSI device from a domain.",
++ "<Domain> <VirtDevice>",
++ },
+ { "vtpm-attach",
+ &main_vtpmattach, 1, 1,
+ "Create a new virtual TPM device",
diff --git a/libxl.set-migration-constraints-from-cmdline.patch b/libxl.set-migration-constraints-from-cmdline.patch
new file mode 100644
index 0000000..8c3343a
--- /dev/null
+++ b/libxl.set-migration-constraints-from-cmdline.patch
@@ -0,0 +1,579 @@
+From 77deb80879859ed279e24a790ec08e9c5d37dd0e Mon Sep 17 00:00:00 2001
+From: Olaf Hering <olaf@aepfle.de>
+Date: Wed, 5 Feb 2014 14:37:53 +0100
+Subject: libxl: set migration constraints from cmdline
+
+Add new options to xl migrate to control the process of migration.
+The intention is to optionally abort the migration if it takes too long
+to migrate a busy guest due to the high number of new dirty pages.
+Currently the guest is suspended to transfer the remaining dirty pages.
+The suspend/resume cycle will cause a time jump. This transfer can take
+a long time, which can confuse the guest if the time jump is too far.
+The new options allow to override the built-in default values, which are
+not changed by this patch.
+
+--max_iters <number> Number of iterations before final suspend (default: 30)
+
+--max_factor <factor> Max amount of memory to transfer before final suspend (default: 3*RAM)
+
+--min_remaing <pages> Number of dirty pages before stop&copy (default: 50)
+
+--abort_if_busy Abort migration instead of doing final suspend.
+
+The changes to libxl change the API, handle LIBXL_API_VERSION == 0x040200.
+
+v8:
+ - merge --min_remaing changes
+ - tools/libxc: print stats if migration is aborted
+ - use special _suse version of lib calls to preserve ABI
+
+v7:
+ - remove short options
+ - update description of --abort_if_busy in xl.1
+ - extend description of --abort_if_busy in xl help
+ - add comment to libxl_domain_suspend declaration, props is optional
+
+v6:
+ - update the LIBXL_API_VERSION handling for libxl_domain_suspend
+ change it to an inline function if LIBXL_API_VERSION is defined to 4.2.0
+ - rename libxl_save_properties to libxl_domain_suspend_properties
+ - rename ->xlflags to ->flags within that struct
+
+v5:
+ - adjust libxl_domain_suspend prototype, move flags, max_iters,
+ max_factor into a new, optional struct libxl_save_properties
+ - rename XCFLAGS_DOMSAVE_NOSUSPEND to XCFLAGS_DOMSAVE_ABORT_IF_BUSY
+ - rename LIBXL_SUSPEND_NO_FINAL_SUSPEND to LIBXL_SUSPEND_ABORT_IF_BUSY
+ - rename variables no_suspend to abort_if_busy
+ - rename option -N/--no_suspend to -A/--abort_if_busy
+ - update xl.1, extend description of -A option
+
+v4:
+ - update default for no_suspend from None to 0 in XendCheckpoint.py:save
+ - update logoutput in setMigrateConstraints
+ - change xm migrate defaults from None to 0
+ - add new options to xl.1
+ - fix syntax error in XendDomain.py:domain_migrate_constraints_set
+ - fix xm migrate -N option name to match xl migrate
+
+v3:
+ - move logic errors in libxl__domain_suspend and fixed help text in
+ cmd_table to separate patches
+ - fix syntax error in XendCheckpoint.py
+ - really pass max_iters and max_factor in libxl__xc_domain_save
+ - make libxl_domain_suspend_0x040200 declaration globally visible
+ - bump libxenlight.so SONAME from 2.0 to 2.1 due to changed
+ libxl_domain_suspend
+
+v2:
+ - use LIBXL_API_VERSION and define libxl_domain_suspend_0x040200
+ - fix logic error in min_reached check in xc_domain_save
+ - add longopts
+ - update --help text
+ - correct description of migrate --help text
+
+Signed-off-by: Olaf Hering <olaf@aepfle.de>
+---
+ docs/man/xl.pod.1 | 20 +++++++++++++++++++
+ tools/libxc/include/xenguest.h | 7 ++++++
+ tools/libxc/xc_nomigrate.c | 10 +++++++++
+ tools/libxc/xc_sr_common.h | 1
+ tools/libxc/xc_sr_save.c | 22 +++++++++++++++------
+ tools/libxl/libxl.c | 29 ++++++++++++++++++++++++----
+ tools/libxl/libxl.h | 15 ++++++++++++++
+ tools/libxl/libxl_dom_save.c | 1
+ tools/libxl/libxl_internal.h | 4 +++
+ tools/libxl/libxl_save_callout.c | 4 ++-
+ tools/libxl/libxl_save_helper.c | 8 ++++---
+ tools/libxl/xl_cmdimpl.c | 40 +++++++++++++++++++++++++++++++++------
+ tools/libxl/xl_cmdtable.c | 23 ++++++++++++++--------
+ 13 files changed, 156 insertions(+), 28 deletions(-)
+
+Index: xen-4.13.0-testing/docs/man/xl.1.pod.in
+===================================================================
+--- xen-4.13.0-testing.orig/docs/man/xl.1.pod.in
++++ xen-4.13.0-testing/docs/man/xl.1.pod.in
+@@ -490,6 +490,26 @@ Display huge (!) amount of debug informa
+
+ Leave the domain on the receive side paused after migration.
+
++=item B<--max_iters> I<number>
++
++Number of iterations before final suspend (default: 30)
++
++=item B<--max_factor> I<factor>
++
++Max amount of memory to transfer before final suspend (default: 3*RAM)
++
++=item B<--min_remaining>
++
++Number of remaining dirty pages. If the number of dirty pages drops that
++low the guest is suspended and the remaing pages are transfered to <host>.
++
++=item B<--abort_if_busy>
++
++Abort migration instead of doing final suspend/transfer/resume if the
++guest has still dirty pages after the number of iterations and/or the
++amount of RAM transferred. This avoids long periods of time where the
++guest is suspended.
++
+ =back
+
+ =item B<remus> [I<OPTIONS>] I<domain-id> I<host>
+Index: xen-4.13.0-testing/tools/libxc/include/xenguest.h
+===================================================================
+--- xen-4.13.0-testing.orig/tools/libxc/include/xenguest.h
++++ xen-4.13.0-testing/tools/libxc/include/xenguest.h
+@@ -29,6 +29,7 @@
+ #define XCFLAGS_HVM (1 << 2)
+ #define XCFLAGS_STDVGA (1 << 3)
+ #define XCFLAGS_CHECKPOINT_COMPRESS (1 << 4)
++#define XCFLAGS_DOMSAVE_ABORT_IF_BUSY (1 << 5)
+
+ #define X86_64_B_SIZE 64
+ #define X86_32_B_SIZE 32
+@@ -131,10 +132,20 @@ typedef enum {
+ * doesn't use checkpointing
+ * @return 0 on success, -1 on failure
+ */
++int xc_domain_save_suse(xc_interface *xch, int io_fd, uint32_t dom, uint32_t max_iters,
++ uint32_t max_factor, uint32_t flags /* XCFLAGS_xxx */,
++ uint32_t min_remaining,
++ struct save_callbacks* callbacks, int hvm,
++ xc_migration_stream_t stream_type, int recv_fd);
++static inline
+ int xc_domain_save(xc_interface *xch, int io_fd, uint32_t dom,
+ uint32_t flags /* XCFLAGS_xxx */,
+ struct save_callbacks* callbacks, int hvm,
+- xc_migration_stream_t stream_type, int recv_fd);
++ xc_migration_stream_t stream_type, int recv_fd)
++{
++ return xc_domain_save_suse(xch,io_fd,dom,0,0,flags,0,callbacks,hvm,stream_type,recv_fd);
++}
++
+
+ /* callbacks provided by xc_domain_restore */
+ struct restore_callbacks {
+Index: xen-4.13.0-testing/tools/libxc/xc_nomigrate.c
+===================================================================
+--- xen-4.13.0-testing.orig/tools/libxc/xc_nomigrate.c
++++ xen-4.13.0-testing/tools/libxc/xc_nomigrate.c
+@@ -20,9 +20,11 @@
+ #include <xenctrl.h>
+ #include <xenguest.h>
+
+-int xc_domain_save(xc_interface *xch, int io_fd, uint32_t dom, uint32_t flags,
+- struct save_callbacks* callbacks, int hvm,
+- xc_migration_stream_t stream_type, int recv_fd)
++int xc_domain_save_suse(xc_interface *xch, int io_fd, uint32_t dom, uint32_t max_iters,
++ uint32_t max_factor, uint32_t flags,
++ uint32_t min_remaining,
++ struct save_callbacks* callbacks, int hvm,
++ xc_migration_stream_t stream_type, int recv_fd)
+ {
+ errno = ENOSYS;
+ return -1;
+Index: xen-4.13.0-testing/tools/libxc/xc_sr_save.c
+===================================================================
+--- xen-4.13.0-testing.orig/tools/libxc/xc_sr_save.c
++++ xen-4.13.0-testing/tools/libxc/xc_sr_save.c
+@@ -525,6 +525,11 @@ static int send_memory_live(struct xc_sr
+ policy_decision = precopy_policy(*policy_stats, data);
+ x++;
+
++ if ( policy_decision == XGS_POLICY_ABORT )
++ {
++ rc = -1;
++ break;
++ }
+ if ( stats.dirty_count > 0 && policy_decision != XGS_POLICY_ABORT )
+ {
+ rc = update_progress_string(ctx, &progress_str);
+@@ -545,6 +550,11 @@ static int send_memory_live(struct xc_sr
+
+ policy_decision = precopy_policy(*policy_stats, data);
+
++ if ( policy_decision == XGS_POLICY_ABORT )
++ {
++ rc = -1;
++ break;
++ }
+ if ( policy_decision != XGS_POLICY_CONTINUE_PRECOPY )
+ break;
+
+@@ -965,9 +975,71 @@ static int save(struct xc_sr_context *ct
+ return rc;
+ };
+
+-int xc_domain_save(xc_interface *xch, int io_fd, uint32_t dom,
+- uint32_t flags, struct save_callbacks* callbacks,
+- int hvm, xc_migration_stream_t stream_type, int recv_fd)
++static struct suse_flags {
++ struct xc_sr_context *ctx;
++ unsigned long cnt;
++ uint32_t max_iters;
++ unsigned long max_factor;
++ long min_remaining;
++ long dirty_count;
++ uint32_t abort_if_busy;
++} suse_flags;
++
++static int suse_precopy_policy(struct precopy_stats stats, void *user)
++{
++ xc_interface *xch = suse_flags.ctx->xch;
++
++ suse_flags.cnt++;
++ errno = 0;
++ DBGPRINTF("%s: domU %u: #%lu iteration %u total_written %u dirty_count %ld",
++ __func__, suse_flags.ctx->domid, suse_flags.cnt, stats.iteration, stats.total_written, stats.dirty_count);
++
++ if ( stats.dirty_count >= 0 )
++ suse_flags.dirty_count = stats.dirty_count;
++
++ /* Stop loop after N iterations */
++ if ( stats.iteration > suse_flags.max_iters )
++ {
++ IPRINTF("%s: domU %u, too many iterations (%u/%u)",
++ __func__, suse_flags.ctx->domid, stats.iteration, suse_flags.max_iters);
++ goto out;
++ }
++ /* Suspend domU in case only few dirty pages remain */
++ if ( stats.dirty_count >= 0 && stats.dirty_count < suse_flags.min_remaining )
++ {
++ IPRINTF("%s: domU %u, dirty_count reached (%ld/%ld)",
++ __func__, suse_flags.ctx->domid, stats.dirty_count, suse_flags.min_remaining);
++ goto suspend;
++ }
++ /* Stop loop if too much memory was transfered (formula incorrect for ballooned domU) */
++ if ( stats.total_written > suse_flags.max_factor * suse_flags.ctx->save.p2m_size )
++ {
++ IPRINTF("%s: domU %u, too much memory transfered (%u/%lu)",
++ __func__, suse_flags.ctx->domid, stats.total_written, suse_flags.max_factor * suse_flags.ctx->save.p2m_size);
++ goto out;
++ }
++ /* Keep going */
++ return XGS_POLICY_CONTINUE_PRECOPY;
++
++out:
++ if ( suse_flags.abort_if_busy )
++ {
++ errno = EBUSY;
++ PERROR("%s: domU %u busy, dirty pages %ld/%lu after %u iterations, %u pages transfered",
++ __func__, suse_flags.ctx->domid,
++ suse_flags.dirty_count, suse_flags.ctx->save.p2m_size,
++ stats.iteration, stats.total_written);
++ return XGS_POLICY_ABORT;
++ }
++suspend:
++ return XGS_POLICY_STOP_AND_COPY;
++}
++
++int xc_domain_save_suse(xc_interface *xch, int io_fd, uint32_t dom,
++ uint32_t max_iters, uint32_t max_factor, uint32_t flags,
++ uint32_t min_remaining,
++ struct save_callbacks* callbacks, int hvm,
++ xc_migration_stream_t stream_type, int recv_fd)
+ {
+ struct xc_sr_context ctx =
+ {
+@@ -982,6 +1054,19 @@ int xc_domain_save(xc_interface *xch, in
+ ctx.save.checkpointed = stream_type;
+ ctx.save.recv_fd = recv_fd;
+
++ if ( callbacks->precopy_policy )
++ {
++ errno = EBUSY;
++ PERROR("%s: precopy_policy already set (%p)", __func__, callbacks->precopy_policy);
++ return -1;
++ }
++ callbacks->precopy_policy = suse_precopy_policy;
++ suse_flags.ctx = &ctx;
++ suse_flags.max_iters = max_iters ? : 5;
++ suse_flags.max_factor = max_factor ? : 3;
++ suse_flags.min_remaining = min_remaining ? : 50;
++ suse_flags.abort_if_busy = !!(flags & XCFLAGS_DOMSAVE_ABORT_IF_BUSY);
++
+ /* If altering migration_stream update this assert too. */
+ assert(stream_type == XC_MIG_STREAM_NONE ||
+ stream_type == XC_MIG_STREAM_REMUS ||
+Index: xen-4.13.0-testing/tools/libxl/libxl.h
+===================================================================
+--- xen-4.13.0-testing.orig/tools/libxl/libxl.h
++++ xen-4.13.0-testing/tools/libxl/libxl.h
+@@ -1647,8 +1647,23 @@ int libxl_domain_suspend(libxl_ctx *ctx,
+ int flags, /* LIBXL_SUSPEND_* */
+ const libxl_asyncop_how *ao_how)
+ LIBXL_EXTERNAL_CALLERS_ONLY;
++
++typedef struct {
++ int flags; /* LIBXL_SUSPEND_* */
++ int max_iters;
++ int max_factor;
++ int min_remaining;
++} libxl_domain_suspend_suse_properties;
++
++#define LIBXL_HAVE_DOMAIN_SUSPEND_SUSE
++int libxl_domain_suspend_suse(libxl_ctx *ctx, uint32_t domid, int fd,
++ const libxl_domain_suspend_suse_properties *props, /* optional */
++ const libxl_asyncop_how *ao_how)
++ LIBXL_EXTERNAL_CALLERS_ONLY;
++
+ #define LIBXL_SUSPEND_DEBUG 1
+ #define LIBXL_SUSPEND_LIVE 2
++#define LIBXL_SUSPEND_ABORT_IF_BUSY 4
+
+ /*
+ * Only suspend domain, do not save its state to file, do not destroy it.
+Index: xen-4.13.0-testing/tools/libxl/libxl_dom_save.c
+===================================================================
+--- xen-4.13.0-testing.orig/tools/libxl/libxl_dom_save.c
++++ xen-4.13.0-testing/tools/libxl/libxl_dom_save.c
+@@ -423,6 +423,7 @@ void libxl__domain_save(libxl__egc *egc,
+
+ dss->xcflags = (live ? XCFLAGS_LIVE : 0)
+ | (debug ? XCFLAGS_DEBUG : 0)
++ | (dss->xlflags & LIBXL_SUSPEND_ABORT_IF_BUSY ? XCFLAGS_DOMSAVE_ABORT_IF_BUSY : 0)
+ | (dss->hvm ? XCFLAGS_HVM : 0);
+
+ /* Disallow saving a guest with vNUMA configured because migration
+Index: xen-4.13.0-testing/tools/libxl/libxl_domain.c
+===================================================================
+--- xen-4.13.0-testing.orig/tools/libxl/libxl_domain.c
++++ xen-4.13.0-testing/tools/libxl/libxl_domain.c
+@@ -503,8 +503,9 @@ static void domain_suspend_cb(libxl__egc
+
+ }
+
+-int libxl_domain_suspend(libxl_ctx *ctx, uint32_t domid, int fd, int flags,
+- const libxl_asyncop_how *ao_how)
++static int do_libxl_domain_suspend(libxl_ctx *ctx, uint32_t domid, int fd,
++ const libxl_domain_suspend_suse_properties *props,
++ const libxl_asyncop_how *ao_how)
+ {
+ AO_CREATE(ctx, domid, ao_how);
+ int rc;
+@@ -524,9 +525,15 @@ int libxl_domain_suspend(libxl_ctx *ctx,
+ dss->domid = domid;
+ dss->fd = fd;
+ dss->type = type;
+- dss->live = flags & LIBXL_SUSPEND_LIVE;
+- dss->debug = flags & LIBXL_SUSPEND_DEBUG;
+ dss->checkpointed_stream = LIBXL_CHECKPOINTED_STREAM_NONE;
++ if (props) {
++ dss->live = props->flags & LIBXL_SUSPEND_LIVE;
++ dss->debug = props->flags & LIBXL_SUSPEND_DEBUG;
++ dss->max_iters = props->max_iters;
++ dss->max_factor = props->max_factor;
++ dss->min_remaining = props->min_remaining;
++ dss->xlflags = props->flags;
++ }
+
+ rc = libxl__fd_flags_modify_save(gc, dss->fd,
+ ~(O_NONBLOCK|O_NDELAY), 0,
+@@ -574,6 +581,20 @@ int libxl_domain_suspend_only(libxl_ctx
+ return AO_CREATE_FAIL(rc);
+ }
+
++int libxl_domain_suspend_suse(libxl_ctx *ctx, uint32_t domid, int fd,
++ const libxl_domain_suspend_suse_properties *props,
++ const libxl_asyncop_how *ao_how)
++{
++ return do_libxl_domain_suspend(ctx, domid, fd, props, ao_how);
++}
++
++int libxl_domain_suspend(libxl_ctx *ctx, uint32_t domid, int fd, int flags,
++ const libxl_asyncop_how *ao_how)
++{
++ libxl_domain_suspend_suse_properties props = { .flags = flags };
++ return do_libxl_domain_suspend(ctx, domid, fd, &props, ao_how);
++}
++
+ int libxl_domain_pause(libxl_ctx *ctx, uint32_t domid,
+ const libxl_asyncop_how *ao_how)
+ {
+Index: xen-4.13.0-testing/tools/libxl/libxl_internal.h
+===================================================================
+--- xen-4.13.0-testing.orig/tools/libxl/libxl_internal.h
++++ xen-4.13.0-testing/tools/libxl/libxl_internal.h
+@@ -3596,6 +3596,10 @@ struct libxl__domain_save_state {
+ /* private */
+ int rc;
+ int hvm;
++ int max_iters;
++ int max_factor;
++ int min_remaining;
++ int xlflags;
+ int xcflags;
+ libxl__domain_suspend_state dsps;
+ union {
+Index: xen-4.13.0-testing/tools/libxl/libxl_save_callout.c
+===================================================================
+--- xen-4.13.0-testing.orig/tools/libxl/libxl_save_callout.c
++++ xen-4.13.0-testing/tools/libxl/libxl_save_callout.c
+@@ -89,7 +89,9 @@ void libxl__xc_domain_save(libxl__egc *e
+ libxl__srm_callout_enumcallbacks_save(&shs->callbacks.save.a);
+
+ const unsigned long argnums[] = {
+- dss->domid, dss->xcflags, dss->hvm, cbflags,
++ dss->domid,
++ dss->max_iters, dss->max_factor, dss->min_remaining,
++ dss->xcflags, dss->hvm, cbflags,
+ dss->checkpointed_stream,
+ };
+
+Index: xen-4.13.0-testing/tools/libxl/libxl_save_helper.c
+===================================================================
+--- xen-4.13.0-testing.orig/tools/libxl/libxl_save_helper.c
++++ xen-4.13.0-testing/tools/libxl/libxl_save_helper.c
+@@ -251,6 +251,9 @@ int main(int argc, char **argv)
+ io_fd = atoi(NEXTARG);
+ recv_fd = atoi(NEXTARG);
+ uint32_t dom = strtoul(NEXTARG,0,10);
++ uint32_t max_iters = strtoul(NEXTARG,0,10);
++ uint32_t max_factor = strtoul(NEXTARG,0,10);
++ uint32_t min_remaining = strtoul(NEXTARG,0,10);
+ uint32_t flags = strtoul(NEXTARG,0,10);
+ int hvm = atoi(NEXTARG);
+ unsigned cbflags = strtoul(NEXTARG,0,10);
+@@ -262,8 +265,10 @@ int main(int argc, char **argv)
+ startup("save");
+ setup_signals(save_signal_handler);
+
+- r = xc_domain_save(xch, io_fd, dom, flags, &helper_save_callbacks,
+- hvm, stream_type, recv_fd);
++ r = xc_domain_save_suse(xch, io_fd, dom, max_iters, max_factor, flags,
++ min_remaining,
++ &helper_save_callbacks, hvm, stream_type,
++ recv_fd);
+ complete(r);
+
+ } else if (!strcmp(mode,"--restore-domain")) {
+Index: xen-4.13.0-testing/tools/xl/xl_cmdtable.c
+===================================================================
+--- xen-4.13.0-testing.orig/tools/xl/xl_cmdtable.c
++++ xen-4.13.0-testing/tools/xl/xl_cmdtable.c
+@@ -159,15 +159,22 @@ struct cmd_spec cmd_table[] = {
+ &main_migrate, 0, 1,
+ "Migrate a domain to another host",
+ "[options] <Domain> <host>",
+- "-h Print this help.\n"
+- "-C <config> Send <config> instead of config file from creation.\n"
+- "-s <sshcommand> Use <sshcommand> instead of ssh. String will be passed\n"
+- " to sh. If empty, run <host> instead of ssh <host> xl\n"
+- " migrate-receive [-d -e]\n"
+- "-e Do not wait in the background (on <host>) for the death\n"
+- " of the domain.\n"
+- "--debug Print huge (!) amount of debug during the migration process.\n"
+- "-p Do not unpause domain after migrating it."
++ "-h Print this help.\n"
++ "-C <config> Send <config> instead of config file from creation.\n"
++ "-s <sshcommand> Use <sshcommand> instead of ssh. String will be passed\n"
++ " to sh. If empty, run <host> instead of ssh <host> xl\n"
++ " migrate-receive [-d -e]\n"
++ "-e Do not wait in the background (on <host>) for the death\n"
++ " of the domain.\n"
++ "--debug Print huge (!) amount of debug during the migration process.\n"
++ "-p Do not unpause domain after migrating it.\n"
++ "\n"
++ "SUSE Linux specific options:\n"
++ "--max_iters <number> Number of iterations before final suspend (default: 30)\n"
++ "--max_factor <factor> Max amount of memory to transfer before final suspend (default: 3*RAM).\n"
++ "--min_remaining <pages> Number of remaining dirty pages before final suspend (default: 50).\n"
++ "--abort_if_busy Abort migration instead of doing final suspend, if number\n"
++ " of iterations or amount of transfered memory is exceeded."
+ },
+ { "restore",
+ &main_restore, 0, 1,
+Index: xen-4.13.0-testing/tools/xl/xl_migrate.c
+===================================================================
+--- xen-4.13.0-testing.orig/tools/xl/xl_migrate.c
++++ xen-4.13.0-testing/tools/xl/xl_migrate.c
+@@ -177,6 +177,8 @@ static void migrate_do_preamble(int send
+ }
+
+ static void migrate_domain(uint32_t domid, const char *rune, int debug,
++ int max_iters, int max_factor,
++ int min_remaining, int abort_if_busy,
+ const char *override_config_file)
+ {
+ pid_t child = -1;
+@@ -185,7 +187,13 @@ static void migrate_domain(uint32_t domi
+ char *away_domname;
+ char rc_buf;
+ uint8_t *config_data;
+- int config_len, flags = LIBXL_SUSPEND_LIVE;
++ int config_len;
++ libxl_domain_suspend_suse_properties props = {
++ .flags = LIBXL_SUSPEND_LIVE,
++ .max_iters = max_iters,
++ .max_factor = max_factor,
++ .min_remaining = min_remaining,
++ };
+
+ save_domain_core_begin(domid, override_config_file,
+ &config_data, &config_len);
+@@ -204,10 +212,12 @@ static void migrate_domain(uint32_t domi
+ xtl_stdiostream_adjust_flags(logger, XTL_STDIOSTREAM_HIDE_PROGRESS, 0);
+
+ if (debug)
+- flags |= LIBXL_SUSPEND_DEBUG;
+- rc = libxl_domain_suspend(ctx, domid, send_fd, flags, NULL);
++ props.flags |= LIBXL_SUSPEND_DEBUG;
++ if (abort_if_busy)
++ props.flags |= LIBXL_SUSPEND_ABORT_IF_BUSY;
++ rc = libxl_domain_suspend_suse(ctx, domid, send_fd, &props, NULL);
+ if (rc) {
+- fprintf(stderr, "migration sender: libxl_domain_suspend failed"
++ fprintf(stderr, "migration sender: libxl_domain_suspend_suse failed"
+ " (rc=%d)\n", rc);
+ if (rc == ERROR_GUEST_TIMEDOUT)
+ goto failed_suspend;
+@@ -537,13 +547,18 @@ int main_migrate(int argc, char **argv)
+ char *rune = NULL;
+ char *host;
+ int opt, daemonize = 1, monitor = 1, debug = 0, pause_after_migration = 0;
++ int max_iters = 0, max_factor = 0, min_remaining = 0, abort_if_busy = 0;
+ static struct option opts[] = {
+ {"debug", 0, 0, 0x100},
++ {"max_iters", 1, 0, 0x101},
++ {"max_factor", 1, 0, 0x102},
++ {"min_remaining", 1, 0, 0x103},
++ {"abort_if_busy", 0, 0, 0x104},
+ {"live", 0, 0, 0x200},
+ COMMON_LONG_OPTS
+ };
+
+- SWITCH_FOREACH_OPT(opt, "FC:s:ep", opts, "migrate", 2) {
++ SWITCH_FOREACH_OPT(opt, "FC:s:epM:m:A", opts, "migrate", 2) {
+ case 'C':
+ config_filename = optarg;
+ break;
+@@ -563,6 +578,18 @@ int main_migrate(int argc, char **argv)
+ case 0x100: /* --debug */
+ debug = 1;
+ break;
++ case 0x101:
++ max_iters = atoi(optarg);
++ break;
++ case 0x102:
++ max_factor = atoi(optarg);
++ break;
++ case 0x103:
++ min_remaining = atoi(optarg);
++ break;
++ case 0x104:
++ abort_if_busy = 1;
++ break;
+ case 0x200: /* --live */
+ /* ignored for compatibility with xm */
+ break;
+@@ -596,7 +623,8 @@ int main_migrate(int argc, char **argv)
+ pause_after_migration ? " -p" : "");
+ }
+
+- migrate_domain(domid, rune, debug, config_filename);
++ migrate_domain(domid, rune, debug, max_iters, max_factor, min_remaining,
++ abort_if_busy, config_filename);
+ return EXIT_SUCCESS;
+ }
+
diff --git a/logrotate.conf b/logrotate.conf
new file mode 100644
index 0000000..4b0bfe7
--- /dev/null
+++ b/logrotate.conf
@@ -0,0 +1,17 @@
+compress
+missingok
+notifempty
+
+/var/log/xen/xen-hotplug.log {
+ rotate 2
+ size 100k
+ copytruncate
+}
+
+/var/log/xen/xl-*.log /var/log/xen/qemu-dm-*.log /var/log/xen/console/*.log {
+ rotate 4
+ dateext
+ dateformat -%Y%m%d-%H%M
+ size 2M
+ copytruncate
+}
diff --git a/migration-python3-conversion.patch b/migration-python3-conversion.patch
new file mode 100644
index 0000000..948b725
--- /dev/null
+++ b/migration-python3-conversion.patch
@@ -0,0 +1,122 @@
+Index: xen-4.10.0-testing/tools/python/xen/migration/legacy.py
+===================================================================
+--- xen-4.10.0-testing.orig/tools/python/xen/migration/legacy.py
++++ xen-4.10.0-testing/tools/python/xen/migration/legacy.py
+@@ -1,4 +1,4 @@
+-#!/usr/bin/env python
++#!/usr/bin/python3
+ # -*- coding: utf-8 -*-
+
+ """
+Index: xen-4.10.0-testing/tools/python/xen/migration/libxc.py
+===================================================================
+--- xen-4.10.0-testing.orig/tools/python/xen/migration/libxc.py
++++ xen-4.10.0-testing/tools/python/xen/migration/libxc.py
+@@ -1,4 +1,4 @@
+-#!/usr/bin/env python
++#!/usr/bin/python3
+ # -*- coding: utf-8 -*-
+
+ """
+@@ -87,23 +87,23 @@ rec_type_to_str = {
+
+ # page_data
+ PAGE_DATA_FORMAT = "II"
+-PAGE_DATA_PFN_MASK = (long(1) << 52) - 1
+-PAGE_DATA_PFN_RESZ_MASK = ((long(1) << 60) - 1) & ~((long(1) << 52) - 1)
++PAGE_DATA_PFN_MASK = (int(1) << 52) - 1
++PAGE_DATA_PFN_RESZ_MASK = ((int(1) << 60) - 1) & ~((int(1) << 52) - 1)
+
+ # flags from xen/public/domctl.h: XEN_DOMCTL_PFINFO_* shifted by 32 bits
+ PAGE_DATA_TYPE_SHIFT = 60
+-PAGE_DATA_TYPE_LTABTYPE_MASK = (long(0x7) << PAGE_DATA_TYPE_SHIFT)
+-PAGE_DATA_TYPE_LTAB_MASK = (long(0xf) << PAGE_DATA_TYPE_SHIFT)
+-PAGE_DATA_TYPE_LPINTAB = (long(0x8) << PAGE_DATA_TYPE_SHIFT) # Pinned pagetable
+-
+-PAGE_DATA_TYPE_NOTAB = (long(0x0) << PAGE_DATA_TYPE_SHIFT) # Regular page
+-PAGE_DATA_TYPE_L1TAB = (long(0x1) << PAGE_DATA_TYPE_SHIFT) # L1 pagetable
+-PAGE_DATA_TYPE_L2TAB = (long(0x2) << PAGE_DATA_TYPE_SHIFT) # L2 pagetable
+-PAGE_DATA_TYPE_L3TAB = (long(0x3) << PAGE_DATA_TYPE_SHIFT) # L3 pagetable
+-PAGE_DATA_TYPE_L4TAB = (long(0x4) << PAGE_DATA_TYPE_SHIFT) # L4 pagetable
+-PAGE_DATA_TYPE_BROKEN = (long(0xd) << PAGE_DATA_TYPE_SHIFT) # Broken
+-PAGE_DATA_TYPE_XALLOC = (long(0xe) << PAGE_DATA_TYPE_SHIFT) # Allocate-only
+-PAGE_DATA_TYPE_XTAB = (long(0xf) << PAGE_DATA_TYPE_SHIFT) # Invalid
++PAGE_DATA_TYPE_LTABTYPE_MASK = (int(0x7) << PAGE_DATA_TYPE_SHIFT)
++PAGE_DATA_TYPE_LTAB_MASK = (int(0xf) << PAGE_DATA_TYPE_SHIFT)
++PAGE_DATA_TYPE_LPINTAB = (int(0x8) << PAGE_DATA_TYPE_SHIFT) # Pinned pagetable
++
++PAGE_DATA_TYPE_NOTAB = (int(0x0) << PAGE_DATA_TYPE_SHIFT) # Regular page
++PAGE_DATA_TYPE_L1TAB = (int(0x1) << PAGE_DATA_TYPE_SHIFT) # L1 pagetable
++PAGE_DATA_TYPE_L2TAB = (int(0x2) << PAGE_DATA_TYPE_SHIFT) # L2 pagetable
++PAGE_DATA_TYPE_L3TAB = (int(0x3) << PAGE_DATA_TYPE_SHIFT) # L3 pagetable
++PAGE_DATA_TYPE_L4TAB = (int(0x4) << PAGE_DATA_TYPE_SHIFT) # L4 pagetable
++PAGE_DATA_TYPE_BROKEN = (int(0xd) << PAGE_DATA_TYPE_SHIFT) # Broken
++PAGE_DATA_TYPE_XALLOC = (int(0xe) << PAGE_DATA_TYPE_SHIFT) # Allocate-only
++PAGE_DATA_TYPE_XTAB = (int(0xf) << PAGE_DATA_TYPE_SHIFT) # Invalid
+
+ # x86_pv_info
+ X86_PV_INFO_FORMAT = "BBHI"
+Index: xen-4.10.0-testing/tools/python/xen/migration/libxl.py
+===================================================================
+--- xen-4.10.0-testing.orig/tools/python/xen/migration/libxl.py
++++ xen-4.10.0-testing/tools/python/xen/migration/libxl.py
+@@ -1,4 +1,4 @@
+-#!/usr/bin/env python
++#!/usr/bin/python3
+ # -*- coding: utf-8 -*-
+
+ """
+Index: xen-4.10.0-testing/tools/python/xen/migration/public.py
+===================================================================
+--- xen-4.10.0-testing.orig/tools/python/xen/migration/public.py
++++ xen-4.10.0-testing/tools/python/xen/migration/public.py
+@@ -1,4 +1,4 @@
+-#!/usr/bin/env python
++#!/usr/bin/python3
+ # -*- coding: utf-8 -*-
+
+ """
+Index: xen-4.10.0-testing/tools/python/xen/migration/tests.py
+===================================================================
+--- xen-4.10.0-testing.orig/tools/python/xen/migration/tests.py
++++ xen-4.10.0-testing/tools/python/xen/migration/tests.py
+@@ -1,4 +1,4 @@
+-#!/usr/bin/env python
++#!/usr/bin/python3
+ # -*- coding: utf-8 -*-
+
+ """
+Index: xen-4.10.0-testing/tools/python/xen/migration/verify.py
+===================================================================
+--- xen-4.10.0-testing.orig/tools/python/xen/migration/verify.py
++++ xen-4.10.0-testing/tools/python/xen/migration/verify.py
+@@ -1,4 +1,4 @@
+-#!/usr/bin/env python
++#!/usr/bin/python3
+ # -*- coding: utf-8 -*-
+
+ """
+@@ -7,11 +7,11 @@ Common verification infrastructure for v
+
+ from struct import calcsize, unpack
+
+-class StreamError(StandardError):
++class StreamError(Exception):
+ """Error with the stream"""
+ pass
+
+-class RecordError(StandardError):
++class RecordError(Exception):
+ """Error with a record in the stream"""
+ pass
+
+Index: xen-4.10.0-testing/tools/python/xen/migration/xl.py
+===================================================================
+--- xen-4.10.0-testing.orig/tools/python/xen/migration/xl.py
++++ xen-4.10.0-testing/tools/python/xen/migration/xl.py
+@@ -1,4 +1,4 @@
+-#!/usr/bin/env python
++#!/usr/bin/python3
+ # -*- coding: utf-8 -*-
+
+ """
diff --git a/pygrub-boot-legacy-sles.patch b/pygrub-boot-legacy-sles.patch
new file mode 100644
index 0000000..47aed22
--- /dev/null
+++ b/pygrub-boot-legacy-sles.patch
@@ -0,0 +1,63 @@
+Index: xen-4.13.0-testing/tools/pygrub/src/pygrub
+===================================================================
+--- xen-4.13.0-testing.orig/tools/pygrub/src/pygrub
++++ xen-4.13.0-testing/tools/pygrub/src/pygrub
+@@ -453,7 +453,7 @@ class Grub:
+ self.cf.filename = f
+ break
+ if self.__dict__.get('cf', None) is None:
+- raise RuntimeError("couldn't find bootloader config file in the image provided.")
++ return
+ f = fs.open_file(self.cf.filename)
+ # limit read size to avoid pathological cases
+ buf = f.read(FS_READ_MAX)
+@@ -628,6 +628,20 @@ def run_grub(file, entry, fs, cfg_args):
+
+ g = Grub(file, fs)
+
++ # If missing config or grub has no menu entries to select, look for
++ # vmlinuz-xen and initrd-xen in /boot
++ if g.__dict__.get('cf', None) is None or len(g.cf.images) == 0 or re.search(r"xen(-pae)?\.gz",g.cf.images[0].kernel[1]):
++ if not list_entries:
++ chosencfg = { "kernel": None, "ramdisk": None, "args": "" }
++ chosencfg = sniff_xen_kernel(fs, incfg)
++ if chosencfg["kernel"] and chosencfg["ramdisk"]:
++ chosencfg["args"] = cfg_args
++ return chosencfg
++ if g.__dict__.get('cf', None) is None:
++ raise RuntimeError("couldn't find bootloader config file in the image provided.")
++ else:
++ return
++
+ if list_entries:
+ for i in range(len(g.cf.images)):
+ img = g.cf.images[i]
+@@ -723,6 +737,19 @@ def sniff_netware(fs, cfg):
+
+ return cfg
+
++def sniff_xen_kernel(fs, cfg):
++ if not cfg["kernel"]:
++ if fs.file_exists('/boot/vmlinuz-xen'):
++ cfg["kernel"] = '/boot/vmlinuz-xen'
++ elif fs.file_exists('/boot/vmlinuz-xenpae'):
++ cfg["kernel"] = '/boot/vmlinuz-xenpae'
++ if cfg["kernel"] and not cfg["ramdisk"]:
++ if fs.file_exists('/boot/initrd-xen'):
++ cfg["ramdisk"] = '/boot/initrd-xen'
++ elif fs.file_exists('/boot/initrd-xenpae'):
++ cfg["ramdisk"] = '/boot/initrd-xenpae'
++ return cfg
++
+ def format_sxp(kernel, ramdisk, args):
+ s = "linux (kernel %s)" % repr(kernel)
+ if ramdisk:
+@@ -806,7 +833,7 @@ if __name__ == "__main__":
+ debug = False
+ not_really = False
+ output_format = "sxp"
+- output_directory = "/var/run/xen/pygrub"
++ output_directory = "/var/run/xen"
+
+ # what was passed in
+ incfg = { "kernel": None, "ramdisk": None, "args": "" }
diff --git a/pygrub-handle-one-line-menu-entries.patch b/pygrub-handle-one-line-menu-entries.patch
new file mode 100644
index 0000000..0abe62d
--- /dev/null
+++ b/pygrub-handle-one-line-menu-entries.patch
@@ -0,0 +1,59 @@
+References: bsc#978413
+
+The parsing code can't handle a single line menu entry.
+For example: menuentry 'halt' { halt }
+Force it to fall through where it will handle the closing brace.
+Also change warning to debug to cut down on verbose output.
+
+Index: xen-4.13.0-testing/tools/pygrub/src/GrubConf.py
+===================================================================
+--- xen-4.13.0-testing.orig/tools/pygrub/src/GrubConf.py
++++ xen-4.13.0-testing/tools/pygrub/src/GrubConf.py
+@@ -150,7 +150,7 @@ class GrubImage(_GrubImage):
+ else:
+ logging.info("Ignored image directive %s" %(com,))
+ else:
+- logging.warning("Unknown image directive %s" %(com,))
++ logging.debug("Unknown image directive %s" %(com,))
+
+ # now put the line in the list of lines
+ if replace is None:
+@@ -309,7 +309,7 @@ class GrubConfigFile(_GrubConfigFile):
+ else:
+ logging.info("Ignored directive %s" %(com,))
+ else:
+- logging.warning("Unknown directive %s" %(com,))
++ logging.debug("Unknown directive %s" %(com,))
+
+ if img:
+ self.add_image(GrubImage(title, img))
+@@ -343,7 +343,7 @@ class Grub2Image(_GrubImage):
+ elif com.startswith('set:'):
+ pass
+ else:
+- logging.warning("Unknown image directive %s" %(com,))
++ logging.debug("Unknown image directive %s" %(com,))
+
+ # now put the line in the list of lines
+ if replace is None:
+@@ -408,7 +408,10 @@ class Grub2ConfigFile(_GrubConfigFile):
+ raise RuntimeError("syntax error: cannot nest menuentry (%d %s)" % (len(img),img))
+ img = []
+ title = title_match.group(1)
+- continue
++ if not l.endswith('}'):
++ continue
++ # One line menuentry, Ex. menuentry 'halt' { halt }
++ l = '}'
+
+ if l.startswith("submenu"):
+ menu_level += 1
+@@ -447,7 +450,7 @@ class Grub2ConfigFile(_GrubConfigFile):
+ elif com.startswith('set:'):
+ pass
+ else:
+- logging.warning("Unknown directive %s" %(com,))
++ logging.debug("Unknown directive %s" %(com,))
+
+ if img is not None:
+ raise RuntimeError("syntax error: end of file with open menuentry(%d %s)" % (len(img),img))
diff --git a/pygrub-netware-xnloader.patch b/pygrub-netware-xnloader.patch
new file mode 100644
index 0000000..6ebe69a
--- /dev/null
+++ b/pygrub-netware-xnloader.patch
@@ -0,0 +1,21 @@
+Index: xen-4.13.0-testing/tools/pygrub/src/pygrub
+===================================================================
+--- xen-4.13.0-testing.orig/tools/pygrub/src/pygrub
++++ xen-4.13.0-testing/tools/pygrub/src/pygrub
+@@ -27,6 +27,7 @@ import xenfsimage
+ import grub.GrubConf
+ import grub.LiloConf
+ import grub.ExtLinuxConf
++import xnloader
+
+ PYGRUB_VER = 0.6
+ FS_READ_MAX = 1024 * 1024
+@@ -768,6 +769,8 @@ if __name__ == "__main__":
+ if len(data) == 0:
+ os.close(tfd)
+ del datafile
++ if file_to_read == "/nwserver/xnloader.sys":
++ xnloader.patch_netware_loader(ret)
+ return ret
+ try:
+ os.write(tfd, data)
diff --git a/replace-obsolete-network-configuration-commands-in-s.patch b/replace-obsolete-network-configuration-commands-in-s.patch
new file mode 100644
index 0000000..58e4c5a
--- /dev/null
+++ b/replace-obsolete-network-configuration-commands-in-s.patch
@@ -0,0 +1,268 @@
+From 5e1e18fde92bae1ae87f78d470e80b1ffc9350d1 Mon Sep 17 00:00:00 2001
+From: Michal Kubecek <mkubecek@suse.cz>
+Date: Wed, 26 Jul 2017 10:28:54 +0200
+Subject: [PATCH] replace obsolete network configuration commands in scripts
+
+Some scripts still use obsolete network configuration commands ifconfig and
+brctl. Replace them by commands from iproute2 package.
+---
+ README | 3 +--
+ tools/hotplug/Linux/colo-proxy-setup | 14 ++++++--------
+ tools/hotplug/Linux/remus-netbuf-setup | 3 ++-
+ tools/hotplug/Linux/vif-bridge | 7 ++++---
+ tools/hotplug/Linux/vif-nat | 2 +-
+ tools/hotplug/Linux/vif-route | 6 ++++--
+ tools/hotplug/Linux/vif2 | 6 +++---
+ tools/hotplug/Linux/xen-network-common.sh | 6 ++----
+ .../i386-dm/qemu-ifup-Linux | 5 +++--
+ 9 files changed, 26 insertions(+), 26 deletions(-)
+
+Index: xen-4.13.0-testing/README
+===================================================================
+--- xen-4.13.0-testing.orig/README
++++ xen-4.13.0-testing/README
+@@ -57,8 +57,7 @@ provided by your OS distributor:
+ * Development install of GLib v2.0 (e.g. libglib2.0-dev)
+ * Development install of Pixman (e.g. libpixman-1-dev)
+ * pkg-config
+- * bridge-utils package (/sbin/brctl)
+- * iproute package (/sbin/ip)
++ * iproute package (/sbin/ip, /sbin/bridge)
+ * GNU bison and GNU flex
+ * GNU gettext
+ * ACPI ASL compiler (iasl)
+Index: xen-4.13.0-testing/tools/hotplug/Linux/colo-proxy-setup
+===================================================================
+--- xen-4.13.0-testing.orig/tools/hotplug/Linux/colo-proxy-setup
++++ xen-4.13.0-testing/tools/hotplug/Linux/colo-proxy-setup
+@@ -76,10 +76,16 @@ function teardown_primary()
+
+ function setup_secondary()
+ {
+- do_without_error brctl delif $bridge $vifname
+- do_without_error brctl addbr $forwardbr
+- do_without_error brctl addif $forwardbr $vifname
+- do_without_error brctl addif $forwardbr $forwarddev
++ if [ "$legacy_tools" ]; then
++ do_without_error brctl delif $bridge $vifname
++ do_without_error brctl addbr $forwardbr
++ do_without_error brctl addif $forwardbr $vifname
++ do_without_error brctl addif $forwardbr $forwarddev
++ else
++ do_without_error ip link add "$forwardbr" type bridge
++ do_without_error ip link set "$vifname" master "$forwardbr"
++ do_without_error ip link set "$forwarddev" master "$forwardbr"
++ fi
+ do_without_error ip link set dev $forwardbr up
+ do_without_error modprobe xt_SECCOLO
+
+@@ -91,10 +97,16 @@ function setup_secondary()
+
+ function teardown_secondary()
+ {
+- do_without_error brctl delif $forwardbr $forwarddev
+- do_without_error brctl delif $forwardbr $vifname
+- do_without_error brctl delbr $forwardbr
+- do_without_error brctl addif $bridge $vifname
++ if [ "$legacy_tools" ]; then
++ do_without_error brctl delif $forwardbr $forwarddev
++ do_without_error brctl delif $forwardbr $vifname
++ do_without_error brctl delbr $forwardbr
++ do_without_error brctl addif $bridge $vifname
++ else
++ do_without_error ip link set "$forwarddev" nomaster
++ do_without_error ip link set "$vifname" master "$bridge"
++ do_without_error ip link del "$forwardbr"
++ fi
+
+ do_without_error iptables -t mangle -D PREROUTING -m physdev --physdev-in \
+ $vifname -j SECCOLO --index $index
+Index: xen-4.13.0-testing/tools/hotplug/Linux/remus-netbuf-setup
+===================================================================
+--- xen-4.13.0-testing.orig/tools/hotplug/Linux/remus-netbuf-setup
++++ xen-4.13.0-testing/tools/hotplug/Linux/remus-netbuf-setup
+@@ -76,6 +76,7 @@
+ #specific setup code such as renaming.
+ dir=$(dirname "$0")
+ . "$dir/xen-hotplug-common.sh"
++. "$dir/xen-network-common.sh"
+
+ findCommand "$@"
+
+@@ -139,8 +140,16 @@ check_ifb() {
+
+ setup_ifb() {
+
+- for ifb in `ifconfig -a -s|egrep ^ifb|cut -d ' ' -f1`
++ if [ "$legacy_tools" ]; then
++ ifbs=`ifconfig -a -s|egrep ^ifb|cut -d ' ' -f1`
++ else
++ ifbs=$(ip --oneline link show type ifb | cut -d ' ' -f2)
++ fi
++ for ifb in $ifbs
+ do
++ if [ ! "$legacy_tools" ]; then
++ ifb="${ifb%:}"
++ fi
+ check_ifb "$ifb" || continue
+ REMUS_IFB="$ifb"
+ break
+Index: xen-4.13.0-testing/tools/hotplug/Linux/vif-bridge
+===================================================================
+--- xen-4.13.0-testing.orig/tools/hotplug/Linux/vif-bridge
++++ xen-4.13.0-testing/tools/hotplug/Linux/vif-bridge
+@@ -40,7 +40,12 @@ bridge=$(xenstore_read_default "$XENBUS_
+
+ if [ -z "$bridge" ]
+ then
+- bridge=$(brctl show | awk 'NR==2{print$1}')
++ if [ "$legacy_tools" ]; then
++ bridge=$(brctl show | awk 'NR==2{print$1}')
++ else
++ bridge=$(ip --oneline link show type bridge | awk '(NR == 1) { print $2; }')
++ bridge="${bridge%:}"
++ fi
+
+ if [ -z "$bridge" ]
+ then
+@@ -89,8 +94,13 @@ case "$command" in
+ ;;
+
+ offline)
+- do_without_error brctl delif "$bridge" "$dev"
+- do_without_error ifconfig "$dev" down
++ if [ "$legacy_tools" ]; then
++ do_without_error brctl delif "$bridge" "$dev"
++ do_without_error ifconfig "$dev" down
++ else
++ do_without_error ip link set "$dev" nomaster
++ do_without_error ip link set "$dev" down
++ fi
+ ;;
+
+ add)
+Index: xen-4.13.0-testing/tools/hotplug/Linux/vif-nat
+===================================================================
+--- xen-4.13.0-testing.orig/tools/hotplug/Linux/vif-nat
++++ xen-4.13.0-testing/tools/hotplug/Linux/vif-nat
+@@ -174,7 +174,11 @@ case "$command" in
+ ;;
+ offline)
+ [ "$dhcp" != 'no' ] && dhcp_down
+- do_without_error ifconfig "${dev}" down
++ if [ "$legacy_tools" ]; then
++ do_without_error ifconfig "${dev}" down
++ else
++ do_without_error ip link set "${dev}" down
++ fi
+ ;;
+ esac
+
+Index: xen-4.13.0-testing/tools/hotplug/Linux/vif-route
+===================================================================
+--- xen-4.13.0-testing.orig/tools/hotplug/Linux/vif-route
++++ xen-4.13.0-testing/tools/hotplug/Linux/vif-route
+@@ -25,7 +25,12 @@ case "${command}" in
+ add)
+ ;&
+ online)
+- ifconfig ${dev} ${main_ip} netmask 255.255.255.255 up
++ if [ "$legacy_tools" ]; then
++ ifconfig ${dev} ${main_ip} netmask 255.255.255.255 up
++ else
++ ip addr add "${main_ip}/32" dev "$dev"
++ fi
++ ip link set "dev" up
+ echo 1 >/proc/sys/net/ipv4/conf/${dev}/proxy_arp
+ ipcmd='add'
+ cmdprefix=''
+@@ -33,7 +38,12 @@ case "${command}" in
+ remove)
+ ;&
+ offline)
+- do_without_error ifdown ${dev}
++ if [ "$legacy_tools" ]; then
++ do_without_error ifdown ${dev}
++ else
++ do_without_error ip addr flush dev "$dev"
++ do_without_error ip link set "$dev" down
++ fi
+ ipcmd='del'
+ cmdprefix='do_without_error'
+ ;;
+Index: xen-4.13.0-testing/tools/hotplug/Linux/vif2
+===================================================================
+--- xen-4.13.0-testing.orig/tools/hotplug/Linux/vif2
++++ xen-4.13.0-testing/tools/hotplug/Linux/vif2
+@@ -7,13 +7,22 @@ dir=$(dirname "$0")
+ bridge=$(xenstore_read_default "$XENBUS_PATH/bridge" "$bridge")
+ if [ -z "$bridge" ]
+ then
+- nr_bridges=$(($(brctl show | cut -f 1 | grep -v "^$" | wc -l) - 1))
++ if [ "$legacy_tools" ]; then
++ nr_bridges=$(($(brctl show | cut -f 1 | grep -v "^$" | wc -l) - 1))
++ else
++ nr_bridges=$(ip --oneline link show type bridge | wc -l)
++ fi
+ if [ "$nr_bridges" != 1 ]
+ then
+ fatal "no bridge specified, and don't know which one to use ($nr_bridges found)"
+ fi
+- bridge=$(brctl show | cut -d "
++ if [ "$legacy_tools" ]; then
++ bridge=$(brctl show | cut -d "
+ " -f 2 | cut -f 1)
++ else
++ bridge=$(ip --oneline link show type bridge | head -1 | cut -d ' ' -f2)
++ bridge="${bridge%:}"
++ fi
+ fi
+
+ command="$1"
+Index: xen-4.13.0-testing/tools/hotplug/Linux/xen-network-common.sh
+===================================================================
+--- xen-4.13.0-testing.orig/tools/hotplug/Linux/xen-network-common.sh
++++ xen-4.13.0-testing/tools/hotplug/Linux/xen-network-common.sh
+@@ -15,6 +15,12 @@
+ #
+
+
++# Use brctl and ifconfig on older systems
++legacy_tools=
++if [ -f /sbin/brctl -a -f /sbin/ifconfig ]; then
++ legacy_tools="true"
++fi
++
+ # Gentoo doesn't have ifup/ifdown, so we define appropriate alternatives.
+
+ # Other platforms just use ifup / ifdown directly.
+@@ -111,9 +117,13 @@ create_bridge () {
+
+ # Don't create the bridge if it already exists.
+ if [ ! -e "/sys/class/net/${bridge}/bridge" ]; then
+- brctl addbr ${bridge}
+- brctl stp ${bridge} off
+- brctl setfd ${bridge} 0
++ if [ "$legacy_tools" ]; then
++ brctl addbr ${bridge}
++ brctl stp ${bridge} off
++ brctl setfd ${bridge} 0
++ else
++ ip link add "$bridge" type bridge stp_state 0 forward_delay 0
++ fi
+ fi
+ }
+
+@@ -127,7 +137,11 @@ add_to_bridge () {
+ ip link set dev ${dev} up || true
+ return
+ fi
+- brctl addif ${bridge} ${dev}
++ if [ "$legacy_tools" ]; then
++ brctl addif ${bridge} ${dev}
++ else
++ ip link set "$dev" master "$bridge"
++ fi
+ ip link set dev ${dev} up
+ }
+
diff --git a/reproducible.patch b/reproducible.patch
new file mode 100644
index 0000000..2a8f758
--- /dev/null
+++ b/reproducible.patch
@@ -0,0 +1,44 @@
+commit e4c8f21e198e739e279b274c17e9246ea9a6d8e5
+Author: Bernhard M. Wiedemann <bwiedemann@suse.de>
+Date: Wed Oct 24 09:50:26 2018 +0200
+
+ x86/efi: Do not insert timestamps in efi files
+
+ in order to make builds reproducible.
+ See https://reproducible-builds.org/ for why this is good.
+
+ We only add the option, if ld understands it.
+
+ Signed-off-by: Bernhard M. Wiedemann <bwiedemann@suse.de>
+
+Index: xen-4.13.0-testing/Config.mk
+===================================================================
+--- xen-4.13.0-testing.orig/Config.mk
++++ xen-4.13.0-testing/Config.mk
+@@ -151,6 +151,14 @@ export XEN_HAS_BUILD_ID=y
+ build_id_linker := --build-id=sha1
+ endif
+
++ld-ver-timestamp = $(shell $(1) -mi386pep --no-insert-timestamp 2>&1 | \
++ grep -q no-insert-timestamp && echo n || echo y)
++ifeq ($(call ld-ver-timestamp,$(LD)),n)
++ld_no_insert_timestamp :=
++else
++ld_no_insert_timestamp := --no-insert-timestamp
++endif
++
+ ifndef XEN_HAS_CHECKPOLICY
+ CHECKPOLICY ?= checkpolicy
+ XEN_HAS_CHECKPOLICY := $(shell $(CHECKPOLICY) -h 2>&1 | grep -q xen && echo y || echo n)
+Index: xen-4.13.0-testing/xen/arch/x86/Makefile
+===================================================================
+--- xen-4.13.0-testing.orig/xen/arch/x86/Makefile
++++ xen-4.13.0-testing/xen/arch/x86/Makefile
+@@ -164,6 +164,7 @@ note.o: $(TARGET)-syms
+
+ EFI_LDFLAGS = $(patsubst -m%,-mi386pep,$(LDFLAGS)) --subsystem=10
+ EFI_LDFLAGS += --image-base=$(1) --stack=0,0 --heap=0,0 --strip-debug
++EFI_LDFLAGS += $(ld_no_insert_timestamp)
+ EFI_LDFLAGS += --section-alignment=0x200000 --file-alignment=0x20
+ EFI_LDFLAGS += --major-image-version=$(XEN_VERSION)
+ EFI_LDFLAGS += --minor-image-version=$(XEN_SUBVERSION)
diff --git a/sources b/sources
new file mode 100644
index 0000000..b0d3209
--- /dev/null
+++ b/sources
@@ -0,0 +1,5 @@
+1b0d5cb7aba39268a01fd3c41f053cfb ipxe.tar.bz2
+e2ab153686cc35e2ffc1864497039505 mini-os.tar.bz2
+bcccb59d2722b9dde95714847866a1e7 stubdom.tar.bz2
+70b1bb4c4183e30c6b1145feadaf4e3b xen-4.13.1-testing-src.tar.bz2
+0c863543aa9909f5660d63aa7c28efed xen-utils-0.1.tar.bz2
diff --git a/stdvga-cache.patch b/stdvga-cache.patch
new file mode 100644
index 0000000..e4a0f1f
--- /dev/null
+++ b/stdvga-cache.patch
@@ -0,0 +1,16 @@
+Index: xen-4.9.0-testing/xen/arch/x86/hvm/stdvga.c
+===================================================================
+--- xen-4.9.0-testing.orig/xen/arch/x86/hvm/stdvga.c
++++ xen-4.9.0-testing/xen/arch/x86/hvm/stdvga.c
+@@ -166,7 +166,10 @@ static int stdvga_outb(uint64_t addr, ui
+
+ /* When in standard vga mode, emulate here all writes to the vram buffer
+ * so we can immediately satisfy reads without waiting for qemu. */
+- s->stdvga = (s->sr[7] == 0x00);
++ s->stdvga =
++ (s->sr[7] == 0x00) && /* standard vga mode */
++ (s->gr[6] == 0x05); /* misc graphics register w/ MemoryMapSelect=1
++ * 0xa0000-0xaffff (64k region), AlphaDis=1 */
+
+ if ( !prev_stdvga && s->stdvga )
+ {
diff --git a/stubdom-have-iovec.patch b/stubdom-have-iovec.patch
new file mode 100644
index 0000000..6204a7e
--- /dev/null
+++ b/stubdom-have-iovec.patch
@@ -0,0 +1,26 @@
+Because of commit 76eb7cef6b84ca804f4db340e23ad9c501767c32
+xc_private.h now contains a definition of iovec. This conflicts
+when building qemu traditional xen_platform.c which includes
+hw.h which includes qemu-common.h which already has a definition
+of iovec
+Index: xen-4.12.0-testing/tools/libxc/xc_private.h
+===================================================================
+--- xen-4.12.0-testing.orig/tools/libxc/xc_private.h
++++ xen-4.12.0-testing/tools/libxc/xc_private.h
+@@ -50,6 +50,8 @@
+ #endif
+
+ #if defined(__MINIOS__)
++#ifndef HAVE_IOVEC
++#define HAVE_IOVEC
+ /*
+ * MiniOS's libc doesn't know about sys/uio.h or writev().
+ * Declare enough of sys/uio.h to compile.
+@@ -58,6 +60,7 @@ struct iovec {
+ void *iov_base;
+ size_t iov_len;
+ };
++#endif
+ #else
+ #include <sys/uio.h>
+ #endif
diff --git a/suse-xendomains-service.patch b/suse-xendomains-service.patch
new file mode 100644
index 0000000..ae8cd82
--- /dev/null
+++ b/suse-xendomains-service.patch
@@ -0,0 +1,20 @@
+xendomains: remove libvirtd conflict
+
+Conflicting with libvirtd is fine for upstream, where xl/libxl is king.
+But down the SUSE stream, we promote libvirt and all the libvirt-based
+tools. If a user installs libvirt on their SUSE Xen host, then libvirt
+should be king and override xendomains.
+
+bsc#1015348
+Index: xen-4.8.0-testing/tools/hotplug/Linux/systemd/xendomains.service.in
+===================================================================
+--- xen-4.8.0-testing.orig/tools/hotplug/Linux/systemd/xendomains.service.in
++++ xen-4.8.0-testing/tools/hotplug/Linux/systemd/xendomains.service.in
+@@ -5,7 +5,6 @@ After=proc-xen.mount xenstored.service x
+ After=network-online.target
+ After=remote-fs.target
+ ConditionPathExists=/proc/xen/capabilities
+-Conflicts=libvirtd.service
+
+ [Service]
+ Type=oneshot
diff --git a/suspend_evtchn_lock.patch b/suspend_evtchn_lock.patch
new file mode 100644
index 0000000..e2ed442
--- /dev/null
+++ b/suspend_evtchn_lock.patch
@@ -0,0 +1,78 @@
+Fix problems that suspend eventchannel lock file might be obselete for some reason
+like segment fault or other abnormal exit, and once obselete lock file exists,
+it might affact latter save process.
+Have discussed with upstream, for some reason not accepted.
+http://xen.1045712.n5.nabble.com/Re-PATCH-improve-suspend-evtchn-lock-processing-td3395229.html
+
+Signed-off-by: Chunyan Liu <cyliu@suse.com>
+
+Index: xen-4.10.0-testing/tools/libxc/xc_suspend.c
+===================================================================
+--- xen-4.10.0-testing.orig/tools/libxc/xc_suspend.c
++++ xen-4.10.0-testing/tools/libxc/xc_suspend.c
+@@ -20,6 +20,10 @@
+
+ #include "xc_private.h"
+ #include "xenguest.h"
++#include <signal.h>
++#ifdef __MINIOS__
++extern int kill (__pid_t __pid, int __sig);
++#endif
+
+ #define SUSPEND_LOCK_FILE XEN_RUN_DIR "/suspend-evtchn-%d.lock"
+
+@@ -35,6 +39,37 @@
+
+ #define SUSPEND_FILE_BUFLEN (sizeof(SUSPEND_LOCK_FILE) + 10)
+
++/* cleanup obsolete suspend lock file which is unlinked for any reason,
++so that current process can get lock */
++static void clean_obsolete_lock(int domid)
++{
++ int fd, pid, n;
++ char buf[128];
++ char suspend_file[256];
++
++ snprintf(suspend_file, sizeof(suspend_file), "%s_%d_lock.d",
++ SUSPEND_LOCK_FILE, domid);
++ fd = open(suspend_file, O_RDWR);
++
++ if (fd < 0)
++ return;
++
++ n = read(fd, buf, 127);
++
++ close(fd);
++
++ if (n > 0)
++ {
++ sscanf(buf, "%d", &pid);
++ /* pid does not exist, this lock file is obsolete, just delete it */
++ if ( kill(pid,0) )
++ {
++ unlink(suspend_file);
++ return;
++ }
++ }
++}
++
+ static void get_suspend_file(char buf[], uint32_t domid)
+ {
+ snprintf(buf, SUSPEND_FILE_BUFLEN, SUSPEND_LOCK_FILE, domid);
+@@ -48,6 +83,7 @@ static int lock_suspend_event(xc_interfa
+ struct flock fl;
+
+ get_suspend_file(suspend_file, domid);
++ clean_obsolete_lock(domid);
+
+ *lockfd = -1;
+
+@@ -97,6 +133,8 @@ static int lock_suspend_event(xc_interfa
+ if (fd >= 0)
+ close(fd);
+
++ unlink(suspend_file);
++
+ return -1;
+ }
+
diff --git a/sysconfig.pciback b/sysconfig.pciback
new file mode 100644
index 0000000..90ef943
--- /dev/null
+++ b/sysconfig.pciback
@@ -0,0 +1,9 @@
+## Path: System/Virtualization
+## Type: string
+## Default: ""
+#
+# Space delimited list of PCI devices to late bind to pciback
+# Format: <driver>,<PCI ID>
+#
+#XEN_PCI_HIDE_LIST="e1000,0000:0b:00.0 e1000,0000:0b:00.1"
+XEN_PCI_HIDE_LIST=""
diff --git a/tmp_build.patch b/tmp_build.patch
new file mode 100644
index 0000000..fc2b287
--- /dev/null
+++ b/tmp_build.patch
@@ -0,0 +1,42 @@
+Note: During the make process we can't have both xenstore and
+domu-xenstore linking the sub command files from /usr/bin.
+
+For example,
+xen-tools: /usr/bin/xenstore-ls -> xenstore
+xen-tools-domU: /usr/bin/xenstore-ls -> domu-xenstore
+
+The last thing to create this link overwrites the previous link
+and breaks the packaging. For this reason this patch puts domu-xenstore
+with its links in /bin so as to not interfere with the regular xenstore
+links.
+
+---
+ tools/xenstore/Makefile | 6 ++++--
+ 1 file changed, 4 insertions(+), 2 deletions(-)
+
+Index: xen-4.11.1-testing/tools/xenstore/Makefile
+===================================================================
+--- xen-4.11.1-testing.orig/tools/xenstore/Makefile
++++ xen-4.11.1-testing/tools/xenstore/Makefile
+@@ -93,6 +93,7 @@ $(CLIENTS_DOMU): xenstore
+
+ xenstore: xenstore_client.o $(LIBXENSTORE)
+ $(CC) $< $(LDFLAGS) $(LDLIBS_libxenstore) $(LDLIBS_libxentoolcore) $(SOCKET_LIBS) -o $@ $(APPEND_LDFLAGS)
++ $(CC) $< $(CFLAGS) $(LDFLAGS) -Wl,--build-id=sha1 -L. -lxenstore $(LDLIBS_libxentoolcore) $(SOCKET_LIBS) -o domu-$@
+
+ xenstore-control: xenstore_control.o $(LIBXENSTORE)
+ $(CC) $< $(LDFLAGS) $(LDLIBS_libxenstore) $(LDLIBS_libxentoolcore) $(SOCKET_LIBS) -o $@ $(APPEND_LDFLAGS)
+@@ -172,10 +173,11 @@ endif
+ $(INSTALL_PROG) xenstore-control $(DESTDIR)$(bindir)
+ $(INSTALL_PROG) xenstore $(DESTDIR)$(bindir)
+ set -e ; for c in $(CLIENTS) ; do \
+- ln -f $(DESTDIR)$(bindir)/xenstore $(DESTDIR)$(bindir)/$${c} ; \
++ ln -fs xenstore $(DESTDIR)$(bindir)/$${c} ; \
+ done
++ $(INSTALL_PROG) domu-xenstore $(DESTDIR)/bin
+ for client in $(CLIENTS_DOMU); do \
+- $(INSTALL_PROG) $$client $(DESTDIR)$(bindir)/$${client/domu-}; \
++ ln -fs domu-xenstore $(DESTDIR)/bin/$${client/domu-} ; \
+ done
+ $(INSTALL_DIR) $(DESTDIR)$(libdir)
+ $(INSTALL_SHLIB) libxenstore.so.$(MAJOR).$(MINOR) $(DESTDIR)$(libdir)
diff --git a/vif-bridge-no-iptables.patch b/vif-bridge-no-iptables.patch
new file mode 100644
index 0000000..b3dffc2
--- /dev/null
+++ b/vif-bridge-no-iptables.patch
@@ -0,0 +1,13 @@
+Index: xen-4.5.0-testing/tools/hotplug/Linux/vif-bridge
+===================================================================
+--- xen-4.5.0-testing.orig/tools/hotplug/Linux/vif-bridge
++++ xen-4.5.0-testing/tools/hotplug/Linux/vif-bridge
+@@ -93,7 +93,7 @@ case "$command" in
+ ;;
+ esac
+
+-handle_iptable
++#handle_iptable
+
+ call_hooks vif post
+
diff --git a/vif-bridge-tap-fix.patch b/vif-bridge-tap-fix.patch
new file mode 100644
index 0000000..b4ad2ec
--- /dev/null
+++ b/vif-bridge-tap-fix.patch
@@ -0,0 +1,30 @@
+# HG changeset patch
+# User Jim Fehlig <jfehlig@suse.com>
+# Date 1319581952 21600
+# Node ID 74da2a3a1db1476d627f42e4a99e9e720cc6774d
+# Parent 6c583d35d76dda2236c81d9437ff9d57ab02c006
+Prevent vif-bridge from adding user-created tap interfaces to a bridge
+
+Exit vif-bridge script if there is no device info in xenstore, preventing
+it from adding user-created taps to bridges.
+
+ Signed-off-by: Jim Fehlig <jfehlig@suse.com>
+
+Index: xen-4.5.0-testing/tools/hotplug/Linux/vif-bridge
+===================================================================
+--- xen-4.5.0-testing.orig/tools/hotplug/Linux/vif-bridge
++++ xen-4.5.0-testing/tools/hotplug/Linux/vif-bridge
+@@ -28,6 +28,13 @@
+ dir=$(dirname "$0")
+ . "$dir/vif-common.sh"
+
++mac=$(xenstore_read_default "$XENBUS_PATH/mac" "")
++if [ -z "$mac" ]
++then
++ log debug "No device details in $XENBUS_PATH, exiting."
++ exit 0
++fi
++
+ bridge=${bridge:-}
+ bridge=$(xenstore_read_default "$XENBUS_PATH/bridge" "$bridge")
+
diff --git a/vif-route.patch b/vif-route.patch
new file mode 100644
index 0000000..28fda9d
--- /dev/null
+++ b/vif-route.patch
@@ -0,0 +1,25 @@
+References: bsc#985503
+
+Index: xen-4.13.0-testing/tools/hotplug/Linux/vif-route
+===================================================================
+--- xen-4.13.0-testing.orig/tools/hotplug/Linux/vif-route
++++ xen-4.13.0-testing/tools/hotplug/Linux/vif-route
+@@ -61,11 +61,13 @@ case "${type_if}" in
+ ;;
+ esac
+
+-# If we've been given a list of IP addresses, then add routes from dom0 to
+-# the guest using those addresses.
+-for addr in ${ip} ; do
+- ${cmdprefix} ip route ${ipcmd} ${addr} dev ${dev} src ${main_ip} metric ${metric}
+-done
++if [ "${ip}" ] && [ "${ipcmd}" ] ; then
++ # If we've been given a list of IP addresses, then add routes from dom0 to
++ # the guest using those addresses.
++ for addr in ${ip} ; do
++ ${cmdprefix} ip route ${ipcmd} ${addr} dev ${dev} src ${main_ip} metric ${metric}
++ done
++fi
+
+ handle_iptable
+
diff --git a/x86-cpufreq-report.patch b/x86-cpufreq-report.patch
new file mode 100644
index 0000000..018e8a0
--- /dev/null
+++ b/x86-cpufreq-report.patch
@@ -0,0 +1,84 @@
+Index: xen-4.12.0-testing/xen/arch/x86/platform_hypercall.c
+===================================================================
+--- xen-4.12.0-testing.orig/xen/arch/x86/platform_hypercall.c
++++ xen-4.12.0-testing/xen/arch/x86/platform_hypercall.c
+@@ -25,7 +25,7 @@
+ #include <xen/symbols.h>
+ #include <asm/current.h>
+ #include <public/platform.h>
+-#include <acpi/cpufreq/processor_perf.h>
++#include <acpi/cpufreq/cpufreq.h>
+ #include <asm/edd.h>
+ #include <asm/mtrr.h>
+ #include <asm/io_apic.h>
+@@ -807,6 +807,41 @@ ret_t do_platform_op(XEN_GUEST_HANDLE_PA
+ ret = -EFAULT;
+ }
+ break;
++
++ case XENPF_get_cpu_freq:
++ case XENPF_get_cpu_freq_min:
++ case XENPF_get_cpu_freq_max:
++ {
++ struct vcpu *v;
++ const struct cpufreq_policy *policy;
++
++ if ( op->u.get_cpu_freq.vcpu >= current->domain->max_vcpus ||
++ !(v = current->domain->vcpu[op->u.get_cpu_freq.vcpu]) )
++ {
++ ret = -EINVAL;
++ break;
++ }
++
++ policy = per_cpu(cpufreq_cpu_policy, v->processor);
++ switch ( op->cmd & -!!policy )
++ {
++ case XENPF_get_cpu_freq:
++ op->u.get_cpu_freq.freq = policy->cur;
++ break;
++ case XENPF_get_cpu_freq_min:
++ op->u.get_cpu_freq.freq = policy->min;
++ break;
++ case XENPF_get_cpu_freq_max:
++ op->u.get_cpu_freq.freq = policy->max;
++ break;
++ default:
++ op->u.get_cpu_freq.freq = 0;
++ break;
++ }
++ if ( __copy_field_to_guest(u_xenpf_op, op, u.get_cpu_freq.freq) )
++ ret = -EFAULT;
++ }
++ break;
+
+ default:
+ ret = -ENOSYS;
+Index: xen-4.12.0-testing/xen/include/public/platform.h
+===================================================================
+--- xen-4.12.0-testing.orig/xen/include/public/platform.h
++++ xen-4.12.0-testing/xen/include/public/platform.h
+@@ -553,6 +553,16 @@ struct xenpf_core_parking {
+ typedef struct xenpf_core_parking xenpf_core_parking_t;
+ DEFINE_XEN_GUEST_HANDLE(xenpf_core_parking_t);
+
++#define XENPF_get_cpu_freq ('N' << 24)
++#define XENPF_get_cpu_freq_min (XENPF_get_cpu_freq + 1)
++#define XENPF_get_cpu_freq_max (XENPF_get_cpu_freq_min + 1)
++struct xenpf_get_cpu_freq {
++ /* IN variables */
++ uint32_t vcpu;
++ /* OUT variables */
++ uint32_t freq; /* in kHz */
++};
++
+ /*
+ * Access generic platform resources(e.g., accessing MSR, port I/O, etc)
+ * in unified way. Batch resource operations in one call are supported and
+@@ -644,6 +654,7 @@ struct xen_platform_op {
+ struct xenpf_core_parking core_parking;
+ struct xenpf_resource_op resource_op;
+ struct xenpf_symdata symdata;
++ struct xenpf_get_cpu_freq get_cpu_freq;
+ uint8_t pad[128];
+ } u;
+ };
diff --git a/x86-ioapic-ack-default.patch b/x86-ioapic-ack-default.patch
new file mode 100644
index 0000000..8ae0ac5
--- /dev/null
+++ b/x86-ioapic-ack-default.patch
@@ -0,0 +1,18 @@
+Change default IO-APIC ack mode for single IO-APIC systems to old-style.
+
+Index: xen-4.13.0-testing/xen/arch/x86/io_apic.c
+===================================================================
+--- xen-4.13.0-testing.orig/xen/arch/x86/io_apic.c
++++ xen-4.13.0-testing/xen/arch/x86/io_apic.c
+@@ -2029,7 +2029,10 @@ void __init setup_IO_APIC(void)
+ io_apic_irqs = ~PIC_IRQS;
+
+ printk("ENABLING IO-APIC IRQs\n");
+- printk(" -> Using %s ACK method\n", ioapic_ack_new ? "new" : "old");
++ if (!directed_eoi_enabled && !ioapic_ack_forced) {
++ ioapic_ack_new = (nr_ioapics > 1);
++ printk(" -> Using %s ACK method\n", ioapic_ack_new ? "new" : "old");
++ }
+
+ if (ioapic_ack_new) {
+ ioapic_level_type.ack = irq_complete_move;
diff --git a/xen-arch-kconfig-nr_cpus.patch b/xen-arch-kconfig-nr_cpus.patch
new file mode 100644
index 0000000..3f2ed78
--- /dev/null
+++ b/xen-arch-kconfig-nr_cpus.patch
@@ -0,0 +1,13 @@
+Index: xen-4.12.0-testing/xen/arch/Kconfig
+===================================================================
+--- xen-4.12.0-testing.orig/xen/arch/Kconfig
++++ xen-4.12.0-testing/xen/arch/Kconfig
+@@ -2,7 +2,7 @@
+ config NR_CPUS
+ int "Maximum number of physical CPUs"
+ range 1 4095
+- default "256" if X86
++ default "1024" if X86
+ default "8" if ARM && RCAR3
+ default "4" if ARM && QEMU
+ default "4" if ARM && MPSOC
diff --git a/xen-destdir.patch b/xen-destdir.patch
new file mode 100644
index 0000000..4fb1ed9
--- /dev/null
+++ b/xen-destdir.patch
@@ -0,0 +1,57 @@
+Index: xen-4.11.0-testing/tools/xenstore/Makefile
+===================================================================
+--- xen-4.11.0-testing.orig/tools/xenstore/Makefile
++++ xen-4.11.0-testing/tools/xenstore/Makefile
+@@ -20,6 +20,7 @@ LDFLAGS += $(LDFLAGS-y)
+
+ CLIENTS := xenstore-exists xenstore-list xenstore-read xenstore-rm xenstore-chmod
+ CLIENTS += xenstore-write xenstore-ls xenstore-watch
++CLIENTS_DOMU := $(patsubst xenstore-%,domu-xenstore-%,$(CLIENTS))
+
+ XENSTORED_OBJS = xenstored_core.o xenstored_watch.o xenstored_domain.o
+ XENSTORED_OBJS += xenstored_transaction.o xenstored_control.o
+@@ -57,7 +58,7 @@ endif
+ all: $(ALL_TARGETS)
+
+ .PHONY: clients
+-clients: xenstore $(CLIENTS) xenstore-control
++clients: xenstore $(CLIENTS) $(CLIENTS_DOMU) xenstore-control
+
+ ifeq ($(CONFIG_SunOS),y)
+ xenstored_probes.h: xenstored_probes.d
+@@ -87,6 +88,9 @@ xenstored.a: $(XENSTORED_OBJS)
+ $(CLIENTS): xenstore
+ ln -f xenstore $@
+
++$(CLIENTS_DOMU): xenstore
++ ln -f xenstore $@
++
+ xenstore: xenstore_client.o $(LIBXENSTORE)
+ $(CC) $< $(LDFLAGS) $(LDLIBS_libxenstore) $(LDLIBS_libxentoolcore) $(SOCKET_LIBS) -o $@ $(APPEND_LDFLAGS)
+
+@@ -139,7 +143,7 @@ clean:
+ rm -f *.a *.o *.opic *.so* xenstored_probes.h
+ rm -f xenstored xs_random xs_stress xs_crashme
+ rm -f xs_tdb_dump xenstore-control init-xenstore-domain
+- rm -f xenstore $(CLIENTS)
++ rm -f xenstore $(CLIENTS) $(CLIENTS_DOMU)
+ rm -f xenstore.pc
+ $(RM) $(DEPS_RM)
+
+@@ -163,12 +167,16 @@ ifeq ($(XENSTORE_XENSTORED),y)
+ $(INSTALL_DIR) $(DESTDIR)$(sbindir)
+ $(INSTALL_DIR) $(DESTDIR)$(XEN_LIB_STORED)
+ $(INSTALL_PROG) xenstored $(DESTDIR)$(sbindir)
++ $(INSTALL_DIR) $(DESTDIR)/bin
+ endif
+ $(INSTALL_PROG) xenstore-control $(DESTDIR)$(bindir)
+ $(INSTALL_PROG) xenstore $(DESTDIR)$(bindir)
+ set -e ; for c in $(CLIENTS) ; do \
+ ln -f $(DESTDIR)$(bindir)/xenstore $(DESTDIR)$(bindir)/$${c} ; \
+ done
++ for client in $(CLIENTS_DOMU); do \
++ $(INSTALL_PROG) $$client $(DESTDIR)$(bindir)/$${client/domu-}; \
++ done
+ $(INSTALL_DIR) $(DESTDIR)$(libdir)
+ $(INSTALL_SHLIB) libxenstore.so.$(MAJOR).$(MINOR) $(DESTDIR)$(libdir)
+ ln -sf libxenstore.so.$(MAJOR).$(MINOR) $(DESTDIR)$(libdir)/libxenstore.so.$(MAJOR)
diff --git a/xen-dom0-modules.service b/xen-dom0-modules.service
new file mode 100644
index 0000000..aa5002c
--- /dev/null
+++ b/xen-dom0-modules.service
@@ -0,0 +1,16 @@
+[Unit]
+Description=Load dom0 backend drivers
+ConditionPathExists=/proc/xen
+Before=xenstored.service xen-watchdog.service
+
+[Install]
+WantedBy=multi-user.target
+
+[Service]
+Type=oneshot
+RemainAfterExit=true
+Environment=PATH=/usr/local/sbin:/usr/sbin:/sbin:/usr/local/bin:/usr/bin:/bin
+# dummy to have always one valid line
+ExecStart=-/usr/bin/env uname -a
+# modules listed in /usr/lib/modules.d/xen.conf
+# load them manually to avoid usage of system-modules-load.service
diff --git a/xen-supportconfig b/xen-supportconfig
new file mode 100644
index 0000000..4d8c4ec
--- /dev/null
+++ b/xen-supportconfig
@@ -0,0 +1,106 @@
+#!/bin/bash
+#############################################################
+# Name: Supportconfig Plugin for Xen
+# Description: Gathers important troubleshooting information
+# about Xen and its tools
+# Author: Jim Fehlig <jfehlig@suse.com>
+#############################################################
+
+# TODO:
+# - Anything needed for UEFI?
+#
+
+RCFILE="/usr/lib/supportconfig/resources/scplugin.rc"
+
+GRUB2_CONF_FILES="/etc/default/grub"
+XEN_CONF_FILES="/etc/xen/xl.conf /etc/sysconfig/xencommons /etc/sysconfig/xendomains"
+XEN_SERVICES="xencommons xendomains xen-watchdog"
+VM_CONF_FILES=""
+XEN_LOG_FILES=""
+
+if [ -s $RCFILE ]; then
+ if ! source $RCFILE; then
+ echo "ERROR: Initializing resource file: $RCFILE" >&2
+ exit 1
+ fi
+fi
+
+rpm_verify() {
+ thisrpm="$1"
+ local ret=0
+
+ echo
+ echo "#==[ Validating RPM ]=================================#"
+ if rpm -q "$thisrpm" >/dev/null 2>&1; then
+ echo "# rpm -V $thisrpm"
+
+ if rpm -V "$thisrpm"; then
+ echo "Status: Passed"
+ else
+ echo "Status: WARNING"
+ fi
+ else
+ echo "package $thisrpm is not installed"
+ ret=1
+ fi
+ echo
+ return $ret
+}
+
+# if no xen package we are done
+if ! rpm_verify xen; then
+ echo "Skipped"
+ exit 0
+fi
+
+# if not a xen host (dom0) we are done
+echo "#==[ Checking if booted Xen ]=================================#"
+if [ ! -d /proc/xen ] || [ ! -e /proc/xen/capabilities ] || [ `cat /proc/xen/capabilities` != "control_d" ]; then
+ echo "No"
+ echo "Skipped"
+ exit 0
+else
+ echo "Yes"
+ echo
+fi
+
+# basic system information:
+plugin_command "uname -r"
+for service in $XEN_SERVICES; do
+ plugin_command "systemctl status $service"
+ plugin_command "systemctl is-enabled $service"
+done
+plugin_command "lscpu"
+plugin_command "xl info --numa"
+plugin_command "xl list"
+plugin_command "xl pci-assignable-list"
+plugin_command "xenstore-ls"
+plugin_command "ps -ef | grep xen"
+# dump grub2-related conf files
+pconf_files "$GRUB2_CONF_FILES"
+# dump Xen-related conf files
+pconf_files "$XEN_CONF_FILES"
+
+# detailed system info:
+plugin_command "xl list --long"
+plugin_command "xl dmesg"
+# network-related info often useful for debugging
+if [ systemctl is-enabled NetworkManager.service 2>&1 > /dev/null ]; then
+ echo "NOTE: NetworkManager should not be enabled on a Xen host"
+fi
+plugin_command "route -n"
+plugin_command "arp -v"
+plugin_command "ip link show type bridge"
+plugin_command "bridge link show"
+# list contents of common config and image directories
+plugin_command "ls -alR /etc/xen/vm/"
+plugin_command "ls -alR /etc/xen/auto/"
+plugin_command "ls -alR /var/lib/xen/images/"
+# dump VM-related conf files
+test -d /etc/xen/vm && VM_CONF_FILES=$(find -L /etc/xen/vm/ -type f | sort)
+pconf_files "$VM_CONF_FILES"
+# dump log files
+test -d /var/log/xen && XEN_LOG_FILES="$(find -L /var/log/xen/ -type f | grep 'log$' | sort)"
+plog_files 0 "$XEN_LOG_FILES"
+
+echo "Done"
diff --git a/xen.bug1026236.suse_vtsc_tolerance.patch b/xen.bug1026236.suse_vtsc_tolerance.patch
new file mode 100644
index 0000000..17c8b68
--- /dev/null
+++ b/xen.bug1026236.suse_vtsc_tolerance.patch
@@ -0,0 +1,58 @@
+suse_vtsc_tolerance=<val>
+Reference: bsc#1026236
+
+To avoid emulation of vTSC after live migration or save/restore allow
+different clock frequency up to the specified value. If the frequency
+is within the allowed range TSC access by the domU will be performed
+at native speed. Otherwise TSC access will be emulated. It is up to
+the hostadmin to decide how much tolerance all running domUs can
+actually handle. The default is zero tolerance.
+
+--- a/xen/arch/x86/time.c
++++ b/xen/arch/x86/time.c
+@@ -43,6 +43,9 @@
+ static char __initdata opt_clocksource[10];
+ string_param("clocksource", opt_clocksource);
+
++static unsigned int __read_mostly opt_suse_vtsc_tolerance;
++integer_param("suse_vtsc_tolerance", opt_suse_vtsc_tolerance);
++
+ unsigned long __read_mostly cpu_khz; /* CPU clock frequency in kHz. */
+ DEFINE_SPINLOCK(rtc_lock);
+ unsigned long pit0_ticks;
+@@ -2226,6 +2229,7 @@ int tsc_set_info(struct domain *d,
+
+ switch ( tsc_mode )
+ {
++ bool disable_vtsc;
+ case TSC_MODE_DEFAULT:
+ case TSC_MODE_ALWAYS_EMULATE:
+ d->arch.vtsc_offset = get_s_time() - elapsed_nsec;
+@@ -2239,8 +2243,26 @@ int tsc_set_info(struct domain *d,
+ * When a guest is created, gtsc_khz is passed in as zero, making
+ * d->arch.tsc_khz == cpu_khz. Thus no need to check incarnation.
+ */
++ disable_vtsc = d->arch.tsc_khz == cpu_khz;
++
++ if ( tsc_mode == TSC_MODE_DEFAULT && gtsc_khz &&
++ is_hvm_domain(d) && opt_suse_vtsc_tolerance )
++ {
++ long khz_diff;
++
++ khz_diff = ABS(((long)cpu_khz - gtsc_khz));
++ disable_vtsc = khz_diff <= opt_suse_vtsc_tolerance;
++
++ printk(XENLOG_G_INFO "d%d: host has %lu kHz,"
++ " domU expects %u kHz,"
++ " difference of %ld is %s tolerance of %u\n",
++ d->domain_id, cpu_khz, gtsc_khz, khz_diff,
++ disable_vtsc ? "within" : "outside",
++ opt_suse_vtsc_tolerance);
++ }
++
+ if ( tsc_mode == TSC_MODE_DEFAULT && host_tsc_is_safe() &&
+- (d->arch.tsc_khz == cpu_khz ||
++ (disable_vtsc ||
+ (is_hvm_domain(d) &&
+ hvm_get_tsc_scaling_ratio(d->arch.tsc_khz))) )
+ {
diff --git a/xen.build-compare.doc_html.patch b/xen.build-compare.doc_html.patch
new file mode 100644
index 0000000..1191b2c
--- /dev/null
+++ b/xen.build-compare.doc_html.patch
@@ -0,0 +1,31 @@
+The result of $(wildcard *) is random.
+Sort input files to reduce build-compare noise.
+
+---
+ docs/Makefile | 6 +++---
+ 1 file changed, 3 insertions(+), 3 deletions(-)
+
+Index: xen-4.13.1-testing/docs/Makefile
+===================================================================
+--- xen-4.13.1-testing.orig/docs/Makefile
++++ xen-4.13.1-testing/docs/Makefile
+@@ -191,7 +191,7 @@ uninstall: uninstall-man-pages uninstall
+
+ # Individual file build targets
+ html/index.html: $(DOC_HTML) $(CURDIR)/gen-html-index INDEX
+- $(PERL) -w -- $(CURDIR)/gen-html-index -i INDEX html $(DOC_HTML)
++ $(PERL) -w -- $(CURDIR)/gen-html-index -i INDEX html $(sort $(DOC_HTML))
+
+ html/%.txt: %.txt
+ @$(INSTALL_DIR) $(@D)
+@@ -206,8 +206,8 @@ html/hypercall/%/index.html: $(CURDIR)/x
+ $(INSTALL_DIR) $(@D)
+ $(PERL) -w $(CURDIR)/xen-headers -O $(@D) \
+ -T 'arch-$* - Xen public headers' \
+- $(patsubst %,-X arch-%,$(filter-out $*,$(DOC_ARCHES))) \
+- $(patsubst %,-X xen-%,$(filter-out $*,$(DOC_ARCHES))) \
++ $(sort $(patsubst %,-X arch-%,$(filter-out $*,$(DOC_ARCHES)))) \
++ $(sort $(patsubst %,-X xen-%,$(filter-out $*,$(DOC_ARCHES)))) \
+ $(EXTRA_EXCLUDE) \
+ $(XEN_ROOT)/xen include/public include/xen/errno.h
+
diff --git a/xen.changes b/xen.changes
new file mode 100644
index 0000000..76a703f
--- /dev/null
+++ b/xen.changes
@@ -0,0 +1,12678 @@
+-------------------------------------------------------------------
+Tue Oct 13 10:48:04 MDT 2020 - carnold@suse.com
+
+- bsc#1177409 - VUL-0: xen: x86 PV guest INVLPG-like flushes may
+ leave stale TLB entries (XSA-286)
+ xsa286-1.patch
+ xsa286-2.patch
+ xsa286-3.patch
+ xsa286-4.patch
+ xsa286-5.patch
+ xsa286-6.patch
+- bsc#1177412 - VUL-0: xen: Race condition in Xen mapping code
+ (XSA-345)
+ xsa345-1.patch
+ xsa345-2.patch
+ xsa345-3.patch
+- bsc#1177413 - VUL-0: xen: undue deferral of IOMMU TLB flushes
+ (XSA-346)
+ xsa346-1.patch
+ xsa346-2.patch
+- bsc#1177414 - VUL-0: xen: unsafe AMD IOMMU page table updates
+ (XSA-347)
+ xsa347-1.patch
+ xsa347-2.patch
+ xsa347-3.patch
+
+-------------------------------------------------------------------
+Fri Sep 11 11:11:11 UTC 2020 - ohering@suse.de
+
+- Escape some % chars in xen.spec, they have to appear verbatim
+
+-------------------------------------------------------------------
+Wed Sep 9 10:11:12 UTC 2020 - ohering@suse.de
+
+- Enhance libxc.migrate_tracking.patch
+ Print number of allocated pages on sending side, this is more
+ accurate than p2m_size.
+
+-------------------------------------------------------------------
+Tue Sep 8 11:20:40 MDT 2020 - carnold@suse.com
+
+- bsc#1176339 - VUL-0: CVE-2020-25602: xen: x86 pv: Crash when
+ handling guest access to MSR_MISC_ENABLE (XSA-333)
+ xsa333.patch
+- bsc#1176341 - VUL-0: CVE-2020-25598: xen: Missing unlock in
+ XENMEM_acquire_resource error path (XSA-334)
+ xsa334.patch
+- bsc#1176343 - VUL-0: CVE-2020-25604: xen: race when migrating
+ timers between x86 HVM vCPU-s (XSA-336)
+ xsa336.patch
+- bsc#1176344 - VUL-0: CVE-2020-25595: xen: PCI passthrough code
+ reading back hardware registers (XSA-337)
+ xsa337-1.patch
+ xsa337-2.patch
+- bsc#1176346 - VUL-0: CVE-2020-25597: xen: once valid event
+ channels may not turn invalid (XSA-338)
+ xsa338.patch
+- bsc#1176345 - VUL-0: CVE-2020-25596: xen: x86 pv guest kernel
+ DoS via SYSENTER (XSA-339)
+ xsa339.patch
+- bsc#1176347 - VUL-0: CVE-2020-25603: xen: Missing barrier
+ barriers when accessing/allocating an event channel (XSA-340)
+ xsa340.patch
+- bsc#1176348 - VUL-0: CVE-2020-25600: xen: out of bounds event
+ channels available to 32-bit x86 domains (XSA-342)
+ xsa342.patch
+- bsc#1176349 - VUL-0: CVE-2020-25599: xen: races with
+ evtchn_reset() (XSA-343)
+ xsa343-1.patch
+ xsa343-2.patch
+ xsa343-3.patch
+- bsc#1176350 - VUL-0: CVE-2020-25601: xen: lack of preemption in
+ evtchn_reset() / evtchn_destroy() (XSA-344)
+ xsa344-1.patch
+ xsa344-2.patch
+- Upstream bug fixes (bsc#1027519)
+ 5f479d9e-x86-begin-to-support-MSR_ARCH_CAPS.patch
+ 5f4cf06e-x86-Dom0-expose-MSR_ARCH_CAPS.patch
+ 5f4cf96a-x86-PV-fix-SEGBASE_GS_USER_SEL.patch
+ 5f560c42-x86-PV-64bit-segbase-consistency.patch
+
+-------------------------------------------------------------------
+Mon Aug 3 10:21:59 MDT 2020 - carnold@suse.com
+
+- Upstream bug fixes (bsc#1027519)
+ 5ef44e0d-x86-PMTMR-use-FADT-flags.patch
+ 5ef6156a-x86-disallow-access-to-PT-MSRs.patch
+ 5efcb354-x86-protect-CALL-JMP-straight-line-speculation.patch
+ 5f046c18-evtchn-dont-ignore-error-in-get_free_port.patch (Replaces xsa317.patch)
+ 5f046c48-x86-shadow-dirty-VRAM-inverted-conditional.patch (Replaces xsa319.patch)
+ 5f046c64-EPT-set_middle_entry-adjustments.patch (Replaces xsa328-1.patch)
+ 5f046c78-EPT-atomically-modify-ents-in-ept_next_level.patch (Replaces xsa328-2.patch)
+ 5f046c9a-VT-d-improve-IOMMU-TLB-flush.patch (Replaces xsa321-1.patch)
+ 5f046cb5-VT-d-prune-rename-cache-flush-funcs.patch (Replaces xsa321-2.patch)
+ 5f046cca-x86-IOMMU-introduce-cache-sync-hook.patch (Replaces xsa321-3.patch)
+ 5f046ce9-VT-d-sync_cache-misaligned-addresses.patch (Replaces xsa32141.patch)
+ 5f046cfd-x86-introduce-alternative_2.patch (Replaces xsa321-5.patch)
+ 5f046d1a-VT-d-optimize-CPU-cache-sync.patch (Replaces xsa321-6.patch)
+ 5f046d2b-EPT-flush-cache-when-modifying-PTEs.patch (Replaces xsa321-7.patch)
+ 5f046d5c-check-VCPUOP_register_vcpu_info-alignment.patch (Replaces xsa327.patch)
+ 5f1a9916-x86-S3-put-data-sregs-into-known-state.patch
+ 5f21b9fd-x86-cpuid-APIC-bit-clearing.patch
+
+-------------------------------------------------------------------
+Thu Jul 23 11:12:58 MDT 2020 - carnold@suse.com
+
+- bsc#1172356 - Not able to hot-plug NIC via virt-manager, asks to
+ attach on next reboot while it should be live attached
+ ignore-ip-command-script-errors.patch
+
+-------------------------------------------------------------------
+Fri Jul 17 14:14:14 UTC 2020 - ohering@suse.de
+
+- Enhance libxc.migrate_tracking.patch
+ After transfer of domU memory, the target host has to assemble
+ the backend devices. Track the time prior xc_domain_unpause.
+
+-------------------------------------------------------------------
+Tue Jun 30 18:03:40 UTC 2020 - ohering@suse.de
+
+- Add libxc.migrate_tracking.patch to track live migrations
+ unconditionally in logfiles, especially in libvirt.
+ This will track how long a domU was suspended during transit.
+
+-------------------------------------------------------------------
+Mon Jun 29 11:28:27 MDT 2020 - carnold@suse.com
+
+- bsc#1173376 - VUL-0: CVE-2020-15566: xen: XSA-317 - Incorrect
+ error handling in event channel port allocation
+ xsa317.patch
+- bsc#1173377 - VUL-0: CVE-2020-15563: xen: XSA-319 - inverted code
+ paths in x86 dirty VRAM tracking
+ xsa319.patch
+- bsc#1173378 - VUL-0: CVE-2020-15565: xen: XSA-321 - insufficient
+ cache write- back under VT-d
+ xsa321-1.patch
+ xsa321-2.patch
+ xsa321-3.patch
+ xsa321-4.patch
+ xsa321-5.patch
+ xsa321-6.patch
+ xsa321-7.patch
+- bsc#1173380 - VUL-0: CVE-2020-15567: xen: XSA-328 - non-atomic
+ modification of live EPT PTE
+ xsa328-1.patch
+ xsa328-2.patch
+
+-------------------------------------------------------------------
+Mon Jun 22 11:24:48 MDT 2020 - carnold@suse.com
+
+- bsc#1172205 - VUL-0: CVE-2020-0543: xen: Special Register Buffer
+ Data Sampling (SRBDS) aka "CrossTalk" (XSA-320)
+ 5ee24d0e-x86-spec-ctrl-document-SRBDS-workaround.patch
+ 5edfbbea-x86-spec-ctrl-CPUID-MSR-defs-for-SRBDS.patch (Replaces xsa320-1.patch)
+ 5edfbbea-x86-spec-ctrl-mitigate-SRBDS.patch (Replaces xsa320-2.patch)
+- Upstream bug fixes (bsc#1027519)
+ 5ec50b05-x86-idle-rework-C6-EOI-workaround.patch
+ 5ec7dcaa-x86-dont-enter-C6-with-in-service-intr.patch
+ 5ec7dcf6-x86-dont-enter-C3-C6-with-errata.patch
+ 5ec82237-x86-extend-ISR-C6-workaround-to-Haswell.patch
+ 5ece1b91-x86-clear-RDRAND-CPUID-bit-on-AMD-fam-15-16.patch
+ 5ece8ac4-x86-load_system_tables-NMI-MC-safe.patch
+ 5ed69804-x86-ucode-fix-start-end-update.patch
+ 5eda60cb-SVM-split-recalc-NPT-fault-handling.patch
+ 5edf6ad8-ioreq-pending-emulation-server-destruction-race.patch
+
+-------------------------------------------------------------------
+Fri Jun 5 16:42:16 UTC 2020 - Callum Farmer <callumjfarmer13@gmail.com>
+
+- Fixes for %_libexecdir changing to /usr/libexec
+
+-------------------------------------------------------------------
+Thu May 28 08:35:20 MDT 2020 - carnold@suse.com
+
+- bsc#1172205 - VUL-0: CVE-2020-0543: xen: Special Register Buffer
+ Data Sampling (SRBDS) aka "CrossTalk" (XSA-320)
+ xsa320-1.patch
+ xsa320-2.patch
+
+-------------------------------------------------------------------
+Mon May 18 10:55:26 MDT 2020 - carnold@suse.com
+
+- Update to Xen 4.13.1 bug fix release (bsc#1027519)
+ xen-4.13.1-testing-src.tar.bz2
+ 5eb51be6-cpupool-fix-removing-cpu-from-pool.patch
+ 5eb51caa-sched-vcpu-pause-flags-atomic.patch
+ 5ec2a760-x86-determine-MXCSR-mask-always.patch
+- Drop patches contained in new tarball
+ 5de65f84-gnttab-map-always-do-IOMMU-part.patch
+ 5de65fc4-x86-avoid-HPET-use-on-certain-Intel.patch
+ 5e15e03d-sched-fix-S3-resume-with-smt=0.patch
+ 5e16fb6a-x86-clear-per-cpu-stub-page-info.patch
+ 5e1da013-IRQ-u16-is-too-narrow-for-evtchn.patch
+ 5e1dcedd-Arm-place-speculation-barrier-after-ERET.patch
+ 5e21ce98-x86-time-update-TSC-stamp-after-deep-C-state.patch
+ 5e286cce-VT-d-dont-pass-bridges-to-domain_context_mapping_one.patch
+ 5e318cd4-x86-apic-fix-disabling-LVT0.patch
+ 5e344c11-x86-HVM-relinquish-resources-from-domain_destroy.patch
+ 5e3bd385-EFI-recheck-variable-name-strings.patch
+ 5e3bd3d1-EFI-dont-leak-heap-VIA-XEN_EFI_get_next_variable_name.patch
+ 5e3bd3f8-xmalloc-guard-against-overflow.patch
+ 5e46e090-x86-smp-reset-x2apic_enabled-in-smp_send_stop.patch
+ 5e4c00ef-VT-d-check-full-RMRR-for-E820-reserved.patch
+ 5e4d4f5b-sched-fix-get_cpu_idle_time-with-core-sched.patch
+ 5e4e614d-x86-spec-ctrl-no-xen-also-disables-branch-hardening.patch
+ 5e4ec20e-x86-virtualise-MSR_PLATFORM_ID-properly.patch
+ 5e5e7188-fix-error-path-in-cpupool_unassign_cpu_start.patch
+ 5e6f53dd-AMD-IOMMU-fix-off-by-one-get_paging_mode.patch
+ 5e7a371c-sched-fix-cpu-onlining-with-core-sched.patch
+ 5e7c90cf-sched-fix-cpu-offlining-with-core-sched.patch
+ 5e7cfb29-x86-ucode-AMD-fix-assert-in-compare_patch.patch
+ 5e7cfb29-x86-ucode-fix-error-paths-in-apply_microcode.patch
+ 5e7dd83b-libx86-CPUID-fix-not-just-leaf-7.patch
+ 5e7dfbf6-x86-ucode-AMD-potential-buffer-overrun-equiv-tab.patch
+ 5e846cce-x86-HVM-fix-AMD-ECS-handling-for-Fam10.patch
+ 5e84905c-x86-ucode-AMD-fix-more-potential-buffer-overruns.patch
+ 5e86f7b7-credit2-avoid-vCPUs-with-lower-creds-than-idle.patch
+ 5e86f7fd-credit2-fix-credit-too-few-resets.patch
+ 5e876b0f-tools-xenstore-fix-use-after-free-in-xenstored.patch
+ 5e95ad61-xenoprof-clear-buffer-intended-to-be-shared-with-guests.patch
+ 5e95ad8f-xenoprof-limit-consumption-of-shared-buffer-data.patch
+ 5e95ae77-Add-missing-memory-barrier-in-the-unlock-path-of-rwlock.patch
+ 5e95af5e-xen-gnttab-Fix-error-path-in-map_grant_ref.patch
+ 5e95afb8-gnttab-fix-GNTTABOP_copy-continuation-handling.patch
+
+-------------------------------------------------------------------
+Wed May 13 21:07:29 UTC 2020 - James Fehlig <jfehlig@suse.com>
+
+- spec: Remove invocation of autogen.sh
+- spec: Recommend qemu-ovmf-x86_64 to provide UEFI firmwares
+
+-------------------------------------------------------------------
+Wed May 13 09:56:49 MDT 2020 - carnold@suse.com
+
+- bsc#1170968 - GCC 10: xen build fails on i586
+ gcc10-fixes.patch
+
+-------------------------------------------------------------------
+Tue Apr 14 11:06:08 MDT 2020 - carnold@suse.com
+
+- bsc#1169392 - VUL-0: CVE-2020-11742: xen: Bad continuation
+ handling in GNTTABOP_copy (XSA-318)
+ 5e95afb8-gnttab-fix-GNTTABOP_copy-continuation-handling.patch
+
+-------------------------------------------------------------------
+Mon Apr 6 12:01:45 MDT 2020 - carnold@suse.com
+
+- bsc#1168140 - VUL-0: CVE-2020-11740, CVE-2020-11741: xen: XSA-313
+ multiple xenoprof issues
+ 5e95ad61-xenoprof-clear-buffer-intended-to-be-shared-with-guests.patch
+ 5e95ad8f-xenoprof-limit-consumption-of-shared-buffer-data.patch
+- bsc#1168142 - VUL-0: CVE-2020-11739: xen: XSA-314 - Missing
+ memory barriers in read-write unlock paths
+ 5e95ae77-Add-missing-memory-barrier-in-the-unlock-path-of-rwlock.patch
+- bsc#1168143 - VUL-0: CVE-2020-11743: xen: XSA-316 - Bad error
+ path in GNTTABOP_map_grant
+ 5e95af5e-xen-gnttab-Fix-error-path-in-map_grant_ref.patch
+- bsc#1167152 - L3: Xenstored Crashed during VM install Need Core
+ analyzed
+ 5e876b0f-tools-xenstore-fix-use-after-free-in-xenstored.patch
+- bsc#1165206 - Xen 4.12 DomU hang / freeze / stall / NMI watchdog
+ bug soft lockup CPU #0 stuck under high load / upstream with
+ workaround. See also bsc#1134506
+ 5e86f7b7-credit2-avoid-vCPUs-with-lower-creds-than-idle.patch
+ 5e86f7fd-credit2-fix-credit-too-few-resets.patch
+- Drop for upstream solution (bsc#1165206)
+ 01-xen-credit2-avoid-vcpus-to.patch
+ default-to-credit1-scheduler.patch
+- Upstream bug fixes (bsc#1027519)
+ 5e4ec20e-x86-virtualise-MSR_PLATFORM_ID-properly.patch
+ 5e5e7188-fix-error-path-in-cpupool_unassign_cpu_start.patch
+ 5e6f53dd-AMD-IOMMU-fix-off-by-one-get_paging_mode.patch
+ 5e7a371c-sched-fix-cpu-onlining-with-core-sched.patch
+ 5e7c90cf-sched-fix-cpu-offlining-with-core-sched.patch
+ 5e7cfb29-x86-ucode-AMD-fix-assert-in-compare_patch.patch
+ 5e7cfb29-x86-ucode-fix-error-paths-in-apply_microcode.patch
+ 5e7dd83b-libx86-CPUID-fix-not-just-leaf-7.patch
+ 5e7dfbf6-x86-ucode-AMD-potential-buffer-overrun-equiv-tab.patch
+ 5e846cce-x86-HVM-fix-AMD-ECS-handling-for-Fam10.patch
+ 5e84905c-x86-ucode-AMD-fix-more-potential-buffer-overruns.patch
+
+-------------------------------------------------------------------
+Wed Mar 25 18:18:18 UTC 2020 - ohering@suse.de
+
+- bsc#1167608 - unbound limit for max_event_channels
+ domUs with many vcpus and/or resources fail to start
+ libxl.max_event_channels.patch
+
+-------------------------------------------------------------------
+Wed Mar 18 17:00:34 UTC 2020 - ohering@suse.de
+
+- bsc#1161480 - Fix xl shutdown for HVM without PV drivers
+ add libxl.libxl__domain_pvcontrol.patch
+
+-------------------------------------------------------------------
+Thu Mar 12 07:57:53 MDT 2020 - carnold@suse.com
+
+- bsc#1165206 - Xen 4.12 DomU hang / freeze / stall / NMI watchdog
+ bug soft lockup CPU #0 stuck under high load / upstream with
+ workaround. See also bsc#1134506
+ 01-xen-credit2-avoid-vcpus-to.patch
+
+-------------------------------------------------------------------
+Tue Mar 10 07:41:34 MDT 2020 - carnold@suse.com
+
+- bsc#1158414 - GCC 10: xen build fails
+ gcc10-fixes.patch
+
+-------------------------------------------------------------------
+Wed Mar 4 13:28:17 MST 2020 - carnold@suse.com
+
+- bsc#1165206 - Xen 4.12 DomU hang / freeze / stall / NMI watchdog
+ bug soft lockup CPU #0 stuck under high load / upstream with
+ workaround. See also bsc#1134506
+ default-to-credit1-scheduler.patch
+
+-------------------------------------------------------------------
+Thu Feb 20 08:18:37 MST 2020 - carnold@suse.com
+
+- bsc#1160932 - VUL-0: xen: XSA-312 v1: arm: a CPU may speculate
+ past the ERET instruction
+ 5e1dcedd-Arm-place-speculation-barrier-after-ERET.patch
+- bsc#1164425 - x86: "spec-ctrl=no-xen" should also disable branch
+ hardening
+ 5e4e614d-x86-spec-ctrl-no-xen-also-disables-branch-hardening.patch
+- Upstream bug fixes (bsc#1027519)
+ 5e21ce98-x86-time-update-TSC-stamp-after-deep-C-state.patch
+ 5e286cce-VT-d-dont-pass-bridges-to-domain_context_mapping_one.patch
+ 5e318cd4-x86-apic-fix-disabling-LVT0.patch
+ 5e344c11-x86-HVM-relinquish-resources-from-domain_destroy.patch
+ 5e3bd385-EFI-recheck-variable-name-strings.patch
+ 5e3bd3d1-EFI-dont-leak-heap-VIA-XEN_EFI_get_next_variable_name.patch
+ 5e3bd3f8-xmalloc-guard-against-overflow.patch
+ 5e46e090-x86-smp-reset-x2apic_enabled-in-smp_send_stop.patch
+ 5e4c00ef-VT-d-check-full-RMRR-for-E820-reserved.patch
+ 5e4d4f5b-sched-fix-get_cpu_idle_time-with-core-sched.patch
+
+-------------------------------------------------------------------
+Tue Feb 18 18:18:18 UTC 2020 - ohering@suse.de
+
+- bsc#1159755 - use fixed qemu-3.1 machine type for HVM
+ This must be done in qemu to preserve PCI layout
+ remove libxl.lock-qemu-machine-for-hvm.patch
+
+-------------------------------------------------------------------
+Fri Feb 7 12:37:35 UTC 2020 - ohering@suse.de
+
+- jsc#SLE-10183 - script to calculate cpuid= mask
+ add helper script from https://github.com/twizted/xen_maskcalc
+ domUs may be migrated between different cpus from the same vendor
+ if their visible cpuid value has incompatible feature bits masked.
+
+-------------------------------------------------------------------
+Wed Feb 5 15:16:06 UTC 2020 - ohering@suse.de
+
+- jsc#SLE-10172, bsc#1055731 - handle degraded raid for xendomains
+ add helper script and systemd service from
+ https://github.com/luizluca/xen-tools-xendomains-wait-disk
+ in new sub package xen-tools-xendomains-wait-disk
+ See included README for usage instructions
+ xendomains-wait-disks.LICENSE
+ xendomains-wait-disks.README.md
+ xendomains-wait-disks.sh
+
+-------------------------------------------------------------------
+Tue Jan 28 14:10:38 UTC 2020 - ohering@suse.de
+
+- bsc#1159755 - use fixed qemu-3.1 machine type for HVM
+ qemu4 introduced incompatible changes in pc-i440fx, which revealed
+ a design bug in 'xenfv'. Live migration from domUs started with
+ qemu versions prior qemu4 can not be received with qemu4+.
+ libxl.lock-qemu-machine-for-hvm.patch
+
+-------------------------------------------------------------------
+Tue Jan 14 09:19:31 MST 2020 - carnold@suse.com
+
+- Upstream bug fixes (bsc#1027519)
+ 5de65f84-gnttab-map-always-do-IOMMU-part.patch
+ 5de65fc4-x86-avoid-HPET-use-on-certain-Intel.patch
+ 5e15e03d-sched-fix-S3-resume-with-smt=0.patch
+ 5e16fb6a-x86-clear-per-cpu-stub-page-info.patch
+ 5e1da013-IRQ-u16-is-too-narrow-for-evtchn.patch
+
+-------------------------------------------------------------------
+Wed Jan 8 11:43:04 UTC 2020 - Dominique Leuenberger <dimstar@opensuse.org>
+
+- BuildRequire pkgconfig(libsystemd) instead of systemd-devel:
+ Allow OBS to shortcut through the -mini flavors.
+
+-------------------------------------------------------------------
+Wed Dec 18 10:16:52 MST 2019 - carnold@suse.com
+
+- bsc#1159320 - Xen logrotate file needs updated
+ logrotate.conf
+
+-------------------------------------------------------------------
+Wed Dec 18 08:21:17 MST 2019 - carnold@suse.com
+
+- Update to Xen 4.13.0 FCS release
+ xen-4.13.0-testing-src.tar.bz2
+ * Core Scheduling (contributed by SUSE)
+ * Branch hardening to mitigate against Spectre v1 (contributed by Citrix)
+ * Late uCode loading (contributed by Intel)
+ * Improved live-patching build tools (contributed by AWS)
+ * OP-TEE support (contributed by EPAM)
+ * Renesas R-CAR IPMMU-VMSA driver (contributed by EPAM)
+ * Dom0-less passthrough and ImageBuilder (contributed by XILINX)
+ * Support for new Hardware
+
+-------------------------------------------------------------------
+Tue Dec 3 08:57:29 MST 2019 - carnold@suse.com
+
+- Update to Xen 4.13.0 RC4 release
+ xen-4.13.0-testing-src.tar.bz2
+- Rebase libxl.pvscsi.patch
+
+-------------------------------------------------------------------
+Mon Nov 25 10:49:13 MST 2019 - carnold@suse.com
+
+- Update to Xen 4.13.0 RC3 release
+ xen-4.13.0-testing-src.tar.bz2
+- Drop python38-build.patch
+
+-------------------------------------------------------------------
+Tue Nov 12 08:09:27 MST 2019 - carnold@suse.com
+
+- Update to Xen 4.13.0 RC2 release
+ xen-4.13.0-testing-src.tar.bz2
+
+-------------------------------------------------------------------
+Tue Oct 29 14:27:13 CET 2019 - Matej Cepl <mcepl@suse.com>
+
+- Add python38-build.patch fixing build with Python 3.8 (add
+ --embed to python-config call)
+
+-------------------------------------------------------------------
+Mon Oct 14 09:01:47 MDT 2019 - carnold@suse.com
+
+- Update to Xen 4.13.0 RC1 release
+ xen-4.13.0-testing-src.tar.bz2
+- Drop patches contained in new tarball or invalid
+ 5ca7660f-x86-entry-drop-unused-includes.patch
+ 5cab2a6b-x86-ACPI-also-parse-AMD-tables-early.patch
+ 5cab2ab7-x86-IOMMU-introduce-init-ops.patch
+ 5cab2ae8-x86-IOMMU-abstract-iommu_supports_eim.patch
+ 5cab2b4e-x86-IOMMU-abstract-iommu_enable_x2apic_IR.patch
+ 5cab2b95-x86-IOMMU-initialize-iommu_ops-in.patch
+ 5cac9a4b-x86-IOMMU-abstract-adjust_vtd_irq_affinities.patch
+ 5cdeac7f-AMD-IOMMU-adjust-IOMMU-list-head-init.patch
+ 5cf8da09-adjust-sysdom-creation-call-earlier-on-x86.patch
+ 5d0cf4e4-AMD-IOMMU-initialize-IRQ-tasklet-once.patch
+ 5d149bb0-AMD-IOMMU-dont-add-IOMMUs.patch
+ 5d1b3fab-AMD-IOMMU-restrict-feature-logging.patch
+ 5d358508-x86-IRQ-desc-affinity-represents-request.patch
+ 5d358534-x86-IRQ-consolidate-arch-cpu_mask-use.patch
+ 5d358a67-AMD-IOMMU-pass-IOMMU-to-iterate_ivrs_entries-cb.patch
+ 5d358a92-AMD-IOMMU-pass-IOMMU-to-amd_iommu_alloc_intremap_table.patch
+ 5d39811c-x86-IOMMU-dont-restrict-IRQ-affinities.patch
+ 5d417813-AMD-IOMMU-bitfield-extended-features.patch
+ 5d417838-AMD-IOMMU-bitfield-control-reg.patch
+ 5d41785b-AMD-IOMMU-bitfield-IRTE.patch
+ 5d41787e-AMD-IOMMU-pass-IOMMU-to-gfu-intremap-entry.patch
+ 5d4178ad-AMD-IOMMU-128bit-non-guest-APIC-IRTE.patch
+ 5d4178fc-AMD-IOMMU-split-amd_iommu_init_one.patch
+ 5d41793f-AMD-IOMMU-allow-enabling-without-IRQ.patch
+ 5d417a16-AMD-IOMMU-adjust-IRQ-setup-for-x2APIC.patch
+ 5d417ab6-AMD-IOMMU-enable-x2APIC-mode.patch
+ 5d417b38-AMD-IOMMU-correct-IRTE-updating.patch
+ 5d417b6a-AMD-IOMMU-dont-needlessly-log-headers.patch
+ 5d419d49-x86-spec-ctrl-report-proper-status.patch
+ 5d43253c-x86-ucode-always-collect_cpu_info-at-boot.patch
+ 5d4a9d25-AMD-IOMMU-drop-not-found-message.patch
+ 5d4aa36f-x86-apic-enable-x2APIC-mode-earlier.patch
+ 5d4afa7a-credit2-fix-memory-leak.patch
+ 5d4d850a-introduce-bss-percpu-page-aligned.patch
+ 5d516531-x86-xpti-dont-leak-TSS-adjacent-data.patch
+ 5d5bf475-x86-PV-fix-handling-of-iommu-mappings.patch
+ 5d6524ca-x86-mm-correctly-init-M2P-entries.patch
+ 5d67ceaf-x86-properly-gate-PKU-clearing.patch
+ 5d70bfba-x86-shadow-dont-enable-with-too-small-allocation.patch
+ 5d779811-x86-fix-CPUID7-0-eax-levelling-MSR.patch
+ 5d77b40f-fix-hvm_all_ioreq_servers_add_vcpu-cleanup.patch
+ 5d80e7c0-AMD-IOMMU-free-shared-IRT-once.patch
+ 5d80e80d-AMD-IOMMU-valid-flag-for-IVRS-mappings.patch
+ 5d80e82e-AMD-IOMMU-alloc_intremap_table-callers-handle-errors.patch
+ 5d80e857-x86-PCI-read-MSI-X-table-entry-count-early.patch
+ 5d80ea13-vpci-honor-read-only-devices.patch
+ 5d89d8d9-libxc-x86-avoid-overflow-in-CPUID-APIC-ID.patch
+ 5d8b715f-ACPI-cpuidle-bump-max-num-of-states.patch
+ 5d8b72e5-AMD-IOMMU-dont-blindly-alloc-intremap-tables.patch
+ 5d8b730e-AMD-IOMMU-phantom-funcs-share-intremap-tables.patch
+ 5d8b733b-x86-PCI-read-max-MSI-vector-count-early.patch
+ 5d8b736d-AMD-IOMMU-replace-INTREMAP_ENTRIES.patch
+ 5d8b7393-AMD-IOMMU-restrict-intremap-table-sizes.patch
+ 5d9ee2a8-AMD-IOMMU-alloc-1-devtab-per-PCI-seg.patch
+ 5d9ee2f0-AMD-IOMMU-allocate_buffer-avoid-memset.patch
+ 5d9ee312-AMD-IOMMU-prefill-all-DTEs.patch
+ CVE-2014-0222-blktap-qcow1-validate-l2-table-size.patch
+ blktap2-no-uninit.patch
+ libxl.prepare-environment-for-domcreate_stream_done.patch
+ pygrub-python3-conversion.patch
+ fix-xenpvnetboot.patch
+
+-------------------------------------------------------------------
+Thu Oct 10 08:39:52 MDT 2019 - carnold@suse.com
+
+- bsc#1135799 - Partner-L3: Xen crashes on AMD ROME based machines
+ 5d9ee2a8-AMD-IOMMU-alloc-1-devtab-per-PCI-seg.patch
+ 5d9ee2f0-AMD-IOMMU-allocate_buffer-avoid-memset.patch
+ 5d9ee312-AMD-IOMMU-prefill-all-DTEs.patch
+
+-------------------------------------------------------------------
+Wed Oct 2 08:37:47 UTC 2019 - ohering@suse.de
+
+- bsc#1120095 - add code to change LIBXL_HOTPLUG_TIMEOUT at runtime
+ The included README has details about the impact of this change
+ libxl.LIBXL_HOTPLUG_TIMEOUT.patch
+
+-------------------------------------------------------------------
+Mon Sep 30 10:43:43 MDT 2019 - carnold@suse.com
+
+- bsc#1135799 - Partner-L3: Xen crashes on AMD ROME based machines
+ 5ca7660f-x86-entry-drop-unused-includes.patch
+ 5cf8da09-adjust-sysdom-creation-call-earlier-on-x86.patch
+ 5cab2a6b-x86-ACPI-also-parse-AMD-tables-early.patch
+ 5cab2ab7-x86-IOMMU-introduce-init-ops.patch
+ 5cab2ae8-x86-IOMMU-abstract-iommu_supports_eim.patch
+ 5cab2b4e-x86-IOMMU-abstract-iommu_enable_x2apic_IR.patch
+ 5cab2b95-x86-IOMMU-initialize-iommu_ops-in.patch
+ 5cac9a4b-x86-IOMMU-abstract-adjust_vtd_irq_affinities.patch
+ 5cdeac7f-AMD-IOMMU-adjust-IOMMU-list-head-init.patch
+ 5d0cf4e4-AMD-IOMMU-initialize-IRQ-tasklet-once.patch
+ 5d149bb0-AMD-IOMMU-dont-add-IOMMUs.patch
+ 5d1b3fab-AMD-IOMMU-restrict-feature-logging.patch
+ 5d358508-x86-IRQ-desc-affinity-represents-request.patch
+ 5d358534-x86-IRQ-consolidate-arch-cpu_mask-use.patch
+ 5d358a67-AMD-IOMMU-pass-IOMMU-to-iterate_ivrs_entries-cb.patch
+ 5d358a92-AMD-IOMMU-pass-IOMMU-to-amd_iommu_alloc_intremap_table.patch
+ 5d39811c-x86-IOMMU-dont-restrict-IRQ-affinities.patch
+ 5d417813-AMD-IOMMU-bitfield-extended-features.patch
+ 5d417838-AMD-IOMMU-bitfield-control-reg.patch
+ 5d41785b-AMD-IOMMU-bitfield-IRTE.patch
+ 5d41787e-AMD-IOMMU-pass-IOMMU-to-gfu-intremap-entry.patch
+ 5d4178ad-AMD-IOMMU-128bit-non-guest-APIC-IRTE.patch
+ 5d4178fc-AMD-IOMMU-split-amd_iommu_init_one.patch
+ 5d41793f-AMD-IOMMU-allow-enabling-without-IRQ.patch
+ 5d417a16-AMD-IOMMU-adjust-IRQ-setup-for-x2APIC.patch
+ 5d417ab6-AMD-IOMMU-enable-x2APIC-mode.patch
+ 5d417b38-AMD-IOMMU-correct-IRTE-updating.patch
+ 5d417b6a-AMD-IOMMU-dont-needlessly-log-headers.patch
+ 5d4a9d25-AMD-IOMMU-drop-not-found-message.patch
+ 5d80e7c0-AMD-IOMMU-free-shared-IRT-once.patch
+ 5d80e80d-AMD-IOMMU-valid-flag-for-IVRS-mappings.patch
+ 5d80e82e-AMD-IOMMU-alloc_intremap_table-callers-handle-errors.patch
+ 5d80e857-x86-PCI-read-MSI-X-table-entry-count-early.patch
+ 5d8b72e5-AMD-IOMMU-dont-blindly-alloc-intremap-tables.patch
+ 5d8b730e-AMD-IOMMU-phantom-funcs-share-intremap-tables.patch
+ 5d8b733b-x86-PCI-read-max-MSI-vector-count-early.patch
+ 5d8b736d-AMD-IOMMU-replace-INTREMAP_ENTRIES.patch
+ 5d8b7393-AMD-IOMMU-restrict-intremap-table-sizes.patch
+- bsc#1145240 - [Migration]Can't pre-allocate 1 shadow pages
+ 5d70bfba-x86-shadow-dont-enable-with-too-small-allocation.patch
+- bsc#1137717 - [HPS Bug] Unable to install Windows Server 2016
+ with 2 CPUs setting (or above) under SLES12 SP4 Xen Server on AMD
+ ROME platform
+ 5d89d8d9-libxc-x86-avoid-overflow-in-CPUID-APIC-ID.patch
+- Upstream bug fixes (bsc#1027519)
+ 5d67ceaf-x86-properly-gate-PKU-clearing.patch
+ 5d779811-x86-fix-CPUID7-0-eax-levelling-MSR.patch
+ 5d77b40f-fix-hvm_all_ioreq_servers_add_vcpu-cleanup.patch
+ 5d80ea13-vpci-honor-read-only-devices.patch
+ 5d8b715f-ACPI-cpuidle-bump-max-num-of-states.patch
+
+-------------------------------------------------------------------
+Fri Sep 27 16:25:38 UTC 2019 - ohering@suse.de
+
+- bsc#1145774 - Libivrtd segfaults when trying to live migrate a VM
+ Fix crash in an error path of libxl_domain_suspend with
+ libxl.helper_done-crash.patch
+
+-------------------------------------------------------------------
+Wed Aug 28 09:25:30 MDT 2019 - carnold@suse.com
+
+- Upstream bug fixes (bsc#1027519)
+ 5d419d49-x86-spec-ctrl-report-proper-status.patch
+ 5d43253c-x86-ucode-always-collect_cpu_info-at-boot.patch
+ 5d4aa36f-x86-apic-enable-x2APIC-mode-earlier.patch
+ 5d4afa7a-credit2-fix-memory-leak.patch
+ 5d4d850a-introduce-bss-percpu-page-aligned.patch
+ 5d516531-x86-xpti-dont-leak-TSS-adjacent-data.patch
+ 5d5bf475-x86-PV-fix-handling-of-iommu-mappings.patch
+ 5d6524ca-x86-mm-correctly-init-M2P-entries.patch
+- Drop 5d419d49-x86-spec-ctrl-facilities-report-wrong-status.patch
+
+-------------------------------------------------------------------
+Wed Aug 28 11:25:17 UTC 2019 - ohering@suse.de
+
+- Preserve modified files which used to be marked as %config,
+ rename file.rpmsave to file
+
+-------------------------------------------------------------------
+Fri Aug 9 10:29:45 MDT 2019 - carnold@suse.com
+
+- Update to Xen 4.12.1 bug fix release (bsc#1027519)
+ xen-4.12.1-testing-src.tar.bz2
+- Drop patches contained in new tarball
+ 5c87b644-IOMMU-leave-enabled-for-kexec-crash.patch
+ 5c87b6a2-x86-HVM-dont-crash-guest-in-find_mmio_cache.patch
+ 5c87b6c8-drop-arch_evtchn_inject.patch
+ 5c87b6e8-avoid-atomic-rmw-accesses-in-map_vcpu_info.patch
+ 5c87e6d1-x86-TSX-controls-for-RTM-force-abort-mode.patch
+ 5c8f752c-x86-e820-build-with-gcc9.patch
+ 5c8fb92d-x86-HVM-split-linear-reads-and-writes.patch
+ 5c8fb951-x86-HVM-finish-IOREQs-correctly-on-completion.patch
+ 5c8fc6c0-x86-MSR-shorten-ARCH_CAPABILITIES.patch
+ 5c8fc6c0-x86-SC-retpoline-safety-calculations-for-eIBRS.patch
+ 5c9e63c5-credit2-SMT-idle-handling.patch
+ 5ca46b68-x86emul-no-GPR-update-upon-AVX-gather-failures.patch
+ 5ca773d1-x86emul-dont-read-mask-reg-without-AVX512F.patch
+ 5cab1f66-timers-fix-memory-leak-with-cpu-plug.patch
+ 5cac6cba-vmx-Fixup-removals-of-MSR-load-save-list-entries.patch
+ 5cd921fb-trace-fix-build-with-gcc9.patch
+ 5cd9224b-AMD-IOMMU-disable-upon-init-fail.patch
+ 5cd922c5-x86-MTRR-recalc-p2mt-when-iocaps.patch
+ 5cd9230f-VMX-correctly-get-GS_SHADOW-for-current.patch
+ 5cd926d0-bitmap_fill-zero-sized.patch
+ 5cd92724-drivers-video-drop-constraints.patch
+ 5cd93a69-x86-MSR_INTEL_CORE_THREAD_COUNT.patch
+ 5cd93a69-x86-boot-detect-Intel-SMT-correctly.patch
+ 5cd93a69-x86-spec-ctrl-reposition-XPTI-parsing.patch
+ 5cd981ff-x86-IRQ-tracing-avoid-UB-or-worse.patch
+ 5cdad090-x86-spec-ctrl-CPUID-MSR-definitions-for-MDS.patch
+ 5cdad090-x86-spec-ctrl-infrastructure-for-VERW-flush.patch
+ 5cdad090-x86-spec-ctrl-misc-non-functional-cleanup.patch
+ 5cdad090-x86-spec-ctrl-opts-to-control-VERW-flush.patch
+ 5cdeb9fd-sched-fix-csched2_deinit_pdata.patch
+ 5ce7a92f-x86-IO-APIC-fix-build-with-gcc9.patch
+ 5cf0f6a4-x86-vhpet-resume-avoid-small-diff.patch
+ 5cf16e51-x86-spec-ctrl-Knights-retpoline-safe.patch
+ 5d03a0c4-1-Arm-add-an-isb-before-reading-CNTPCT_EL0.patch
+ 5d03a0c4-2-gnttab-rework-prototype-of-set_status.patch
+ 5d03a0c4-3-Arm64-rewrite-bitops-in-C.patch
+ 5d03a0c4-4-Arm32-rewrite-bitops-in-C.patch
+ 5d03a0c4-5-Arm-bitops-consolidate-prototypes.patch
+ 5d03a0c4-6-Arm64-cmpxchg-simplify.patch
+ 5d03a0c4-7-Arm32-cmpxchg-simplify.patch
+ 5d03a0c4-8-Arm-bitops-helpers-with-timeout.patch
+ 5d03a0c4-9-Arm-cmpxchg-helper-with-timeout.patch
+ 5d03a0c4-A-Arm-turn-on-SILO-mode-by-default.patch
+ 5d03a0c4-B-bitops-guest-helpers.patch
+ 5d03a0c4-C-cmpxchg-guest-helpers.patch
+ 5d03a0c4-D-use-guest-atomics-helpers.patch
+ 5d03a0c4-E-Arm-add-perf-counters-in-guest-atomic-helpers.patch
+ 5d03a0c4-F-Arm-protect-gnttab_clear_flag.patch
+- Refreshed patches
+ libxl.pvscsi.patch
+
+-------------------------------------------------------------------
+Thu Aug 1 13:10:39 MDT 2019 - carnold@suse.com
+
+- bsc#1143563 - Speculative mitigation facilities report wrong status
+ 5d419d49-x86-spec-ctrl-facilities-report-wrong-status.patch
+
+-------------------------------------------------------------------
+Wed Jul 17 13:56:46 UTC 2019 - ohering@suse.de
+
+- Update xen-dom0-modules.service (bsc#1137251)
+ Map backend module names from pvops and xenlinux kernels to a
+ module alias. This avoids errors from modprobe about unknown
+ modules. Ignore a few xenlinux modules that lack aliases.
+
+-------------------------------------------------------------------
+Mon Jul 15 07:56:56 MDT 2019 - carnold@suse.com
+
+- Gcc9 warnings seem to be cleared up with upstream fixes.
+ Drop gcc9-ignore-warnings.patch
+
+-------------------------------------------------------------------
+Tue Jun 25 09:29:05 MDT 2019 - carnold@suse.com
+
+- bsc#1138563 - L3: xenpvnetboot improperly ported to Python 3
+ fix-xenpvnetboot.patch
+
+-------------------------------------------------------------------
+Mon Jun 24 08:02:57 UTC 2019 - ohering@suse.de
+
+- Move /etc/modprobe.d/xen_loop.conf to /lib/modprobe.d/xen_loop.conf
+
+-------------------------------------------------------------------
+Mon Jun 24 08:00:10 UTC 2019 - ohering@suse.de
+
+- Remove /etc/xen/xenapiusers and /etc/pam.d/xen-api
+
+-------------------------------------------------------------------
+Fri Jun 21 12:25:55 UTC 2019 - ohering@suse.de
+
+- Remove all upstream provided files in /etc/xen
+ They are not required at runtime. The host admin is now
+ responsible if he really needs anything in this subdirectory.
+
+-------------------------------------------------------------------
+Fri Jun 21 12:07:45 UTC 2019 - ohering@suse.de
+
+- In our effort to make /etc fully admin controlled, move /etc/xen/scripts
+ to libexec/xen/scripts with xen-tools.etc_pollution.patch
+
+-------------------------------------------------------------------
+Wed Jun 19 13:20:39 UTC 2019 - ohering@suse.de
+
+- Move /etc/bash_completion.d/xl.sh to %{_datadir}/bash-completion/completions
+
+-------------------------------------------------------------------
+Mon Jun 17 09:08:33 MDT 2019 - carnold@suse.com
+
+- bsc#1138294 - VUL-0: CVE-2019-17349: XSA-295: Unlimited Arm
+ Atomics Operations
+ 5d03a0c4-1-Arm-add-an-isb-before-reading-CNTPCT_EL0.patch
+ 5d03a0c4-2-gnttab-rework-prototype-of-set_status.patch
+ 5d03a0c4-3-Arm64-rewrite-bitops-in-C.patch
+ 5d03a0c4-4-Arm32-rewrite-bitops-in-C.patch
+ 5d03a0c4-5-Arm-bitops-consolidate-prototypes.patch
+ 5d03a0c4-6-Arm64-cmpxchg-simplify.patch
+ 5d03a0c4-7-Arm32-cmpxchg-simplify.patch
+ 5d03a0c4-8-Arm-bitops-helpers-with-timeout.patch
+ 5d03a0c4-9-Arm-cmpxchg-helper-with-timeout.patch
+ 5d03a0c4-A-Arm-turn-on-SILO-mode-by-default.patch
+ 5d03a0c4-B-bitops-guest-helpers.patch
+ 5d03a0c4-C-cmpxchg-guest-helpers.patch
+ 5d03a0c4-D-use-guest-atomics-helpers.patch
+ 5d03a0c4-E-Arm-add-perf-counters-in-guest-atomic-helpers.patch
+ 5d03a0c4-F-Arm-protect-gnttab_clear_flag.patch
+- Upstream bug fixes (bsc#1027519)
+ 5c87b6c8-drop-arch_evtchn_inject.patch
+ 5c87b6e8-avoid-atomic-rmw-accesses-in-map_vcpu_info.patch
+ 5cd921fb-trace-fix-build-with-gcc9.patch
+ 5cd9224b-AMD-IOMMU-disable-upon-init-fail.patch
+ 5cd922c5-x86-MTRR-recalc-p2mt-when-iocaps.patch
+ 5cd9230f-VMX-correctly-get-GS_SHADOW-for-current.patch
+ 5cd926d0-bitmap_fill-zero-sized.patch
+ 5cd92724-drivers-video-drop-constraints.patch
+ 5cd93a69-x86-spec-ctrl-reposition-XPTI-parsing.patch (Replaces xsa297-0a.patch)
+ 5cd93a69-x86-MSR_INTEL_CORE_THREAD_COUNT.patch (Replaces xsa297-0b.patch)
+ 5cd93a69-x86-boot-detect-Intel-SMT-correctly.patch (Replaces xsa297-0c.patch)
+ 5cdad090-x86-spec-ctrl-misc-non-functional-cleanup.patch (Replaces xsa297-0d.patch)
+ 5cdad090-x86-spec-ctrl-CPUID-MSR-definitions-for-MDS.patch (Replaces xsa297-1.patch)
+ 5cdad090-x86-spec-ctrl-infrastructure-for-VERW-flush.patch (Replaces xsa297-2.patch)
+ 5cdad090-x86-spec-ctrl-opts-to-control-VERW-flush.patch (Replaces xsa297-3.patch)
+ 5cd981ff-x86-IRQ-tracing-avoid-UB-or-worse.patch
+ 5cdeb9fd-sched-fix-csched2_deinit_pdata.patch
+ 5ce7a92f-x86-IO-APIC-fix-build-with-gcc9.patch
+ 5cf0f6a4-x86-vhpet-resume-avoid-small-diff.patch
+ 5cf16e51-x86-spec-ctrl-Knights-retpoline-safe.patch
+
+-------------------------------------------------------------------
+Fri Jun 14 15:35:28 MDT 2019 - carnold@suse.com
+
+- Fix some outdated information in the readme
+ README.SUSE
+
+-------------------------------------------------------------------
+Tue Jun 11 20:22:47 UTC 2019 - Jim Fehlig <jfehlig@suse.com>
+
+- spec: xen-tools: require matching version of xen package
+ bsc#1137471
+
+-------------------------------------------------------------------
+Fri May 17 08:50:57 UTC 2019 - ohering@suse.de
+
+- Remove two stale patches
+ xen.build-compare.man.patch
+ xenpaging.doc.patch
+
+-------------------------------------------------------------------
+Tue May 14 15:35:17 UTC 2019 - Martin Liška <mliska@suse.cz>
+
+- Disable LTO (boo#1133296).
+
+-------------------------------------------------------------------
+Mon May 13 20:20:00 UTC 2019 - ohering@suse.de
+
+- Remove arm32 from ExclusiveArch to fix build
+
+-------------------------------------------------------------------
+Mon Apr 29 08:54:04 MDT 2019 - carnold@suse.com
+
+- bsc#1111331 - VUL-0: CPU issues Q2 2019 aka "Group 4".
+ CVE-2018-12126, CVE-2018-12127, CVE-2018-12130, CVE-2019-11091
+ xsa297-0a.patch
+ xsa297-0b.patch
+ xsa297-0c.patch
+ xsa297-0d.patch
+ xsa297-1.patch
+ xsa297-2.patch
+ xsa297-3.patch
+- Update 5cab1f66-timers-fix-memory-leak-with-cpu-plug.patch and
+ drop 5cac6219-xen-cpu-Fix-ARM-build-following-cs-597fbb8.patch
+ Refresh 5cac6cba-vmx-Fixup-removals-of-MSR-load-save-list-entries.patch
+
+-------------------------------------------------------------------
+Wed Apr 17 08:28:50 MDT 2019 - carnold@suse.com
+
+- bsc#1131811 - [XEN] internal error: libxenlight failed to create
+ new domain. This patch is a workaround for a systemd issue. See
+ patch header for additional comments.
+ xenstore-launch.patch
+
+-------------------------------------------------------------------
+Thu Apr 11 16:29:39 MDT 2019 - carnold@suse.com
+
+- bsc#1125378 - [xen][pygrub] Can not restore sle11sp4 pv guest
+ after upgrading host from sle11sp4 to sle15sp1
+ pygrub-python3-conversion.patch
+- Fix "TypeError: virDomainDefineXML() argument 2 must be str or
+ None, not bytes" when converting VMs from using the xm/xend
+ toolstack to the libxl/libvirt toolstack. (bsc#1123378)
+ xen2libvirt.py
+
+-------------------------------------------------------------------
+Mon Apr 8 08:13:04 MDT 2019 - carnold@suse.com
+
+- bsc#1124560 - Fully virtualized guests crash on boot
+ 5cac6cba-vmx-Fixup-removals-of-MSR-load-save-list-entries.patch
+- bsc#1121391 - GCC 9: xen build fails
+ 5c8f752c-x86-e820-build-with-gcc9.patch
+- Upstream bug fixes (bsc#1027519)
+ 5c87b644-IOMMU-leave-enabled-for-kexec-crash.patch
+ 5c87b6a2-x86-HVM-dont-crash-guest-in-find_mmio_cache.patch
+ 5c87e6d1-x86-TSX-controls-for-RTM-force-abort-mode.patch
+ 5c8fb92d-x86-HVM-split-linear-reads-and-writes.patch
+ 5c8fb951-x86-HVM-finish-IOREQs-correctly-on-completion.patch
+ 5c8fc6c0-x86-MSR-shorten-ARCH_CAPABILITIES.patch
+ 5c8fc6c0-x86-SC-retpoline-safety-calculations-for-eIBRS.patch
+ 5c9e63c5-credit2-SMT-idle-handling.patch
+ 5ca46b68-x86emul-no-GPR-update-upon-AVX-gather-failures.patch
+ 5ca773d1-x86emul-dont-read-mask-reg-without-AVX512F.patch
+ 5cab1f66-timers-fix-memory-leak-with-cpu-plug.patch
+ 5cac6219-xen-cpu-Fix-ARM-build-following-cs-597fbb8.patch
+
+-------------------------------------------------------------------
+Thu Apr 4 08:53:02 UTC 2019 - ohering@suse.de
+
+- Install pkgconfig files into libdir instead of datadir
+
+-------------------------------------------------------------------
+Tue Apr 2 08:03:53 MDT 2019 - carnold@suse.com
+
+- Update to Xen 4.12.0 FCS release (fate#325107, fate#323901)
+ xen-4.12.0-testing-src.tar.bz2
+ * HVM/PVH and PV only Hypervisor: The Xen 4.12 release separates
+ the HVM/PVH and PV code paths in Xen and provides KCONFIG
+ options to build a PV only or HVM/PVH only hypervisor.
+ * QEMU Deprivilege (DM_RESTRICT): In Xen 4.12, this feature has
+ been vastly improved.
+ * Argo - Hypervisor-Mediated data eXchange: Argo is a new inter-
+ domain communication mechanism.
+ * Improvements to Virtual Machine Introspection: The VMI subsystem
+ which allows detection of 0-day vulnerabilities has seen many
+ functional and performance improvements.
+ * Credit 2 Scheduler: The Credit2 scheduler is now the Xen Project
+ default scheduler.
+ * PVH Support: Grub2 boot support has been added to Xen and Grub2.
+ * PVH Dom0: PVH Dom0 support has now been upgraded from experimental
+ to tech preview.
+ * The Xen 4.12 upgrade also includes improved IOMMU mapping code,
+ which is designed to significantly improve the startup times of
+ AMD EPYC based systems.
+ * The upgrade also features Automatic Dom0 Sizing which allows the
+ setting of Dom0 memory size as a percentage of host memory (e.g.
+ 10%) or with an offset (e.g. 1G+10%).
+
+-------------------------------------------------------------------
+Tue Mar 26 10:06:06 MDT 2019 - carnold@suse.com
+
+- bsc#1130485 - Please drop Requires on multipath-tools in
+ xen-tools. Now using Recommends multipath-tools.
+ xen.spec
+
+-------------------------------------------------------------------
+Mon Mar 25 08:17:31 MDT 2019 - carnold@suse.com
+
+- Update to Xen 4.12.0 RC7 release (fate#325107, fate#323901)
+ xen-4.12.0-testing-src.tar.bz2
+
+-------------------------------------------------------------------
+Wed Mar 20 09:48:26 MDT 2019 - carnold@suse.com
+
+- Update to Xen 4.12.0 RC6 release (fate#325107, fate#323901)
+ xen-4.12.0-testing-src.tar.bz2
+
+-------------------------------------------------------------------
+Fri Mar 15 13:09:29 UTC 2019 - ohering@suse.de
+
+- bsc#1026236 - add Xen cmdline option "suse_vtsc_tolerance" to
+ avoid TSC emulation for HVM domUs if their expected frequency
+ does not match exactly the frequency of the receiving host
+ xen.bug1026236.suse_vtsc_tolerance.patch
+
+-------------------------------------------------------------------
+Mon Mar 11 11:24:42 MDT 2019 - carnold@suse.com
+
+- Update to Xen 4.12.0 RC5 release (fate#325107, fate#323901)
+ xen-4.12.0-testing-src.tar.bz2
+
+-------------------------------------------------------------------
+Mon Mar 11 05:58:59 MDT 2019 - carnold@suse.com
+
+- jsc#SLE-3059 - Disable Xen auto-ballooning
+- Add CONFIG_DOM0_MEM to the spec file for managing dom0 memory.
+ xen.spec
+- Disable autoballooning in xl.con
+ xl-conf-disable-autoballoon.patch
+
+-------------------------------------------------------------------
+Thu Mar 7 17:55:20 UTC 2019 - ohering@suse.de
+
+- Update gcc9-ignore-warnings.patch to fix build in SLE12
+
+-------------------------------------------------------------------
+Thu Mar 7 15:28:02 UTC 2019 - ohering@suse.de
+
+- bsc#1126325 - fix crash in libxl in error path
+ Setup of grant_tables and other variables may fail
+ libxl.prepare-environment-for-domcreate_stream_done.patch
+
+-------------------------------------------------------------------
+Wed Mar 6 11:12:09 MST 2019 - carnold@suse.com
+
+- bsc#1127620 - Documentation for the xl configuration file allows
+ for firmware=pvgrub64 but we don't ship pvgrub64.
+ Create a link from grub.xen to pvgrub64
+ xen.spec
+
+-------------------------------------------------------------------
+Mon Mar 4 14:58:18 MST 2019 - carnold@suse.com
+
+- Update to Xen 4.12.0 RC4 release (fate#325107, fate#323901)
+ xen-4.12.0-testing-src.tar.bz2
+- Tarball also contains additional post RC4 security fixes for
+ Xen Security Advisories 287, 288, and 290 through 294.
+
+-------------------------------------------------------------------
+Tue Feb 19 08:11:38 MST 2019 - carnold@suse.com
+
+- Update to Xen 4.12.0 RC3 release (fate#325107, fate#323901)
+ xen-4.12.0-testing-src.tar.bz2
+
+-------------------------------------------------------------------
+Mon Feb 4 12:34:57 MST 2019 - carnold@suse.com
+
+- Update to Xen 4.12.0 RC2 release (fate#325107, fate#323901)
+ xen-4.12.0-testing-src.tar.bz2
+
+-------------------------------------------------------------------
+Fri Jan 25 12:53:37 MST 2019 - carnold@suse.com
+
+- bsc#1121391 - GCC 9: xen build fails
+ gcc9-ignore-warnings.patch
+
+-------------------------------------------------------------------
+Thu Jan 24 09:39:18 MST 2019 - carnold@suse.com
+
+- bsc#1122563 - Virtualization/xen: Bug no Xen on boot, missing
+ /proc/xen, after 4.11 -> 4.12 upgrade on X86_64/efi.
+ Keep xen.efi in /usr/lib64/efi for booting older distros.
+ xen.spec
+
+-------------------------------------------------------------------
+Fri Jan 18 10:51:12 MST 2019 - carnold@suse.com
+
+- fate#326960: Package grub2 as noarch.
+ As part of the effort to have a unified bootloader across
+ architectures, modify the xen.spec file to move the Xen efi files
+ to /usr/share/efi/$(uname -m) from /usr/lib64/efi.
+
+-------------------------------------------------------------------
+Wed Jan 16 11:24:49 MST 2019 - carnold@suse.com
+
+- Update to Xen 4.12.0 RC1 release (fate#325107, fate#323901)
+ xen-4.12.0-testing-src.tar.bz2
+- Drop
+ 5b505d59-tools-xentop-replace-use-of-deprecated-vwprintw.patch
+ 5b76ec82-libxl-arm-Fix-build-on-arm64-acpi-w-gcc-8.2.patch
+ 5b8fae26-tools-libxl-correct-vcpu-affinity-output-with-sparse-physical-cpu-map.patch
+ 5b8fae26-xen-fill-topology-info-for-all-present-cpus.patch
+ 5b8fb5af-tools-xl-refuse-to-set-number-of-vcpus-to-0-via-xl-vcpu-set.patch
+ 5b9784ad-x86-HVM-drop-hvm_fetch_from_guest_linear.patch
+ 5b9784d2-x86-HVM-add-known_gla-helper.patch
+ 5b9784f2-x86-HVM-split-page-straddling-accesses.patch
+ 5bdc31d5-VMX-fix-vmx_handle_eoi.patch
+ gcc8-fix-array-warning-on-i586.patch
+ gcc8-fix-format-warning-on-i586.patch
+ gcc8-inlining-failed.patch
+ xen.bug1079730.patch
+
+-------------------------------------------------------------------
+Tue Jan 15 13:38:13 MST 2019 - carnold@suse.com
+
+- bsc#1121960 - xen: sync with Factory
+ xen.spec
+ xen.changes
+
+-------------------------------------------------------------------
+Sat Jan 12 14:06:02 UTC 2019 - Jan Engelhardt <jengelh@inai.de>
+
+- Replace old $RPM_* shell vars.
+- Run fdupes for all architectures, and not crossing
+ subvolume boundaries.
+
+-------------------------------------------------------------------
+Thu Jan 10 10:57:44 UTC 2019 - Guillaume GARDET <guillaume.gardet@opensuse.org>
+
+- Do not run %fdupes on aarch64 to avoid the hardlink-across-partition
+ rpmlint error
+
+-------------------------------------------------------------------
+Tue Jan 8 13:31:30 UTC 2019 - Guillaume GARDET <guillaume.gardet@opensuse.org>
+
+- Require qemu-seabios only on x86* as it is not available on non-x86
+ systems
+
+-------------------------------------------------------------------
+Thu Dec 27 18:16:54 UTC 2018 - Bernhard Wiedemann <bwiedemann@suse.com>
+
+- Avoid creating dangling symlinks (bsc#1116524)
+ This reverts the revert of tmp_build.patch
+
+-------------------------------------------------------------------
+Tue Dec 4 13:19:21 MST 2018 - carnold@suse.com
+
+- Update to Xen 4.11.1 bug fix release (bsc#1027519)
+ xen-4.11.1-testing-src.tar.bz2
+- 5b505d59-tools-xentop-replace-use-of-deprecated-vwprintw.patch
+ replaces xen.2b50cdbc444c637575580dcfa6c9525a84d5cc62.patch
+- 5b76ec82-libxl-arm-Fix-build-on-arm64-acpi-w-gcc-8.2.patch
+ replaces xen.b8f33431f3dd23fb43a879f4bdb4283fdc9465ad.patch
+- Drop the following patches contained in the new tarball
+ 5b34b8fe-VMX-defer-vmx_vmcs_exit-as-long-as-possible.patch
+ 5b3cab8e-1-VMX-MSR_DEBUGCTL-handling.patch
+ 5b3cab8e-2-VMX-improve-MSR-load-save-API.patch
+ 5b3cab8e-3-VMX-cleanup-MSR-load-save-infra.patch
+ 5b3cab8f-1-VMX-factor-out-locate_msr_entry.patch
+ 5b3cab8f-2-VMX-remote-access-to-MSR-lists.patch
+ 5b3cab8f-3-VMX-improve-LBR-MSR-handling.patch
+ 5b3cab8f-4-VMX-pass-MSR-value-into-vmx_msr_add.patch
+ 5b3cab8f-5-VMX-load-only-guest-MSR-entries.patch
+ 5b3f8fa5-port-array_index_nospec-from-Linux.patch
+ 5b4321f6-x86-correctly-set-nonlazy_xstate_used-when-loading-full-state.patch
+ 5b4488e7-x86-spec-ctrl-cmdline-handling.patch
+ 5b471517-page_alloc-correct-first_dirty-calc-in-block-merging.patch
+ 5b4c9a60-allow-cpu_down-to-be-called-earlier.patch
+ 5b4db308-SVM-fix-cleanup-svm_inject_event.patch
+ 5b5040c3-cpupools-fix-state-when-downing-a-CPU-failed.patch
+ 5b5040f2-x86-AMD-distinguish-CU-from-HT.patch
+ 5b505fe5-VMX-fix-find-msr-build.patch
+ 5b508775-1-x86-distinguish-CPU-offlining-and-removal.patch
+ 5b508775-2-x86-possibly-bring-up-all-CPUs.patch
+ 5b508775-3-x86-cmdline-opt-to-avoid-use-of-secondary-HTs.patch
+ 5b508ce8-VMX-dont-clobber-dr6-while-debug-state-is-lazy.patch
+ 5b50df16-1-x86-xstate-use-guest-CPUID-policy.patch
+ 5b50df16-2-x86-make-xstate-calculation-errors-more-obvious.patch
+ 5b56feb1-hvm-Disallow-unknown-MSR_EFER-bits.patch
+ 5b56feb2-spec-ctrl-Fix-the-parsing-of-xpti--on-fixed-Intel-hardware.patch
+ 5b62ca93-VMX-avoid-hitting-BUG_ON.patch
+ 5b6d84ac-x86-fix-improve-vlapic-read-write.patch
+ 5b6d8ce2-x86-XPTI-parsing.patch
+ 5b72fbbe-ARM-disable-grant-table-v2.patch
+ 5b72fbbe-oxenstored-eval-order.patch
+ 5b72fbbe-vtx-Fix-the-checking-for-unknown-invalid-MSR_DEBUGCTL-bits.patch
+ 5b72fbbf-1-spec-ctrl-Calculate-safe-PTE-addresses-for-L1TF-mitigations.patch
+ 5b72fbbf-2-spec-ctrl-Introduce-an-option-to-control-L1TF-mitigation-for-PV-guests.patch
+ 5b72fbbf-3-shadow-Infrastructure-to-force-a-PV-guest-into-shadow-mode.patch
+ 5b72fbbf-4-mm-Plumbing-to-allow-any-PTE-update-to-fail-with--ERESTART.patch
+ 5b72fbbf-5-pv-Force-a-guest-into-shadow-mode-when-it-writes-an-L1TF-vulnerable-PTE.patch
+ 5b72fbbf-6-spec-ctrl-CPUID-MSR-definitions-for-L1D_FLUSH.patch
+ 5b72fbbf-7-msr-Virtualise-MSR_FLUSH_CMD-for-guests.patch
+ 5b72fbbf-8-spec-ctrl-Introduce-an-option-to-control-L1D_FLUSH-for-HVM-HAP-guests.patch
+ 5b72fbbf-x86-Make-spec-ctrl-no-a-global-disable-of-all-mitigations.patch
+ 5b72fbbf-xl.conf-Add-global-affinity-masks.patch
+ 5b74190e-x86-hvm-ioreq-MMIO-range-check-honor-DF.patch
+ 5b752762-x86-hvm-emul-rep-IO-should-not-cross-GFN-boundaries.patch
+ 5b75afef-x86-setup-avoid-OoB-E820-lookup.patch
+ 5b76b780-rangeset-inquiry-functions-tolerate-NULL.patch
+ 5b83c654-VT-d-dmar-iommu-mem-leak-fix.patch
+ 5b8d5832-x86-assorted-array_index_nospec-insertions.patch
+ 5ba11ed4-credit2-fix-moving-CPUs-between-cpupools.patch
+ 5bacae4b-x86-boot-allocate-extra-module-slot.patch
+ 5bae44ce-x86-silence-false-log-messages.patch
+ 5bb60c12-x86-split-opt_xpti.patch
+ 5bb60c4f-x86-split-opt_pv_l1tf.patch
+ 5bb60c74-x86-fix-xpti-and-pv-l1tf.patch
+ 5bcf0722-x86-boot-enable-NMIs.patch
+ 5bd076e9-dombuilder-init-vcpu-debug-regs-correctly.patch
+ 5bd076e9-x86-boot-init-debug-regs-correctly.patch
+ 5bd076e9-x86-init-vcpu-debug-regs-correctly.patch
+ 5bd0e0cf-vvmx-Disallow-the-use-of-VT-x-instructions-when-nested-virt-is-disabled.patch
+ 5bd0e11b-x86-disallow-VT-x-insns-without-nested-virt.patch
+ 5bd85bfd-x86-fix-crash-on-xl-set-parameter-pcid.patch
+ 5be2a308-x86-extend-get_platform_badpages.patch
+ 5be2a354-x86-work-around-HLE-host-lockup-erratum.patch
+ xsa275-1.patch
+ xsa275-2.patch
+ xsa276-1.patch
+ xsa276-2.patch
+ xsa277.patch
+ xsa279.patch
+ xsa280-1.patch
+ xsa280-2.patch
+
+-------------------------------------------------------------------
+Wed Nov 21 15:44:39 MST 2018 - carnold@suse.com
+
+- bsc#1116524 - Package xen-tools-4.11.0_09-2.1.x86_64 broken:
+ Missing /bin/domu-xenstore. This was broken because "make
+ package build reproducible" change. (boo#1047218, boo#1062303)
+ This fix reverses the change to this patch.
+ tmp_build.patch
+
+-------------------------------------------------------------------
+Mon Nov 12 09:47:39 MST 2018 - carnold@suse.com
+
+- bsc#1115040 - VUL-0: CVE-2018-19961 CVE-2018-19962: xen:
+ insufficient TLB flushing / improper large page mappings with AMD
+ IOMMUs (XSA-275)
+ xsa275-1.patch
+ xsa275-2.patch
+- bsc#1115043 - VUL-0: CVE-2018-19963: xen: resource accounting
+ issues in x86 IOREQ server handling (XSA-276)
+ xsa276-1.patch
+ xsa276-2.patch
+- bsc#1115044 - VUL-0: CVE-2018-19964: xen: x86: incorrect error
+ handling for guest p2m page removals (XSA-277)
+ xsa277.patch
+- bsc#1114405 - VUL-0: CVE-2018-18883: xen: Nested VT-x usable even
+ when disabled (XSA-278)
+ 5bd0e11b-x86-disallow-VT-x-insns-without-nested-virt.patch
+- bsc#1115045 - VUL-0: xen: CVE-2018-19965: x86: DoS from attempting
+ to use INVPCID with a non-canonical addresses (XSA-279)
+ xsa279.patch
+- bsc#1115047 - VUL-0: CVE-2018-19966: xen: Fix for XSA-240
+ conflicts with shadow paging (XSA-280)
+ xsa280-1.patch
+ xsa280-2.patch
+- bsc#1114988 - VUL-0: CVE-2018-19967: xen: guest use of HLE
+ constructs may lock up host (XSA-282)
+ 5be2a308-x86-extend-get_platform_badpages.patch
+ 5be2a354-x86-work-around-HLE-host-lockup-erratum.patch
+- bsc#1108940 - L3: XEN SLE12-SP1 domU hang on SLE12-SP3 HV
+ 5bdc31d5-VMX-fix-vmx_handle_eoi.patch
+- Upstream bug fixes (bsc#1027519)
+ 5b752762-x86-hvm-emul-rep-IO-should-not-cross-GFN-boundaries.patch
+ 5ba11ed4-credit2-fix-moving-CPUs-between-cpupools.patch
+ 5bacae4b-x86-boot-allocate-extra-module-slot.patch
+ 5bae44ce-x86-silence-false-log-messages.patch
+ 5bb60c12-x86-split-opt_xpti.patch
+ 5bb60c4f-x86-split-opt_pv_l1tf.patch
+ 5bb60c74-x86-fix-xpti-and-pv-l1tf.patch
+ 5bcf0722-x86-boot-enable-NMIs.patch
+ 5bd076e9-dombuilder-init-vcpu-debug-regs-correctly.patch
+ 5bd076e9-x86-boot-init-debug-regs-correctly.patch
+ 5bd076e9-x86-init-vcpu-debug-regs-correctly.patch
+ 5bd85bfd-x86-fix-crash-on-xl-set-parameter-pcid.patch
+
+-------------------------------------------------------------------
+Tue Nov 6 08:33:59 MST 2018 - carnold@suse.com
+
+- bsc#1114405 - VUL-0: CVE-2018-18883: xen: Nested VT-x usable even
+ when disabled (XSA-278)
+ 5bd0e0cf-vvmx-Disallow-the-use-of-VT-x-instructions-when-nested-virt-is-disabled.patch
+
+-------------------------------------------------------------------
+Wed Oct 24 20:08:24 UTC 2018 - ohering@suse.de
+
+- Use SMBIOS_REL_DATE instead of SMBIOS_DATE for reproducible binaries
+
+-------------------------------------------------------------------
+Wed Oct 24 08:21:01 UTC 2018 - Bernhard Wiedemann <bwiedemann@suse.com>
+
+- make package build reproducible (boo#1047218, boo#1062303)
+ * Set SMBIOS_REL_DATE
+ * Update tmp_build.patch to use SHA instead of random build-id
+ * Add reproducible.patch to use --no-insert-timestamp
+
+-------------------------------------------------------------------
+Mon Oct 15 06:55:47 UTC 2018 - ohering@suse.de
+
+- Building with ncurses 6.1 will fail without
+ xen.2b50cdbc444c637575580dcfa6c9525a84d5cc62.patch
+- Building libxl acpi support on aarch64 with gcc 8.2 will fail without
+ xen.b8f33431f3dd23fb43a879f4bdb4283fdc9465ad.patch
+
+-------------------------------------------------------------------
+Tue Sep 11 13:29:58 MDT 2018 - carnold@suse.com
+
+- bsc#1106263 - L3: The affinity reporting via 'xl vcpu-list' is
+ apparently broken
+ 5b8fae26-tools-libxl-correct-vcpu-affinity-output-with-sparse-physical-cpu-map.patch
+ 5b8fae26-xen-fill-topology-info-for-all-present-cpus.patch
+ 5b8fb5af-tools-xl-refuse-to-set-number-of-vcpus-to-0-via-xl-vcpu-set.patch
+
+-------------------------------------------------------------------
+Tue Sep 11 07:47:57 MDT 2018 - carnold@suse.com
+
+- bsc#1094508 - L3: Kernel oops in fs/dcache.c called by
+ d_materialise_unique()
+ 5b9784ad-x86-HVM-drop-hvm_fetch_from_guest_linear.patch
+ 5b9784d2-x86-HVM-add-known_gla-helper.patch
+ 5b9784f2-x86-HVM-split-page-straddling-accesses.patch
+- bsc#1103279 - (CVE-2018-15470) VUL-0: CVE-2018-15470: xen:
+ oxenstored does not apply quota-maxentity (XSA-272)
+ 5b72fbbe-oxenstored-eval-order.patch
+- bsc#1103275 - (CVE-2018-15469) VUL-0: CVE-2018-15469: xen: Use of
+ v2 grant tables may cause crash on ARM (XSA-268)
+ 5b72fbbe-ARM-disable-grant-table-v2.patch
+- Upstream patches from Jan (bsc#1027519)
+ 5b6d84ac-x86-fix-improve-vlapic-read-write.patch
+ 5b74190e-x86-hvm-ioreq-MMIO-range-check-honor-DF.patch
+ 5b75afef-x86-setup-avoid-OoB-E820-lookup.patch
+ 5b76b780-rangeset-inquiry-functions-tolerate-NULL.patch
+ 5b83c654-VT-d-dmar-iommu-mem-leak-fix.patch
+ 5b8d5832-x86-assorted-array_index_nospec-insertions.patch
+- Drop 5b741962-x86-write-to-correct-variable-in-parse_pv_l1tf.patch
+
+-------------------------------------------------------------------
+Tue Aug 28 16:07:52 MDT 2018 - carnold@suse.com
+
+- bsc#1078292 - rpmbuild -ba SPECS/xen.spec with xen-4.9.1 failed
+ xen.spec
+
+-------------------------------------------------------------------
+Fri Aug 17 13:01:36 MDT 2018 - carnold@suse.com
+
+- bsc#1091107 - VUL-0: CVE-2018-3646: xen: L1 Terminal Fault -VMM
+ (XSA-273)
+ 5b72fbbf-1-spec-ctrl-Calculate-safe-PTE-addresses-for-L1TF-mitigations.patch
+ 5b72fbbf-2-spec-ctrl-Introduce-an-option-to-control-L1TF-mitigation-for-PV-guests.patch
+ 5b72fbbf-3-shadow-Infrastructure-to-force-a-PV-guest-into-shadow-mode.patch
+ 5b72fbbf-4-mm-Plumbing-to-allow-any-PTE-update-to-fail-with--ERESTART.patch
+ 5b72fbbf-5-pv-Force-a-guest-into-shadow-mode-when-it-writes-an-L1TF-vulnerable-PTE.patch
+ 5b72fbbf-6-spec-ctrl-CPUID-MSR-definitions-for-L1D_FLUSH.patch
+ 5b72fbbf-7-msr-Virtualise-MSR_FLUSH_CMD-for-guests.patch
+ 5b72fbbf-8-spec-ctrl-Introduce-an-option-to-control-L1D_FLUSH-for-HVM-HAP-guests.patch
+- bsc#1103276 - VUL-0: CVE-2018-15468: xen: x86: Incorrect
+ MSR_DEBUGCTL handling lets guests enable BTS (XSA-269)
+ 5b72fbbe-vtx-Fix-the-checking-for-unknown-invalid-MSR_DEBUGCTL-bits.patch
+- Upstream prereq patches for XSA-273 and other upstream fixes
+ (bsc#1027519)
+ 5b34b8fe-VMX-defer-vmx_vmcs_exit-as-long-as-possible.patch
+ 5b3cab8e-1-VMX-MSR_DEBUGCTL-handling.patch
+ 5b3cab8e-2-VMX-improve-MSR-load-save-API.patch
+ 5b3cab8e-3-VMX-cleanup-MSR-load-save-infra.patch
+ 5b3cab8f-1-VMX-factor-out-locate_msr_entry.patch
+ 5b3cab8f-2-VMX-remote-access-to-MSR-lists.patch
+ 5b3cab8f-3-VMX-improve-LBR-MSR-handling.patch
+ 5b3cab8f-4-VMX-pass-MSR-value-into-vmx_msr_add.patch
+ 5b3cab8f-5-VMX-load-only-guest-MSR-entries.patch
+ 5b4321f6-x86-correctly-set-nonlazy_xstate_used-when-loading-full-state.patch
+ 5b505fe5-VMX-fix-find-msr-build.patch
+ 5b56feb1-hvm-Disallow-unknown-MSR_EFER-bits.patch
+ 5b56feb2-spec-ctrl-Fix-the-parsing-of-xpti--on-fixed-Intel-hardware.patch
+ 5b62ca93-VMX-avoid-hitting-BUG_ON.patch
+ 5b6d8ce2-x86-XPTI-parsing.patch
+ 5b72fbbf-x86-Make-spec-ctrl-no-a-global-disable-of-all-mitigations.patch
+ 5b72fbbf-xl.conf-Add-global-affinity-masks.patch
+ 5b741962-x86-write-to-correct-variable-in-parse_pv_l1tf.patch
+
+-------------------------------------------------------------------
+Tue Jul 24 09:17:09 MDT 2018 - carnold@suse.com
+
+- Upstream patches from Jan (bsc#1027519)
+ 5b3f8fa5-port-array_index_nospec-from-Linux.patch
+ 5b4488e7-x86-spec-ctrl-cmdline-handling.patch
+ 5b471517-page_alloc-correct-first_dirty-calc-in-block-merging.patch
+ 5b4c9a60-allow-cpu_down-to-be-called-earlier.patch
+ 5b4db308-SVM-fix-cleanup-svm_inject_event.patch
+ 5b5040c3-cpupools-fix-state-when-downing-a-CPU-failed.patch
+ 5b5040f2-x86-AMD-distinguish-CU-from-HT.patch
+ 5b508775-1-x86-distinguish-CPU-offlining-and-removal.patch
+ 5b508775-2-x86-possibly-bring-up-all-CPUs.patch
+ 5b508775-3-x86-cmdline-opt-to-avoid-use-of-secondary-HTs.patch
+ 5b508ce8-VMX-dont-clobber-dr6-while-debug-state-is-lazy.patch
+ 5b50df16-1-x86-xstate-use-guest-CPUID-policy.patch
+ 5b50df16-2-x86-make-xstate-calculation-errors-more-obvious.patch
+ gcc8-fix-format-warning-on-i586.patch
+ gcc8-fix-array-warning-on-i586.patch
+- Drop xen.fuzz-_FORTIFY_SOURCE.patch
+ gcc8-fix-warning-on-i586.patch
+
+-------------------------------------------------------------------
+Mon Jul 9 10:53:15 MDT 2018 - carnold@suse.com
+
+- Update to Xen 4.11.0 FCS (fate#325202, fate#325123)
+ xen-4.11.0-testing-src.tar.bz2
+ disable-building-pv-shim.patch
+- Dropped patches
+ 5a33a12f-domctl-improve-locking-during-domain-destruction.patch
+ 5a6703cb-x86-move-invocations-of-hvm_flush_guest_tlbs.patch
+ 5a79d7ed-libxc-packed-initrd-dont-fail-domain-creation.patch
+ 5a9985bd-x86-invpcid-support.patch
+ 5ac72a48-gcc8.patch
+ 5ac72a5f-gcc8.patch
+ 5ac72a64-gcc8.patch
+ 5ac72a69-gcc8.patch
+ 5ac72a6e-gcc8.patch
+ 5ac72a74-gcc8.patch
+ 5ac72a7b-gcc8.patch
+ 5ad4923e-x86-correct-S3-resume-ordering.patch
+ 5ad49293-x86-suppress-BTI-mitigations-around-S3.patch
+ 5ad600d4-x86-pv-introduce-x86emul_read_dr.patch
+ 5ad600d4-x86-pv-introduce-x86emul_write_dr.patch
+ 5ad8c3a7-x86-spec_ctrl-update-retpoline-decision-making.patch
+ 5adda097-x86-HPET-fix-race-triggering-ASSERT.patch
+ 5adda0d5-x86-HVM-never-retain-emulated-insn-cache.patch
+ 5adde9ed-xpti-fix-double-fault-handling.patch
+ 5ae06fad-SVM-fix-intercepts-for-SYS-CALL-ENTER-MSRs.patch
+ 5ae31917-x86-cpuidle-init-stats-lock-once.patch
+ 5aeaeae4-introduce-vcpu_sleep_nosync_locked.patch
+ 5aeaeaf0-sched-fix-races-in-vcpu-migration.patch
+ 5aeb2c57-x86-retval-checks-of-set-guest-trapbounce.patch
+ 5aec7393-1-x86-xpti-avoid-copy.patch
+ 5aec7393-2-x86-xpti-write-cr3.patch
+ 5aec744a-3-x86-xpti-per-domain-flag.patch
+ 5aec744a-4-x86-xpti-use-invpcid.patch
+ 5aec744a-5-x86-xpti-no-global-pages.patch
+ 5aec744a-6-x86-xpti-cr3-valid-flag.patch
+ 5aec744a-7-x86-xpti-pv_guest_cr4_to_real_cr4.patch
+ 5aec744b-8-x86-xpti-cr3-helpers.patch
+ 5aec74a8-9-x86-xpti-use-pcid.patch
+ 5af1daa9-1-x86-traps-fix-dr6-handing-in-DB-handler.patch
+ 5af1daa9-2-x86-pv-move-exception-injection-into-test_all_events.patch
+ 5af1daa9-3-x86-traps-use-IST-for-DB.patch
+ 5af1daa9-4-x86-traps-fix-handling-of-DB-in-hypervisor-context.patch
+ 5af1daa9-x86-HVM-guard-against-bogus-emulator-ioreq-state.patch
+ 5af1daa9-x86-vpt-support-IO-APIC-routed-intr.patch
+ 5af97999-viridian-cpuid-leaf-40000003.patch
+ 5afc13ae-1-x86-read-MSR_ARCH_CAPABILITIES-once.patch
+ 5afc13ae-2-x86-express-Xen-SPEC_CTRL-choice-as-variable.patch
+ 5afc13ae-3-x86-merge-bti_ist_info-use_shadow_spec_ctrl.patch
+ 5afc13ae-4-x86-fold-XEN_IBRS-ALTERNATIVES.patch
+ 5afc13ae-5-x86-rename-bits-of-spec_ctrl-infrastructure.patch
+ 5afc13ae-6-x86-elide-MSR_SPEC_CTRL-handling-in-idle.patch
+ 5afc13ae-7-x86-split-X86_FEATURE_SC_MSR.patch
+ 5afc13ae-8-x86-explicitly-set-Xen-default-SPEC_CTRL.patch
+ 5afc13ae-9-x86-cpuid-improve-guest-policies-for-speculative.patch
+ 5afc13ae-A-x86-introduce-spec-ctrl-cmdline-opt.patch
+ 5b02c786-x86-AMD-mitigations-for-GPZ-SP4.patch
+ 5b02c786-x86-Intel-mitigations-for-GPZ-SP4.patch
+ 5b02c786-x86-msr-virtualise-SPEC_CTRL-SSBD.patch
+ 5b0bc9da-x86-XPTI-fix-S3-resume.patch
+ 5b0d2286-libxc-x86-PV-dont-hand-through-CPUID-leaf-0x80000008.patch
+ 5b0d2d91-x86-suppress-sync-when-XPTI-off.patch
+ 5b0d2dbc-x86-correct-default_xen_spec_ctrl.patch
+ 5b0d2ddc-x86-CPUID-dont-override-tool-stack-hidden-STIBP.patch
+ 5b150ef9-x86-fix-error-handling-of-pv-dr7-shadow.patch
+ 5b21825d-1-x86-support-fully-eager-FPU-context-switching.patch
+ 5b21825d-2-x86-spec-ctrl-mitigations-for-LazyFPU.patch
+ 5b238b92-x86-HVM-account-for-fully-eager-FPU.patch
+ 5b2b7172-x86-EFI-fix-FPU-state-handling-around-runtime-calls.patch
+ 5b31e004-x86-HVM-emul-attempts-FPU-set-fpu_initialised.patch
+ 5b323e3c-x86-EFI-fix-FPU-state-handling-around-runtime-calls.patch
+ 5b34882d-x86-mm-dont-bypass-preemption-checks.patch
+ 5b348874-x86-refine-checks-in-DB-handler.patch
+ 5b348897-libxl-qemu_disk_scsi_drive_string-break-out-common.patch
+ 5b3488a2-libxl-restore-passing-ro-to-qemu-for-SCSI-disks.patch
+ 5b34891a-x86-HVM-dont-cause-NM-to-be-raised.patch
+ 5b348954-x86-guard-against-NM.patch
+ libxl.Add-a-version-check-of-QEMU-for-QMP-commands.patch
+ libxl.LIBXL_DESTROY_TIMEOUT.patch
+ libxl.qmp-Tell-QEMU-about-live-migration-or-snapshot.patch
+ xen_fix_build_with_acpica_20180427_and_new_packages.patch
+
+-------------------------------------------------------------------
+Wed Jul 4 15:46:01 UTC 2018 - trenn@suse.de
+
+- Submit upstream patch libacpi: fixes for iasl >= 20180427
+ git commit 858dbaaeda33b05c1ac80aea0ba9a03924e09005
+ xen_fix_build_with_acpica_20180427_and_new_packages.patch
+ This is needed for acpica package to get updated in our build service
+
+-------------------------------------------------------------------
+Fri Jun 29 08:35:34 MDT 2018 - carnold@suse.com
+
+- Upstream patches from Jan (bsc#1027519)
+ 5b02c786-x86-AMD-mitigations-for-GPZ-SP4.patch (Replaces Spectre-v4-1.patch)
+ 5b02c786-x86-Intel-mitigations-for-GPZ-SP4.patch (Replaces Spectre-v4-2.patch)
+ 5b02c786-x86-msr-virtualise-SPEC_CTRL-SSBD.patch (Replaces Spectre-v4-3.patch)
+ 5b0bc9da-x86-XPTI-fix-S3-resume.patch
+ 5b0d2286-libxc-x86-PV-dont-hand-through-CPUID-leaf-0x80000008.patch
+ 5b0d2d91-x86-suppress-sync-when-XPTI-off.patch
+ 5b0d2dbc-x86-correct-default_xen_spec_ctrl.patch
+ 5b0d2ddc-x86-CPUID-dont-override-tool-stack-hidden-STIBP.patch
+ 5b150ef9-x86-fix-error-handling-of-pv-dr7-shadow.patch
+ 5b21825d-1-x86-support-fully-eager-FPU-context-switching.patch (Replaces xsa267-1.patch)
+ 5b21825d-2-x86-spec-ctrl-mitigations-for-LazyFPU.patch (Replaces xsa267-2.patch)
+ 5b238b92-x86-HVM-account-for-fully-eager-FPU.patch
+ 5b2b7172-x86-EFI-fix-FPU-state-handling-around-runtime-calls.patch
+ 5b31e004-x86-HVM-emul-attempts-FPU-set-fpu_initialised.patch
+ 5b323e3c-x86-EFI-fix-FPU-state-handling-around-runtime-calls.patch
+ 5b34882d-x86-mm-dont-bypass-preemption-checks.patch (Replaces xsa264.patch)
+ 5b348874-x86-refine-checks-in-DB-handler.patch (Replaces xsa265.patch)
+ 5b348897-libxl-qemu_disk_scsi_drive_string-break-out-common.patch (Replaces xsa266-1-<>.patch)
+ 5b3488a2-libxl-restore-passing-ro-to-qemu-for-SCSI-disks.patch (Replaces xsa266-2-<>.patch)
+ 5b34891a-x86-HVM-dont-cause-NM-to-be-raised.patch
+ 5b348954-x86-guard-against-NM.patch
+
+-------------------------------------------------------------------
+Mon Jun 25 09:50:31 UTC 2018 - ohering@suse.de
+
+- Fix more build gcc8 related failures with xen.fuzz-_FORTIFY_SOURCE.patch
+
+-------------------------------------------------------------------
+Mon Jun 25 09:44:25 UTC 2018 - ohering@suse.de
+
+- bsc#1098403 - fix regression introduced by changes for bsc#1079730
+ a PV domU without qcow2 and/or vfb has no qemu attached.
+ Ignore QMP errors for PV domUs to handle PV domUs with and without
+ an attached qemu-xen.
+ xen.bug1079730.patch
+
+-------------------------------------------------------------------
+Mon Jun 18 14:57:06 MDT 2018 - carnold@suse.com
+
+- bsc#1097521 - VUL-0: CVE-2018-12891: xen: preemption checks
+ bypassed in x86 PV MM handling (XSA-264)
+ xsa264.patch
+- bsc#1097522 - VUL-0: CVE-2018-12893: xen: x86: #DB exception
+ safety check can be triggered by a guest (XSA-265)
+ xsa265.patch
+- bsc#1097523 - VUL-0: CVE-2018-12892: xen: libxl fails to honour
+ readonly flag on HVM emulated SCSI disks (XSA-266)
+ xsa266-1-libxl-qemu_disk_scsi_drive_string-Break-out-common-p.patch
+ xsa266-2-libxl-restore-passing-readonly-to-qemu-for-SCSI-disk.patch
+
+-------------------------------------------------------------------
+Wed Jun 13 14:20:14 MDT 2018 - carnold@suse.com
+
+- bsc#1095242 - VUL-0: CVE-2018-3665: xen: Lazy FP Save/Restore
+ (XSA-267)
+ xsa267-1.patch
+ xsa267-2.patch
+
+-------------------------------------------------------------------
+Fri Jun 1 10:27:44 MDT 2018 - carnold@suse.com
+
+- bsc#1092543 - GCC 8: xen build fails
+ gcc8-fix-warning-on-i586.patch
+
+-------------------------------------------------------------------
+Fri May 18 08:03:46 MDT 2018 - carnold@suse.com
+
+- bsc#1092631 - VUL-0: CVE-2018-3639: xen: V4 – Speculative Store
+ Bypass aka "Memory Disambiguation" (XSA-263)
+ 5ad4923e-x86-correct-S3-resume-ordering.patch
+ 5ad49293-x86-suppress-BTI-mitigations-around-S3.patch
+ 5afc13ae-1-x86-read-MSR_ARCH_CAPABILITIES-once.patch
+ 5afc13ae-2-x86-express-Xen-SPEC_CTRL-choice-as-variable.patch
+ 5afc13ae-3-x86-merge-bti_ist_info-use_shadow_spec_ctrl.patch
+ 5afc13ae-4-x86-fold-XEN_IBRS-ALTERNATIVES.patch
+ 5afc13ae-5-x86-rename-bits-of-spec_ctrl-infrastructure.patch
+ 5afc13ae-6-x86-elide-MSR_SPEC_CTRL-handling-in-idle.patch
+ 5afc13ae-7-x86-split-X86_FEATURE_SC_MSR.patch
+ 5afc13ae-8-x86-explicitly-set-Xen-default-SPEC_CTRL.patch
+ 5afc13ae-9-x86-cpuid-improve-guest-policies-for-speculative.patch
+ 5afc13ae-A-x86-introduce-spec-ctrl-cmdline-opt.patch
+ Spectre-v4-1.patch
+ Spectre-v4-2.patch
+ Spectre-v4-3.patch
+
+-------------------------------------------------------------------
+Thu May 17 20:29:37 UTC 2018 - ohering@suse.de
+
+- Always call qemus xen-save-devices-state in suspend/resume to
+ fix migration with qcow2 images (bsc#1079730)
+ libxl.Add-a-version-check-of-QEMU-for-QMP-commands.patch
+ libxl.qmp-Tell-QEMU-about-live-migration-or-snapshot.patch
+ xen.bug1079730.patch
+
+-------------------------------------------------------------------
+Wed May 16 08:45:24 MDT 2018 - carnold@suse.com
+
+- bsc#1087289 - L3: Xen BUG at sched_credit.c:1663
+ 5aeaeae4-introduce-vcpu_sleep_nosync_locked.patch
+ 5aeaeaf0-sched-fix-races-in-vcpu-migration.patch
+- Upstream patches from Jan (bsc#1027519)
+ 5ad600d4-x86-pv-introduce-x86emul_read_dr.patch
+ 5ad600d4-x86-pv-introduce-x86emul_write_dr.patch
+ 5ad8c3a7-x86-spec_ctrl-update-retpoline-decision-making.patch
+ 5adda097-x86-HPET-fix-race-triggering-ASSERT.patch
+ 5adda0d5-x86-HVM-never-retain-emulated-insn-cache.patch
+ 5ae06fad-SVM-fix-intercepts-for-SYS-CALL-ENTER-MSRs.patch
+ 5ae31917-x86-cpuidle-init-stats-lock-once.patch
+ 5aeb2c57-x86-retval-checks-of-set-guest-trapbounce.patch
+ 5af1daa9-1-x86-traps-fix-dr6-handing-in-DB-handler.patch (Replaces xsa260-1.patch)
+ 5af1daa9-2-x86-pv-move-exception-injection-into-test_all_events.patch (Replaces xsa260-2.patch)
+ 5af1daa9-3-x86-traps-use-IST-for-DB.patch (Replaces xsa260-3.patch)
+ 5af1daa9-4-x86-traps-fix-handling-of-DB-in-hypervisor-context.patch (Replaces xsa260-4.patch)
+ 5af1daa9-x86-HVM-guard-against-bogus-emulator-ioreq-state.patch (Replaces xsa262.patch)
+ 5af1daa9-x86-vpt-support-IO-APIC-routed-intr.patch (Replaces xsa261.patch)
+ 5af97999-viridian-cpuid-leaf-40000003.patch
+
+-------------------------------------------------------------------
+Fri May 11 08:36:45 MDT 2018 - carnold@suse.com
+
+- Fixes related to Page Table Isolation (XPTI). bsc#1074562 XSA-254
+ 5a6703cb-x86-move-invocations-of-hvm_flush_guest_tlbs.patch
+ 5a9985bd-x86-invpcid-support.patch
+ 5adde9ed-xpti-fix-double-fault-handling.patch
+ 5aec7393-1-x86-xpti-avoid-copy.patch
+ 5aec7393-2-x86-xpti-write-cr3.patch
+ 5aec744a-3-x86-xpti-per-domain-flag.patch
+ 5aec744a-4-x86-xpti-use-invpcid.patch
+ 5aec744a-5-x86-xpti-no-global-pages.patch
+ 5aec744a-6-x86-xpti-cr3-valid-flag.patch
+ 5aec744a-7-x86-xpti-pv_guest_cr4_to_real_cr4.patch
+ 5aec744b-8-x86-xpti-cr3-helpers.patch
+ 5aec74a8-9-x86-xpti-use-pcid.patch
+
+-------------------------------------------------------------------
+Wed May 9 08:32:42 MDT 2018 - carnold@suse.com
+
+- bsc#1092543 - GCC 8: xen build fails
+ 5ac72a48-gcc8.patch
+ 5ac72a5f-gcc8.patch
+ 5ac72a64-gcc8.patch
+ 5ac72a69-gcc8.patch
+ 5ac72a6e-gcc8.patch
+ 5ac72a74-gcc8.patch
+ 5ac72a7b-gcc8.patch
+ gcc8-inlining-failed.patch
+
+-------------------------------------------------------------------
+Tue May 8 12:51:26 MDT 2018 - carnold@suse.com
+
+- Update to Xen 4.10.1 bug fix release (bsc#1027519)
+ xen-4.10.1-testing-src.tar.bz2
+ disable-building-pv-shim.patch
+- Drop the following patches contained in the new tarball
+ 5a21a77e-x86-pv-construct-d0v0s-GDT-properly.patch
+ 5a2fda0d-x86-mb2-avoid-Xen-when-looking-for-module-crashkernel-pos.patch
+ 5a2ffc1f-x86-mm-drop-bogus-paging-mode-assertion.patch
+ 5a313972-x86-microcode-add-support-for-AMD-Fam17.patch
+ 5a32bd79-x86-vmx-dont-use-hvm_inject_hw_exception-in-.patch
+ 5a4caa5e-x86-IRQ-conditionally-preserve-access-perm.patch
+ 5a4caa8c-x86-E820-don-t-overrun-array.patch
+ 5a4e2bca-x86-free-msr_vcpu_policy-during-destruction.patch
+ 5a4e2c2c-x86-upcall-inject-spurious-event-after-setting-vector.patch
+ 5a4fd893-1-x86-break-out-alternative-asm-into-separate-header.patch
+ 5a4fd893-2-x86-introduce-ALTERNATIVE_2-macros.patch
+ 5a4fd893-3-x86-hvm-rename-update_guest_vendor-to-cpuid_policy_changed.patch
+ 5a4fd893-4-x86-introduce-cpuid_policy_updated.patch
+ 5a4fd893-5-x86-entry-remove-partial-cpu_user_regs.patch
+ 5a4fd894-1-x86-rearrange-RESTORE_ALL-to-restore-in-stack-order.patch
+ 5a4fd894-2-x86-hvm-use-SAVE_ALL-after-VMExit.patch
+ 5a4fd894-3-x86-erase-guest-GPRs-on-entry-to-Xen.patch
+ 5a4fd894-4-clarifications-to-wait-infrastructure.patch
+ 5a534c78-x86-dont-use-incorrect-CPUID-values-for-topology.patch
+ 5a5cb24c-x86-mm-always-set-_PAGE_ACCESSED-on-L4-updates.patch
+ 5a5e2cff-x86-Meltdown-band-aid.patch
+ 5a5e2d73-x86-Meltdown-band-aid-conditional.patch
+ 5a5e3a4e-1-x86-support-compiling-with-indirect-branch-thunks.patch
+ 5a5e3a4e-2-x86-support-indirect-thunks-from-asm.patch
+ 5a5e3a4e-3-x86-report-speculative-mitigation-details.patch
+ 5a5e3a4e-4-x86-AMD-set-lfence-as-Dispatch-Serialising.patch
+ 5a5e3a4e-5-x86-introduce-alternative-indirect-thunks.patch
+ 5a5e3a4e-6-x86-definitions-for-Indirect-Branch-Controls.patch
+ 5a5e3a4e-7-x86-cmdline-opt-to-disable-IBRS-IBPB-STIBP.patch
+ 5a5e459c-1-x86-SVM-offer-CPUID-faulting-to-AMD-HVM-guests.patch
+ 5a5e459c-2-x86-report-domain-id-on-CPUID.patch
+ 5a68bc16-x86-acpi-process-softirqs-logging-Cx.patch
+ 5a69c0b9-x86-fix-GET_STACK_END.patch
+ 5a6b36cd-1-x86-cpuid-handling-of-IBRS-IBPB-STIBP-and-IBRS-for-guests.patch
+ 5a6b36cd-2-x86-msr-emulation-of-SPEC_CTRL-PRED_CMD.patch
+ 5a6b36cd-3-x86-migrate-MSR_SPEC_CTRL.patch
+ 5a6b36cd-4-x86-hvm-permit-direct-access-to-SPEC_CTRL-PRED_CMD.patch
+ 5a6b36cd-5-x86-use-SPEC_CTRL-on-entry.patch
+ 5a6b36cd-6-x86-clobber-RSB-RAS-on-entry.patch
+ 5a6b36cd-7-x86-no-alternatives-in-NMI-MC-paths.patch
+ 5a6b36cd-8-x86-boot-calculate-best-BTI-mitigation.patch
+ 5a6b36cd-9-x86-issue-speculation-barrier.patch
+ 5a6b36cd-A-x86-offer-Indirect-Branch-Controls-to-guests.patch
+ 5a6b36cd-B-x86-clear-SPEC_CTRL-while-idle.patch
+ 5a7b1bdd-x86-reduce-Meltdown-band-aid-IPI-overhead.patch
+ 5a843807-x86-spec_ctrl-fix-bugs-in-SPEC_CTRL_ENTRY_FROM_INTR_IST.patch
+ 5a856a2b-x86-emul-fix-64bit-decoding-of-segment-overrides.patch
+ 5a856a2b-x86-use-32bit-xors-for-clearing-GPRs.patch
+ 5a856a2b-x86-xpti-hide-almost-all-of-Xen-image-mappings.patch
+ 5a8be788-x86-nmi-start-NMI-watchdog-on-CPU0-after-SMP.patch
+ 5a95373b-x86-PV-avoid-leaking-other-guests-MSR_TSC_AUX.patch
+ 5a95571f-memory-dont-implicitly-unpin-in-decrease-res.patch
+ 5a95576c-gnttab-ARM-dont-corrupt-shared-GFN-array.patch
+ 5a955800-gnttab-dont-free-status-pages-on-ver-change.patch
+ 5a955854-x86-disallow-HVM-creation-without-LAPIC-emul.patch
+ 5a956747-x86-HVM-dont-give-wrong-impression-of-WRMSR-success.patch
+ 5a9eb7f1-x86-xpti-dont-map-stack-guard-pages.patch
+ 5a9eb85c-x86-slightly-reduce-XPTI-overhead.patch
+ 5a9eb890-x86-remove-CR-reads-from-exit-to-guest-path.patch
+ 5aa2b6b9-cpufreq-ondemand-CPU-offlining-race.patch
+ 5aaa9878-x86-vlapic-clear-TMR-bit-for-edge-triggered-intr.patch
+ xsa258.patch
+ xsa259.patch
+
+-------------------------------------------------------------------
+Wed Apr 25 09:45:03 MDT 2018 - carnold@suse.com
+
+- bsc#1090820 - VUL-0: CVE-2018-8897: xen: x86: mishandling of
+ debug exceptions (XSA-260)
+ xsa260-1.patch
+ xsa260-2.patch
+ xsa260-3.patch
+ xsa260-4.patch
+- bsc#1090822 - VUL-0: CVE-2018-10982: xen: x86 vHPET interrupt
+ injection errors (XSA-261)
+ xsa261.patch
+- bsc#1090823 - VUL-0: CVE-2018-10981: xen: qemu may drive Xen into
+ unbounded loop (XSA-262)
+ xsa262.patch
+
+-------------------------------------------------------------------
+Mon Apr 16 14:03:24 MDT 2018 - carnold@suse.com
+
+- bsc#1089152 - VUL-0: CVE-2018-10472: xen: Information leak via
+ crafted user-supplied CDROM (XSA-258)
+ xsa258.patch
+- bsc#1089635 - VUL-0: CVE-2018-10471: xen: x86: PV guest may crash
+ Xen with XPTI (XSA-259)
+ xsa259.patch
+
+-------------------------------------------------------------------
+Wed Mar 28 08:28:59 UTC 2018 - ohering@suse.de
+
+- Preserve xen-syms from xen-dbg.gz to allow processing vmcores
+ with crash(1) (bsc#1087251)
+
+-------------------------------------------------------------------
+Mon Mar 26 08:20:45 MDT 2018 - carnold@suse.com
+
+- Upstream patches from Jan (bsc#1027519) and fixes related to
+ Page Table Isolation (XPTI). See also bsc#1074562 XSA-254
+ 5a856a2b-x86-xpti-hide-almost-all-of-Xen-image-mappings.patch
+ 5a9eb7f1-x86-xpti-dont-map-stack-guard-pages.patch
+ 5a9eb85c-x86-slightly-reduce-XPTI-overhead.patch
+ 5a9eb890-x86-remove-CR-reads-from-exit-to-guest-path.patch
+ 5aa2b6b9-cpufreq-ondemand-CPU-offlining-race.patch
+ 5aaa9878-x86-vlapic-clear-TMR-bit-for-edge-triggered-intr.patch
+
+-------------------------------------------------------------------
+Thu Mar 1 09:36:03 MST 2018 - carnold@suse.com
+
+- bsc#1072834 - Xen HVM: unchecked MSR access error: RDMSR from
+ 0xc90 at rIP: 0xffffffff93061456 (native_read_msr+0x6/0x30)
+ 5a956747-x86-HVM-dont-give-wrong-impression-of-WRMSR-success.patch
+- Upstream patches from Jan (bsc#1027519)
+ 5a79d7ed-libxc-packed-initrd-dont-fail-domain-creation.patch
+ 5a7b1bdd-x86-reduce-Meltdown-band-aid-IPI-overhead.patch
+ 5a843807-x86-spec_ctrl-fix-bugs-in-SPEC_CTRL_ENTRY_FROM_INTR_IST.patch
+ 5a856a2b-x86-emul-fix-64bit-decoding-of-segment-overrides.patch
+ 5a856a2b-x86-use-32bit-xors-for-clearing-GPRs.patch
+ 5a8be788-x86-nmi-start-NMI-watchdog-on-CPU0-after-SMP.patch
+ 5a95373b-x86-PV-avoid-leaking-other-guests-MSR_TSC_AUX.patch
+ 5a95571f-memory-dont-implicitly-unpin-in-decrease-res.patch (Replaces xsa252.patch)
+ 5a95576c-gnttab-ARM-dont-corrupt-shared-GFN-array.patch (Replaces xsa255-1.patch)
+ 5a955800-gnttab-dont-free-status-pages-on-ver-change.patch (Replaces xsa255-2.patch)
+ 5a955854-x86-disallow-HVM-creation-without-LAPIC-emul.patch (Replaces xsa256.patch)
+- Drop
+ xsa252.patch
+ xsa255-1.patch
+ xsa255-2.patch
+ xsa256.patch
+
+-------------------------------------------------------------------
+Mon Feb 12 13:26:38 MST 2018 - carnold@suse.com
+
+- bsc#1080635 - VUL-0: CVE-2018-7540: xen: DoS via non-preemptable
+ L3/L4 pagetable freeing (XSA-252)
+ xsa252.patch
+- bsc#1080662 - VUL-0: CVE-2018-7541: xen: grant table v2 -> v1
+ transition may crash Xen (XSA-255)
+ xsa255-1.patch
+ xsa255-2.patch
+- bsc#1080634 - VUL-0: CVE-2018-7542: xen: x86 PVH guest without
+ LAPIC may DoS the host (XSA-256)
+ xsa256.patch
+
+-------------------------------------------------------------------
+Fri Feb 9 12:59:12 UTC 2018 - ohering@suse.de
+
+- Remove stale systemd presets code for 13.2 and older
+
+-------------------------------------------------------------------
+Fri Feb 9 12:31:33 UTC 2018 - ohering@suse.de
+
+- fate#324965 - add script, udev rule and systemd service to watch
+ for vcpu online/offline events in a HVM domU
+ They are triggered via xl vcpu-set domU N
+
+-------------------------------------------------------------------
+Fri Feb 9 10:23:15 UTC 2018 - ohering@suse.de
+
+- Replace hardcoded xen with Name tag when refering to subpkgs
+
+-------------------------------------------------------------------
+Fri Feb 9 10:19:49 UTC 2018 - ohering@suse.de
+
+- Make sure tools and tools-domU require libs from the very same build
+
+-------------------------------------------------------------------
+Wed Feb 7 22:47:44 UTC 2018 - jfehlig@suse.com
+
+- tools-domU: Add support for qemu guest agent. New files
+ 80-xen-channel-setup.rules and xen-channel-setup.sh configure a
+ xen-pv-channel for use by the guest agent
+ FATE#324963
+
+-------------------------------------------------------------------
+Wed Feb 7 15:01:10 UTC 2018 - ohering@suse.de
+
+- Remove outdated /etc/xen/README*
+
+-------------------------------------------------------------------
+Mon Jan 29 10:11:05 MST 2018 - carnold@suse.com
+
+- bsc#1073961 - VUL-0: CVE-2018-5244: xen: x86: memory leak with
+ MSR emulation (XSA-253)
+ 5a4e2bca-x86-free-msr_vcpu_policy-during-destruction.patch
+- bsc#1074562 - VUL-0: CVE-2017-5753,CVE-2017-5715,CVE-2017-5754
+ xen: Information leak via side effects of speculative execution
+ (XSA-254). Includes Spectre v2 mitigation.
+ 5a4caa5e-x86-IRQ-conditionally-preserve-access-perm.patch
+ 5a4caa8c-x86-E820-don-t-overrun-array.patch
+ 5a4e2c2c-x86-upcall-inject-spurious-event-after-setting-vector.patch
+ 5a4fd893-1-x86-break-out-alternative-asm-into-separate-header.patch
+ 5a4fd893-2-x86-introduce-ALTERNATIVE_2-macros.patch
+ 5a4fd893-3-x86-hvm-rename-update_guest_vendor-to-cpuid_policy_changed.patch
+ 5a4fd893-4-x86-introduce-cpuid_policy_updated.patch
+ 5a4fd893-5-x86-entry-remove-partial-cpu_user_regs.patch
+ 5a4fd894-1-x86-rearrange-RESTORE_ALL-to-restore-in-stack-order.patch
+ 5a4fd894-2-x86-hvm-use-SAVE_ALL-after-VMExit.patch
+ 5a4fd894-3-x86-erase-guest-GPRs-on-entry-to-Xen.patch
+ 5a4fd894-4-clarifications-to-wait-infrastructure.patch
+ 5a534c78-x86-dont-use-incorrect-CPUID-values-for-topology.patch
+ 5a5cb24c-x86-mm-always-set-_PAGE_ACCESSED-on-L4-updates.patch
+ 5a5e2cff-x86-Meltdown-band-aid.patch
+ 5a5e2d73-x86-Meltdown-band-aid-conditional.patch
+ 5a5e3a4e-1-x86-support-compiling-with-indirect-branch-thunks.patch
+ 5a5e3a4e-2-x86-support-indirect-thunks-from-asm.patch
+ 5a5e3a4e-3-x86-report-speculative-mitigation-details.patch
+ 5a5e3a4e-4-x86-AMD-set-lfence-as-Dispatch-Serialising.patch
+ 5a5e3a4e-5-x86-introduce-alternative-indirect-thunks.patch
+ 5a5e3a4e-6-x86-definitions-for-Indirect-Branch-Controls.patch
+ 5a5e3a4e-7-x86-cmdline-opt-to-disable-IBRS-IBPB-STIBP.patch
+ 5a5e459c-1-x86-SVM-offer-CPUID-faulting-to-AMD-HVM-guests.patch
+ 5a5e459c-2-x86-report-domain-id-on-CPUID.patch
+ 5a68bc16-x86-acpi-process-softirqs-logging-Cx.patch
+ 5a69c0b9-x86-fix-GET_STACK_END.patch
+ 5a6b36cd-1-x86-cpuid-handling-of-IBRS-IBPB-STIBP-and-IBRS-for-guests.patch
+ 5a6b36cd-2-x86-msr-emulation-of-SPEC_CTRL-PRED_CMD.patch
+ 5a6b36cd-3-x86-migrate-MSR_SPEC_CTRL.patch
+ 5a6b36cd-4-x86-hvm-permit-direct-access-to-SPEC_CTRL-PRED_CMD.patch
+ 5a6b36cd-5-x86-use-SPEC_CTRL-on-entry.patch
+ 5a6b36cd-6-x86-clobber-RSB-RAS-on-entry.patch
+ 5a6b36cd-7-x86-no-alternatives-in-NMI-MC-paths.patch
+ 5a6b36cd-8-x86-boot-calculate-best-BTI-mitigation.patch
+ 5a6b36cd-9-x86-issue-speculation-barrier.patch
+ 5a6b36cd-A-x86-offer-Indirect-Branch-Controls-to-guests.patch
+ 5a6b36cd-B-x86-clear-SPEC_CTRL-while-idle.patch
+
+-------------------------------------------------------------------
+Fri Jan 26 14:40:14 MST 2018 - carnold@suse.com
+
+- Fix python3 deprecated atoi call (bsc#1067224)
+ pygrub-python3-conversion.patch
+- Drop xenmon-python3-conversion.patch
+
+-------------------------------------------------------------------
+Wed Jan 10 11:12:07 UTC 2018 - ohering@suse.de
+
+- bsc#1067317 - pass cache=writeback|unsafe|directsync to qemu,
+ depending on the libxl disk settings
+ libxl.add-option-to-disable-disk-cache-flushes-in-qdisk.patch
+
+-------------------------------------------------------------------
+Mon Jan 8 08:15:11 UTC 2018 - ohering@suse.de
+
+- Remove libxl.LIBXL_DESTROY_TIMEOUT.debug.patch
+
+-------------------------------------------------------------------
+Fri Jan 5 13:45:40 MST 2018 - carnold@suse.com
+
+- bsc#1067224 - xen-tools have hard dependency on Python 2
+ build-python3-conversion.patch
+ bin-python3-conversion.patch
+
+-------------------------------------------------------------------
+Wed Dec 20 09:57:09 MST 2017 - carnold@suse.com
+
+- bsc#1070165 - xen crashes after aborted localhost migration
+ 5a2ffc1f-x86-mm-drop-bogus-paging-mode-assertion.patch
+- bsc#1035442 - L3: libxl: error: libxl.c:1676:devices_destroy_cb:
+ libxl__devices_destroy failed
+ 5a33a12f-domctl-improve-locking-during-domain-destruction.patch
+- Upstream patches from Jan (bsc#1027519)
+ 5a21a77e-x86-pv-construct-d0v0s-GDT-properly.patch
+ 5a2fda0d-x86-mb2-avoid-Xen-when-looking-for-module-crashkernel-pos.patch
+ 5a313972-x86-microcode-add-support-for-AMD-Fam17.patch
+ 5a32bd79-x86-vmx-dont-use-hvm_inject_hw_exception-in-.patch
+
+-------------------------------------------------------------------
+Wed Dec 13 08:43:00 MST 2017 - carnold@suse.com
+
+- Update to Xen 4.10.0 FCS (fate#321394, fate#322686)
+ xen-4.10.0-testing-src.tar.bz2
+
+-------------------------------------------------------------------
+Mon Dec 11 12:07:30 UTC 2017 - ohering@suse.de
+
+- Rebuild initrd if xen-tools-domU is updated
+
+-------------------------------------------------------------------
+Tue Dec 5 08:38:58 MST 2017 - carnold@suse.com
+
+- Update to Xen 4.10.0-rc8 (fate#321394, fate#322686)
+ xen-4.10.0-testing-src.tar.bz2
+
+-------------------------------------------------------------------
+Tue Nov 28 10:14:56 UTC 2017 - ohering@suse.de
+
+- Increase the value of LIBXL_DESTROY_TIMEOUT from 10 to 100 seconds
+ If many domUs shutdown in parallel the backends can not keep up
+ Add some debug output to track how long backend shutdown takes (bsc#1035442)
+ libxl.LIBXL_DESTROY_TIMEOUT.patch
+ libxl.LIBXL_DESTROY_TIMEOUT.debug.patch
+
+-------------------------------------------------------------------
+Tue Nov 28 10:06:03 UTC 2017 - ohering@suse.de
+
+- Adjust xenstore-run-in-studomain.patch to change the defaults
+ in the code instead of changing the sysconfig template, to also
+ cover the upgrade case
+
+-------------------------------------------------------------------
+Fri Nov 24 17:28:59 UTC 2017 - carnold@suse.com
+
+- Update to Xen 4.10.0-rc6 (fate#321394, fate#322686)
+ xen-4.10.0-testing-src.tar.bz2
+
+-------------------------------------------------------------------
+Fri Nov 24 13:25:07 UTC 2017 - ohering@suse.de
+
+- Since xen switched to Kconfig, building a debug hypervisor
+ was done by default. Adjust make logic to build a non-debug
+ hypervisor by default, and continue to provide one as xen-dbg.gz
+
+-------------------------------------------------------------------
+Fri Nov 24 11:26:45 UTC 2017 - ohering@suse.de
+
+- fate#316614: set migration constraints from cmdline
+ fix libxl.set-migration-constraints-from-cmdline.patch for xen-4.10
+
+-------------------------------------------------------------------
+Thu Nov 23 15:06:44 UTC 2017 - ohering@suse.de
+
+- Document the suse-diskcache-disable-flush option in
+ xl-disk-configuration(5) (bsc#879425,bsc#1067317)
+
+-------------------------------------------------------------------
+Thu Nov 23 13:47:42 UTC 2017 - rbrown@suse.com
+
+- Replace references to /var/adm/fillup-templates with new
+ %_fillupdir macro (boo#1069468)
+
+-------------------------------------------------------------------
+Thu Nov 16 08:48:07 MST 2017 - carnold@suse.com
+
+- Update to Xen 4.10.0-rc5 (fate#321394, fate#322686)
+ xen-4.10.0-testing-src.tar.bz2
+- fate#323663 - Run Xenstore in stubdomain
+ xenstore-run-in-studomain.patch
+
+-------------------------------------------------------------------
+Thu Nov 9 15:11:57 MST 2017 - carnold@suse.com
+
+- bsc#1067224 - xen-tools have hard dependency on Python 2
+ pygrub-python3-conversion.patch
+ xenmon-python3-conversion.patch
+ migration-python3-conversion.patch
+ xnloader.py
+ xen2libvirt.py
+
+-------------------------------------------------------------------
+Wed Nov 8 10:47:24 UTC 2017 - ohering@suse.de
+
+- Remove xendriverdomain.service (bsc#1065185)
+ Driver domains must be configured manually with custom .service file
+
+-------------------------------------------------------------------
+Thu Nov 2 14:14:02 MDT 2017 - carnold@suse.com
+
+- Update to Xen 4.10.0-rc3 (fate#321394, fate#322686)
+ xen-4.10.0-testing-src.tar.bz2
+- Drop 59f31268-libxc-remove-stale-error-check-for-domain-size.patch
+
+-------------------------------------------------------------------
+Thu Nov 2 11:36:27 UTC 2017 - ohering@suse.de
+
+- Adjust xen-dom0-modules.service to ignore errors (bsc#1065187)
+
+-------------------------------------------------------------------
+Fri Oct 27 07:48:55 MDT 2017 - carnold@suse.com
+
+- fate#324052 Support migration of Xen HVM domains larger than 1TB
+ 59f31268-libxc-remove-stale-error-check-for-domain-size.patch
+
+-------------------------------------------------------------------
+Wed Oct 25 16:26:33 MDT 2017 - carnold@suse.com
+
+- Update to Xen 4.10.0-rc2 (fate#321394, fate#322686)
+ xen-4.10.0-testing-src.tar.bz2
+
+-------------------------------------------------------------------
+Mon Oct 16 09:34:23 MDT 2017 - carnold@suse.com
+
+- Update to Xen 4.10.0-rc1 (fate#321394, fate#322686)
+ xen-4.10.0-testing-src.tar.bz2
+- Drop patches included in new tarball
+ 592fd5f0-stop_machine-fill-result-only-in-case-of-error.patch
+ 596f257e-x86-fix-hvmemul_insn_fetch.patch
+ 5982fd99-VT-d-don-t-panic-warn-on-iommu-no-igfx.patch
+ 598c3630-VT-d-PI-disable-when-CPU-side-PI-is-off.patch
+ 598c3706-cpufreq-only-stop-ondemand-governor-if-started.patch
+ 5992f1e5-x86-grant-disallow-misaligned-PTEs.patch
+ 5992f20d-gnttab-split-maptrack-lock-to-make-it-useful-again.patch
+ 5992f233-gnttab-correct-pin-status-fixup-for-copy.patch
+ 59958e76-gnttab-dont-use-possibly-unbounded-tail-calls.patch
+ 59958ebf-gnttab-fix-transitive-grant-handling.patch
+ 59958edd-gnttab-avoid-spurious-maptrack-handle-alloc-failures.patch
+ 599da329-arm-mm-release-grant-lock-on-xatp1-error-paths.patch
+ 59a01223-x86-check-for-alloc-errors-in-modify_xen_mappings.patch
+ 59a0130c-x86-efi-dont-write-relocs-in-efi_arch_relocate_image-1st-pass.patch
+ 59a9221f-VT-d-use-correct-BDF-for-VF-to-search-VT-d-unit.patch
+ 59ae9177-x86-emul-fix-handling-of-unimplemented-Grp7-insns.patch
+ 59aec335-x86emul-correct-VEX-W-handling-for-VPINSRD.patch
+ 59aec375-x86emul-correct-VEX-L-handling-for-VCVTx2SI.patch
+ 59afcea0-x86-introduce-and-use-setup_force_cpu_cap.patch
+ 59b2a7f2-x86-HVM-correct-repeat-count-update-linear-phys.patch
+ 59b7d664-mm-make-sure-node-is-less-than-MAX_NUMNODES.patch
+ 59b7d69b-grant_table-fix-GNTTABOP_cache_flush-handling.patch
+ 59b7d6c8-xenstore-dont-unlink-connection-object-twice.patch
+ 59b7d6d9-gnttab-also-validate-PTE-perms-upon-destroy-replace.patch
+ gcc7-arm.patch
+ gcc7-mini-os.patch
+
+-------------------------------------------------------------------
+Tue Oct 3 09:03:57 MDT 2017 - carnold@suse.com
+
+- bsc#1061084 - VUL-0: xen: page type reference leak on x86
+ (XSA-242)
+ xsa242.patch
+- bsc#1061086 - VUL-0: xen: x86: Incorrect handling of self-linear
+ shadow mappings with translated guests (XSA-243)
+ xsa243.patch
+- bsc#1061087 - VUL-0: xen: x86: Incorrect handling of IST settings
+ during CPU hotplug (XSA-244)
+ xsa244.patch
+
+-------------------------------------------------------------------
+Mon Oct 2 13:26:08 MDT 2017 - carnold@suse.com
+
+- bsc#1061077 - VUL-0: xen: DMOP map/unmap missing argument checks
+ (XSA-238)
+ xsa238.patch
+- bsc#1061080 - VUL-0: xen: hypervisor stack leak in x86 I/O
+ intercept code (XSA-239)
+ xsa239.patch
+- bsc#1061081 - VUL-0: xen: Unlimited recursion in linear pagetable
+ de-typing (XSA-240)
+ xsa240-1.patch
+ xsa240-2.patch
+- bsc#1061082 - VUL-0: xen: Stale TLB entry due to page type
+ release race (XSA-241)
+ xsa241.patch
+
+-------------------------------------------------------------------
+Fri Sep 29 10:57:35 MDT 2017 - carnold@suse.com
+
+- bsc#1061075 - VUL-0: xen: pin count / page reference race in
+ grant table code (XSA-236)
+ xsa236.patch
+- bsc#1061076 - VUL-0: xen: multiple MSI mapping issues on x86
+ (XSA-237)
+ xsa237-1.patch
+ xsa237-2.patch
+ xsa237-3.patch
+ xsa237-4.patch
+ xsa237-5.patch
+
+-------------------------------------------------------------------
+Tue Sep 26 08:44:03 MDT 2017 - carnold@suse.com
+
+- bsc#1056278 - VUL-0: xen: Missing NUMA node parameter
+ verification (XSA-231)
+ 59b7d664-mm-make-sure-node-is-less-than-MAX_NUMNODES.patch
+- bsc#1056280 - VUL-0: xen: Missing check for grant table (XSA-232)
+ 59b7d69b-grant_table-fix-GNTTABOP_cache_flush-handling.patch
+- bsc#1056281 - VUL-0: xen: cxenstored: Race in domain cleanup
+ (XSA-233)
+ 59b7d6c8-xenstore-dont-unlink-connection-object-twice.patch
+- bsc#1056282 - VUL-0: xen: insufficient grant unmapping checks for
+ x86 PV guests (XSA-234)
+ 59b7d6d9-gnttab-also-validate-PTE-perms-upon-destroy-replace.patch
+- bsc#1055321 - VUL-0: xen: add-to-physmap error paths fail to
+ release lock on ARM (XSA-235)
+ 599da329-arm-mm-release-grant-lock-on-xatp1-error-paths.patch
+- Upstream patches from Jan (bsc#1027519)
+ 59a01223-x86-check-for-alloc-errors-in-modify_xen_mappings.patch
+ 59a0130c-x86-efi-dont-write-relocs-in-efi_arch_relocate_image-1st-pass.patch
+ 59a9221f-VT-d-use-correct-BDF-for-VF-to-search-VT-d-unit.patch
+ 59ae9177-x86-emul-fix-handling-of-unimplemented-Grp7-insns.patch
+ 59aec335-x86emul-correct-VEX-W-handling-for-VPINSRD.patch
+ 59aec375-x86emul-correct-VEX-L-handling-for-VCVTx2SI.patch
+ 59afcea0-x86-introduce-and-use-setup_force_cpu_cap.patch
+ 59b2a7f2-x86-HVM-correct-repeat-count-update-linear-phys.patch
+- Dropped gcc7-xen.patch
+
+-------------------------------------------------------------------
+Thu Sep 7 04:58:12 MDT 2017 - carnold@suse.com
+
+- bsc#1057358 - Cannot Boot into SLES12.3 with Xen hypervisor when
+ Secure Boot is Enabled
+ xen.spec
+
+-------------------------------------------------------------------
+Tue Sep 5 12:00:59 UTC 2017 - ohering@suse.de
+
+- bsc#1055695 - XEN: 11SP4 and 12SP3 HVM guests can not be restored
+ update from v6 to v9 to cover more cases for ballooned domUs
+ libxc.sr.superpage.patch
+
+-------------------------------------------------------------------
+Mon Aug 28 14:51:54 UTC 2017 - ohering@suse.de
+
+- bsc#1026236 - remove suse_vtsc_tolerance= cmdline option for Xen
+ drop the patch because it is not upstream acceptable
+ remove xen.suse_vtsc_tolerance.patch
+
+-------------------------------------------------------------------
+Sat Aug 26 10:52:46 UTC 2017 - ohering@suse.de
+
+- bsc#1055695 - XEN: 11SP4 and 12SP3 HVM guests can not be restored
+ after the save using xl stack
+ libxc.sr.superpage.patch
+
+-------------------------------------------------------------------
+Tue Aug 22 13:25:33 UTC 2017 - ohering@suse.de
+
+- Unignore gcc-PIE
+ the toolstack disables PIE for firmware builds as needed
+
+-------------------------------------------------------------------
+Mon Aug 21 10:42:46 MDT 2017 - carnold@suse.com
+
+- Upstream patches from Jan (bsc#1027519)
+ 592fd5f0-stop_machine-fill-result-only-in-case-of-error.patch
+ 596f257e-x86-fix-hvmemul_insn_fetch.patch
+ 5982fd99-VT-d-don-t-panic-warn-on-iommu-no-igfx.patch
+ 598c3630-VT-d-PI-disable-when-CPU-side-PI-is-off.patch
+ 598c3706-cpufreq-only-stop-ondemand-governor-if-started.patch
+ 5992f1e5-x86-grant-disallow-misaligned-PTEs.patch (Replaces xsa227.patch)
+ 5992f20d-gnttab-split-maptrack-lock-to-make-it-useful-again.patch (Replaces xsa228.patch)
+ 5992f233-gnttab-correct-pin-status-fixup-for-copy.patch (Replaces xsa230.patch)
+ 59958e76-gnttab-dont-use-possibly-unbounded-tail-calls.patch (Replaces xsa226-1.patch)
+ 59958ebf-gnttab-fix-transitive-grant-handling.patch (Replaces xsa226-2.patch)
+ 59958edd-gnttab-avoid-spurious-maptrack-handle-alloc-failures.patch
+
+-------------------------------------------------------------------
+Wed Aug 16 15:03:46 MDT 2017 - carnold@suse.com
+
+- bsc#1044974 - xen-tools require python-pam
+ xen.spec
+
+-------------------------------------------------------------------
+Fri Aug 11 16:37:44 MDT 2017 - carnold@suse.com
+
+- Clean up spec file errors and a few warnings. (bsc#1027519)
+- Removed conditional 'with_systemd' and some old deprecated
+ 'sles_version' checks.
+ xen.spec
+
+-------------------------------------------------------------------
+Thu Aug 10 19:45:31 UTC 2017 - jfehlig@suse.com
+
+- Remove use of brctl utiltiy from supportconfig plugin
+ FATE#323639
+
+-------------------------------------------------------------------
+Thu Aug 10 07:50:47 UTC 2017 - ohering@suse.de
+
+- Use upstream variant of mini-os __udivmoddi4 change
+ gcc7-mini-os.patch
+
+-------------------------------------------------------------------
+Wed Aug 9 13:14:56 MDT 2017 - carnold@suse.com
+
+- fate#323639 Move bridge-utils to legacy
+ replace-obsolete-network-configuration-commands-in-s.patch
+
+-------------------------------------------------------------------
+Tue Aug 8 08:20:41 MDT 2017 - carnold@suse.com
+
+- bsc#1052686 - VUL-0: xen: grant_table: possibly premature
+ clearing of GTF_writing / GTF_reading (XSA-230)
+ xsa230.patch
+
+-------------------------------------------------------------------
+Mon Aug 7 12:53:44 UTC 2017 - ohering@suse.de
+
+- bsc#1035231 - migration of HVM domU does not use superpages
+ on destination dom0
+ libxc.sr.superpage.patch
+
+-------------------------------------------------------------------
+Thu Aug 3 11:51:11 MDT 2017 - carnold@suse.com
+
+- bsc#1051787 - VUL-0: CVE-2017-12135: xen: possibly unbounded
+ recursion in grant table code (XSA-226)
+ xsa226-1.patch
+ xsa226-2.patch
+- bsc#1051788 - VUL-0: CVE-2017-12137: xen: x86: PV privilege
+ escalation via map_grant_ref (XSA-227)
+ xsa227.patch
+- bsc#1051789 - VUL-0: CVE-2017-12136: xen: grant_table: Race
+ conditions with maptrack free list handling (XSA-228)
+ xsa228.patch
+
+-------------------------------------------------------------------
+Tue Aug 1 20:02:58 UTC 2017 - jfehlig@suse.com
+
+- Add a supportconfig plugin
+ xen-supportconfig
+ FATE#323661
+
+-------------------------------------------------------------------
+Tue Jul 25 14:48:02 UTC 2017 - ohering@suse.de
+
+- bsc#1026236 - add suse_vtsc_tolerance= cmdline option for Xen
+ To avoid emulation of TSC access from a domU after live migration
+ add a global tolerance for the measured host kHz
+ xen.suse_vtsc_tolerance.patch
+
+-------------------------------------------------------------------
+Thu Jul 20 10:46:43 MDT 2017 - carnold@suse.com
+
+- fate#323662 Drop qemu-dm from xen-tools package
+ The following tarball and patches have been removed
+ qemu-xen-traditional-dir-remote.tar.bz2
+ VNC-Support-for-ExtendedKeyEvent-client-message.patch
+ 0001-net-move-the-tap-buffer-into-TAPState.patch
+ 0002-net-increase-tap-buffer-size.patch
+ 0003-e1000-fix-access-4-bytes-beyond-buffer-end.patch
+ 0004-e1000-secrc-support.patch
+ 0005-e1000-multi-buffer-packet-support.patch
+ 0006-e1000-clear-EOP-for-multi-buffer-descriptors.patch
+ 0007-e1000-verify-we-have-buffers-upfront.patch
+ 0008-e1000-check-buffer-availability.patch
+ CVE-2013-4533-qemut-pxa2xx-buffer-overrun-on-incoming-migration.patch
+ CVE-2013-4534-qemut-openpic-buffer-overrun-on-incoming-migration.patch
+ CVE-2013-4537-qemut-ssi-sd-fix-buffer-overrun-on-invalid-state-load.patch
+ CVE-2013-4538-qemut-ssd0323-fix-buffer-overun-on-invalid-state.patch
+ CVE-2013-4539-qemut-tsc210x-fix-buffer-overrun-on-invalid-state-load.patch
+ CVE-2014-0222-qemut-qcow1-validate-l2-table-size.patch
+ CVE-2014-3640-qemut-slirp-NULL-pointer-deref-in-sosendto.patch
+ CVE-2015-4037-qemut-smb-config-dir-name.patch
+ CVE-2015-5154-qemut-fix-START-STOP-UNIT-command-completion.patch
+ CVE-2015-5278-qemut-Infinite-loop-in-ne2000_receive-function.patch
+ CVE-2015-6815-qemut-e1000-fix-infinite-loop.patch
+ CVE-2015-7512-qemut-net-pcnet-buffer-overflow-in-non-loopback-mode.patch
+ CVE-2015-8345-qemut-eepro100-infinite-loop-fix.patch
+ CVE-2015-8504-qemut-vnc-avoid-floating-point-exception.patch
+ CVE-2016-1714-qemut-fw_cfg-add-check-to-validate-current-entry-value.patch
+ CVE-2016-1981-qemut-e1000-eliminate-infinite-loops-on-out-of-bounds-transfer.patch
+ CVE-2016-2391-qemut-usb-null-pointer-dereference-in-ohci-module.patch
+ CVE-2016-2841-qemut-ne2000-infinite-loop-in-ne2000_receive.patch
+ CVE-2016-4439-qemut-scsi-esp-OOB-write-while-writing-to-cmdbuf-in-esp_reg_write.patch
+ CVE-2016-4441-qemut-scsi-esp-OOB-write-while-writing-to-cmdbuf-in-get_cmd.patch
+ CVE-2016-5238-qemut-scsi-esp-OOB-write-when-using-non-DMA-mode-in-get_cmd.patch
+ CVE-2016-5338-qemut-scsi-esp-OOB-rw-access-while-processing-ESP_FIFO.patch
+ CVE-2016-6351-qemut-scsi-esp-make-cmdbuf-big-enough-for-maximum-CDB-size.patch
+ CVE-2016-7908-qemut-net-Infinite-loop-in-mcf_fec_do_tx.patch
+ CVE-2016-7909-qemut-net-pcnet-infinite-loop-in-pcnet_rdra_addr.patch
+ CVE-2016-8667-qemut-dma-rc4030-divide-by-zero-error-in-set_next_tick.patch
+ CVE-2016-8669-qemut-char-divide-by-zero-error-in-serial_update_parameters.patch
+ CVE-2016-8910-qemut-net-rtl8139-infinite-loop-while-transmit-in-Cplus-mode.patch
+ CVE-2016-9921-qemut-display-cirrus_vga-divide-by-zero-in-cirrus_do_copy.patch
+ CVE-2017-6505-qemut-usb-an-infinite-loop-issue-in-ohci_service_ed_list.patch
+ CVE-2017-8309-qemut-audio-host-memory-leakage-via-capture-buffer.patch
+ CVE-2017-9330-qemut-usb-ohci-infinite-loop-due-to-incorrect-return-value.patch
+ blktap.patch
+ cdrom-removable.patch
+ xen-qemu-iscsi-fix.patch
+ qemu-security-etch1.patch
+ xen-disable-qemu-monitor.patch
+ xen-hvm-default-bridge.patch
+ qemu-ifup-set-mtu.patch
+ ioemu-vnc-resize.patch
+ capslock_enable.patch
+ altgr_2.patch
+ log-guest-console.patch
+ bdrv_open2_fix_flags.patch
+ bdrv_open2_flags_2.patch
+ ioemu-7615-qcow2-fix-alloc_cluster_link_l2.patch
+ qemu-dm-segfault.patch
+ bdrv_default_rwflag.patch
+ kernel-boot-hvm.patch
+ ioemu-watchdog-support.patch
+ ioemu-watchdog-linkage.patch
+ ioemu-watchdog-ib700-timer.patch
+ ioemu-hvm-pv-support.patch
+ pvdrv_emulation_control.patch
+ ioemu-disable-scsi.patch
+ ioemu-disable-emulated-ide-if-pv.patch
+ xenpaging.qemu.flush-cache.patch
+ ioemu-devicemodel-include.patch
+- Cleanup spec file and remove unused KMP patches
+ kmp_filelist
+ supported_module.patch
+ xen_pvonhvm.xen_emul_unplug.patch
+
+-------------------------------------------------------------------
+Mon Jul 17 15:19:50 MDT 2017 - carnold@suse.com
+
+- bsc#1002573 - Optimize LVM functions in block-dmmd
+ block-dmmd
+
+-------------------------------------------------------------------
+Fri Jul 14 18:05:12 UTC 2017 - ohering@suse.de
+
+- Record initial Xen dmesg in /var/log/xen/xen-boot.log for
+ supportconfig. Keep previous log in /var/log/xen/xen-boot.prev.log
+
+-------------------------------------------------------------------
+Fri Jul 14 10:41:34 UTC 2017 - ohering@suse.de
+
+- Remove storytelling from description in xen.rpm
+
+-------------------------------------------------------------------
+Wed Jun 28 01:40:43 MDT 2017 - carnold@suse.com
+
+- Update to Xen 4.9.0 FCS (fate#321394, fate#323108)
+ xen-4.9.0-testing-src.tar.bz2
+
+-------------------------------------------------------------------
+Wed Jun 21 14:03:40 MDT 2017 - carnold@suse.com
+
+- Update block-dmmd script (bsc#1002573)
+ block-dmmd
+
+-------------------------------------------------------------------
+Tue Jun 20 15:18:25 MDT 2017 - carnold@suse.com
+
+- Update to Xen 4.9.0-rc8+ (fate#321394, fate#323108)
+ xen-4.9.0-testing-src.tar.bz2
+ gcc7-arm.patch
+- Drop gcc7-error-xenpmd.patch
+
+-------------------------------------------------------------------
+Mon Jun 5 10:49:34 MDT 2017 - carnold@suse.com
+
+- Update to Xen 4.9.0-rc8 (fate#321394, fate#323108)
+ xen-4.9.0-testing-src.tar.bz2
+
+-------------------------------------------------------------------
+Thu Jun 1 13:24:26 MDT 2017 - carnold@suse.com
+
+- bsc#1042160 - VUL-1: CVE-2017-9330: xen: usb: ohci: infinite loop
+ due to incorrect return value
+ CVE-2017-9330-qemut-usb-ohci-infinite-loop-due-to-incorrect-return-value.patch
+
+-------------------------------------------------------------------
+Tue May 30 11:24:41 MDT 2017 - carnold@suse.com
+
+- bsc#1037243 - VUL-1: CVE-2017-8309: xen: audio: host memory
+ leakage via capture buffer
+ CVE-2017-8309-qemut-audio-host-memory-leakage-via-capture-buffer.patch
+
+-------------------------------------------------------------------
+Fri May 26 12:58:06 MDT 2017 - carnold@suse.com
+
+- Update to Xen 4.9.0-rc7 (fate#321394, fate#323108)
+ xen-4.9.0-testing-src.tar.bz2
+
+-------------------------------------------------------------------
+Mon May 22 14:43:01 MDT 2017 - carnold@suse.com
+
+- Update to Xen 4.9.0-rc6 (fate#321394, fate#323108)
+ xen-4.9.0-testing-src.tar.bz2
+
+-------------------------------------------------------------------
+Thu May 18 16:22:53 MDT 2017 - carnold@suse.com
+
+- bsc#1031343 - xen fails to build with GCC 7
+ gcc7-mini-os.patch
+ gcc7-xen.patch
+
+-------------------------------------------------------------------
+Wed May 17 08:28:37 MDT 2017 - carnold@suse.com
+
+- bsc#1031343 - xen fails to build with GCC 7
+ gcc7-error-xenpmd.patch
+
+-------------------------------------------------------------------
+Tue May 16 09:04:19 MDT 2017 - carnold@suse.com
+
+- Update to Xen 4.9.0-rc5 (fate#321394, fate#323108)
+ xen-4.9.0-testing-src.tar.bz2
+- Drop xen-tools-pkgconfig-xenlight.patch
+
+-------------------------------------------------------------------
+Wed May 10 15:26:38 MDT 2017 - carnold@suse.com
+
+- bsc#1037779 - xen breaks kexec-tools build
+ xen-tools-pkgconfig-xenlight.patch
+
+-------------------------------------------------------------------
+Tue May 9 08:40:58 MDT 2017 - carnold@suse.com
+
+- Update to Xen 4.9.0-rc4 (fate#321394, fate#323108)
+ xen-4.9.0-testing-src.tar.bz2
+
+-------------------------------------------------------------------
+Tue May 2 09:18:24 MDT 2017 - carnold@suse.com
+
+- bsc#1036146 - sles12sp2 xen VM dumps core to wrong path
+ xen.spec
+
+-------------------------------------------------------------------
+Fri Apr 28 09:03:56 MDT 2017 - carnold@suse.com
+
+- Update to Xen 4.9.0-rc3 (fate#321394, fate#323108)
+ xen-4.9.0-testing-src.tar.bz2
+ aarch64-maybe-uninitialized.patch
+
+-------------------------------------------------------------------
+Fri Apr 21 16:26:31 MDT 2017 - carnold@suse.com
+
+- Update to Xen 4.9.0-rc2 (fate#321394, fate#323108)
+ xen-4.9.0-testing-src.tar.bz2
+
+-------------------------------------------------------------------
+Wed Apr 19 07:54:58 MDT 2017 - carnold@suse.com
+
+- Update to Xen 4.9.0-rc1 (fate#321394, fate#323108)
+ xen-4.9.0-testing-src.tar.bz2
+ ioemu-devicemodel-include.patch
+- Dropped patches contained in new tarball
+ xen-4.8.0-testing-src.tar.bz2
+ 0001-xenstore-let-write_node-and-some-callers-return-errn.patch
+ 0002-xenstore-undo-function-rename.patch
+ 0003-xenstore-rework-of-transaction-handling.patch
+ 584806ce-x86emul-correct-PUSHF-POPF.patch
+ 584fc649-fix-determining-when-domain-creation-is-complete.patch
+ 58510c06-x86emul-CMPXCHGnB-ignore-prefixes.patch
+ 58510cac-x86emul-MOVNTI-no-REP-prefixes.patch
+ 58526ccc-x86emul-64bit-ignore-most-segment-bases-in-align-check.patch
+ 5853ed37-VT-d-correct-dma_msi_set_affinity.patch
+ 5853ee07-x86emul-CMPXCHG16B-aligned-operand.patch
+ 58580060-x86-emul-correct-SYSCALL-eflags-handling.patch
+ 585aa3c5-x86-force-EFLAGS-IF-on-upon-exit-to-PV.patch
+ 585aa407-x86-HVM-NULL-check-before-using-VMFUNC-hook.patch
+ 585bd5fe-x86-emul-correct-VMFUNC-return-value-handling.patch
+ 586ba81c-x86-cpu-dont-update-this_cpu-for-guest-get_cpu_vendor.patch
+ 587d04d6-x86-xstate-fix-array-overrun-with-LWP.patch
+ 587de4a9-x86emul-VEX-B-ignored-in-compat-mode.patch
+ 5882129d-x86emul-LOCK-check-adjustments.patch
+ 58821300-x86-segment-attribute-handling.patch
+ 58873c1f-x86emul-correct-FPU-stub-asm-constraints.patch
+ 58873c80-x86-hvm-do-not-set-msr_tsc_adjust-on-.patch
+ 5887888f-credit2-fix-shutdown-suspend-with-cpupools.patch
+ 5887888f-credit2-never-consider-CPUs-outside-of-pool.patch
+ 5887888f-credit2-use-the-correct-scratch-cpumask.patch
+ 5888b1b3-x86-emulate-dont-assume-addr_size-32-implies-protmode.patch
+ 5899cbd9-EPT-allow-wrcomb-MMIO-mappings-again.patch
+ 589b3272-libxl-dont-segfault-when-creating-domain-with-invalid-pvusb-device.patch
+ 58a44771-IOMMU-always-call-teardown-callback.patch
+ 58a48ccc-x86-fix-p2m_flush_table-for-non-nested.patch
+ 58a59f4b-libxl-correct-xenstore-entry-for-empty-cdrom.patch
+ 58a70d94-VMX-fix-VMCS-race-on-cswitch-paths.patch
+ 58ac1f3f-VMX-dont-leak-host-syscall-MSRs.patch
+ 58b5a2de-x86-correct-Xens-idea-of-its-memory-layout.patch
+ 58b6fd42-credit2-always-mark-a-tickled-pCPU-as-tickled.patch
+ 58b6fd42-credit2-dont-miss-accounting-during-credit-reset.patch
+ 58cbf682-x86-EFI-avoid-overrunning-mb_modules.patch
+ 58cf9200-x86-EFI-avoid-IOMMU-faults-on-tail-gap.patch
+ 58cf9260-x86-EFI-avoid-Xen-when-looking-for-mod-kexec-pos.patch
+ 58cf9277-x86-time-dont-use-vTSC-if-host-guest-freqs-match.patch
+ 58d25ea2-xenstore-add-missing-checks-for-allocation-failure.patch
+ 58d91365-sched-dont-call-wrong-hook-via-VCPU2OP.patch
+ CVE-2017-2615-qemut-display-cirrus-oob-access-while-doing-bitblt-copy-backward-mode.patch
+ CVE-2017-2620-xsa209-qemut-cirrus_bitblt_cputovideo-does-not-check-if-memory-region-safe.patch
+ glibc-2.25-compatibility-fix.patch
+ xs-09-add_change_node-params.patch
+ xs-10-call-add_change_node.patch
+ xs-11-tdb-record-header.patch
+ xs-12-node-gen-count.patch
+ xs-13-read-directory-part-support.patch
+ xs-14-command-array.patch
+ xs-15-command-return-val.patch
+ xs-16-function-static.patch
+ xs-17-arg-parsing.patch
+ xs-18-default-buffer.patch
+ xs-19-handle-alloc-failures.patch
+ xs-20-tdb-version.patch
+ xs-21-empty-tdb-database.patch
+ xs-22-reopen_log-fix.patch
+ xs-23-XS_DEBUG-rename.patch
+ xs-24-xenstored_control.patch
+ xs-25-control-enhance.patch
+ xs-26-log-control.patch
+ xs-27-memory-report.patch
+ xs-28-remove-talloc-report.patch
+ xs-29-define-off_t.patch
+ xsa206-0001-xenstored-apply-a-write-transaction-rate-limit.patch
+ xsa206-0002-xenstored-Log-when-the-write-transaction-rate-limit.patch
+
+-------------------------------------------------------------------
+Wed Apr 5 11:41:52 MDT 2017 - carnold@suse.com
+
+- bsc#1022703 - Xen HVM guest with OVMF hangs with unattached CDRom
+ 58a59f4b-libxl-correct-xenstore-entry-for-empty-cdrom.patch
+
+-------------------------------------------------------------------
+Wed Mar 29 16:18:26 UTC 2017 - jfehlig@suse.com
+
+- bsc#1015348 - L3: libvirtd does not start during boot
+ suse-xendomains-service.patch
+
+-------------------------------------------------------------------
+Wed Mar 22 08:54:15 MDT 2017 - carnold@suse.com
+
+- bsc#1014136 - Partner-L3: kdump can't dump a kernel on SLES12-SP2
+ with Xen hypervisor.
+ 58cf9260-x86-EFI-avoid-Xen-when-looking-for-mod-kexec-pos.patch
+- bsc#1026236 - L3: Paravirtualized vs. fully virtualized migration
+ - latter one much faster
+ 58cf9277-x86-time-dont-use-vTSC-if-host-guest-freqs-match.patch
+- Upstream patch from Jan
+ 58cbf682-x86-EFI-avoid-overrunning-mb_modules.patch
+ 58cf9200-x86-EFI-avoid-IOMMU-faults-on-tail-gap.patch
+ 58d91365-sched-dont-call-wrong-hook-via-VCPU2OP.patch
+
+-------------------------------------------------------------------
+Mon Mar 20 09:46:02 MDT 2017 - carnold@suse.com
+
+- bsc#1022555 - L3: Timeout in "execution of /etc/xen/scripts/block
+ add"
+ 58d25ea2-xenstore-add-missing-checks-for-allocation-failure.patch
+ 0001-xenstore-let-write_node-and-some-callers-return-errn.patch
+ 0002-xenstore-undo-function-rename.patch
+ 0003-xenstore-rework-of-transaction-handling.patch
+- bsc#1030144 - VUL-0: xen: xenstore denial of service via repeated
+ update (XSA-206)
+ xsa206-0001-xenstored-apply-a-write-transaction-rate-limit.patch
+ xsa206-0002-xenstored-Log-when-the-write-transaction-rate-limit.patch
+- bsc#1029827 - Forward port xenstored
+ xs-09-add_change_node-params.patch
+ xs-10-call-add_change_node.patch
+ xs-11-tdb-record-header.patch
+ xs-12-node-gen-count.patch
+ xs-13-read-directory-part-support.patch
+ xs-14-command-array.patch
+ xs-15-command-return-val.patch
+ xs-16-function-static.patch
+ xs-17-arg-parsing.patch
+ xs-18-default-buffer.patch
+ xs-19-handle-alloc-failures.patch
+ xs-20-tdb-version.patch
+ xs-21-empty-tdb-database.patch
+ xs-22-reopen_log-fix.patch
+ xs-23-XS_DEBUG-rename.patch
+ xs-24-xenstored_control.patch
+ xs-25-control-enhance.patch
+ xs-26-log-control.patch
+ xs-27-memory-report.patch
+ xs-28-remove-talloc-report.patch
+ xs-29-define-off_t.patch
+
+-------------------------------------------------------------------
+Tue Mar 14 06:59:46 UTC 2017 - ohering@suse.de
+
+- bsc#1029128 - fix make xen to really produce xen.efi with gcc48
+
+-------------------------------------------------------------------
+Wed Mar 8 07:51:35 MST 2017 - carnold@suse.com
+
+- bsc#1028235 - VUL-0: CVE-2017-6505: xen: qemu: usb: an infinite
+ loop issue in ohci_service_ed_list
+ CVE-2017-6505-qemut-usb-an-infinite-loop-issue-in-ohci_service_ed_list.patch
+- Upstream patches from Jan (bsc#1027519)
+ 5887888f-credit2-fix-shutdown-suspend-with-cpupools.patch
+ 5887888f-credit2-use-the-correct-scratch-cpumask.patch
+ 5899cbd9-EPT-allow-wrcomb-MMIO-mappings-again.patch
+ 589b3272-libxl-dont-segfault-when-creating-domain-with-invalid-pvusb-device.patch
+ 58a44771-IOMMU-always-call-teardown-callback.patch
+ 58a48ccc-x86-fix-p2m_flush_table-for-non-nested.patch
+ 58a70d94-VMX-fix-VMCS-race-on-cswitch-paths.patch
+ 58ac1f3f-VMX-dont-leak-host-syscall-MSRs.patch
+ 58b5a2de-x86-correct-Xens-idea-of-its-memory-layout.patch
+ 58b6fd42-credit2-always-mark-a-tickled-pCPU-as-tickled.patch
+ 58b6fd42-credit2-dont-miss-accounting-during-credit-reset.patch
+
+-------------------------------------------------------------------
+Thu Mar 2 15:21:25 MST 2017 - carnold@suse.com
+
+- bsc#1027654 - XEN fails to build against glibc 2.25
+ glibc-2.25-compatibility-fix.patch
+ libxl.pvscsi.patch
+
+-------------------------------------------------------------------
+Thu Feb 16 11:42:23 UTC 2017 - ohering@suse.de
+
+- fate#316613: Refresh and enable libxl.pvscsi.patch
+
+-------------------------------------------------------------------
+Fri Feb 10 11:22:01 MST 2017 - carnold@suse.com
+
+- bsc#1024834 - VUL-0: CVE-2017-2620: xen: cirrus_bitblt_cputovideo
+ does not check if memory region is safe (XSA-209)
+ CVE-2017-2620-xsa209-qemut-cirrus_bitblt_cputovideo-does-not-check-if-memory-region-safe.patch
+
+-------------------------------------------------------------------
+Wed Feb 8 10:19:24 MST 2017 - carnold@suse.com
+
+- bsc#1023948 - [pvusb][sles12sp3][openqa] Segmentation fault
+ happened when adding usbctrl devices via xl
+ 589b3272-libxl-dont-segfault-when-creating-domain-with-invalid-pvusb-device.patch
+
+-------------------------------------------------------------------
+Thu Feb 2 09:57:01 MST 2017 - carnold@suse.com
+
+- Upstream patches from Jan (bsc#1027519)
+ 587d04d6-x86-xstate-fix-array-overrun-with-LWP.patch
+ 587de4a9-x86emul-VEX-B-ignored-in-compat-mode.patch
+ 5882129d-x86emul-LOCK-check-adjustments.patch
+ 58821300-x86-segment-attribute-handling.patch
+ 58873c1f-x86emul-correct-FPU-stub-asm-constraints.patch
+ 58873c80-x86-hvm-do-not-set-msr_tsc_adjust-on-.patch
+ 5887888f-credit2-use-the-correct-scratch-cpumask.patch
+ 5887888f-credit2-never-consider-CPUs-outside-of-pool.patch
+ 5887888f-credit2-fix-shutdown-suspend-with-cpupools.patch
+ 5888b1b3-x86-emulate-dont-assume-addr_size-32-implies-protmode.patch
+
+-------------------------------------------------------------------
+Wed Feb 1 09:36:25 MST 2017 - carnold@suse.com
+
+- bsc#1023004 - VUL-0: CVE-2017-2615: qemu: display: cirrus: oob
+ access while doing bitblt copy backward mode
+ CVE-2017-2615-qemut-display-cirrus-oob-access-while-doing-bitblt-copy-backward-mode.patch
+
+-------------------------------------------------------------------
+Thu Jan 26 10:30:19 MST 2017 - carnold@suse.com
+
+- fate#322313 and fate#322150 require the acpica package ported to
+ aarch64 which Xen 4.8 needs to build. Temporarily disable aarch64
+ until these fates are complete.
+ xen.spec
+
+-------------------------------------------------------------------
+Wed Jan 25 15:39:26 MST 2017 - carnold@suse.com
+
+- bsc#1021952 - Virutalization/xen: Bug xen-tools missing
+ /usr/bin/domu-xenstore; guests fail to launch
+ tmp_build.patch
+ xen.spec
+
+-------------------------------------------------------------------
+Wed Jan 18 10:50:52 UTC 2017 - ohering@suse.de
+
+- No systemd presets for 42.3+ and SLE12SP3+ (bsc#1012842)
+
+-------------------------------------------------------------------
+Thu Jan 12 11:34:06 MST 2017 - carnold@suse.com
+
+- bsc#1007224 - broken symlinks in /usr/share/doc/packages/xen/misc/
+ xen.spec
+
+-------------------------------------------------------------------
+Mon Jan 9 10:54:19 MST 2017 - carnold@suse.com
+
+- 585aa3c5-x86-force-EFLAGS-IF-on-upon-exit-to-PV.patch
+ Replaces xsa202.patch (bsc#1014298)
+- 585aa407-x86-HVM-NULL-check-before-using-VMFUNC-hook.patch
+ Replaces xsa203.patch (bsc#1014300)
+- 58580060-x86-emul-correct-SYSCALL-eflags-handling.patch
+ Replaces xsa204.patch (bsc#1016340)
+- Upstream patches from Jan
+ 58526ccc-x86emul-64bit-ignore-most-segment-bases-in-align-check.patch
+ 5853ed37-VT-d-correct-dma_msi_set_affinity.patch
+ 5853ee07-x86emul-CMPXCHG16B-aligned-operand.patch
+ 585bd5fe-x86-emul-correct-VMFUNC-return-value-handling.patch
+ 586ba81c-x86-cpu-dont-update-this_cpu-for-guest-get_cpu_vendor.patch
+
+-------------------------------------------------------------------
+Wed Jan 4 14:59:04 MST 2017 - carnold@suse.com
+
+- bsc#1015169 - VUL-0: CVE-2016-9921, CVE-2016-9922: xen: qemu:
+ display: cirrus_vga: a divide by zero in cirrus_do_copy
+ CVE-2016-9921-qemut-display-cirrus_vga-divide-by-zero-in-cirrus_do_copy.patch
+
+-------------------------------------------------------------------
+Mon Dec 19 10:32:51 MST 2016 - carnold@suse.com
+
+- bsc#1016340 - VUL-0: CVE-2016-10013: xen: x86: Mishandling of
+ SYSCALL singlestep during emulation (XSA-204)
+ xsa204.patch
+
+-------------------------------------------------------------------
+Thu Dec 15 09:08:18 MST 2016 - carnold@suse.com
+
+- bsc#1012651 - VUL-0: CVE-2016-9932: xen: x86 CMPXCHG8B emulation
+ fails to ignore operand size override (XSA-200)
+ 58510c06-x86emul-CMPXCHGnB-ignore-prefixes.patch
+
+-------------------------------------------------------------------
+Wed Dec 14 08:24:41 MST 2016 - carnold@suse.com
+
+- bsc#1014298 - VUL-0: CVE-2016-10024: xen: x86 PV guests may be
+ able to mask interrupts (XSA-202)
+ xsa202.patch
+- bsc#1014300 - VUL-0: CVE-2016-10025: xen: x86: missing NULL
+ pointer check in VMFUNC emulation (XSA-203)
+ xsa203.patch
+- Upstream patches from Jan
+ 584806ce-x86emul-correct-PUSHF-POPF.patch
+ 584fc649-fix-determining-when-domain-creation-is-complete.patch
+ 58510c06-x86emul-CMPXCHGnB-ignore-prefixes.patch
+ 58510cac-x86emul-MOVNTI-no-REP-prefixes.patch
+
+-------------------------------------------------------------------
+Mon Dec 5 15:32:00 MST 2016 - carnold@suse.com
+
+- Update to Xen 4.8 FCS
+ xen-4.8.0-testing-src.tar.bz2
+- Dropped
+ xen-4.7.1-testing-src.tar.bz2
+ 0001-libxc-Rework-extra-module-initialisation.patch
+ 0002-libxc-Prepare-a-start-info-structure-for-hvmloader.patch
+ 0003-configure-define-SEABIOS_PATH-and-OVMF_PATH.patch
+ 0004-firmware-makefile-install-BIOS-blob.patch
+ 0005-libxl-Load-guest-BIOS-from-file.patch
+ 0006-xen-Move-the-hvm_start_info-C-representation-from-li.patch
+ 0007-hvmloader-Grab-the-hvm_start_info-pointer.patch
+ 0008-hvmloader-Locate-the-BIOS-blob.patch
+ 0009-hvmloader-Check-modules-whereabouts-in-perform_tests.patch
+ 0010-hvmloader-Load-SeaBIOS-from-hvm_start_info-modules.patch
+ 0011-hvmloader-Load-OVMF-from-modules.patch
+ 0012-hvmloader-Specific-bios_load-function-required.patch
+ 0013-hvmloader-Always-build-in-SeaBIOS-and-OVMF-loader.patch
+ 0014-configure-do-not-depend-on-SEABIOS_PATH-or-OVMF_PATH.patch
+ 57580bbd-kexec-allow-relaxed-placement-via-cmdline.patch
+ 576001df-x86-time-use-local-stamp-in-TSC-calibration-fast-path.patch
+ 5769106e-x86-generate-assembler-equates-for-synthesized.patch
+ 57a1e603-x86-time-adjust-local-system-time-initialization.patch
+ 57a1e64c-x86-time-introduce-and-use-rdtsc_ordered.patch
+ 57a2f6ac-x86-time-calibrate-TSC-against-platform-timer.patch
+ 57a30261-x86-support-newer-Intel-CPU-models.patch
+ 5810a9cc-x86-emul-Correct-decoding-of-SReg3-operands.patch
+ 581b2c3b-x86-emul-reject-LGDT-LIDT-with-non-canonical-addresses.patch
+ 581b647a-x86emul-L-S-G-I-DT-ignore-opsz-overrides-in-64-bit-mode.patch
+ 58249392-x86-svm-dont-clobber-eax-edx-if-RDMSR-intercept-fails.patch
+ 582c35d6-x86-vmx-correct-long-mode-check-in-vmx_cpuid_intercept.patch
+ 582c35ee-x86-traps-dont-call-hvm_hypervisor_cpuid_leaf-for-PV.patch
+ 58343dc2-x86-hvm-Fix-the-handling-of-non-present-segments.patch
+ 58343df8-x86-HVM-dont-load-LDTR-with-VM86-mode-attrs-during-task-switch.patch
+ 58343e24-x86-PV-writes-of-fs-and-gs-base-MSRs-require-canonical-addresses.patch
+ 58343e9e-libelf-fix-stack-memory-leak-when-loading-32-bit-symbol-tables.patch
+ 58343ec2-x86emul-fix-huge-bit-offset-handling.patch
+ 58343f29-x86-emul-correct-the-IDT-entry-calculation-in-inject_swint.patch
+ 58343f44-x86-svm-fix-injection-of-software-interrupts.patch
+ 58343f79-pygrub-Properly-quote-results-when-returning-them-to-the-caller.patch
+ CVE-2016-9381-xsa197-qemut.patch
+ CVE-2016-9637-xsa199-qemut.patch
+
+-------------------------------------------------------------------
+Tue Nov 22 10:49:36 MST 2016 - carnold@suse.com
+
+- bsc#1011652 - VUL-0: xen: qemu ioport array overflow
+ CVE-2016-9637-xsa199-qemut.patch
+
+-------------------------------------------------------------------
+Fri Nov 18 11:30:20 MST 2016 - carnold@suse.com
+
+- bsc#1009100 - VUL-0: CVE-2016-9386: XSA-191: xen: x86 null
+ segments not always treated as unusable
+ 58343dc2-x86-hvm-Fix-the-handling-of-non-present-segments.patch
+- bsc#1009103 - VUL-0: CVE-2016-9382: XSA-192: xen: x86 task switch
+ to VM86 mode mis-handled
+ 58343df8-x86-HVM-dont-load-LDTR-with-VM86-mode-attrs-during-task-switch.patch
+- bsc#1009104 - VUL-0: CVE-2016-9385: XSA-193: xen: x86 segment base
+ write emulation lacking canonical address checks
+ 58343e24-x86-PV-writes-of-fs-and-gs-base-MSRs-require-canonical-addresses.patch
+- bsc#1009105 - VUL-0: CVE-2016-9384: XSA-194: xen: guest 32-bit
+ ELF symbol table load leaking host data
+ 58343e9e-libelf-fix-stack-memory-leak-when-loading-32-bit-symbol-tables.patch
+- bsc#1009107 - VUL-0: CVE-2016-9383: XSA-195: xen: x86 64-bit bit
+ test instruction emulation broken
+ 58343ec2-x86emul-fix-huge-bit-offset-handling.patch
+- bsc#1009108 - VUL-0: CVE-2016-9377,CVE-2016-9378: XSA-196: xen:
+ x86 software interrupt injection mis-handled
+ 58343f29-x86-emul-correct-the-IDT-entry-calculation-in-inject_swint.patch
+ 58343f44-x86-svm-fix-injection-of-software-interrupts.patch
+- bsc#1009109 - VUL-0: CVE-2016-9381: XSA-197: xen: qemu incautious
+ about shared ring processing
+ CVE-2016-9381-xsa197-qemut.patch
+- bsc#1009111 - VUL-0: CVE-2016-9379,CVE-2016-9380: XSA-198: xen:
+ delimiter injection vulnerabilities in pygrub
+ 58343f79-pygrub-Properly-quote-results-when-returning-them-to-the-caller.patch
+- Upstream patches from Jan
+ 581b2c3b-x86-emul-reject-LGDT-LIDT-with-non-canonical-addresses.patch
+ 581b647a-x86emul-L-S-G-I-DT-ignore-opsz-overrides-in-64-bit-mode.patch
+ 58249392-x86-svm-dont-clobber-eax-edx-if-RDMSR-intercept-fails.patch
+ 582c35d6-x86-vmx-correct-long-mode-check-in-vmx_cpuid_intercept.patch
+ 582c35ee-x86-traps-dont-call-hvm_hypervisor_cpuid_leaf-for-PV.patch
+
+-------------------------------------------------------------------
+Tue Nov 15 13:12:40 MST 2016 - carnold@suse.com
+
+- Update to Xen Version 4.7.1
+ xen-4.7.1-testing-src.tar.bz2
+- Dropped patches contained in new tarball
+ xen-4.7.0-testing-src.tar.bz2
+ 575e9ca0-nested-vmx-Validate-host-VMX-MSRs-before-accessing-them.patch
+ 57640448-xen-sched-use-default-scheduler-upon-an-invalid-sched.patch
+ 57973099-have-schedulers-revise-initial-placement.patch
+ 579730e6-remove-buggy-initial-placement-algorithm.patch
+ 57976073-x86-remove-unsafe-bits-from-mod_lN_entry-fastpath.patch
+ 57976078-x86-avoid-SMAP-violation-in-compat_create_bounce_frame.patch
+ 57ac6316-don-t-restrict-DMA-heap-to-node-0.patch
+ 57b71fc5-x86-EFI-don-t-apply-relocations-to-l-2-3-_bootmap.patch
+ 57b7447b-dont-permit-guest-to-populate-PoD-pages-for-itself.patch
+ 57c4412b-x86-HVM-add-guarding-logic-for-VMX-specific-code.patch
+ 57c57f73-libxc-correct-max_pfn-calculation-for-saving-domain.patch
+ 57c805bf-x86-levelling-restrict-non-architectural-OSXSAVE-handling.patch
+ 57c805c1-x86-levelling-pass-vcpu-to-ctxt_switch_levelling.patch
+ 57c805c3-x86-levelling-provide-architectural-OSXSAVE-handling.patch
+ 57c82be2-x86-32on64-adjust-call-gate-emulation.patch
+ 57c93e52-fix-error-in-libxl_device_usbdev_list.patch
+ 57c96df3-credit1-fix-a-race-when-picking-initial-pCPU.patch
+ 57c96e2c-x86-correct-PT_NOTE-file-position.patch
+ 57cfed43-VMX-correct-feature-checks-for-MPX-and-XSAVES.patch
+ 57d1563d-x86-32on64-don-t-allow-recursive-page-tables-from-L3.patch
+ 57d15679-x86-emulate-Correct-boundary-interactions-of-emulated-insns.patch
+ 57d1569a-x86-shadow-Avoid-overflowing-sh_ctxt-seg_reg.patch
+ 57d18642-hvm-fep-Allow-test-insns-crossing-1-0-boundary.patch
+ 57d18642-x86-segment-Bounds-check-accesses-to-emulation-ctxt-seg_reg.patch
+ 57d7ca5f-x86-domctl-fix-TOCTOU-race-in-XEN_DOMCTL_getvcpuextstate.patch
+ 57d7ca64-x86-domctl-fix-migration-of-guests-not-using-xsave.patch
+ 57da8883-credit1-fix-mask-to-be-used-for-tickling.patch
+ 57da8883-credit2-properly-schedule-migration-of-running-vcpu.patch
+ 57dfb1c5-x86-Intel-hide-CPUID-faulting-capability-from-guests.patch
+ 57e93e1d-x86emul-correct-loading-of-ss.patch
+ 57e93e4a-x86emul-don-t-allow-null-selector-for-LTR.patch
+ 57e93e89-x86-AMD-apply-erratum-665-workaround.patch
+ 57ee6cbc-credit1-return-time-remaining-to-limit-as-next-timeslice.patch
+ 57f3a8ee-x86emul-honor-guest-CR0-TS-and-CR0-EM.patch
+ 57fb6a91-x86-defer-not-present-segment-checks.patch
+ 5800c51d-x86-hvm-Clobber-cs-L-when-LME-becomes-set.patch
+ 5800caec-x86emul-fix-pushing-of-selector-registers.patch
+ 5800cb06-x86-Viridian-don-t-depend-on-undefined-register-state.patch
+ 580e29f9-x86-MISALIGNSSE-feature-depends-on-SSE.patch
+ 57dfb2ff-x86-Intel-Broadwell-no-PKG_C8-10_RESIDENCY-MSRs.patch
+
+-------------------------------------------------------------------
+Mon Nov 7 15:08:58 MST 2016 - carnold@suse.com
+
+- bsc#1004981 - Xen RPM doesn't contain debug hypervisor for EFI
+ systems
+ xen.spec
+
+-------------------------------------------------------------------
+Thu Nov 3 09:30:24 MDT 2016 - carnold@suse.com
+
+- bsc#1000106 - VUL-0: CVE-2016-7777: xen: CR0.TS and CR0.EM not
+ always honored for x86 HVM guests (XSA-190)
+ 57f3a8ee-x86emul-honor-guest-CR0-TS-and-CR0-EM.patch
+- bsc#996191 - [XEN][acpi]residency -n 88 -c will cause xen panic
+ on broadwell-ep
+ 57dfb2ff-x86-Intel-Broadwell-no-PKG_C8-10_RESIDENCY-MSRs.patch
+- Upstream patches from Jan
+ 57d7ca5f-x86-domctl-fix-TOCTOU-race-in-XEN_DOMCTL_getvcpuextstate.patch
+ 57d7ca64-x86-domctl-fix-migration-of-guests-not-using-xsave.patch
+ 57da8883-credit1-fix-mask-to-be-used-for-tickling.patch
+ 57da8883-credit2-properly-schedule-migration-of-running-vcpu.patch
+ 57dfb1c5-x86-Intel-hide-CPUID-faulting-capability-from-guests.patch
+ 57e93e1d-x86emul-correct-loading-of-ss.patch
+ 57e93e4a-x86emul-don-t-allow-null-selector-for-LTR.patch
+ 57e93e89-x86-AMD-apply-erratum-665-workaround.patch
+ 57ee6cbc-credit1-return-time-remaining-to-limit-as-next-timeslice.patch
+ 57fb6a91-x86-defer-not-present-segment-checks.patch
+ 5800c51d-x86-hvm-Clobber-cs-L-when-LME-becomes-set.patch
+ 5800caec-x86emul-fix-pushing-of-selector-registers.patch
+ 5800cb06-x86-Viridian-don-t-depend-on-undefined-register-state.patch
+ 580e29f9-x86-MISALIGNSSE-feature-depends-on-SSE.patch
+ 5810a9cc-x86-emul-Correct-decoding-of-SReg3-operands.patch
+
+-------------------------------------------------------------------
+Wed Nov 2 10:30:58 MDT 2016 - carnold@suse.com
+
+- bsc#1007941 - Xen tools limit the number of vcpus to 256 when the
+ system has 384
+ xen-arch-kconfig-nr_cpus.patch
+
+-------------------------------------------------------------------
+Tue Nov 1 09:37:08 MDT 2016 - carnold@suse.com
+
+- bsc#1007157 - VUL-0: CVE-2016-8910: xen: net: rtl8139: infinite
+ loop while transmit in C+ mode
+ CVE-2016-8910-qemut-net-rtl8139-infinite-loop-while-transmit-in-Cplus-mode.patch
+
+-------------------------------------------------------------------
+Mon Oct 17 10:00:19 MDT 2016 - carnold@suse.com
+
+- bsc#1005004 - CVE-2016-8667: xen: dma: rc4030 divide by zero
+ error in set_next_tick
+ CVE-2016-8667-qemut-dma-rc4030-divide-by-zero-error-in-set_next_tick.patch
+- bsc#1005005 - VUL-0: CVE-2016-8669: xen: char: divide by zero
+ error in serial_update_parameters
+ CVE-2016-8669-qemut-char-divide-by-zero-error-in-serial_update_parameters.patch
+
+-------------------------------------------------------------------
+Wed Oct 5 10:55:45 MDT 2016 - carnold@suse.com
+
+- bsc#1003030 - VUL-0: CVE-2016-7908: xen: net: Infinite loop in
+ mcf_fec_do_tx
+ CVE-2016-7908-qemut-net-Infinite-loop-in-mcf_fec_do_tx.patch
+- bsc#1003032 - VUL-0: CVE-2016-7909: xen: net: pcnet: infinite
+ loop in pcnet_rdra_addr
+ CVE-2016-7909-qemut-net-pcnet-infinite-loop-in-pcnet_rdra_addr.patch
+
+-------------------------------------------------------------------
+Mon Sep 12 08:44:11 MDT 2016 - carnold@suse.com
+
+- bsc#995785 - VUL-0: CVE-2016-7092: xen: x86: Disallow L3
+ recursive pagetable for 32-bit PV guests (XSA-185)
+ 57d1563d-x86-32on64-don-t-allow-recursive-page-tables-from-L3.patch
+- bsc#995789 - VUL-0: CVE-2016-7093: xen: x86: Mishandling of
+ instruction pointer truncation during emulation (XSA-186)
+ 57d15679-x86-emulate-Correct-boundary-interactions-of-emulated-insns.patch
+ 57d18642-hvm-fep-Allow-test-insns-crossing-1-0-boundary.patch
+- bsc#995792 - VUL-0: CVE-2016-7094: xen: x86 HVM: Overflow of
+ sh_ctxt->seg_reg[] (XSA-187)
+ 57d1569a-x86-shadow-Avoid-overflowing-sh_ctxt-seg_reg.patch
+ 57d18642-x86-segment-Bounds-check-accesses-to-emulation-ctxt-seg_reg.patch
+- bsc#991934 - xen hypervisor crash in csched_acct
+ 57c96df3-credit1-fix-a-race-when-picking-initial-pCPU.patch
+- Upstream patches from Jan
+ 57c4412b-x86-HVM-add-guarding-logic-for-VMX-specific-code.patch
+ 57c57f73-libxc-correct-max_pfn-calculation-for-saving-domain.patch
+ 57c805bf-x86-levelling-restrict-non-architectural-OSXSAVE-handling.patch
+ 57c805c1-x86-levelling-pass-vcpu-to-ctxt_switch_levelling.patch
+ 57c805c3-x86-levelling-provide-architectural-OSXSAVE-handling.patch
+ 57c82be2-x86-32on64-adjust-call-gate-emulation.patch
+ 57c96e2c-x86-correct-PT_NOTE-file-position.patch
+ 57cfed43-VMX-correct-feature-checks-for-MPX-and-XSAVES.patch
+
+-------------------------------------------------------------------
+Mon Sep 12 13:10:21 UTC 2016 - ohering@suse.de
+
+- bsc#979002 - add 60-persistent-xvd.rules and helper script
+ also to initrd, add the relevant dracut helper
+
+-------------------------------------------------------------------
+Mon Sep 5 11:39:21 UTC 2016 - ohering@suse.de
+
+- bnc#953518 - unplug also SCSI disks in qemu-xen-traditional for
+ upstream unplug protocol
+
+-------------------------------------------------------------------
+Fri Sep 2 08:32:44 MDT 2016 - carnold@suse.com
+
+- bsc#989679 - [pvusb feature] USB device not found when
+ 'virsh detach-device guest usb.xml'
+ 57c93e52-fix-error-in-libxl_device_usbdev_list.patch
+
+-------------------------------------------------------------------
+Tue Aug 23 08:07:46 MDT 2016 - carnold@suse.com
+
+- bsc#992224 - [HPS Bug] During boot of Xen Hypervisor, Failed to
+ get contiguous memory for DMA from Xen
+ 57ac6316-don-t-restrict-DMA-heap-to-node-0.patch
+- bsc#978755 - xen uefi systems fail to boot
+- bsc#983697 - SLES12 SP2 Xen UEFI mode cannot boot
+ 57b71fc5-x86-EFI-don-t-apply-relocations-to-l-2-3-_bootmap.patch
+- Upstream patch from Jan
+ 57b7447b-dont-permit-guest-to-populate-PoD-pages-for-itself.patch
+
+-------------------------------------------------------------------
+Mon Aug 8 18:27:23 UTC 2016 - jfehlig@suse.com
+
+- spec: to stay compatible with the in-tree qemu-xen binary, use
+ /usr/bin/qemu-system-i386 instead of /usr/bin/qemu-system-x86_64
+ bsc#986164
+
+-------------------------------------------------------------------
+Thu Aug 4 09:12:34 MDT 2016 - carnold@suse.com
+
+- bsc#970135 - new virtualization project clock test randomly fails
+ on Xen
+ 576001df-x86-time-use-local-stamp-in-TSC-calibration-fast-path.patch
+ 5769106e-x86-generate-assembler-equates-for-synthesized.patch
+ 57a1e603-x86-time-adjust-local-system-time-initialization.patch
+ 57a1e64c-x86-time-introduce-and-use-rdtsc_ordered.patch
+ 57a2f6ac-x86-time-calibrate-TSC-against-platform-timer.patch
+- bsc#991934 - xen hypervisor crash in csched_acct
+ 57973099-have-schedulers-revise-initial-placement.patch
+ 579730e6-remove-buggy-initial-placement-algorithm.patch
+- bsc#988675 - VUL-0: CVE-2016-6258: xen: x86: Privilege escalation
+ in PV guests (XSA-182)
+ 57976073-x86-remove-unsafe-bits-from-mod_lN_entry-fastpath.patch
+- bsc#988676 - VUL-0: CVE-2016-6259: xen: x86: Missing SMAP
+ whitelisting in 32-bit exception / event delivery (XSA-183)
+ 57976078-x86-avoid-SMAP-violation-in-compat_create_bounce_frame.patch
+- Upstream patches from Jan
+ 57a30261-x86-support-newer-Intel-CPU-models.patch
+
+-------------------------------------------------------------------
+Mon Aug 1 11:46:22 MDT 2016 - carnold@suse.com
+
+- bsc#985503 - vif-route broken
+ vif-route.patch
+
+-------------------------------------------------------------------
+Thu Jul 28 05:23:12 MDT 2016 - carnold@suse.com
+
+- bsc#978413 - PV guest upgrade from sles11sp4 to sles12sp2 alpha3
+ failed on sles11sp4 xen host.
+ pygrub-handle-one-line-menu-entries.patch
+
+-------------------------------------------------------------------
+Wed Jul 27 14:09:06 MDT 2016 - carnold@suse.com
+
+- bsc#990843 - VUL-1: CVE-2016-6351: xen: qemu: scsi: esp: OOB
+ write access in esp_do_dma
+ CVE-2016-6351-qemut-scsi-esp-make-cmdbuf-big-enough-for-maximum-CDB-size.patch
+
+-------------------------------------------------------------------
+Thu Jun 23 09:45:38 MDT 2016 - carnold@suse.com
+
+- bsc#900418 - Dump cannot be performed on SLES12 XEN
+ 57580bbd-kexec-allow-relaxed-placement-via-cmdline.patch
+- Upstream patches from Jan
+ 575e9ca0-nested-vmx-Validate-host-VMX-MSRs-before-accessing-them.patch
+ 57640448-xen-sched-use-default-scheduler-upon-an-invalid-sched.patch
+
+-------------------------------------------------------------------
+Tue Jun 21 08:26:51 MDT 2016 - carnold@suse.com
+
+- fate#319989 - Update to Xen 4.7 FCS
+ xen-4.7.0-testing-src.tar.bz2
+- Drop CVE-2014-3672-qemut-xsa180.patch
+
+-------------------------------------------------------------------
+Thu Jun 16 16:27:25 MDT 2016 - carnold@suse.com
+
+- bsc#954872 - script block-dmmd not working as expected - libxl:
+ error: libxl_dm.c (Additional fixes)
+ block-dmmd
+
+-------------------------------------------------------------------
+Fri Jun 10 14:23:51 UTC 2016 - ohering@suse.de
+
+- Convert with_stubdom into build_conditional to allow adjusting
+ via prjconf
+- Convert with_debug into build_conditional to allow adjusting
+ via prjconf
+
+-------------------------------------------------------------------
+Fri Jun 10 13:36:32 UTC 2016 - ohering@suse.de
+
+- bsc#979002 - add 60-persistent-xvd.rules and helper script to
+ xen-tools-domU to simplify transition to pvops based kernels
+
+-------------------------------------------------------------------
+Fri Jun 10 13:18:13 UTC 2016 - ohering@suse.de
+
+- Convert with_oxenstored into build_conditional to allow
+ adjusting via prjconf (fate#320836)
+
+-------------------------------------------------------------------
+Thu Jun 9 11:10:33 MDT 2016 - carnold@suse.com
+
+- bsc#983984 - VUL-0: CVE-2016-5338: xen: qemu: scsi: esp: OOB r/w
+ access while processing ESP_FIFO
+ CVE-2016-5338-qemut-scsi-esp-OOB-rw-access-while-processing-ESP_FIFO.patch
+- bsc#982960 - VUL-0: CVE-2016-5238: xen: qemu: scsi: esp: OOB
+ write when using non-DMA mode in get_cmd
+ CVE-2016-5238-qemut-scsi-esp-OOB-write-when-using-non-DMA-mode-in-get_cmd.patch
+
+-------------------------------------------------------------------
+Tue Jun 7 08:05:09 MDT 2016 - carnold@suse.com
+
+- fate#319989 - Update to Xen 4.7 RC5
+ xen-4.7.0-testing-src.tar.bz2
+
+-------------------------------------------------------------------
+Tue May 25 08:54:54 MDT 2016 - carnold@suse.com
+
+- fate#319989 - Update to Xen 4.7 RC4
+ xen-4.7.0-testing-src.tar.bz2
+- Dropped
+ xen.pkgconfig-4.7.patch
+ xsa164.patch
+
+-------------------------------------------------------------------
+Mon May 23 15:24:35 MDT 2016 - carnold@suse.com
+
+- bsc#981264 - VUL-0: CVE-2014-3672: xen: Unrestricted qemu logging
+ (XSA-180)
+ CVE-2014-3672-qemut-xsa180.patch
+
+-------------------------------------------------------------------
+Thu May 19 10:46:53 MDT 2016 - carnold@suse.com
+
+- bsc#980724 - VUL-0: CVE-2016-4441: Qemu: scsi: esp: OOB write
+ while writing to 's->cmdbuf' in get_cmd
+ CVE-2016-4441-qemut-scsi-esp-OOB-write-while-writing-to-cmdbuf-in-get_cmd.patch
+- bsc#980716 - VUL-0: CVE-2016-4439: xen: scsi: esp: OOB write
+ while writing to 's->cmdbuf' in esp_reg_write
+ CVE-2016-4439-qemut-scsi-esp-OOB-write-while-writing-to-cmdbuf-in-esp_reg_write.patch
+
+-------------------------------------------------------------------
+Tue May 17 10:16:47 MDT 2016 - carnold@suse.com
+
+- fate#319989 - Update to Xen 4.7 RC3
+ xen-4.7.0-testing-src.tar.bz2
+- Dropped
+ libxl-remove-cdrom-cachemode.patch
+ x86-PoD-only-reclaim-if-needed.patch
+ gcc6-warnings-as-errors.patch
+
+-------------------------------------------------------------------
+Wed May 11 16:55:23 MDT 2016 - carnold@suse.com
+
+- bsc#954872 - script block-dmmd not working as expected - libxl:
+ error: libxl_dm.c (another modification)
+ block-dmmd
+
+-------------------------------------------------------------------
+Tue May 10 14:39:00 MDT 2016 - carnold@suse.com
+
+- fate#319989 - Update to Xen 4.7 RC2
+ xen-4.7.0-testing-src.tar.bz2
+
+-------------------------------------------------------------------
+Tue May 10 11:06:56 MDT 2016 - carnold@suse.com
+
+- bsc#961600 - L3: poor performance when Xen HVM domU configured
+ with max memory > current memory
+ x86-PoD-only-reclaim-if-needed.patch
+
+-------------------------------------------------------------------
+Fri May 6 11:47:24 UTC 2016 - ohering@suse.de
+
+- Mark SONAMEs and pkgconfig as xen 4.7
+ xen.pkgconfig-4.7.patch
+
+-------------------------------------------------------------------
+Tue May 3 17:25:08 UTC 2016 - jfehlig@suse.com
+
+- bsc#977329 - Xen: Cannot boot HVM guests with empty cdrom
+ libxl-remove-cdrom-cachemode.patch
+
+-------------------------------------------------------------------
+Tue May 3 08:25:27 MDT 2016 - carnold@suse.com
+
+- fate#319989 - Update to Xen 4.7 RC1
+ xen-4.7.0-testing-src.tar.bz2
+
+-------------------------------------------------------------------
+Tue May 3 13:48:59 UTC 2016 - ohering@suse.de
+
+- fate#316614: set migration constraints from cmdline
+ restore libxl.set-migration-constraints-from-cmdline.patch
+
+-------------------------------------------------------------------
+Tue May 3 11:49:31 UTC 2016 - ohering@suse.de
+
+- Remove obsolete patch for xen-kmp
+ magic_ioport_compat.patch
+
+-------------------------------------------------------------------
+Tue May 3 07:31:28 UTC 2016 - ohering@suse.de
+
+- fate#316613: update to v12
+ libxl.pvscsi.patch
+
+-------------------------------------------------------------------
+Fri Apr 29 16:50:33 MDT 2016 - carnold@suse.com
+
+- Update to the latest Xen 4.7 pre-release c2994f86
+ Drop libxl.migrate-legacy-stream-read.patch
+
+-------------------------------------------------------------------
+Fri Apr 15 09:22:31 UTC 2016 - ohering@suse.de
+
+- bnc#972756 - Can't migrate HVM guest from SLES12SP1 Xen host
+ to SLES12SP2 Alpha 1 host using xl migrate
+ libxl.migrate-legacy-stream-read.patch
+
+-------------------------------------------------------------------
+Fri Apr 1 20:14:38 UTC 2016 - jfehlig@suse.com
+
+- Add patches from proposed upstream series to load BIOS's from
+ the toolstack instead of embedding in hvmloader
+ http://lists.xenproject.org/archives/html/xen-devel/2016-03/msg01626.html
+ 0001-libxc-Rework-extra-module-initialisation.patch,
+ 0002-libxc-Prepare-a-start-info-structure-for-hvmloader.patch,
+ 0003-configure-define-SEABIOS_PATH-and-OVMF_PATH.patch,
+ 0004-firmware-makefile-install-BIOS-blob.patch,
+ 0005-libxl-Load-guest-BIOS-from-file.patch,
+ 0006-xen-Move-the-hvm_start_info-C-representation-from-li.patch,
+ 0007-hvmloader-Grab-the-hvm_start_info-pointer.patch,
+ 0008-hvmloader-Locate-the-BIOS-blob.patch,
+ 0009-hvmloader-Check-modules-whereabouts-in-perform_tests.patch,
+ 0010-hvmloader-Load-SeaBIOS-from-hvm_start_info-modules.patch,
+ 0011-hvmloader-Load-OVMF-from-modules.patch,
+ 0012-hvmloader-Specific-bios_load-function-required.patch,
+ 0013-hvmloader-Always-build-in-SeaBIOS-and-OVMF-loader.patch,
+ 0014-configure-do-not-depend-on-SEABIOS_PATH-or-OVMF_PATH.patch
+- Enable support for UEFI on x86_64 using the ovmf-x86_64-ms.bin
+ firmware from qemu-ovmf-x86_64. The firmware is preloaded with
+ Microsoft keys to more closely resemble firmware on real hardware
+ FATE#320490
+
+-------------------------------------------------------------------
+Fri Mar 25 14:46:11 MDT 2016 - carnold@suse.com
+
+- fate#319989: Update to Xen 4.7 (pre-release)
+ xen-4.7.0-testing-src.tar.bz2
+- Dropped:
+ xen-4.6.1-testing-src.tar.bz2
+ 55f7f9d2-libxl-slightly-refine-pci-assignable-add-remove-handling.patch
+ 5628fc67-libxl-No-emulated-disk-driver-for-xvdX-disk.patch
+ 5644b756-x86-HVM-don-t-inject-DB-with-error-code.patch
+ 5649bcbe-libxl-relax-readonly-check-introduced-by-XSA-142-fix.patch
+ hotplug-Linux-block-performance-fix.patch
+ set-mtu-from-bridge-for-tap-interface.patch
+ xendomains-libvirtd-conflict.patch
+ xsa154.patch
+ xsa155-xen-0001-xen-Add-RING_COPY_REQUEST.patch
+ xsa155-xen-0002-blktap2-Use-RING_COPY_REQUEST.patch
+ xsa155-xen-0003-libvchan-Read-prod-cons-only-once.patch
+ xsa170.patch
+
+-------------------------------------------------------------------
+Tue Mar 22 21:48:06 UTC 2016 - jfehlig@suse.com
+
+- Use system SeaBIOS instead of building/installing another one
+ FATE#320638
+ Dropped files:
+ seabios-dir-remote.tar.bz2
+ xen-c99-fix.patch
+ xen.build-compare.seabios.patch
+
+-------------------------------------------------------------------
+Wed Mar 16 23:33:01 UTC 2016 - jfehlig@suse.com
+
+- spec: drop BuildRequires that were only needed for qemu-xen
+
+-------------------------------------------------------------------
+Fri Mar 4 16:11:02 MST 2016 - carnold@suse.com
+
+- bsc#969377 - xen does not build with GCC 6
+ ipxe-use-rpm-opt-flags.patch
+ gcc6-warnings-as-errors.patch
+
+-------------------------------------------------------------------
+Thu Mar 3 10:27:55 MST 2016 - carnold@suse.com
+
+- bsc#969351 - VUL-0: CVE-2016-2841: xen: net: ne2000: infinite
+ loop in ne2000_receive
+ CVE-2016-2841-qemut-ne2000-infinite-loop-in-ne2000_receive.patch
+- Drop xsa154-fix.patch
+
+-------------------------------------------------------------------
+Wed Mar 2 16:53:51 UTC 2016 - jfehlig@suse.com
+
+- Use system qemu instead of building/installing yet another qemu
+ FATE#320638
+- Dropped files
+ qemu-xen-dir-remote.tar.bz2
+ CVE-2014-0222-qemuu-qcow1-validate-l2-table-size.patch
+ CVE-2015-1779-qemuu-incrementally-decode-websocket-frames.patch
+ CVE-2015-1779-qemuu-limit-size-of-HTTP-headers-from-websockets-clients.patch
+ CVE-2015-4037-qemuu-smb-config-dir-name.patch
+ CVE-2015-7512-qemuu-net-pcnet-buffer-overflow-in-non-loopback-mode.patch
+ CVE-2015-7549-qemuu-pci-null-pointer-dereference-issue.patch
+ CVE-2015-8345-qemuu-eepro100-infinite-loop-fix.patch
+ CVE-2015-8504-qemuu-vnc-avoid-floating-point-exception.patch
+ CVE-2015-8558-qemuu-usb-infinite-loop-in-ehci_advance_state-results-in-DoS.patch
+ CVE-2015-8568-qemuu-net-vmxnet3-avoid-memory-leakage-in-activate_device.patch
+ CVE-2015-8613-qemuu-scsi-initialise-info-object-with-appropriate-size.patch
+ CVE-2015-8743-qemuu-ne2000-OOB-memory-access-in-ioport-rw-functions.patch
+ CVE-2015-8744-qemuu-net-vmxnet3-incorrect-l2-header-validation-leads-to-crash.patch
+ CVE-2015-8745-qemuu-net-vmxnet3-read-IMR-registers-instead-of-assert.patch
+ CVE-2016-1568-qemuu-ide-ahci-reset-ncq-object-to-unused-on-error.patch
+ CVE-2016-1714-qemuu-fw_cfg-add-check-to-validate-current-entry-value.patch
+ CVE-2014-7815-qemut-vnc-sanitize-bits_per_pixel-from-the-client.patch
+ CVE-2016-1981-qemuu-e1000-eliminate-infinite-loops-on-out-of-bounds-transfer.patch
+ CVE-2016-2538-qemuu-usb-integer-overflow-in-remote-NDIS-message-handling.patch
+ CVE-2015-8619-qemuu-stack-based-OOB-write-in-hmp_sendkey-routine.patch
+ qemu-xen-enable-spice-support.patch
+ qemu-xen-upstream-qdisk-cache-unsafe.patch
+ tigervnc-long-press.patch
+ xsa162-qemuu.patch
+
+-------------------------------------------------------------------
+Mon Feb 29 09:40:43 MST 2016 - carnold@suse.com
+
+- bsc#962321 - VUL-0: CVE-2016-1922: xen: i386: null pointer
+ dereference in vapic_write()
+ CVE-2016-1922-qemuu-i386-null-pointer-dereference-in-vapic_write.patch
+
+-------------------------------------------------------------------
+Wed Feb 24 08:05:02 MST 2016 - carnold@suse.com
+
+- bsc#968004 - VUL-0: CVE-2016-2538: xen: usb: integer overflow in
+ remote NDIS control message handling
+ CVE-2016-2538-qemuu-usb-integer-overflow-in-remote-NDIS-message-handling.patch
+
+-------------------------------------------------------------------
+Thu Feb 18 10:39:00 MST 2016 - carnold@suse.com
+
+- bsc#954872 - L3: script block-dmmd not working as expected -
+ libxl: error: libxl_dm.c
+ block-dmmd
+- Update libxl to recognize dmmd and npiv prefix in disk spec
+ xen.libxl.dmmd.patch
+
+-------------------------------------------------------------------
+Wed Feb 17 08:30:35 MST 2016 - carnold@suse.com
+
+- bsc#967101 - VUL-0: CVE-2016-2391: xen: usb: multiple eof_timers
+ in ohci module leads to null pointer dereference
+ CVE-2016-2391-qemuu-usb-null-pointer-dereference-in-ohci-module.patch
+ CVE-2016-2391-qemut-usb-null-pointer-dereference-in-ohci-module.patch
+- bsc#967090 - VUL-0: CVE-2016-2392: xen: usb: null pointer
+ dereference in remote NDIS control message handling
+ CVE-2016-2392-qemuu-usb-null-pointer-dereference-in-NDIS-message-handling.patch
+
+-------------------------------------------------------------------
+Thu Feb 11 09:29:01 MST 2016 - carnold@suse.com
+
+- Update to Xen Version 4.6.1
+ xen-4.6.1-testing-src.tar.bz2
+- Dropped patches now contained in tarball or unnecessary
+ xen-4.6.0-testing-src.tar.bz2
+ 5604f239-x86-PV-properly-populate-descriptor-tables.patch
+ 561bbc8b-VT-d-don-t-suppress-invalidation-address-write-when-it-is-zero.patch
+ 561d2046-VT-d-use-proper-error-codes-in-iommu_enable_x2apic_IR.patch
+ 561d20a0-x86-hide-MWAITX-from-PV-domains.patch
+ 561e3283-x86-NUMA-fix-SRAT-table-processor-entry-parsing-and-consumption.patch
+ 5632118e-arm-Support-hypercall_create_continuation-for-multicall.patch
+ 56321222-arm-rate-limit-logging-from-unimplemented-PHYSDEVOP-and-HVMOP.patch
+ 56321249-arm-handle-races-between-relinquish_memory-and-free_domheap_pages.patch
+ 5632127b-x86-guard-against-undue-super-page-PTE-creation.patch
+ 5632129c-free-domain-s-vcpu-array.patch
+ 563212c9-x86-PoD-Eager-sweep-for-zeroed-pages.patch
+ 563212e4-xenoprof-free-domain-s-vcpu-array.patch
+ 563212ff-x86-rate-limit-logging-in-do_xen-oprof-pmu-_op.patch
+ 56323737-libxl-adjust-PoD-target-by-memory-fudge-too.patch
+ 56377442-x86-PoD-Make-p2m_pod_empty_cache-restartable.patch
+ 5641ceec-x86-HVM-always-intercept-AC-and-DB.patch
+ 56549f24-x86-vPMU-document-as-unsupported.patch
+ 5677f350-x86-make-debug-output-consistent-in-hvm_set_callback_via.patch
+ xsa155-qemut-qdisk-double-access.patch
+ xsa155-qemut-xenfb.patch
+ xsa155-qemuu-qdisk-double-access.patch
+ xsa155-qemuu-xenfb.patch
+ xsa159.patch
+ xsa160.patch
+ xsa162-qemut.patch
+ xsa165.patch
+ xsa166.patch
+ xsa167.patch
+ xsa168.patch
+
+-------------------------------------------------------------------
+Fri Feb 5 13:07:53 MST 2016 - carnold@suse.com
+
+- bsc#965315 - VUL-0: CVE-2016-2270: xen: x86: inconsistent
+ cachability flags on guest mappings (XSA-154)
+ xsa154.patch
+- bsc#965317 - VUL-0: CVE-2016-2271: xen: VMX: guest user mode may
+ crash guest with non-canonical RIP (XSA-170)
+ xsa170.patch
+
+-------------------------------------------------------------------
+Fri Feb 5 08:51:16 MST 2016 - carnold@suse.com
+
+- bsc#965269 - VUL-1: CVE-2015-8619: xen: stack based OOB write in
+ hmp_sendkey routine
+ CVE-2015-8619-qemuu-stack-based-OOB-write-in-hmp_sendkey-routine.patch
+
+-------------------------------------------------------------------
+Thu Feb 4 09:26:34 MST 2016 - carnold@suse.com
+
+- bsc#965156 - VUL-0: CVE-2015-6855: xen: ide: divide by zero issue
+ CVE-2015-6855-qemuu-ide-divide-by-zero-issue.patch
+- bsc#965112 - VUL-0: CVE-2014-3640: xen: slirp: NULL pointer deref
+ in sosendto()
+ CVE-2014-3640-qemut-slirp-NULL-pointer-deref-in-sosendto.patch
+
+-------------------------------------------------------------------
+Wed Feb 3 10:47:41 MST 2016 - carnold@suse.com
+
+- bsc#964947 - VUL-0: CVE-2015-5278: xen: Infinite loop in
+ ne2000_receive() function
+ CVE-2015-5278-qemut-Infinite-loop-in-ne2000_receive-function.patch
+- bsc#956832 - VUL-0: CVE-2015-8345: xen: qemu: net: eepro100:
+ infinite loop in processing command block list
+ CVE-2015-8345-qemuu-eepro100-infinite-loop-fix.patch
+ CVE-2015-8345-qemut-eepro100-infinite-loop-fix.patch
+
+-------------------------------------------------------------------
+Tue Feb 2 08:45:07 MST 2016 - carnold@suse.com
+
+- bsc#964644 - VUL-0: CVE-2013-4533: xen pxa2xx: buffer overrun on
+ incoming migration
+ CVE-2013-4533-qemut-pxa2xx-buffer-overrun-on-incoming-migration.patch
+- bsc#964925 - VUL-0: CVE-2014-0222: xen: qcow1: validate L2 table
+ size to avoid integer overflows
+ CVE-2014-0222-blktap-qcow1-validate-l2-table-size.patch
+- Dropped CVE-2014-0222-qemuu-qcow1-validate-l2-table-size.patch
+
+-------------------------------------------------------------------
+Mon Feb 1 13:29:55 MST 2016 - carnold@suse.com
+
+- bsc#964415 - VUL-1: CVE-2016-2198: xen: usb: ehci null pointer
+ dereference in ehci_caps_write
+ CVE-2016-2198-qemuu-usb-ehci-null-pointer-dereference-in-ehci_caps_write.patch
+- bsc#964452 - VUL-0: CVE-2013-4534: xen: openpic: buffer overrun
+ on incoming migration
+ CVE-2013-4534-qemut-openpic-buffer-overrun-on-incoming-migration.patch
+
+-------------------------------------------------------------------
+Wed Jan 27 08:23:26 MST 2016 - carnold@suse.com
+
+- bsc#963783 - VUL-1: CVE-2016-1981: xen: net: e1000 infinite loop
+ in start_xmit and e1000_receive_iov routines
+ CVE-2016-1981-qemuu-e1000-eliminate-infinite-loops-on-out-of-bounds-transfer.patch
+ CVE-2016-1981-qemut-e1000-eliminate-infinite-loops-on-out-of-bounds-transfer.patch
+
+-------------------------------------------------------------------
+Wed Jan 20 08:21:42 MST 2016 - carnold@suse.com
+
+- bsc#962758 - VUL-0: CVE-2013-4539: xen: tsc210x: buffer overrun
+ on invalid state load
+ CVE-2013-4539-qemut-tsc210x-fix-buffer-overrun-on-invalid-state-load.patch
+
+-------------------------------------------------------------------
+Tue Jan 19 09:23:56 MST 2016 - carnold@suse.com
+
+- bsc#962632 - VUL-0: CVE-2015-1779: xen: vnc: insufficient
+ resource limiting in VNC websockets decoder
+ CVE-2015-1779-qemuu-limit-size-of-HTTP-headers-from-websockets-clients.patch
+ CVE-2015-1779-qemuu-incrementally-decode-websocket-frames.patch
+- bsc#962642 - VUL-0: CVE-2013-4537: xen: ssi-sd: buffer overrun on
+ invalid state load
+ CVE-2013-4537-qemut-ssi-sd-fix-buffer-overrun-on-invalid-state-load.patch
+- bsc#962627 - VUL-0: CVE-2014-7815: xen: vnc: insufficient
+ bits_per_pixel from the client sanitization
+ CVE-2014-7815-qemut-vnc-sanitize-bits_per_pixel-from-the-client.patch
+
+-------------------------------------------------------------------
+Mon Jan 18 09:04:10 MST 2016 - carnold@suse.com
+
+- bsc#962335 - VUL-0: CVE-2013-4538: xen: ssd0323: fix buffer
+ overun on invalid state
+ CVE-2013-4538-qemut-ssd0323-fix-buffer-overun-on-invalid-state.patch
+- bsc#962360 - VUL-0: CVE-2015-7512: xen: net: pcnet: buffer
+ overflow in non-loopback mode
+ CVE-2015-7512-qemuu-net-pcnet-buffer-overflow-in-non-loopback-mode.patch
+ CVE-2015-7512-qemut-net-pcnet-buffer-overflow-in-non-loopback-mode.patch
+
+-------------------------------------------------------------------
+Wed Jan 13 09:56:52 MST 2016 - carnold@suse.com
+
+- bsc#961692 - VUL-0: CVE-2016-1714: xen: nvram: OOB r/w access in
+ processing firmware configurations
+ CVE-2016-1714-qemuu-fw_cfg-add-check-to-validate-current-entry-value.patch
+ CVE-2016-1714-qemut-fw_cfg-add-check-to-validate-current-entry-value.patch
+
+-------------------------------------------------------------------
+Mon Jan 11 11:51:45 MST 2016 - carnold@suse.com
+
+- bsc#961358 - VUL-0: CVE-2015-8613: xen: qemu: scsi: stack based
+ buffer overflow in megasas_ctrl_get_info
+ CVE-2015-8613-qemuu-scsi-initialise-info-object-with-appropriate-size.patch
+- bsc#961332 - VUL-0: CVE-2016-1568: xen: Qemu: ide: ahci
+ use-after-free vulnerability in aio port commands
+ CVE-2016-1568-qemuu-ide-ahci-reset-ncq-object-to-unused-on-error.patch
+
+-------------------------------------------------------------------
+Thu Jan 7 10:38:20 MST 2016 - carnold@suse.com
+
+- bsc#959695 - missing docs for xen
+ xen.spec
+
+-------------------------------------------------------------------
+Wed Jan 6 10:38:36 MST 2016 - carnold@suse.com
+
+- bsc#960862 - VUL-0: CVE-2016-1571: xen: VMX: intercept issue with
+ INVLPG on non-canonical address (XSA-168)
+ xsa168.patch
+- bsc#960861 - VUL-0: CVE-2016-1570: xen: PV superpage
+ functionality missing sanity checks (XSA-167)
+ xsa167.patch
+- bsc#960836 - VUL-0: CVE-2015-8744: xen: net: vmxnet3: incorrect
+ l2 header validation leads to a crash via assert(2) call
+ CVE-2015-8744-qemuu-net-vmxnet3-incorrect-l2-header-validation-leads-to-crash.patch
+
+-------------------------------------------------------------------
+Tue Jan 5 13:56:08 MST 2016 - carnold@suse.com
+
+- bsc#960707 - VUL-0: CVE-2015-8745: xen: reading IMR registers
+ leads to a crash via assert(2) call
+ CVE-2015-8745-qemuu-net-vmxnet3-read-IMR-registers-instead-of-assert.patch
+- bsc#960726 - VUL-0: CVE-2015-8743: xen: ne2000: OOB memory access
+ in ioport r/w functions
+ CVE-2015-8743-qemuu-ne2000-OOB-memory-access-in-ioport-rw-functions.patch
+
+-------------------------------------------------------------------
+Mon Jan 4 11:32:10 MST 2016 - carnold@suse.com
+
+- bsc#960093 - VUL-0: CVE-2015-8615: xen: x86: unintentional
+ logging upon guest changing callback method (XSA-169)
+ 5677f350-x86-make-debug-output-consistent-in-hvm_set_callback_via.patch
+
+-------------------------------------------------------------------
+Mon Dec 21 09:09:55 UTC 2015 - ohering@suse.de
+
+- Adjust xen-dom0-modules.service to run Before xenstored.service
+ instead of proc-xen.mount to workaround a bug in systemd "design"
+ (bnc#959845)
+
+-------------------------------------------------------------------
+Wed Dec 16 12:16:21 MST 2015 - carnold@suse.com
+
+- bsc#959387 - VUL-0: CVE-2015-8568 CVE-2015-8567: xen: qemu: net:
+ vmxnet3: host memory leakage
+ CVE-2015-8568-qemuu-net-vmxnet3-avoid-memory-leakage-in-activate_device.patch
+
+-------------------------------------------------------------------
+Mon Dec 14 10:12:05 MST 2015 - carnold@suse.com
+
+- bsc#957988 - VUL-0: CVE-2015-8550: xen: paravirtualized drivers
+ incautious about shared memory contents (XSA-155)
+ xsa155-xen-0001-xen-Add-RING_COPY_REQUEST.patch
+ xsa155-xen-0002-blktap2-Use-RING_COPY_REQUEST.patch
+ xsa155-xen-0003-libvchan-Read-prod-cons-only-once.patch
+ xsa155-qemuu-qdisk-double-access.patch
+ xsa155-qemut-qdisk-double-access.patch
+ xsa155-qemuu-xenfb.patch
+ xsa155-qemut-xenfb.patch
+- bsc#959006 - VUL-0: CVE-2015-8558: xen: qemu: usb: infinite loop
+ in ehci_advance_state results in DoS
+ CVE-2015-8558-qemuu-usb-infinite-loop-in-ehci_advance_state-results-in-DoS.patch
+- bsc#958918 - VUL-0: CVE-2015-7549: xen: qemu pci: null pointer
+ dereference issue
+ CVE-2015-7549-qemuu-pci-null-pointer-dereference-issue.patch
+- bsc#958493 - VUL-0: CVE-2015-8504: xen: qemu: ui: vnc: avoid
+ floating point exception
+ CVE-2015-8504-qemuu-vnc-avoid-floating-point-exception.patch
+ CVE-2015-8504-qemut-vnc-avoid-floating-point-exception.patch
+- bsc#958007 - VUL-0: CVE-2015-8554: xen: qemu-dm buffer overrun in
+ MSI-X handling (XSA-164)
+ xsa164.patch
+- bsc#958009 - VUL-0: CVE-2015-8555: xen: information leak in
+ legacy x86 FPU/XMM initialization (XSA-165)
+ xsa165.patch
+- bsc#958523 - VUL-0: xen: ioreq handling possibly susceptible to
+ multiple read issue (XSA-166)
+ xsa166.patch
+
+-------------------------------------------------------------------
+Fri Nov 27 10:39:38 MST 2015 - carnold@suse.com
+
+- bsc#956832 - VUL-0: CVE-2015-8345: xen: qemu: net: eepro100:
+ infinite loop in processing command block list
+ CVE-2015-8345-qemuu-eepro100-infinite-loop-fix.patch
+ CVE-2015-8345-qemut-eepro100-infinite-loop-fix.patch
+- Upstream patches from Jan
+ 56377442-x86-PoD-Make-p2m_pod_empty_cache-restartable.patch
+ 5641ceec-x86-HVM-always-intercept-AC-and-DB.patch (Replaces CVE-2015-5307-xsa156.patch)
+ 5644b756-x86-HVM-don-t-inject-DB-with-error-code.patch
+ 56544a57-VMX-fix-adjust-trap-injection.patch
+ 56546ab2-sched-fix-insert_vcpu-locking.patch
+
+-------------------------------------------------------------------
+Wed Nov 25 10:06:30 MST 2015 - carnold@suse.com
+
+- bsc#956592 - VUL-0: xen: virtual PMU is unsupported (XSA-163)
+ 56549f24-x86-vPMU-document-as-unsupported.patch
+- bsc#956408 - VUL-0: CVE-2015-8339, CVE-2015-8340: xen:
+ XENMEM_exchange error handling issues (XSA-159)
+ xsa159.patch
+- bsc#956409 - VUL-0: CVE-2015-8341: xen: libxl leak of pv kernel
+ and initrd on error (XSA-160)
+ xsa160.patch
+- bsc#956411 - VUL-0: CVE-2015-7504: xen: heap buffer overflow
+ vulnerability in pcnet emulator (XSA-162)
+ xsa162-qemuu.patch
+ xsa162-qemut.patch
+- bsc#947165 - VUL-0: CVE-2015-7311: xen: libxl fails to honour
+ readonly flag on disks with qemu-xen (xsa-142)
+ 5628fc67-libxl-No-emulated-disk-driver-for-xvdX-disk.patch
+ 5649bcbe-libxl-relax-readonly-check-introduced-by-XSA-142-fix.patch
+
+-------------------------------------------------------------------
+Tue Nov 24 08:44:57 MST 2015 - carnold@suse.com
+
+- fate#315712: XEN: Use the PVOPS kernel
+ Turn off building the KMPs now that we are using the pvops kernel
+ xen.spec
+
+-------------------------------------------------------------------
+Thu Nov 19 11:18:03 MST 2015 - carnold@suse.com
+
+- Upstream patches from Jan
+ 561bbc8b-VT-d-don-t-suppress-invalidation-address-write-when-it-is-zero.patch
+ 561d20a0-x86-hide-MWAITX-from-PV-domains.patch
+ 561e3283-x86-NUMA-fix-SRAT-table-processor-entry-parsing-and-consumption.patch
+ 5632118e-arm-Support-hypercall_create_continuation-for-multicall.patch
+ 56321222-arm-rate-limit-logging-from-unimplemented-PHYSDEVOP-and-HVMOP.patch
+ 56321249-arm-handle-races-between-relinquish_memory-and-free_domheap_pages.patch
+ 5632127b-x86-guard-against-undue-super-page-PTE-creation.patch
+ 5632129c-free-domain-s-vcpu-array.patch (Replaces CVE-2015-7969-xsa149.patch)
+ 563212c9-x86-PoD-Eager-sweep-for-zeroed-pages.patch
+ 563212e4-xenoprof-free-domain-s-vcpu-array.patch
+ 563212ff-x86-rate-limit-logging-in-do_xen-oprof-pmu-_op.patch
+ 56323737-libxl-adjust-PoD-target-by-memory-fudge-too.patch
+ 56377442-x86-PoD-Make-p2m_pod_empty_cache-restartable.patch
+ 5641ceec-x86-HVM-always-intercept-AC-and-DB.patch (Replaces CVE-2015-5307-xsa156.patch)
+ 5644b756-x86-HVM-don-t-inject-DB-with-error-code.patch
+- Dropped 55b0a2db-x86-MSI-track-guest-masking.patch
+
+-------------------------------------------------------------------
+Thu Nov 19 07:47:47 UTC 2015 - ohering@suse.de
+
+- Use upstream variants of block-iscsi and block-nbd
+
+-------------------------------------------------------------------
+Thu Nov 19 07:38:06 UTC 2015 - ohering@suse.de
+
+- Remove xenalyze.hg, its part of xen-4.6
+
+-------------------------------------------------------------------
+Wed Nov 10 16:16:24 MDT 2015 - carnold@suse.com
+
+- Update to Xen Version 4.6.0
+ xen-4.6.0-testing-src.tar.bz2
+ mini-os.tar.bz2
+ blktap2-no-uninit.patch
+ stubdom-have-iovec.patch
+- Renamed
+ xsa149.patch to CVE-2015-7969-xsa149.patch
+- Dropped patches now contained in tarball or unnecessary
+ xen-4.5.2-testing-src.tar.bz2
+ 54c2553c-grant-table-use-uint16_t-consistently-for-offset-and-length.patch
+ 54ca33bc-grant-table-refactor-grant-copy-to-reduce-duplicate-code.patch
+ 54ca340e-grant-table-defer-releasing-pages-acquired-in-a-grant-copy.patch
+ 54f4985f-libxl-fix-libvirtd-double-free.patch
+ 55103616-vm-assist-prepare-for-discontiguous-used-bit-numbers.patch
+ 551ac326-xentop-add-support-for-qdisk.patch
+ 552d0fd2-x86-hvm-don-t-include-asm-spinlock-h.patch
+ 552d0fe8-x86-mtrr-include-asm-atomic.h.patch
+ 552d293b-x86-vMSI-X-honor-all-mask-requests.patch
+ 552d2966-x86-vMSI-X-add-valid-bits-for-read-acceleration.patch
+ 5537a4d8-libxl-use-DEBUG-log-level-instead-of-INFO.patch
+ 5548e903-domctl-don-t-truncate-XEN_DOMCTL_max_mem-requests.patch
+ 5548e95d-x86-allow-to-suppress-M2P-user-mode-exposure.patch
+ 554c7aee-x86-provide-arch_fetch_and_add.patch
+ 554c7b00-arm-provide-arch_fetch_and_add.patch
+ 554cc211-libxl-add-qxl.patch 55534b0a-x86-provide-add_sized.patch
+ 55534b25-arm-provide-add_sized.patch
+ 5555a4f8-use-ticket-locks-for-spin-locks.patch
+ 5555a5b9-x86-arm-remove-asm-spinlock-h.patch
+ 5555a8ec-introduce-non-contiguous-allocation.patch
+ 556d973f-unmodified-drivers-tolerate-IRQF_DISABLED-being-undefined.patch
+ 5576f143-x86-adjust-PV-I-O-emulation-functions-types.patch
+ 55795a52-x86-vMSI-X-support-qword-MMIO-access.patch
+ 557eb55f-gnttab-per-active-entry-locking.patch
+ 557eb5b6-gnttab-introduce-maptrack-lock.patch
+ 557eb620-gnttab-make-the-grant-table-lock-a-read-write-lock.patch
+ 557ffab8-evtchn-factor-out-freeing-an-event-channel.patch
+ 5582bf43-evtchn-simplify-port_is_valid.patch
+ 5582bf81-evtchn-remove-the-locking-when-unmasking-an-event-channel.patch
+ 5583d9c5-x86-MSI-X-cleanup.patch
+ 5583da09-x86-MSI-track-host-and-guest-masking-separately.patch
+ 5583da64-gnttab-use-per-VCPU-maptrack-free-lists.patch
+ 5583da8c-gnttab-steal-maptrack-entries-from-other-VCPUs.patch
+ 5587d711-evtchn-clear-xen_consumer-when-clearing-state.patch
+ 5587d779-evtchn-defer-freeing-struct-evtchn-s-until-evtchn_destroy_final.patch
+ 5587d7b7-evtchn-use-a-per-event-channel-lock-for-sending-events.patch
+ 5587d7e2-evtchn-pad-struct-evtchn-to-64-bytes.patch
+ 55b0a218-x86-PCI-CFG-write-intercept.patch
+ 55b0a255-x86-MSI-X-maskall.patch 55b0a283-x86-MSI-X-teardown.patch
+ 55b0a2ab-x86-MSI-X-enable.patch blktapctrl-close-fifos.patch
+ blktapctrl-default-to-ioemu.patch blktapctrl-disable-debug-printf.patch
+ blktap-no-uninit.patch blktap-pv-cdrom.patch build-tapdisk-ioemu.patch
+ ioemu-bdrv-open-CACHE_WB.patch ioemu-blktap-barriers.patch
+ ioemu-blktap-fv-init.patch ioemu-blktap-image-format.patch
+ ioemu-blktap-zero-size.patch libxl.set-migration-constraints-from-cmdline.patch
+ local_attach_support_for_phy.patch pci-attach-fix.patch
+ qemu-xen-upstream-megasas-buildtime.patch tapdisk-ioemu-logfile.patch
+ tapdisk-ioemu-shutdown-fix.patch udev-rules.patch xen.build-compare.ipxe.patch
+ xen.build-compare.mini-os.patch xen.build-compare.smbiosdate.patch
+ xen.build-compare.vgabios.patch xen.build-compare.xen_compile_h.patch
+ xl-coredump-file-location.patch
+
+-------------------------------------------------------------------
+Thu Nov 5 07:42:08 MST 2015 - carnold@suse.com
+
+- bsc#954405 - VUL-0: CVE-2015-8104: Xen: guest to host DoS by
+ triggering an infinite loop in microcode via #DB exception
+- bsc#954018 - VUL-0: CVE-2015-5307: xen: x86: CPU lockup during
+ fault delivery (XSA-156)
+ CVE-2015-5307-xsa156.patch
+
+-------------------------------------------------------------------
+Wed Nov 4 10:33:59 MST 2015 - carnold@suse.com
+
+- Update to Xen 4.5.2
+ xen-4.5.2-testing-src.tar.bz2
+- Drop the following
+ xen-4.5.1-testing-src.tar.bz2
+ 552d0f49-x86-traps-identify-the-vcpu-in-context-when-dumping-regs.patch
+ 5576f178-kexec-add-more-pages-to-v1-environment.patch
+ 55780be1-x86-EFI-adjust-EFI_MEMORY_WP-handling-for-spec-version-2.5.patch
+ 558bfaa0-x86-traps-avoid-using-current-too-early.patch
+ 5592a116-nested-EPT-fix-the-handling-of-nested-EPT.patch
+ 559b9dd6-x86-p2m-ept-don-t-unmap-in-use-EPT-pagetable.patch
+ 559bc633-x86-cpupool-clear-proper-cpu_valid-bit-on-CPU-teardown.patch
+ 559bc64e-credit1-properly-deal-with-CPUs-not-in-any-pool.patch
+ 559bc87f-x86-hvmloader-avoid-data-corruption-with-xenstore-rw.patch
+ 559bdde5-pull-in-latest-linux-earlycpio.patch
+ 55a62eb0-xl-correct-handling-of-extra_config-in-main_cpupoolcreate.patch
+ 55a66a1e-make-rangeset_report_ranges-report-all-ranges.patch
+ 55a77e4f-dmar-device-scope-mem-leak-fix.patch
+ 55c1d83d-x86-gdt-Drop-write-only-xalloc-d-array.patch
+ 55c3232b-x86-mm-Make-hap-shadow-teardown-preemptible.patch
+ 55dc78e9-x86-amd_ucode-skip-updates-for-final-levels.patch
+ 55df2f76-IOMMU-skip-domains-without-page-tables-when-dumping.patch
+ 55e43fd8-x86-NUMA-fix-setup_node.patch
+ 55e43ff8-x86-NUMA-don-t-account-hotplug-regions.patch
+ 55e593f1-x86-NUMA-make-init_node_heap-respect-Xen-heap-limit.patch
+ 55f2e438-x86-hvm-fix-saved-pmtimer-and-hpet-values.patch
+ 55f9345b-x86-MSI-fail-if-no-hardware-support.patch
+ 5604f2e6-vt-d-fix-IM-bit-mask-and-unmask-of-FECTL_REG.patch
+ 560a4af9-x86-EPT-tighten-conditions-of-IOMMU-mapping-updates.patch
+ 560a7c36-x86-p2m-pt-delay-freeing-of-intermediate-page-tables.patch
+ 560a7c53-x86-p2m-pt-ignore-pt-share-flag-for-shadow-mode-guests.patch
+ 560bd926-credit1-fix-tickling-when-it-happens-from-a-remote-pCPU.patch
+ 560e6d34-x86-p2m-pt-tighten-conditions-of-IOMMU-mapping-updates.patch
+ 561bbc8b-VT-d-don-t-suppress-invalidation-address-write-when-0.patch
+ 561d20a0-x86-hide-MWAITX-from-PV-domains.patch
+ 561e3283-x86-NUMA-fix-SRAT-table-processor-entry-handling.patch
+ 563212c9-x86-PoD-Eager-sweep-for-zeroed-pages.patch
+ CVE-2015-4106-xsa131-9.patch CVE-2015-3259-xsa137.patch
+ CVE-2015-7311-xsa142.patch CVE-2015-7835-xsa148.patch
+ xsa139-qemuu.patch xsa140-qemuu-1.patch xsa140-qemuu-2.patch
+ xsa140-qemuu-3.patch xsa140-qemuu-4.patch xsa140-qemuu-5.patch
+ xsa140-qemuu-6.patch xsa140-qemuu-7.patch xsa140-qemut-1.patch
+ xsa140-qemut-2.patch xsa140-qemut-3.patch xsa140-qemut-4.patch
+ xsa140-qemut-5.patch xsa140-qemut-6.patch xsa140-qemut-7.patch
+ xsa151.patch xsa152.patch xsa153-libxl.patch
+ CVE-2015-5154-qemuu-check-array-bounds-before-writing-to-io_buffer.patch
+ CVE-2015-5154-qemuu-fix-START-STOP-UNIT-command-completion.patch
+ CVE-2015-5154-qemuu-clear-DRQ-after-handling-all-expected-accesses.patch
+ CVE-2015-5154-qemut-check-array-bounds-before-writing-to-io_buffer.patch
+ CVE-2015-5154-qemut-clear-DRQ-after-handling-all-expected-accesses.patch
+ CVE-2015-6815-qemuu-e1000-fix-infinite-loop.patch
+ CVE-2015-5239-qemuu-limit-client_cut_text-msg-payload-size.patch
+ CVE-2015-5239-qemut-limit-client_cut_text-msg-payload-size.patch"
+
+-------------------------------------------------------------------
+Mon Nov 2 11:21:15 MST 2015 - carnold@suse.com
+
+- bsc#950704 - CVE-2015-7970 VUL-1: xen: x86: Long latency
+ populate-on-demand operation is not preemptible (XSA-150)
+ 563212c9-x86-PoD-Eager-sweep-for-zeroed-pages.patch
+
+-------------------------------------------------------------------
+Wed Oct 28 09:47:38 MDT 2015 - carnold@suse.com
+
+- Upstream patches from Jan
+ 5604f239-x86-PV-properly-populate-descriptor-tables.patch
+ 561bbc8b-VT-d-don-t-suppress-invalidation-address-write-when-0.patch
+ 561d2046-VT-d-use-proper-error-codes-in-iommu_enable_x2apic_IR.patch
+ 561d20a0-x86-hide-MWAITX-from-PV-domains.patch
+ 561e3283-x86-NUMA-fix-SRAT-table-processor-entry-handling.patch
+
+-------------------------------------------------------------------
+Fri Oct 23 13:35:59 MDT 2015 - carnold@suse.com
+
+- bsc#951845 - VUL-0: CVE-2015-7972: xen: x86: populate-on-demand
+ balloon size inaccuracy can crash guests (XSA-153)
+ xsa153-libxl.patch
+
+-------------------------------------------------------------------
+Fri Oct 16 08:40:31 MDT 2015 - carnold@suse.com
+
+- bsc#950703 - VUL-1: CVE-2015-7969: xen: leak of main per-domain
+ vcpu pointer array (DoS) (XSA-149)
+ xsa149.patch
+- bsc#950705 - VUL-1: CVE-2015-7969: xen: x86: leak of per-domain
+ profiling-related vcpu pointer array (DoS) (XSA-151)
+ xsa151.patch
+- bsc#950706 - VUL-0: CVE-2015-7971: xen: x86: some pmu and
+ profiling hypercalls log without rate limiting (XSA-152)
+ xsa152.patch
+- Dropped
+ 55dc7937-x86-IO-APIC-don-t-create-pIRQ-mapping-from-masked-RTE.patch
+ 5604f239-x86-PV-properly-populate-descriptor-tables.patch
+
+-------------------------------------------------------------------
+Thu Oct 15 11:43:23 MDT 2015 - carnold@suse.com
+
+- bsc#932267 - VUL-1: CVE-2015-4037: qemu,kvm,xen: insecure
+ temporary file use in /net/slirp.c
+ CVE-2015-4037-qemuu-smb-config-dir-name.patch
+ CVE-2015-4037-qemut-smb-config-dir-name.patch
+- bsc#877642 - VUL-0: CVE-2014-0222: qemu: qcow1: validate L2 table
+ size to avoid integer overflows
+ CVE-2014-0222-qemuu-qcow1-validate-l2-table-size.patch
+ CVE-2014-0222-qemut-qcow1-validate-l2-table-size.patch
+
+-------------------------------------------------------------------
+Wed Oct 14 10:24:15 MDT 2015 - carnold@suse.com
+
+- bsc#950367 - VUL-0: CVE-2015-7835: xen: x86: Uncontrolled
+ creation of large page mappings by PV guests (XSA-148)
+ CVE-2015-7835-xsa148.patch
+
+-------------------------------------------------------------------
+Tue Oct 6 14:52:30 MDT 2015 - jfehlig@suse.com
+
+- bsc#949138 - Setting vcpu affinity under Xen causes libvirtd
+ abort
+ 54f4985f-libxl-fix-libvirtd-double-free.patch
+
+-------------------------------------------------------------------
+Tue Oct 6 09:04:17 MDT 2015 - carnold@suse.com
+
+- bsc#949046 - Increase %suse_version in SP1 to 1316
+ xen.spec
+- Update README.SUSE detailing dom0 ballooning recommendations
+
+-------------------------------------------------------------------
+Mon Oct 5 09:12:45 MDT 2015 - carnold@suse.com
+
+- bsc#945167 - Running command ’ xl pci-assignable-add 03:10.1’
+ secondly show errors
+ 55f7f9d2-libxl-slightly-refine-pci-assignable-add-remove-handling.patch
+- Upstream patches from Jan
+ 55f2e438-x86-hvm-fix-saved-pmtimer-and-hpet-values.patch
+ 55f9345b-x86-MSI-fail-if-no-hardware-support.patch
+ 5604f239-x86-PV-properly-populate-descriptor-tables.patch
+ 5604f2e6-vt-d-fix-IM-bit-mask-and-unmask-of-FECTL_REG.patch
+ 560a4af9-x86-EPT-tighten-conditions-of-IOMMU-mapping-updates.patch
+ 560a7c36-x86-p2m-pt-delay-freeing-of-intermediate-page-tables.patch
+ 560a7c53-x86-p2m-pt-ignore-pt-share-flag-for-shadow-mode-guests.patch
+ 560bd926-credit1-fix-tickling-when-it-happens-from-a-remote-pCPU.patch
+ 560e6d34-x86-p2m-pt-tighten-conditions-of-IOMMU-mapping-updates.patch
+
+-------------------------------------------------------------------
+Fri Oct 2 11:31:34 MDT 2015 - mlatimer@suse.com
+
+- bsc#941074 - VmError: Device 51728 (vbd) could not be connected.
+ Hotplug scripts not working.
+ hotplug-Linux-block-performance-fix.patch
+
+-------------------------------------------------------------------
+Wed Sep 23 14:56:47 MDT 2015 - carnold@suse.com
+
+- bsc#947165 - VUL-0: CVE-2015-7311: xen: libxl fails to honour
+ readonly flag on disks with qemu-xen (xsa-142)
+ CVE-2015-7311-xsa142.patch
+
+-------------------------------------------------------------------
+Mon Sep 16 07:17:00 UTC 2015 - cyliu@suse.com
+
+- bsc#945165 - Xl pci-attach show error with kernel of SLES 12 sp1
+ pci-attach-fix.patch
+
+-------------------------------------------------------------------
+Tue Sep 15 14:48:27 MDT 2015 - jfehlig@suse.com
+
+- bsc#945164 - Xl destroy show error with kernel of SLES 12 sp1
+ 5537a4d8-libxl-use-DEBUG-log-level-instead-of-INFO.patch
+
+-------------------------------------------------------------------
+Wed Sep 9 08:55:29 MDT 2015 - carnold@suse.com
+
+- Upstream patches from Jan
+ 55dc78e9-x86-amd_ucode-skip-updates-for-final-levels.patch
+ 55dc7937-x86-IO-APIC-don-t-create-pIRQ-mapping-from-masked-RTE.patch
+ 55df2f76-IOMMU-skip-domains-without-page-tables-when-dumping.patch
+ 55e43fd8-x86-NUMA-fix-setup_node.patch
+ 55e43ff8-x86-NUMA-don-t-account-hotplug-regions.patch
+ 55e593f1-x86-NUMA-make-init_node_heap-respect-Xen-heap-limit.patch
+ 54c2553c-grant-table-use-uint16_t-consistently-for-offset-and-length.patch
+ 54ca33bc-grant-table-refactor-grant-copy-to-reduce-duplicate-code.patch
+ 54ca340e-grant-table-defer-releasing-pages-acquired-in-a-grant-copy.patch
+
+-------------------------------------------------------------------
+Tue Sep 8 11:26:45 MDT 2015 - carnold@suse.com
+
+- bsc#944463 - VUL-0: CVE-2015-5239: qemu-kvm: Integer overflow in
+ vnc_client_read() and protocol_client_msg()
+ CVE-2015-5239-qemuu-limit-client_cut_text-msg-payload-size.patch
+ CVE-2015-5239-qemut-limit-client_cut_text-msg-payload-size.patch
+- bsc#944697 - VUL-1: CVE-2015-6815: qemu: net: e1000: infinite
+ loop issue
+ CVE-2015-6815-qemuu-e1000-fix-infinite-loop.patch
+ CVE-2015-6815-qemut-e1000-fix-infinite-loop.patch
+
+-------------------------------------------------------------------
+Wed Aug 26 16:18:58 MDT 2015 - carnold@suse.com
+
+- bnc#935634 - VUL-0: CVE-2015-3259: xen: XSA-137: xl command line
+ config handling stack overflow
+ 55a62eb0-xl-correct-handling-of-extra_config-in-main_cpupoolcreate.patch
+
+-------------------------------------------------------------------
+Tue Aug 18 10:18:20 MDT 2015 - carnold@suse.com
+
+- bsc#907514 - Bus fatal error & sles12 sudden reboot has been
+ observed
+- bsc#910258 - SLES12 Xen host crashes with FATAL NMI after
+ shutdown of guest with VT-d NIC
+- bsc#918984 - Bus fatal error & sles11-SP4 sudden reboot has been
+ observed
+- bsc#923967 - Partner-L3: Bus fatal error & sles11-SP3 sudden
+ reboot has been observed
+ 552d293b-x86-vMSI-X-honor-all-mask-requests.patch
+ 552d2966-x86-vMSI-X-add-valid-bits-for-read-acceleration.patch
+ 5576f143-x86-adjust-PV-I-O-emulation-functions-types.patch
+ 55795a52-x86-vMSI-X-support-qword-MMIO-access.patch
+ 5583d9c5-x86-MSI-X-cleanup.patch
+ 5583da09-x86-MSI-track-host-and-guest-masking-separately.patch
+ 55b0a218-x86-PCI-CFG-write-intercept.patch
+ 55b0a255-x86-MSI-X-maskall.patch
+ 55b0a283-x86-MSI-X-teardown.patch
+ 55b0a2ab-x86-MSI-X-enable.patch
+ 55b0a2db-x86-MSI-track-guest-masking.patch
+- Upstream patches from Jan
+ 552d0f49-x86-traps-identify-the-vcpu-in-context-when-dumping-regs.patch
+ 559bc633-x86-cpupool-clear-proper-cpu_valid-bit-on-CPU-teardown.patch
+ 559bc64e-credit1-properly-deal-with-CPUs-not-in-any-pool.patch
+ 559bc87f-x86-hvmloader-avoid-data-corruption-with-xenstore-rw.patch
+ 55a66a1e-make-rangeset_report_ranges-report-all-ranges.patch
+ 55a77e4f-dmar-device-scope-mem-leak-fix.patch
+ 55c1d83d-x86-gdt-Drop-write-only-xalloc-d-array.patch
+ 55c3232b-x86-mm-Make-hap-shadow-teardown-preemptible.patch
+- Dropped for upstream version
+ x86-MSI-mask.patch
+ x86-MSI-pv-unmask.patch
+ x86-MSI-X-enable.patch
+ x86-MSI-X-maskall.patch
+ x86-MSI-X-teardown.patch
+ x86-pci_cfg_okay.patch
+ x86-PCI-CFG-write-intercept.patch
+
+-------------------------------------------------------------------
+Tue Jul 28 09:04:13 MDT 2015 - carnold@suse.com
+
+- bsc#939712 - VUL-0: XSA-140: QEMU leak of uninitialized heap
+ memory in rtl8139 device model
+ xsa140-qemuu-1.patch
+ xsa140-qemuu-2.patch
+ xsa140-qemuu-3.patch
+ xsa140-qemuu-4.patch
+ xsa140-qemuu-5.patch
+ xsa140-qemuu-6.patch
+ xsa140-qemuu-7.patch
+ xsa140-qemut-1.patch
+ xsa140-qemut-2.patch
+ xsa140-qemut-3.patch
+ xsa140-qemut-4.patch
+ xsa140-qemut-5.patch
+ xsa140-qemut-6.patch
+ xsa140-qemut-7.patch
+- bsc#939709 - VUL-0: XSA-139: xen: Use after free in QEMU/Xen
+ block unplug protocol
+ xsa139-qemuu.patch
+
+-------------------------------------------------------------------
+Tue Jul 21 10:03:24 UTC 2015 - ohering@suse.de
+
+- bsc#937371 - xen vm's running after reboot
+ xendomains-libvirtd-conflict.patch
+
+-------------------------------------------------------------------
+Thu Jul 16 10:14:12 MDT 2015 - carnold@suse.com
+
+- bsc#938344 - VUL-0: CVE-2015-5154: qemu,kvm,xen: host code
+ execution via IDE subsystem CD-ROM
+ CVE-2015-5154-qemuu-check-array-bounds-before-writing-to-io_buffer.patch
+ CVE-2015-5154-qemut-check-array-bounds-before-writing-to-io_buffer.patch
+ CVE-2015-5154-qemuu-fix-START-STOP-UNIT-command-completion.patch
+ CVE-2015-5154-qemut-fix-START-STOP-UNIT-command-completion.patch
+ CVE-2015-5154-qemuu-clear-DRQ-after-handling-all-expected-accesses.patch
+ CVE-2015-5154-qemut-clear-DRQ-after-handling-all-expected-accesses.patch
+
+-------------------------------------------------------------------
+Wed Jul 15 08:28:23 UTC 2015 - ohering@suse.de
+
+- Remove xendomains.service from systemd preset file because it
+ conflicts with libvirt-guests.service (bnc#937371)
+ Its up to the admin to run systemctl enable xendomains.service
+
+-------------------------------------------------------------------
+Wed Jul 8 11:38:26 MDT 2015 - carnold@suse.com
+
+- bnc#935634 - VUL-0: CVE-2015-3259: xen: XSA-137: xl command line
+ config handling stack overflow
+ CVE-2015-3259-xsa137.patch
+- Upstream patches from Jan
+ 558bfaa0-x86-traps-avoid-using-current-too-early.patch
+ 5592a116-nested-EPT-fix-the-handling-of-nested-EPT.patch
+ 559b9dd6-x86-p2m-ept-don-t-unmap-in-use-EPT-pagetable.patch
+ 559bdde5-pull-in-latest-linux-earlycpio.patch
+- Upstream patches from Jan pending review
+ 552d0fd2-x86-hvm-don-t-include-asm-spinlock-h.patch
+ 552d0fe8-x86-mtrr-include-asm-atomic.h.patch
+ 552d293b-x86-vMSI-X-honor-all-mask-requests.patch
+ 552d2966-x86-vMSI-X-add-valid-bits-for-read-acceleration.patch
+ 554c7aee-x86-provide-arch_fetch_and_add.patch
+ 554c7b00-arm-provide-arch_fetch_and_add.patch
+ 55534b0a-x86-provide-add_sized.patch
+ 55534b25-arm-provide-add_sized.patch
+ 5555a4f8-use-ticket-locks-for-spin-locks.patch
+ 5555a5b9-x86-arm-remove-asm-spinlock-h.patch
+ 5555a8ec-introduce-non-contiguous-allocation.patch
+ 55795a52-x86-vMSI-X-support-qword-MMIO-access.patch
+ 557eb55f-gnttab-per-active-entry-locking.patch
+ 557eb5b6-gnttab-introduce-maptrack-lock.patch
+ 557eb620-gnttab-make-the-grant-table-lock-a-read-write-lock.patch
+ 557ffab8-evtchn-factor-out-freeing-an-event-channel.patch
+ 5582bf43-evtchn-simplify-port_is_valid.patch
+ 5582bf81-evtchn-remove-the-locking-when-unmasking-an-event-channel.patch
+ 5583d9c5-x86-MSI-X-cleanup.patch
+ 5583da09-x86-MSI-track-host-and-guest-masking-separately.patch
+ 5583da64-gnttab-use-per-VCPU-maptrack-free-lists.patch
+ 5583da8c-gnttab-steal-maptrack-entries-from-other-VCPUs.patch
+ 5587d711-evtchn-clear-xen_consumer-when-clearing-state.patch
+ 5587d779-evtchn-defer-freeing-struct-evtchn-s-until-evtchn_destroy_final.patch
+ 5587d7b7-evtchn-use-a-per-event-channel-lock-for-sending-events.patch
+ 5587d7e2-evtchn-pad-struct-evtchn-to-64-bytes.patch
+ x86-MSI-pv-unmask.patch
+ x86-pci_cfg_okay.patch
+ x86-PCI-CFG-write-intercept.patch
+ x86-MSI-X-maskall.patch
+ x86-MSI-X-teardown.patch
+ x86-MSI-X-enable.patch
+ x86-MSI-mask.patch
+
+-------------------------------------------------------------------
+Tue Jul 7 13:35:34 UTC 2015 - ohering@suse.de
+
+- Adjust more places to use br0 instead of xenbr0
+
+-------------------------------------------------------------------
+Tue Jun 30 08:25:35 MDT 2015 - carnold@suse.com
+
+- bnc#936516 - xen fails to build with kernel update(4.1.0 from
+ stable)
+ 556d973f-unmodified-drivers-tolerate-IRQF_DISABLED-being-undefined.patch
+
+-------------------------------------------------------------------
+Fri Jun 26 09:22:28 MDT 2015 - carnold@suse.com
+
+- Update to Xen Version 4.5.1 FCS (fate#315675)
+ xen-4.5.1-testing-src.tar.bz2
+- Dropped patches now contained in tarball
+ 556c2cf2-x86-don-t-crash-mapping-a-page-using-EFI-rt-page-tables.patch
+ 556d9718-efi-fix-allocation-problems-if-ExitBootServices-fails.patch
+ 556eabf7-x86-apic-Disable-the-LAPIC-later-in-smp_send_stop.patch
+ 556eac15-x86-crash-don-t-use-set_fixmap-in-the-crash-path.patch
+ 55780aaa-efi-avoid-calling-boot-services-after-ExitBootServices.patch
+ 55780aff-x86-EFI-fix-EFI_MEMORY_WP-handling.patch
+ 55780b43-EFI-early-add-mapbs-to-map-EfiBootServices-Code-Data.patch
+ 55780b97-EFI-support-default-attributes-to-map-Runtime-service-areas.patch
+ 5513b458-allow-reboot-overrides-when-running-under-EFI.patch
+ 5513b4d1-dont-apply-reboot-quirks-if-reboot-set-by-user.patch
+ 5576f178-kexec-add-more-pages-to-v1-environment.patch
+ 5535f633-dont-leak-hypervisor-stack-to-toolstacks.patch
+ CVE-2015-3456-xsa133-qemuu.patch
+ CVE-2015-3456-xsa133-qemut.patch
+ qemu-MSI-X-enable-maskall.patch
+ qemu-MSI-X-latch-writes.patch
+ x86-MSI-X-guest-mask.patch
+
+-------------------------------------------------------------------
+Thu Jun 25 17:19:35 MDT 2015 - jfehlig@suse.com
+
+- Replace 5124efbe-add-qxl-support.patch with the variant that
+ finally made it upstream, 554cc211-libxl-add-qxl.patch
+
+-------------------------------------------------------------------
+Wed Jun 10 09:06:36 MDT 2015 - carnold@suse.com
+
+- bsc#931627 - VUL-0: CVE-2015-4105: XSA-130: xen: Guest triggerable
+ qemu MSI-X pass-through error messages
+ qemu-MSI-X-latch-writes.patch
+- bsc#907514 - Bus fatal error & sles12 sudden reboot has been observed
+- bsc#910258 - SLES12 Xen host crashes with FATAL NMI after shutdown
+ of guest with VT-d NIC
+- bsc#918984 - Bus fatal error & sles11-SP4 sudden reboot has been
+ observed
+- bsc#923967 - Partner-L3: Bus fatal error & sles11-SP3 sudden reboot
+ has been observed
+ x86-MSI-X-teardown.patch
+ x86-MSI-X-enable.patch
+ x86-MSI-X-guest-mask.patch
+ x86-MSI-X-maskall.patch
+ qemu-MSI-X-enable-maskall.patch
+- Upstream patches from Jan
+ 55780aaa-efi-avoid-calling-boot-services-after-ExitBootServices.patch
+ 55780aff-x86-EFI-fix-EFI_MEMORY_WP-handling.patch
+ 55780b43-EFI-early-add-mapbs-to-map-EfiBootServices-Code-Data.patch
+ 55780b97-EFI-support-default-attributes-to-map-Runtime-service-areas.patch
+ 55780be1-x86-EFI-adjust-EFI_MEMORY_WP-handling-for-spec-version-2.5.patch
+ 55103616-vm-assist-prepare-for-discontiguous-used-bit-numbers.patch
+ 5548e95d-x86-allow-to-suppress-M2P-user-mode-exposure.patch
+- Dropped the following patches now contained in the tarball
+ xen-no-array-bounds.patch CVE-2015-4103-xsa128.patch
+ CVE-2015-4104-xsa129.patch CVE-2015-4105-xsa130.patch
+ CVE-2015-4106-xsa131-1.patch CVE-2015-4106-xsa131-2.patch
+ CVE-2015-4106-xsa131-3.patch CVE-2015-4106-xsa131-4.patch
+ CVE-2015-4106-xsa131-5.patch CVE-2015-4106-xsa131-6.patch
+ CVE-2015-4106-xsa131-7.patch CVE-2015-4106-xsa131-8.patch
+
+-------------------------------------------------------------------
+Wed Jun 3 08:57:26 MDT 2015 - carnold@suse.com
+
+- Update to Xen 4.5.1 RC2
+- bsc#931628 - VUL-0: CVE-2015-4106: XSA-131: xen: Unmediated PCI
+ register access in qemu
+ CVE-2015-4106-xsa131-1.patch
+ CVE-2015-4106-xsa131-2.patch
+ CVE-2015-4106-xsa131-3.patch
+ CVE-2015-4106-xsa131-4.patch
+ CVE-2015-4106-xsa131-5.patch
+ CVE-2015-4106-xsa131-6.patch
+ CVE-2015-4106-xsa131-7.patch
+ CVE-2015-4106-xsa131-8.patch
+ CVE-2015-4106-xsa131-9.patch
+- bsc#931627 - VUL-0: CVE-2015-4105: XSA-130: xen: Guest triggerable
+ qemu MSI-X pass-through error messages
+ CVE-2015-4105-xsa130.patch
+- bsc#931626 - VUL-0: CVE-2015-4104: XSA-129: xen: PCI MSI mask
+ bits inadvertently exposed to guests
+ CVE-2015-4104-xsa129.patch
+- bsc#931625 - VUL-0: CVE-2015-4103: XSA-128: xen: Potential
+ unintended writes to host MSI message data field via qemu
+ CVE-2015-4103-xsa128.patch
+- Upstream patches from Jan
+ 5548e903-domctl-don-t-truncate-XEN_DOMCTL_max_mem-requests.patch
+ 556c2cf2-x86-don-t-crash-mapping-a-page-using-EFI-rt-page-tables.patch
+ 556d9718-efi-fix-allocation-problems-if-ExitBootServices-fails.patch
+ 556d973f-unmodified-drivers-tolerate-IRQF_DISABLED-being-undefined.patch
+ 556eabf7-x86-apic-Disable-the-LAPIC-later-in-smp_send_stop.patch
+ 556eac15-x86-crash-don-t-use-set_fixmap-in-the-crash-path.patch
+
+-------------------------------------------------------------------
+Wed May 20 12:13:25 UTC 2015 - ohering@suse.de
+
+- Add DefaultDependencies=no to xen-dom0-modules.service because
+ it has to run before proc-xen.mount
+
+-------------------------------------------------------------------
+Tue May 19 11:05:31 MDT 2015 - carnold@suse.com
+
+- Update to Xen 4.5.1 RC1
+
+-------------------------------------------------------------------
+Fri May 15 16:34:08 UTC 2015 - ohering@suse.de
+
+- Update blktap-no-uninit.patch to work with gcc-4.5
+
+-------------------------------------------------------------------
+Mon May 11 15:07:30 MDT 2015 - carnold@suse.com
+
+- bsc#927967 - VUL-0: CVE-2015-3340: xen: Information leak through
+ XEN_DOMCTL_gettscinfo (XSA-132)
+ 5535f633-dont-leak-hypervisor-stack-to-toolstacks.patch
+
+-------------------------------------------------------------------
+Thu May 7 06:53:15 MDT 2015 - carnold@suse.com
+
+- bnc#929339 - VUL-0: CVE-2015-3456: qemu kvm xen: VENOM qemu
+ floppy driver host code execution
+ CVE-2015-3456-xsa133-qemuu.patch
+ CVE-2015-3456-xsa133-qemut.patch
+
+-------------------------------------------------------------------
+Mon Apr 27 09:55:01 MDT 2015 - carnold@suse.com
+
+- bsc#928783 - Reboot failure; Request backport of upstream Xen
+ patch to 4.5.0, or update pkgs to 4.5.1
+ 5513b458-allow-reboot-overrides-when-running-under-EFI.patch
+ 5513b4d1-dont-apply-reboot-quirks-if-reboot-set-by-user.patch
+
+-------------------------------------------------------------------
+Tue Apr 21 12:21:05 UTC 2015 - ohering@suse.de
+
+- bnc#927750 - Avoid errors reported by system-modules-load.service
+
+-------------------------------------------------------------------
+Wed Apr 8 10:17:41 UTC 2015 - rguenther@suse.com
+
+- Add xen-no-array-bounds.patch and blktap-no-uninit.patch to selectively
+ turn errors back to warnings to fix build with GCC 5.
+- Amend xen.stubdom.newlib.patch to pull in declaration of strcmp to
+ avoid implicit-fortify-decl rpmlint error.
+- Fix quoting of __SMBIOS_DATE__ in xen.build-compare.smbiosdate.patch.
+
+-------------------------------------------------------------------
+Fri Apr 3 10:54:05 MDT 2015 - carnold@suse.com
+
+- xentop: Fix memory leak on read failure
+ 551ac326-xentop-add-support-for-qdisk.patch
+
+-------------------------------------------------------------------
+Tue Mar 31 16:03:54 MDT 2015 - carnold@suse.com
+
+- Dropped xentop-add-support-for-qdisk.patch in favor of upstream
+ version
+ 551ac326-xentop-add-support-for-qdisk.patch
+
+-------------------------------------------------------------------
+Mon Mar 16 10:14:15 MDT 2015 - carnold@suse.com
+
+- Enable spice support in qemu for x86_64
+ 5124efbe-add-qxl-support.patch
+ qemu-xen-enable-spice-support.patch
+
+-------------------------------------------------------------------
+Thu Mar 12 12:33:45 UTC 2015 - rguenther@suse.com
+
+- Add xen-c99-fix.patch to remove pointless inline specifier on
+ function declarations which break build with a C99 compiler which
+ GCC 5 is by default. (bsc#921994)
+- Add ipxe-no-error-logical-not-parentheses.patch to supply
+ -Wno-logical-not-parentheses to the ipxe build to fix
+ breakage with GCC 5. (bsc#921994)
+
+-------------------------------------------------------------------
+Wed Mar 11 13:15:07 MDT 2015 - carnold@suse.com
+
+- bnc#921842 - Xentop doesn't display disk statistics for VMs using
+ qdisks
+ xentop-add-support-for-qdisk.patch
+
+-------------------------------------------------------------------
+Tue Feb 24 16:22:45 UTC 2015 - meissner@suse.com
+
+- Disable the PIE enablement done for Factory, as the XEN code
+ is not buildable with PIE and it does not make much sense
+ to build the hypervisor code with it.
+
+-------------------------------------------------------------------
+Tue Feb 17 10:48:56 MST 2015 - carnold@suse.com
+
+- bnc#918169 - XEN fixes required to work with Kernel 3.19.0
+ xen.spec
+
+-------------------------------------------------------------------
+Tue Feb 10 16:06:40 UTC 2015 - ohering@suse.de
+
+- Package xen.changes because its referenced in xen.spec
+
+-------------------------------------------------------------------
+Wed Jan 28 08:44:32 MST 2015 - carnold@suse.com
+
+- Update seabios to rel-1.7.5 which is the correct version for
+ Xen 4.5
+
+-------------------------------------------------------------------
+Wed Jan 14 10:47:43 MST 2015 - carnold@suse.com
+
+- Update to Xen 4.5.0 FCS
+
+-------------------------------------------------------------------
+Wed Jan 14 16:54:24 UTC 2015 - ohering@suse.de
+
+- Include systemd presets in 13.2 and older
+
+-------------------------------------------------------------------
+Mon Jan 12 14:49:23 UTC 2015 - ohering@suse.de
+
+- bnc#897352 - Enable xencommons/xendomains only during fresh install
+- disable restart on upgrade because the toolstack is not restartable
+
+-------------------------------------------------------------------
+Tue Dec 16 11:42:30 UTC 2014 - ohering@suse.de
+
+- adjust seabios, vgabios, stubdom and hvmloader build to reduce
+ build-compare noise
+ xen.build-compare.mini-os.patch
+ xen.build-compare.smbiosdate.patch
+ xen.build-compare.ipxe.patch
+ xen.build-compare.vgabios.patch
+ xen.build-compare.seabios.patch
+ xen.build-compare.man.patch
+
+-------------------------------------------------------------------
+Mon Dec 15 11:36:42 MST 2014 - carnold@suse.com
+
+- Update to Xen 4.5.0 RC4
+
+-------------------------------------------------------------------
+Wed Dec 10 08:54:22 UTC 2014 - ohering@suse.de
+
+- Remove xend specific if-up scripts
+ Recording bridge slaves is a generic task which should be handled
+ by generic network code
+
+-------------------------------------------------------------------
+Tue Dec 9 18:33:51 UTC 2014 - ohering@suse.de
+
+- Use systemd features from upstream
+ requires updated systemd-presets-branding package
+
+-------------------------------------------------------------------
+Thu Dec 4 11:59:29 MST 2014 - carnold@suse.com
+
+- Update to Xen 4.5.0 RC3
+
+-------------------------------------------------------------------
+Thu Dec 4 11:44:24 UTC 2014 - ohering@suse.de
+
+- Set GIT, WGET and FTP to /bin/false
+
+-------------------------------------------------------------------
+Wed Dec 3 12:14:27 UTC 2014 - ohering@suse.de
+
+- Use new configure features instead of make variables
+ xen.stubdom.newlib.patch
+
+-------------------------------------------------------------------
+Wed Nov 19 17:10:51 UTC 2014 - ohering@suse.de
+
+- adjust docs and xen build to reduce build-compare noise
+ xen.build-compare.doc_html.patch
+ xen.build-compare.xen_compile_h.patch
+
+-------------------------------------------------------------------
+Mon Nov 17 16:28:13 UTC 2014 - ohering@suse.de
+
+- Drop trailing B_CNT from XEN_EXTRAVERSION to reduce build-compare noise
+
+-------------------------------------------------------------------
+Tue Nov 11 11:15:30 MST 2014 - carnold@suse.com
+
+- Update to Xen 4.5.0 RC2
+
+-------------------------------------------------------------------
+Thu Oct 23 18:34:55 MDT 2014 - carnold@suse.com
+
+- Update to Xen 4.5.0 RC1
+ xen-4.5.0-testing-src.tar.bz2
+- Remove all patches now contained in the new tarball
+ xen-4.4.1-testing-src.tar.bz2
+ 5315a3bb-x86-don-t-propagate-acpi_skip_timer_override-do-Dom0.patch
+ 5315a43a-x86-ACPI-also-print-address-space-for-PM1x-fields.patch
+ 53299d8f-xenconsole-reset-tty-on-failure.patch
+ 53299d8f-xenconsole-tolerate-tty-errors.patch
+ 5346a7a0-x86-AMD-support-further-feature-masking-MSRs.patch
+ 53563ea4-x86-MSI-drop-workaround-for-insecure-Dom0-kernels.patch
+ 537c9c77-libxc-check-return-values-on-mmap-and-madvise.patch
+ 537cd0b0-hvmloader-also-cover-PCI-MMIO-ranges-above-4G-with-UC-MTRR-ranges.patch
+ 537cd0cc-hvmloader-PA-range-0xfc000000-0xffffffff-should-be-UC.patch
+ 539ebe62-x86-EFI-improve-boot-time-diagnostics.patch
+ 53aac342-x86-HVM-consolidate-and-sanitize-CR4-guest-reserved-bit-determination.patch
+ 53c9151b-Fix-xl-vncviewer-accesses-port-0-by-any-invalid-domid.patch
+ 53d124e7-fix-list_domain_details-check-config-data-length-0.patch
+ 53dba447-x86-ACPI-allow-CMOS-RTC-use-even-when-ACPI-says-there-is-none.patch
+ 53df727b-x86-HVM-extend-LAPIC-shortcuts-around-P2M-lookups.patch
+ 53e8be5f-x86-vHPET-use-rwlock-instead-of-simple-one.patch
+ 53f737b1-VMX-fix-DebugCtl-MSR-clearing.patch
+ 53f7386d-x86-irq-process-softirqs-in-irq-keyhandlers.patch
+ 53fcebab-xen-pass-kernel-initrd-to-qemu.patch
+ 53ff3659-x86-consolidate-boolean-inputs-in-hvm-and-p2m.patch
+ 53ff36ae-x86-hvm-treat-non-insn-fetch-NPF-also-as-read-violations.patch
+ 53ff36d5-x86-mem_event-deliver-gla-fault-EPT-violation-information.patch
+ 53ff3716-x86-ats-Disable-Address-Translation-Services-by-default.patch
+ 53ff3899-x86-NMI-allow-processing-unknown-NMIs-with-watchdog.patch
+ 54005472-EPT-utilize-GLA-GPA-translation-known-for-certain-faults.patch
+ 540effe6-evtchn-check-control-block-exists-when-using-FIFO-based-events.patch
+ 540f2624-x86-idle-add-barriers-to-CLFLUSH-workaround.patch
+ 541825dc-VMX-don-t-leave-x2APIC-MSR-intercepts-disabled.patch
+ 541ad385-x86-suppress-event-check-IPI-to-MWAITing-CPUs.patch
+ 541ad3ca-x86-HVM-batch-vCPU-wakeups.patch
+ 541ad81a-VT-d-suppress-UR-signaling-for-further-desktop-chipsets.patch
+ 54216833-x86-shadow-fix-race-when-sampling-dirty-vram-state.patch
+ 54216882-x86-emulate-check-cpl-for-all-privileged-instructions.patch
+ 542168ae-x86emul-only-emulate-swint-injection-for-real-mode.patch
+ 54228a37-x86-EFI-fix-freeing-of-uninitialized-pointer.patch
+ 5423e61c-x86emul-fix-SYSCALL-SYSENTER-SYSEXIT-emulation.patch
+ 5424057f-x86-HVM-fix-miscellaneous-aspects-of-x2APIC-emulation.patch
+ 542405b4-x86-HVM-fix-ID-handling-of-x2APIC-emulation.patch
+ 542bf997-x86-HVM-properly-bound-x2APIC-MSR-range.patch
+ 54325cc0-x86-MSI-fix-MSI-X-case-of-freeing-IRQ.patch
+ 54325d2f-x86-restore-reserving-of-IO-APIC-pages-in-XENMEM_machine_memory_map-output.patch
+ 54325d95-don-t-allow-Dom0-access-to-IOMMUs-MMIO-pages.patch
+ 54325ecc-AMD-guest_iommu-properly-disable-guest-iommu-support.patch
+ 54325f3c-x86-paging-make-log-dirty-operations-preemptible.patch
+ 54379e6d-x86-vlapic-don-t-silently-accept-bad-vectors.patch
+ CVE-2013-4540-qemu.patch qemu-support-xen-hvm-direct-kernel-boot.patch
+ qemu-xen-upstream-blkif-discard.patch change-vnc-passwd.patch
+ libxc-pass-errno-to-callers-of-xc_domain_save.patch
+ libxl.honor-more-top-level-vfb-options.patch
+ libxl.add-option-for-discard-support-to-xl-disk-conf.patch
+ libxl.introduce-an-option-to-disable-the-non-O_DIRECT-workaround.patch
+ x86-dom-print.patch x86-extra-trap-info.patch tmp_build.patch
+ xl-check-for-libvirt-managed-domain.patch disable-wget-check.patch
+- Xend/xm is no longer supported and is not part of the upstream code. Remove
+ all xend/xm specific patches, configs, and scripts
+ xen-xmexample.patch bridge-opensuse.patch xmexample.disks xmclone.sh
+ init.xend xend-relocation.sh xend.service xend-relocation-server.fw
+ domUloader.py xmexample.domUloader xmexample.disks
+ bridge-vlan.patch bridge-bonding.patch bridge-record-creation.patch
+ network-nat-open-SuSEfirewall2-FORWARD.patch
+ xend-set-migration-constraints-from-cmdline.patch
+ xen.migrate.tools-xend_move_assert_to_exception_block.patch
+ xend-pvscsi-recognize-also-SCSI-CDROM-devices.patch
+ xend-config.patch xend-max-free-mem.patch xend-hvm-default-pae.patch
+ xend-vif-route-ifup.patch xend-xenapi-console-protocol.patch xend-core-dump-loc.patch
+ xend-xen-api-auth.patch xend-checkpoint-rename.patch xend-xm-save-check-file.patch
+ xend-xm-create-xflag.patch xend-domu-usb-controller.patch xend-devid-or-name.patch
+ xend-migration-domname-fix.patch xend-del_usb_xend_entry.patch xend-xen-domUloader.patch
+ xend-multi-xvdp.patch xend-check_device_status.patch xend-change_home_server.patch
+ xend-minimum-restart-time.patch xend-disable-internal-logrotate.patch xend-config-enable-dump-comment.patch
+ xend-tools-watchdog-support.patch xend-console-port-restore.patch xend-vcpu-affinity-fix.patch
+ xend-migration-bridge-check.patch xend-managed-pci-device.patch xend-hvm-firmware-passthrough.patch
+ xend-cpuinfo-model-name.patch xend-xm-reboot-fix.patch xend-domain-lock.patch
+ xend-domain-lock-sfex.patch xend-32on64-extra-mem.patch xend-hv_extid_compatibility.patch
+ xend-xenpaging.autostart.patch xend-remove-xm-deprecation-warning.patch libxen_permissive.patch
+ tmp-initscript-modprobe.patch init.xendomains xendomains.service
+ xen-watchdog.service xen-updown.sh
+
+-------------------------------------------------------------------
+Thu Oct 16 14:17:37 MDT 2014 - carnold@suse.com
+
+- bnc#901317 - L3: increase limit domUloader to 32MB
+ domUloader.py
+
+-------------------------------------------------------------------
+Tue Oct 14 09:16:37 MDT 2014 - carnold@suse.com
+
+- bnc#898772 - SLES 12 RC3 - XEN Host crashes when assigning non-VF
+ device (SR-IOV) to guest
+ 54325cc0-x86-MSI-fix-MSI-X-case-of-freeing-IRQ.patch
+- bnc#882089 - Windows 2012 R2 fails to boot up with greater than
+ 60 vcpus
+ 54325ecc-AMD-guest_iommu-properly-disable-guest-iommu-support.patch
+- bnc#826717 - VUL-0: CVE-2013-3495: XSA-59: xen: Intel VT-d
+ Interrupt Remapping engines can be evaded by native NMI interrupts
+ 541ad81a-VT-d-suppress-UR-signaling-for-further-desktop-chipsets.patch
+- Upstream patches from Jan
+ 540effe6-evtchn-check-control-block-exists-when-using-FIFO-based-events.patch (Replaces xsa107.patch)
+ 54216833-x86-shadow-fix-race-when-sampling-dirty-vram-state.patch (Replaces xsa104.patch)
+ 54216882-x86-emulate-check-cpl-for-all-privileged-instructions.patch (Replaces xsa105.patch)
+ 542168ae-x86emul-only-emulate-swint-injection-for-real-mode.patch (Replaces xsa106.patch)
+ 54228a37-x86-EFI-fix-freeing-of-uninitialized-pointer.patch
+ 5423e61c-x86emul-fix-SYSCALL-SYSENTER-SYSEXIT-emulation.patch
+ 5424057f-x86-HVM-fix-miscellaneous-aspects-of-x2APIC-emulation.patch
+ 542405b4-x86-HVM-fix-ID-handling-of-x2APIC-emulation.patch
+ 542bf997-x86-HVM-properly-bound-x2APIC-MSR-range.patch (Replaces xsa108.patch)
+ 54325d2f-x86-restore-reserving-of-IO-APIC-pages-in-XENMEM_machine_memory_map-output.patch
+ 54325d95-don-t-allow-Dom0-access-to-IOMMUs-MMIO-pages.patch
+ 54325f3c-x86-paging-make-log-dirty-operations-preemptible.patch (Replaces xsa97.patch)
+ 54379e6d-x86-vlapic-don-t-silently-accept-bad-vectors.patch
+
+-------------------------------------------------------------------
+Sat Oct 11 08:38:36 UTC 2014 - dmueller@suse.com
+
+- restrict requires on grub2-x86_64-xen to x86_64 hosts
+
+-------------------------------------------------------------------
+Wed Oct 8 15:25:34 MDT 2014 - jfehlig@suse.com
+
+- bsc#900292 - xl: change default dump directory
+ xl-coredump-file-location.patch
+
+-------------------------------------------------------------------
+Tue Oct 03 15:42:36 MDT 2014 - mlatimer@suse.com
+
+- Update xen2libvirt.py to better detect and handle file formats
+
+-------------------------------------------------------------------
+Tue Sep 30 12:11:36 MDT 2014 - carnold@suse.com
+
+- bnc#889526 - VUL-0: CVE-2014-5146, CVE-2014-5149: xen: XSA-97
+ Long latency virtual-mmu operations are not preemptible
+ xsa97.patch
+- bnc#882089 - Windows 2012 R2 fails to boot up with greater than
+ 60 vcpus
+ 541ad385-x86-suppress-event-check-IPI-to-MWAITing-CPUs.patch
+ 541ad3ca-x86-HVM-batch-vCPU-wakeups.patch
+- Upstream patches from Jan
+ 540f2624-x86-idle-add-barriers-to-CLFLUSH-workaround.patch
+ 541825dc-VMX-don-t-leave-x2APIC-MSR-intercepts-disabled.patch
+
+-------------------------------------------------------------------
+Tue Sep 30 09:01:16 MDT 2014 - carnold@suse.com
+
+- bnc#897657 - VUL-0: CVE-2014-7188: xen: XSA-108 Improper MSR
+ range used for x2APIC emulation
+ xsa108.patch
+
+-------------------------------------------------------------------
+Mon Sep 29 14:20:15 MDT 2014 - carnold@suse.com
+
+- bnc#897906 - libxc: check return values on mmap() and madvise()
+ on xc_alloc_hypercall_buffer()
+ 537c9c77-libxc-check-return-values-on-mmap-and-madvise.patch
+
+-------------------------------------------------------------------
+Mon Sep 22 09:55:35 MDT 2014 - carnold@suse.com
+
+- bnc#897614 - Virtualization/xen: Bug `xen-tools` uninstallable;
+ grub2-x86_64-xen dependency not available
+ xen.spec
+
+-------------------------------------------------------------------
+Wed Sep 17 16:21:22 MDT 2014 - jfehlig@suse.com
+
+- More cleanup of README.SUSE
+
+-------------------------------------------------------------------
+Fri Sep 15 09:37:10 CST 2014 - cyliu@suse.com
+
+- Update xen patch with upstream patch so that latest libvirt
+ patch can work. (bnc#896044)
+ + 53fcebab-xen-pass-kernel-initrd-to-qemu.patch
+ - xen-pass-kernel-initrd-to-qemu.patch
+
+-------------------------------------------------------------------
+Wed Sep 10 09:15:39 MDT 2014 - carnold@suse.com
+
+- bnc#895804 - VUL-0: CVE-2014-6268: xen: XSA-107: Mishandling of
+ uninitialised FIFO-based event channel control blocks
+ xsa107.patch
+- bnc#895802 - VUL-0: CVE-2014-7156: xen: XSA-106: Missing
+ privilege level checks in x86 emulation of software interrupts
+ xsa106.patch
+- bnc#895799 - VUL-0: CVE-2014-7155: xen: XSA-105: Missing
+ privilege level checks in x86 HLT, LGDT, LIDT, and LMSW emulation
+ xsa105.patch
+- bnc#895798 - VUL-0: CVE-2014-7154: xen: XSA-104: Race condition
+ in HVMOP_track_dirty_vram
+ xsa104.patch
+
+-------------------------------------------------------------------
+Thu Sep 4 17:01:24 CST 2014 - cyliu@suse.com
+
+- bnc#882405 - Only one key-press event was generated while holding
+ a key before key-release in pv guests through xl vncviewer
+ tigervnc-long-press.patch
+
+-------------------------------------------------------------------
+Tue Sep 2 09:01:24 MDT 2014 - carnold@suse.com
+
+- Update to Xen Version 4.4.1 FCS
+ xen-4.4.1-testing-src.tar.bz2
+- Dropped patches now contained in tarball
+ 53d7b781-x86-cpu-undo-BIOS-CPUID-max_leaf-limit-earlier.patch
+ 53df71c7-lz4-check-for-underruns.patch
+ 53e47d6b-x86_emulate-properly-do-IP-updates-and-other-side-effects.patch
+
+-------------------------------------------------------------------
+Mon Sep 1 15:20:20 MDT 2014 - carnold@suse.com
+
+- bnc#882089 - Windows 2012 R2 fails to boot up with greater than
+ 60 vcpus
+ 53df727b-x86-HVM-extend-LAPIC-shortcuts-around-P2M-lookups.patch
+ 53e8be5f-x86-vHPET-use-rwlock-instead-of-simple-one.patch
+ 53ff3659-x86-consolidate-boolean-inputs-in-hvm-and-p2m.patch
+ 53ff36ae-x86-hvm-treat-non-insn-fetch-NPF-also-as-read-violations.patch
+ 53ff36d5-x86-mem_event-deliver-gla-fault-EPT-violation-information.patch
+ 54005472-EPT-utilize-GLA-GPA-translation-known-for-certain-faults.patch
+- Upstream patches from Jan
+ 53f737b1-VMX-fix-DebugCtl-MSR-clearing.patch
+ 53f7386d-x86-irq-process-softirqs-in-irq-keyhandlers.patch
+ 53ff3716-x86-ats-Disable-Address-Translation-Services-by-default.patch
+ 53ff3899-x86-NMI-allow-processing-unknown-NMIs-with-watchdog.patch
+
+-------------------------------------------------------------------
+Fri Aug 29 09:25:47 MDT 2014 - carnold@suse.com
+
+- bnc#864801 - VUL-0: CVE-2013-4540: qemu: zaurus: buffer overrun
+ on invalid state load
+ CVE-2013-4540-qemu.patch
+
+-------------------------------------------------------------------
+Fri Aug 15 15:09:27 MDT 2014 - carnold@suse.com
+
+- Update README.SUSE with additional debug help
+
+-------------------------------------------------------------------
+Fri Aug 8 07:34:38 MDT 2014 - carnold@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 - carnold@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 - cyliu@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 - carnold@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 - carnold@suse.com
+
+- bnc#882673 - Dom0 memory should enforce a minimum memory size
+ (e.g. dom0_mem=min:512M)
+ xen.spec (Mike Latimer)
+
+-------------------------------------------------------------------
+Thu Jul 24 07:54:34 MDT 2014 - carnold@suse.com
+
+- Upstream patches from Jan
+ 5347b524-evtchn-eliminate-64k-ports-limitation.patch
+ 53aac342-x86-HVM-consolidate-and-sanitize-CR4-guest-reserved-bit-determination.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
+
+-------------------------------------------------------------------
+Mon Jul 21 03:05:48 UTC 2014 - cyliu@suse.com
+
+- bnc#886801 - xl vncviewer: The first domu can be accessed by any id
+ 53c9151b-Fix-xl-vncviewer-accesses-port-0-by-any-invalid-domid.patch
+
+-------------------------------------------------------------------
+Mon Jul 14 11:14:38 MDT 2014 - carnold@suse.com
+
+- Upstream pygrub bug fix
+ 5370e03b-pygrub-fix-error-handling-if-no-valid-partitions-are-found.patch
+
+-------------------------------------------------------------------
+Wed Jul 9 16:45:58 MDT 2014 - carnold@suse.com
+
+- Fix pygrub to handle old 32 bit VMs
+ pygrub-boot-legacy-sles.patch (Mike Latimer)
+
+-------------------------------------------------------------------
+Mon Jul 7 17:54:58 MDT 2014 - jfehlig@suse.com
+
+- Remove xen-vmresync utility. It is an old Platespin Orchestrate
+ utility that should have never been included in the Xen package.
+ Updated xen.spec
+
+-------------------------------------------------------------------
+Mon Jul 7 17:01:59 MDT 2014 - jfehlig@suse.com
+
+- Rework xen-destroy utility included in xen-utils
+ bnc#885292 and bnc#886063
+ Updated xen-utils-0.1.tar.bz2
+
+-------------------------------------------------------------------
+Mon Jul 07 11:40:32 MDT 2014 - carnold@suse.com
+
+- bnc#886063 - Xen monitor fails (xl list --long output different
+ from xm list --long output)
+- bnc#885292 - VirtualDomain: pid_status does not know how to check
+ status on SLE12
+ Re-enable building xen-utils for sle12 and include xen-list and
+ xen-destroy in the xen-tools package for HA.
+ xen.spec
+
+-------------------------------------------------------------------
+Fri Jun 27 12:21:47 MDT 2014 - carnold@suse.com
+
+- bnc#882127 - Xen kernel panics on booting SLES12 Beta 8
+ 53a199d7-x86-EFI-allow-FPU-XMM-use-in-runtime-service-functions.patch
+- Upstream patches from Jan
+ 538c338f-x86-amd_ucode-flip-revision-numbers-in-printk.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
+ 539ebe62-x86-EFI-improve-boot-time-diagnostics.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 (replaces xsa100.patch)
+ 53a1990a-IOMMU-prevent-VT-d-device-IOTLB-operations-on-wrong-IOMMU.patch
+
+-------------------------------------------------------------------
+Tue Jun 24 16:11:08 MDT 2014 - jfehlig@suse.com
+
+- Replace 'domUloader' with 'pygrub' when converting or importing
+ Xen domains into libvirt with xen2libvirt. domUloader is no
+ longer provided in xen-tools.
+ Modified: xen2libvirt.py
+
+-------------------------------------------------------------------
+Thu Jun 13 15:50:19 MDT 2014 - cyliu@suse.com
+
+- fate#310956: Support Direct Kernel Boot for FV guests
+ patches would go to upstream:
+ qemu side: qemu-support-xen-hvm-direct-kernel-boot.patch
+ xen side: xen-pass-kernel-initrd-to-qemu.patch
+
+-------------------------------------------------------------------
+Thu Jun 6 15:50:19 MDT 2014 - carnold@suse.com
+
+- Modify how we check for libvirt managed domains
+ xl-check-for-libvirt-managed-domain.patch
+
+-------------------------------------------------------------------
+Thu Jun 5 08:56:13 MDT 2014 - carnold@suse.com
+
+- bnc#880751 - VUL-0: xen: Hypervisor heap contents leaked to
+ guests
+ xsa100.patch
+- bnc#878841 - VUL-0: XSA-96: Xen: Vulnerabilities in HVM MSI
+ injection
+ 538dcada-x86-HVM-eliminate-vulnerabilities-from-hvm_inject_msi.patch
+- Upstream patches from Jan
+ 537cd0b0-hvmloader-also-cover-PCI-MMIO-ranges-above-4G-with-UC-MTRR-ranges.patch
+ 537cd0cc-hvmloader-PA-range-0xfc000000-0xffffffff-should-be-UC.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
+
+-------------------------------------------------------------------
+Tue May 27 16:54:13 CEST 2014 - ohering@suse.de
+
+- bnc#879425: handle cache=unsafe from libvirt to disable flush in qdisk
+ libxl.add-option-to-disable-disk-cache-flushes-in-qdisk.patch
+ qemu-xen-upstream-qdisk-cache-unsafe.patch
+
+-------------------------------------------------------------------
+Tue May 27 16:50:22 CEST 2014 - ohering@suse.de
+
+- libxl: introduce an option for disabling the non-O_DIRECT workaround
+ recognize direct-io-safe in domU.cfg diskspec
+ libxl.introduce-an-option-to-disable-the-non-O_DIRECT-workaround.patch
+
+-------------------------------------------------------------------
+Tue May 27 16:44:06 CEST 2014 - ohering@suse.de
+
+- fate#316071: add discard support for file backed storage (qdisk)
+ update patch to allow more values in overloaded ->readwrite member
+
+-------------------------------------------------------------------
+Tue May 27 08:03:51 MDT 2014 - carnold@suse.com
+
+- bnc#826717 - VUL-0: CVE-2013-3495: XSA-59: xen: Intel VT-d
+ Interrupt Remapping engines can be evaded by native NMI interrupts
+ 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
+- Upstream patches from Jan
+ 53709b77-Nested-VMX-load-current_vmcs-only-when-it-exists.patch
+ 53732f4f-x86-MCE-bypass-uninitialized-vcpu-in-vMCE-injection.patch
+ 537b5ede-move-domain-to-cpupool0-before-destroying-it.patch
+
+-------------------------------------------------------------------
+Tue May 20 16:34:37 MDT 2014 - carnold@suse.com
+
+- Update README.SuSE with information on the toolstack change
+
+-------------------------------------------------------------------
+Fri May 16 10:27:04 CEST 2014 - ohering@suse.de
+
+- fate#316071: add discard support for file backed storage (qdisk)
+ update to recognize option discard/no-discard instead of discard=0,1
+ to match upstream change
+
+-------------------------------------------------------------------
+Mon May 12 18:00:14 CEST 2014 - ohering@suse.de
+
+- fate#316613: Implement pvscsi in xl/libxl
+ libxl.pvscsi.patch
+
+-------------------------------------------------------------------
+Fri May 9 08:07:34 MDT 2014 - carnold@suse.com
+
+- bnc#875668 - VUL-0: CVE-2014-3124: xen: XSA-92:
+ HVMOP_set_mem_type allows invalid P2M entries to be created
+ 535fa503-x86-HVM-restrict-HVMOP_set_mem_type.patch (replaces xsa92.patch)
+- bnc#826717 - VUL-0: CVE-2013-3495: XSA-59: xen: Intel VT-d
+ Interrupt Remapping engines can be evaded by native NMI interrupts
+ 535a34eb-VT-d-suppress-UR-signaling-for-server-chipsets.patch
+ 535a3516-VT-d-suppress-UR-signaling-for-desktop-chipsets.patch
+- Upstream patches from Jan
+ 535a354b-passthrough-allow-to-suppress-SERR-and-PERR-signaling.patch
+ 535e31bc-x86-HVM-correct-the-SMEP-logic-for-HVM_CR0_GUEST_RESERVED_BITS.patch
+ 53636978-hvm_set_ioreq_page-releases-wrong-page-in-error-path.patch
+ 53636ebf-x86-fix-guest-CPUID-handling.patch
+
+-------------------------------------------------------------------
+Tue May 6 13:24:14 MDT 2014 - carnold@suse.com
+
+- Fix pygrub to handle VM with no grub/menu.lst file.
+- Don't use /var/run/xend/boot for temporary boot directory
+ pygrub-boot-legacy-sles.patch
+
+-------------------------------------------------------------------
+Sat Apr 26 09:56:36 MDT 2014 - carnold@suse.com
+
+- When the xl command is used, check to see if the domain being
+ modified is managed by libvirt and print warning if it is.
+ xl-check-for-libvirt-managed-domain.patch
+
+-------------------------------------------------------------------
+Thu Apr 24 08:17:36 MDT 2014 - carnold@suse.com
+
+- Upstream patches from Jan
+ 53455585-x86-AMD-feature-masking-is-unavailable-on-Fam11.patch
+ 5346a7a0-x86-AMD-support-further-feature-masking-MSRs.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
+ 53563ea4-x86-MSI-drop-workaround-for-insecure-Dom0-kernels.patch
+ 5357baff-x86-add-missing-break-in-dom0_pit_access.patch
+- XSA-92
+ xsa92.patch
+
+-------------------------------------------------------------------
+Sat Apr 12 20:48:21 UTC 2014 - mmarek@suse.cz
+
+- Add # needssslcertforbuild to use the project's certificate when
+ building in a home project. (bnc#872354)
+
+-------------------------------------------------------------------
+Wed Apr 9 08:07:03 MDT 2014 - carnold@suse.com
+
+- Upstream patches from Jan
+ 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
+
+-------------------------------------------------------------------
+Thu Apr 3 16:21:03 UTC 2014 - carnold@suse.com
+
+- bnc#862608 - SLES 11 SP3 vm-install should get RHEL 7 support
+ when released
+ 53206661-pygrub-support-linux16-and-initrd16.patch
+- Upstream bug fixes
+ 53299d8f-xenconsole-reset-tty-on-failure.patch
+ 53299d8f-xenconsole-tolerate-tty-errors.patch
+
+-------------------------------------------------------------------
+Thu Apr 3 16:21:03 UTC 2014 - dmueller@suse.com
+
+- fix build for armv7l and aarch64
+
+-------------------------------------------------------------------
+Thu Apr 3 15:40:31 CEST 2014 - ohering@suse.de
+
+- Remove compiletime strings from qemu-upstream
+ qemu-xen-upstream-megasas-buildtime.patch
+
+-------------------------------------------------------------------
+Wed Apr 2 08:47:27 MDT 2014 - carnold@suse.com
+
+- bnc#871546 - KMPs are not signed in SUSE:SLE-12:GA?
+ xen.spec
+
+-------------------------------------------------------------------
+Tue Apr 1 08:14:29 MDT 2014 - carnold@suse.com
+
+- Upstream patches from Jan
+ 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
+- Drop xsa89.patch for upstream version (see bnc#867910, 5331917d-x86-enforce...)
+
+-------------------------------------------------------------------
+Fri Mar 28 11:00:07 MDT 2014 - carnold@suse.com
+
+- bnc#863821 - Xen unable to boot paravirtualized VMs installed
+ with btrfs. Add 'Requires: grub2-x86_64-xen' to xen-tools.
+- Restore soft links for qemu-system-i386 and qemu-dm
+- Cleanup inconsistency in which version of qemu-system-i386 is
+ being used (Xen vs qemu-x86). Use only Xen's version.
+ xen.spec
+
+-------------------------------------------------------------------
+Wed Mar 27 14:18:06 MDT 2014 - carnold@suse.com
+
+- Add conditionals for SLE12 when defining xend and max_cpus
+ xen.spec
+
+-------------------------------------------------------------------
+Wed Mar 19 14:18:06 MDT 2014 - carnold@suse.com
+
+- Upstream patches from Jan
+ 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
+- Dropped the following as now part of 5321b257
+ 5310bac3-mm-ensure-useful-progress-in-decrease_reservation.patch
+
+-------------------------------------------------------------------
+Wed Mar 12 08:20:42 MDT 2014 - carnold@suse.com
+
+- bnc#867910 - VUL-0: EMBARGOED: xen: XSA-89: HVMOP_set_mem_access
+ is not preemptible
+ xsa89.patch
+- Upstream patches from Jan
+ 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
+ 5310bac3-mm-ensure-useful-progress-in-decrease_reservation.patch
+ 5315a254-IOMMU-generalize-and-correct-softirq-processing.patch
+ 5315a3bb-x86-don-t-propagate-acpi_skip_timer_override-do-Dom0.patch
+ 5315a43a-x86-ACPI-also-print-address-space-for-PM1x-fields.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
+
+-------------------------------------------------------------------
+Tue Mar 11 16:21:11 MDT 2014 - carnold@suse.com
+
+- Add conversion tool for migrating xend/xm managed VMs to libvirt
+ xen2libvirt.py (Jim Fehlig)
+
+-------------------------------------------------------------------
+Mon Mar 10 07:17:17 MDT 2014 - carnold@suse.com
+
+- Update to Xen 4.4.0 FCS
+
+-------------------------------------------------------------------
+Thu Mar 06 13:46:24 MST 2014 - mlatimer@suse.com
+
+- bnc#865682 - Local attach support for PHY backends using scripts
+ local_attach_support_for_phy.patch
+
+-------------------------------------------------------------------
+Wed Feb 26 00:36:24 UTC 2014 - mlatimer@suse.com
+
+- bnc#798770 - Improve multipath support for npiv devices
+ block-npiv
+ block-npiv-common.sh
+
+-------------------------------------------------------------------
+Wed Feb 19 19:56:31 CET 2014 - ohering@suse.de
+
+- honor global keymap= option in libxl
+ libxl.honor-more-top-level-vfb-options.patch
+
+-------------------------------------------------------------------
+Tue Feb 11 13:27:42 MST 2014 - carnold@suse.com
+
+- Update to c/s 28381 to include libxl fork and event fixes for
+ libvirt
+ xen-4.4.0-testing-src.tar.bz2
+
+-------------------------------------------------------------------
+Tue Feb 11 16:14:08 CET 2014 - ohering@suse.de
+
+- bnc#863297: xend/pvscsi: recognize also SCSI CDROM devices
+ xend-pvscsi-recognize-also-SCSI-CDROM-devices.patch
+
+-------------------------------------------------------------------
+Tue Feb 11 09:24:23 CET 2014 - ohering@suse.de
+
+- fate#316614: set migration constraints from cmdline
+ fix xl migrate to print the actual error string
+ libxc-pass-errno-to-callers-of-xc_domain_save.patch
+
+-------------------------------------------------------------------
+Mon Feb 10 10:01:54 MST 2014 - carnold@suse.com
+
+- Include additional help docs for xl in xen-tools
+- Apply all patches including those for unpackaged xend
+ xen.spec
+
+-------------------------------------------------------------------
+Mon Feb 10 10:28:18 CET 2014 - ohering@suse.de
+
+- fate#316614: set migration constraints from cmdline
+ split existing changes into libxl and xend part
+ added libxl.set-migration-constraints-from-cmdline.patch
+ added xend-set-migration-constraints-from-cmdline.patch
+ removed xen.migrate.tools_add_xm_migrate_--log_progress_option.patch
+ removed xen.migrate.tools_set_number_of_dirty_pages_during_migration.patch
+ removed xen.migrate.tools_set_migration_constraints_from_cmdline.patch
+
+-------------------------------------------------------------------
+Tue Feb 4 11:20:12 MST 2014 - carnold@suse.com
+
+- Enable ix86 32bit build for xen-libs to be built to support
+ xen-tools-domU on 32bit VMs and also vhostmd running in 32bit VMs
+
+-------------------------------------------------------------------
+Sun Feb 3 16:38:34 MST 2014 - carnold@suse.de
+
+- Enable blktapctrl when qemu-traditional is required to satisfy
+ build dependencies. Remove binaries after build if xend is
+ disabled
+
+-------------------------------------------------------------------
+Sun Feb 2 22:47:34 CET 2014 - ohering@suse.de
+
+- update ifarch usage in xen.spec to cover also arm
+- blktapctrl is used only by xend
+- fix xend-tools-xend sub pkg handling
+- default to gcc47 for sles11sp3 builds
+- remove all latex packages from BuildRequires
+- aarch64-rename-PSR_MODE_ELxx-to-match-linux-headers.patch
+
+-------------------------------------------------------------------
+Sun Feb 2 19:43:05 CET 2014 - ohering@suse.de
+
+- add arch dependent install suffix for /boot/xen files
+
+-------------------------------------------------------------------
+Sat Feb 1 13:39:03 CET 2014 - ohering@suse.de
+
+- Set max_cpus==4 for non-x86_64 builds
+
+-------------------------------------------------------------------
+Fri Jan 31 08:41:15 MST 2014 - carnold@suse.com
+
+- Update to Xen 4.4.0 RC3 c/s 28321
+
+-------------------------------------------------------------------
+Thu Jan 30 23:10:22 CET 2014 - ohering@suse.de
+
+- Add flex and bison to BuildRequires, needed by previous patch
+
+-------------------------------------------------------------------
+Thu Jan 30 17:19:10 CET 2014 - ohering@suse.de
+
+- fate#316071: add discard support for file backed storage (qdisk)
+ libxl.add-option-for-discard-support-to-xl-disk-conf.patch
+
+-------------------------------------------------------------------
+Thu Jan 27 19:53:39 MST 2014 - carnold@suse.com
+
+- On platforms where xend is still supported don't output a
+ deprecation warning when using xm.
+ xend-remove-xm-deprecation-warning.patch
+
+-------------------------------------------------------------------
+Thu Jan 23 16:11:39 MST 2014 - carnold@suse.com
+
+- Changed License to GPL-2.0 (from GPL-2.0+)
+
+-------------------------------------------------------------------
+Thu Jan 23 16:11:39 MST 2014 - carnold@suse.com
+
+- Dropped xen-changeset.patch. It is no longer needed.
+
+-------------------------------------------------------------------
+Sun Jan 19 00:13:06 CET 2014 - ohering@suse.de
+
+- BuildRequire libfdt1-devel on ARM
+
+-------------------------------------------------------------------
+Sat Jan 18 00:35:46 CET 2014 - ohering@suse.de
+
+- fate#311487: remove modprobe.conf files for autoloading of
+ pv-on-hvm files.
+ Rely on core kernel to skip initialization of emulated hardware
+ Handle xen_emul_unplug= from xenlinux based core kernel-default
+ xen_pvonhvm.xen_emul_unplug.patch
+ Dropped xen_pvdrivers.conf
+
+-------------------------------------------------------------------
+Wed Jan 16 13:11:32 MST 2014 - carnold@suse.com
+
+- Fix the spec file to build for old distros
+ The xm/xend toolstack will continue to be contained in xen-tools
+ for older openSUSE and sles distros but it will be contained in
+ xend-tools for os13.x
+
+-------------------------------------------------------------------
+Wed Jan 15 19:55:32 CET 2014 - ohering@suse.de
+
+- fate#316071: add discard support for file backed storage (qdisk)
+ to qemu-upstream, enabled unconditionally
+ qemu-xen-upstream-blkif-discard.patch
+
+-------------------------------------------------------------------
+Tue Jan 14 12:13:45 MST 2014 - carnold@suse.com
+
+- Update to Xen 4.4.0 RC2 c/s 28287
+
+-------------------------------------------------------------------
+Tue Jan 9 11:44:11 MST 2014 - carnold@suse.com
+
+- Restore 32bit ix86 support in spec file for kmps and domU tools
+- Restore a few missing xend patches
+ xend-config-enable-dump-comment.patch
+ xend-tools-watchdog-support.patch
+ xend-vif-route-ifup.patch
+
+-------------------------------------------------------------------
+Tue Jan 2 11:52:11 MST 2014 - carnold@suse.com
+
+- fate#315692: XEN: Include Xen version 4.4 in SLES-12
+ Update to Xen 4.4.0 RC1 c/s 28233
+- Drop 32bit support from spec file
+- Dropped numerous patches now included in the tarball
+
+-------------------------------------------------------------------
+Wed Jan 1 10:28:10 UTC 2014 - coolo@suse.com
+
+- gcc-32bit pulls in the right gcc bits, so better buildrequire that
+
+-------------------------------------------------------------------
+Tue Nov 26 08:26:07 MST 2013 - carnold@suse.com
+
+- Upstream patches from Jan
+ 5281fad4-numa-sched-leave-node-affinity-alone-if-not-in-auto-mode.patch
+ 52820823-nested-SVM-adjust-guest-handling-of-structure-mappings.patch
+ 52820863-VMX-don-t-crash-processing-d-debug-key.patch
+ 5282492f-x86-eliminate-has_arch_mmios.patch
+ 52864df2-credit-Update-other-parameters-when-setting-tslice_ms.patch
+ 52864f30-fix-leaking-of-v-cpu_affinity_saved-on-domain-destruction.patch
+ 5289d225-nested-VMX-don-t-ignore-mapping-errors.patch
+ 528a0eb0-x86-consider-modules-when-cutting-off-memory.patch
+ 528f606c-x86-hvm-reset-TSC-to-0-after-domain-resume-from-S3.patch
+ 528f609c-x86-crash-disable-the-watchdog-NMIs-on-the-crashing-cpu.patch
+ 52932418-x86-xsave-fix-nonlazy-state-handling.patch
+
+-------------------------------------------------------------------
+Fri Nov 22 14:36:12 MST 2013 - carnold@suse.com
+
+- bnc#851749 - Xen service file does not call xend properly
+ xend.service
+
+-------------------------------------------------------------------
+Fri Nov 22 08:15:04 UTC 2013 - adrian@suse.de
+
+- Add missing requires to pciutils package for xend-tools
+
+-------------------------------------------------------------------
+Tue Nov 19 11:52:31 MST 2013 - carnold@suse.com
+
+- bnc#851386 - VUL-0: xen: XSA-78: Insufficient TLB flushing in
+ VT-d (iommu) code
+ 528a0e5b-TLB-flushing-in-dma_pte_clear_one.patch
+
+-------------------------------------------------------------------
+Tue Nov 19 10:42:54 CET 2013 - tbehrens@suse.com
+
+- Make -devel package depend on libuuid-devel, since libxl.h
+ includes uuid.h
+
+-------------------------------------------------------------------
+Mon Nov 11 10:22:20 MST 2013 - carnold@suse.com
+
+- bnc#849667 - VUL-0: xen: XSA-74: Lock order reversal between
+ page_alloc_lock and mm_rwlock
+ CVE-2013-4553-xsa74.patch
+- bnc#849665 - VUL-0: CVE-2013-4551: xen: XSA-75: Host crash due to
+ guest VMX instruction execution
+ 52809208-nested-VMX-VMLANUCH-VMRESUME-emulation-must-check-permission-1st.patch
+- bnc#849668 - VUL-0: xen: XSA-76: Hypercalls exposed to privilege
+ rings 1 and 2 of HVM guests
+ CVE-2013-4554-xsa76.patch
+- Upstream patches from Jan
+ 52654798-x86-xsave-also-save-restore-XCR0-across-suspend-ACPI-S3.patch
+ 526e43d4-x86-refine-address-validity-checks-before-accessing-page-tables.patch
+ 526f786a-fix-locking-in-cpu_disable_scheduler.patch
+ 5277646c-x86-ACPI-x2APIC-guard-against-out-of-range-ACPI-or-APIC-IDs.patch
+ 5277a134-x86-make-sure-memory-block-is-RAM-before-passing-to-the-allocator.patch
+ 5278f7f9-x86-HVM-32-bit-IN-result-must-be-zero-extended-to-64-bits.patch
+ 527a0a05-call-sched_destroy_domain-before-cpupool_rm_domain.patch
+ 527cb7d2-x86-hvm-fix-restart-of-RTC-periodic-timer-with-vpt_align-1.patch
+ 527cb820-x86-EFI-make-trampoline-allocation-more-flexible.patch
+ 5280aae0-x86-idle-reduce-contention-on-ACPI-register-accesses.patch
+
+-------------------------------------------------------------------
+Wed Nov 4 09:42:36 MDT 2013 - carnold@suse.com
+
+- bnc#848657 - VUL-0: xen: CVE-2013-4494: XSA-73: Lock order
+ reversal between page allocation and grant table locks
+ 5277639c-gnttab-correct-locking-order-reversal.patch
+
+-------------------------------------------------------------------
+Thu Oct 31 17:07:49 MDT 2013 - carnold@suse.com
+
+- Update to Xen 4.3.1
+
+-------------------------------------------------------------------
+Tue Oct 22 13:42:54 MDT 2013 - carnold@suse.com
+
+- domUloader can no longer be used with the xl toolstack to boot
+ sles10. Patch pygrub to get the kernel and initrd from the image.
+ pygrub-boot-legacy-sles.patch
+
+-------------------------------------------------------------------
+Mon Oct 21 09:57:54 MDT 2013 - carnold@suse.com
+
+- bnc#842515 - VUL-0: CVE-2013-4375: XSA-71: xen: qemu disk backend
+ (qdisk) resource leak
+ CVE-2013-4375-xsa71.patch
+- bnc#845520 - VUL-0: CVE-2013-4416: xen: ocaml xenstored
+ mishandles oversized message replies
+ CVE-2013-4416-xsa72.patch
+- Upstream patches from Jan
+ 52496bea-x86-properly-handle-hvm_copy_from_guest_-phys-virt-errors.patch (Replaces CVE-2013-4355-xsa63.patch)
+ 52496c11-x86-mm-shadow-Fix-initialization-of-PV-shadow-L4-tables.patch (Replaces CVE-2013-4356-xsa64.patch)
+ 52496c32-x86-properly-set-up-fbld-emulation-operand-address.patch (Replaces CVE-2013-4361-xsa66.patch)
+ 52497c6c-x86-don-t-blindly-create-L3-tables-for-the-direct-map.patch
+ 524e971b-x86-idle-Fix-get_cpu_idle_time-s-interaction-with-offline-pcpus.patch
+ 524e9762-x86-percpu-Force-INVALID_PERCPU_AREA-to-non-canonical.patch
+ 524e983e-Nested-VMX-check-VMX-capability-before-read-VMX-related-MSRs.patch
+ 524e98b1-Nested-VMX-fix-IA32_VMX_CR4_FIXED1-msr-emulation.patch
+ 524e9dc0-xsm-forbid-PV-guest-console-reads.patch
+ 5256a979-x86-check-segment-descriptor-read-result-in-64-bit-OUTS-emulation.patch
+ 5256be57-libxl-fix-vif-rate-parsing.patch
+ 5256be84-tools-ocaml-fix-erroneous-free-of-cpumap-in-stub_xc_vcpu_getaffinity.patch
+ 5256be92-libxl-fix-out-of-memory-error-handling-in-libxl_list_cpupool.patch
+ 5257a89a-x86-correct-LDT-checks.patch
+ 5257a8e7-x86-add-address-validity-check-to-guest_map_l1e.patch
+ 5257a944-x86-check-for-canonical-address-before-doing-page-walks.patch
+ 525b95f4-scheduler-adjust-internal-locking-interface.patch
+ 525b9617-sched-fix-race-between-sched_move_domain-and-vcpu_wake.patch
+ 525e69e8-credit-unpause-parked-vcpu-before-destroying-it.patch
+ 525faf5e-x86-print-relevant-tail-part-of-filename-for-warnings-and-crashes.patch
+
+-------------------------------------------------------------------
+Wed Oct 2 15:58:47 MDT 2013 - jfehlig@suse.com
+
+- Improvements to block-dmmd script
+ bnc#828623
+
+-------------------------------------------------------------------
+Tue Oct 1 15:28:25 MDT 2013 - carnold@suse.com
+
+- bnc#840196 - L3: MTU size on Dom0 gets reset when booting DomU
+ with e1000 device
+ set-mtu-from-bridge-for-tap-interface.patch
+
+-------------------------------------------------------------------
+Mon Sep 30 10:48:29 MDT 2013 - carnold@suse.com
+
+- bnc#839596 - VUL-0: CVE-2013-1442: XSA-62: xen: Information leak
+ on AVX and/or LWP capable CPUs
+ 5242a1b5-x86-xsave-initialize-extended-register-state-when-guests-enable-it.patch
+- bnc#840592 - VUL-0: CVE-2013-4355: XSA-63: xen: Information leaks
+ through I/O instruction emulation
+ CVE-2013-4355-xsa63.patch
+- bnc#840593 - VUL-0: CVE-2013-4356: XSA-64: xen: Memory accessible
+ by 64-bit PV guests under live migration
+ CVE-2013-4356-xsa64.patch
+- bnc#841766 - VUL-1: CVE-2013-4361: XSA-66: xen: Information leak
+ through fbld instruction emulation
+ CVE-2013-4361-xsa66.patch
+- bnc#833796 - L3: Xen: migration broken from xsave-capable to
+ xsave-incapable host
+ 52205e27-x86-xsave-initialization-improvements.patch
+ 522dc0e6-x86-xsave-fix-migration-from-xsave-capable-to-xsave-incapable-host.patch
+- bnc#839600 - [HP BCS SLES11 Bug]: In HP’s UEFI x86_64 platform and
+ sles11sp3 with xen environment, xen hypervisor will panic on
+ multiple blades nPar.
+ 523172d5-x86-fix-memory-cut-off-when-using-PFN-compression.patch
+- bnc#833251 - [HP BCS SLES11 Bug]: In HP’s UEFI x86_64 platform
+ and with xen environment, in booting stage ,xen hypervisor will
+ panic.
+ 522d896b-x86-EFI-properly-handle-run-time-memory-regions-outside-the-1-1-map.patch
+- bnc#834751 - [HP BCS SLES11 Bug]: In xen, “shutdown –y 0 –h”
+ cannot power off system
+ 522d896b-x86-EFI-properly-handle-run-time-memory-regions-outside-the-1-1-map.patch
+- Upstream patches from Jan
+ 520119fc-xen-conring-Write-to-console-ring-even-if-console-lock-is-busted.patch
+ 520a2705-watchdog-crash-Always-disable-watchdog-in-console_force_unlock.patch
+ 522d8a1f-x86-allow-guest-to-set-clear-MSI-X-mask-bit-try-2.patch
+ 522dc044-xmalloc-make-whole-pages-xfree-clear-the-order-field-ab-used-by-xmalloc.patch
+ 522f2f9f-Nested-VMX-Clear-bit-31-of-IA32_VMX_BASIC-MSR.patch
+ 522f37b2-sched-arinc653-check-for-guest-data-transfer-failures.patch
+ 5231e090-libxc-x86-fix-page-table-creation-for-huge-guests.patch
+ 5231f00c-cpufreq-missing-check-of-copy_from_guest.patch
+ 523304b6-x86-machine_restart-must-not-call-acpi_dmar_reinstate-twice.patch
+ 5239a064-x86-HVM-fix-failure-path-in-hvm_vcpu_initialise.patch
+ 5239a076-VMX-fix-failure-path-in-construct_vmcs.patch
+ 523c0ed4-x86-HVM-properly-handle-wide-MMIO.patch
+ 523c1758-sched_credit-filter-node-affinity-mask-against-online-cpus.patch
+ 523ff393-x86-HVM-linear-address-must-be-canonical-for-the-whole-accessed-range.patch
+ 523ff3e2-x86-HVM-refuse-doing-string-operations-in-certain-situations.patch
+
+-------------------------------------------------------------------
+Wed Sep 25 18:54:24 CEST 2013 - ohering@suse.de
+
+- Use upstream version of unplugging in PVonHVM guests
+ add 523c1834-unmodified_drivers-enable-unplug-per-default.patch
+ remove disable_emulated_device.patch
+
+-------------------------------------------------------------------
+Wed Sep 25 16:17:37 CEST 2013 - ohering@suse.de
+
+- fate#315714 - Support pvUSB in Xen HVM guests, add xen-usb.ko
+
+-------------------------------------------------------------------
+Mon Sep 9 09:26:18 MDT 2013 - carnold@suse.com
+
+- Upstream patches from Jan
+ 521c6d4a-x86-don-t-allow-Dom0-access-to-the-MSI-address-range.patch
+ 521c6d6c-x86-don-t-allow-Dom0-access-to-the-HT-address-range.patch
+ 521c6e23-x86-Intel-add-support-for-Haswell-CPU-models.patch
+ 521db25f-Fix-inactive-timer-list-corruption-on-second-S3-resume.patch
+ 521e1156-x86-AVX-instruction-emulation-fixes.patch
+ 521ef8d9-AMD-IOMMU-add-missing-checks.patch
+ 52205a7d-hvmloader-smbios-Correctly-count-the-number-of-tables-written.patch
+ 52205a90-public-hvm_xs_strings.h-Fix-ABI-regression-for-OEM-SMBios-strings.patch
+ 52205e27-x86-xsave-initialization-improvements.patch
+ 5226020f-xend-handle-extended-PCI-configuration-space-when-saving-state.patch
+ 52260214-xend-fix-file-descriptor-leak-in-pci-utilities.patch
+ 52285317-hvmloader-fix-SeaBIOS-interface.patch
+
+-------------------------------------------------------------------
+Tue Sep 3 16:23:16 MDT 2013 - carnold@suse.com
+
+- bnc#837585 - xen* pkg update DISables `xencommons` and
+ `xendomains` systemd services
+ xen.spec
+
+-------------------------------------------------------------------
+Fri Aug 30 20:11:46 CEST 2013 - ohering@suse.de
+
+- remove unneeded patch, autoload is handled by PCI device, without
+ PCI device xen_platform_pci would not work anyway
+ xen.sles11sp1.fate311487.xen_platform_pci.dmistring.patch
+
+-------------------------------------------------------------------
+Fri Aug 30 20:07:41 CEST 2013 - ohering@suse.de
+
+- Update our xen-3.0.4 version of unplug code in qemu-trad
+ add comments about the usage of the code
+ rename handler function
+ reenable handlers for writing/reading from emulated PCI device
+
+-------------------------------------------------------------------
+Fri Aug 30 19:51:03 CEST 2013 - ohering@suse.de
+
+- Change unplugging of emulated devices in PVonHVM guests
+ Since 3.0.4 xen-platform-pci.ko triggerd the unplug by writing
+ to the PCI space of the emulated PCI device. 3.3 introduced an
+ official unplug protocol. The option to unplug wit the official
+ protocol is disabled per default.
+ Remove our version and enable the unplug via official protocol
+
+-------------------------------------------------------------------
+Fri Aug 30 08:11:55 MDT 2013 - carnold@suse.com
+
+- Upstream patches from Jan
+ 51e517e6-AMD-IOMMU-allocate-IRTEs.patch
+ 51e5183f-AMD-IOMMU-untie-remap-and-vector-maps.patch
+ 51e63df6-VMX-fix-interaction-of-APIC-V-and-Viridian-emulation.patch
+ 52146070-ACPI-fix-acpi_os_map_memory.patch
+ 5214d26a-VT-d-warn-about-CFI-being-enabled-by-firmware.patch
+ 5215d094-Nested-VMX-Check-whether-interrupt-is-blocked-by-TPR.patch
+ 5215d0c5-Nested-VMX-Force-check-ISR-when-L2-is-running.patch
+ 5215d135-Nested-VMX-Clear-APIC-v-control-bit-in-vmcs02.patch
+ 5215d2d5-Nested-VMX-Update-APIC-v-RVI-SVI-when-vmexit-to-L1.patch
+ 5215d8b0-Correct-X2-APIC-HVM-emulation.patch
+- Dropped 520d417d-xen-Add-stdbool.h-workaround-for-BSD.patch
+
+-------------------------------------------------------------------
+Mon Aug 26 15:48:57 MDT 2013 - carnold@suse.com
+
+- bnc#836239 - SLES 11 SP3 Xen security patch does not
+ automatically update UEFI boot binary
+ xen.spec
+
+-------------------------------------------------------------------
+Tue Aug 20 07:56:13 MDT 2013 - carnold@suse.com
+
+- Upstream patches from Jan
+ 51d5334e-x86-mm-Ensure-useful-progress-in-alloc_l2_table.patch
+ 51dd155c-adjust-x86-EFI-build.patch
+ 51e63d80-x86-cpuidle-Change-logging-for-unknown-APIC-IDs.patch
+ 51e6540d-x86-don-t-use-destroy_xen_mappings-for-vunmap.patch
+ 51e7963f-x86-time-Update-wallclock-in-shared-info-when-altering-domain-time-offset.patch
+ 51ffd577-fix-off-by-one-mistakes-in-vm_alloc.patch
+ 51ffd5fd-x86-refine-FPU-selector-handling-code-for-XSAVEOPT.patch
+ 520114bb-Nested-VMX-Flush-TLBs-and-Caches-if-paging-mode-changed.patch
+ 520a5504-VMX-add-boot-parameter-to-enable-disable-APIC-v-dynamically.patch
+ 520a24f6-x86-AMD-Fix-nested-svm-crash-due-to-assertion-in-__virt_to_maddr.patch
+ 520a2570-x86-AMD-Inject-GP-instead-of-UD-when-unable-to-map-vmcb.patch
+ 520b4b60-VT-d-protect-against-bogus-information-coming-from-BIOS.patch
+ 520b4bda-x86-MTRR-fix-range-check-in-mtrr_add_page.patch
+ 520cb8b6-x86-time-fix-check-for-negative-time-in-__update_vcpu_system_time.patch
+ 520d417d-xen-Add-stdbool.h-workaround-for-BSD.patch
+
+-------------------------------------------------------------------
+Fri Aug 16 14:54:53 MDT 2013 - carnold@suse.com
+
+- The xencommons.service file handles the starting of xenstored
+ and xenconsoled. Drop the following services files as
+ unecessary. Update xendomains.service to reflect these changes.
+ xenstored.service
+ xenconsoled.service
+ blktapctrl.service
+
+-------------------------------------------------------------------
+Thu Aug 16 08:54:04 MDT 2013 - carnold@suse.com
+
+- Add xencommons.service to xendomains.service 'After' tag
+ xendomains.service
+
+-------------------------------------------------------------------
+Thu Aug 15 14:54:04 MDT 2013 - carnold@suse.com
+
+- Change the default bridge in xl.conf from xenbr0 to just br0
+ xl-conf-default-bridge.patch
+- Add network.target to xendomains.service 'After' tag
+ xendomains.service
+
+-------------------------------------------------------------------
+Wed Jul 31 11:34:14 MDT 2013 - carnold@suse.com
+
+- Spec file cleanups
+ xen.spec
+- Renamed xend-sysconfig.patch to xencommons-sysconfig.patch
+
+-------------------------------------------------------------------
+Mon Jul 29 16:46:33 MDT 2013 - carnold@suse.com
+
+- Added support for systemd with the following service files
+ xenstored.service
+ blktapctrl.service
+ xend.service
+ xenconsoled.service
+ xen-watchdog.service
+ xendomains.service
+ xencommons.service
+
+-------------------------------------------------------------------
+Fri Jul 12 11:05:11 MDT 2013 - carnold@suse.com
+
+- Upstream patches from Jan
+ 51d277a3-x86-don-t-pass-negative-time-to-gtime_to_gtsc-try-2.patch
+ 51d27807-iommu-amd-Fix-logic-for-clearing-the-IOMMU-interrupt-bits.patch
+ 51d27841-iommu-amd-Workaround-for-erratum-787.patch
+ 51daa074-Revert-hvmloader-always-include-HPET-table.patch
+
+-------------------------------------------------------------------
+Fri Jul 12 09:31:01 MDT 2013 - carnold@suse.com
+
+- Dropped deprecated or unnecessary patches
+ pvdrv-import-shared-info.patch
+ minios-fixups.patch
+
+-------------------------------------------------------------------
+Tue Jul 9 13:06:27 MDT 2013 - carnold@suse.com
+
+- Update to Xen 4.3.0 FCS
+
+-------------------------------------------------------------------
+Fri Jul 5 14:31:51 UTC 2013 - agraf@suse.com
+
+- Enable ARM targets for Xen
+
+-------------------------------------------------------------------
+Thu Jun 27 16:57:08 MDT 2013 - carnold@suse.com
+
+- Update to Xen 4.3.0-rc6
+
+-------------------------------------------------------------------
+Wed Jun 19 14:34:20 MDT 2013 - carnold@suse.com
+
+- Update to Xen 4.3.0-rc5
+
+-------------------------------------------------------------------
+Wed Jun 14 11:06:23 MDT 2013 - carnold@suse.com
+
+- Update to Xen 4.3.0-rc4
+
+-------------------------------------------------------------------
+Mon Jun 10 18:36:38 MDT 2013 - carnold@suse.com
+
+- Fix xen-utils compiler time warnings
+ xen-utils-0.1.tar.bz2
+
+-------------------------------------------------------------------
+Fri Jun 7 08:45:56 MDT 2013 - carnold@suse.com
+
+- Enable building the KMPs
+ xen.spec
+
+-------------------------------------------------------------------
+Wed Jun 5 11:02:23 MDT 2013 - carnold@suse.com
+
+- Update to Xen 4.3.0-rc3
+
+-------------------------------------------------------------------
+Fri May 31 09:40:59 MDT 2013 - carnold@suse.com
+
+- bnc#801663 - performance of mirror lvm unsuitable for production
+ block-dmmd
+
+-------------------------------------------------------------------
+Thu May 30 18:45:40 MDT 2013 - carnold@suse.com
+
+- Update to Xen 4.3.0-rc2
+
+-------------------------------------------------------------------
+Wed May 15 13:45:50 MDT 2013 - carnold@suse.com
+
+- The xend toolstack is now deprecated and unsupported. Consolidate
+ all xend and traditional qemu patches into one patch file.
+ Rename '.diff' patches to '.patch' and reoder others.
+ xend-traditional-qemu.patch
+
+-------------------------------------------------------------------
+Tue May 14 15:36:04 MDT 2013 - carnold@suse.com
+
+- Create a xend-tools package for the legacy xend toolstack and
+ traditional qemu files.
+
+-------------------------------------------------------------------
+Mon May 13 16:02:52 MDT 2013 - carnold@suse.com
+
+- Update to Xen 4.3.0-rc1 c/s 27068
+ Drop all upstream changeset patches now included in 4.3 tarball
+- Removed the doc-pdf RPM as there are no more PDFs to include
+ since the docs/xen-api sources were dropped.
+
+-------------------------------------------------------------------
+Tue May 7 11:46:29 MDT 2013 - carnold@suse.com
+
+- bnc#818183 - VUL-0: xen: CVE-2013-2007: XSA-51: qga set umask
+ 0077 when daemonizing
+ CVE-2013-2007-xsa51-1.patch
+ CVE-2013-2007-xsa51-2.patch
+
+-------------------------------------------------------------------
+Mon May 6 15:52:03 CEST 2013 - ohering@suse.de
+
+- add lndir to BuildRequires
+
+-------------------------------------------------------------------
+Mon May 6 11:45:03 CEST 2013 - ohering@suse.de
+
+- remove xen.migrate.tools_notify_restore_to_hangup_during_migration_--abort_if_busy.patch
+ It changed migration protocol and upstream wants a different solution
+
+-------------------------------------------------------------------
+Sun May 5 16:20:30 CEST 2013 - ohering@suse.de
+
+- bnc#802221 - fix xenpaging
+ readd xenpaging.qemu.flush-cache.patch
+
+-------------------------------------------------------------------
+Thu May 2 09:11:33 MDT 2013 - carnold@suse.com
+
+- bnc#808269 - Fully Virtualized Windows VM install is failed on
+ Ivy Bridge platforms with Xen kernel
+ 26754-hvm-Improve-APIC-INIT-SIPI-emulation.patch
+
+-------------------------------------------------------------------
+Tue Apr 30 09:15:26 MDT 2013 - carnold@suse.com
+
+- Upstream patches from Jan
+ 26891-x86-S3-Fix-cpu-pool-scheduling-after-suspend-resume.patch
+ 26930-x86-EFI-fix-runtime-call-status-for-compat-mode-Dom0.patch
+- Additional fix for bnc#816159
+ CVE-2013-1918-xsa45-followup.patch
+
+-------------------------------------------------------------------
+Mon Apr 29 15:40:35 MDT 2013 - cyliu@suse.com
+
+- bnc#817068 - Xen guest with >1 sr-iov vf won't start
+ xen-managed-pci-device.patch
+
+-------------------------------------------------------------------
+Mon Apr 29 11:21:54 MDT 2013 - carnold@suse.com
+
+- Update to Xen 4.2.2 c/s 26064
+ The following recent security patches are included in the tarball
+ CVE-2013-0151-xsa34.patch (bnc#797285)
+ CVE-2012-6075-xsa41.patch (bnc#797523)
+ CVE-2013-1917-xsa44.patch (bnc#813673)
+ CVE-2013-1919-xsa46.patch (bnc#813675)
+
+-------------------------------------------------------------------
+Wed Apr 24 08:07:07 MDT 2013 - carnold@suse.com
+
+- Upstream patch from Jan
+ 26902-x86-EFI-pass-boot-services-variable-info-to-runtime-code.patch
+
+-------------------------------------------------------------------
+Fri Apr 19 14:22:43 MDT 2013 - carnold@suse.com
+
+- bnc#816159 - VUL-0: xen: CVE-2013-1918: XSA-45: Several long
+ latency operations are not preemptible
+ CVE-2013-1918-xsa45-1-vcpu-destroy-pagetables-preemptible.patch
+ CVE-2013-1918-xsa45-2-new-guest-cr3-preemptible.patch
+ CVE-2013-1918-xsa45-3-new-user-base-preemptible.patch
+ CVE-2013-1918-xsa45-4-vcpu-reset-preemptible.patch
+ CVE-2013-1918-xsa45-5-set-info-guest-preemptible.patch
+ CVE-2013-1918-xsa45-6-unpin-preemptible.patch
+ CVE-2013-1918-xsa45-7-mm-error-paths-preemptible.patch
+- bnc#816163 - VUL-0: xen: CVE-2013-1952: XSA-49: VT-d interrupt
+ remapping source validation flaw for bridges
+ CVE-2013-1952-xsa49.patch
+
+-------------------------------------------------------------------
+Thu Apr 18 10:17:08 MDT 2013 - cyliu@suse.com
+
+- bnc#809662 - can't use pv-grub to start domU (pygrub does work)
+ xen.spec
+
+-------------------------------------------------------------------
+Mon Apr 15 14:47:41 MDT 2013 - carnold@suse.com
+
+- bnc#814709 - Unable to create XEN virtual machines in SLED 11 SP2
+ on Kyoto
+ xend-cpuinfo-model-name.patch
+
+-------------------------------------------------------------------
+Mon Apr 15 10:55:17 MDT 2013 - carnold@suse.com
+
+- bnc#813673 - VUL-0: CVE-2013-1917: xen: Xen PV DoS vulnerability with
+ SYSENTER
+ CVE-2013-1917-xsa44.patch
+- bnc#813675 - VUL-0: CVE-2013-1919: xen: Several access permission
+ issues with IRQs for unprivileged guests
+ CVE-2013-1919-xsa46.patch
+- bnc#814059 - VUL-1: xen: qemu-nbd format-guessing due to missing
+ format specification
+ CVE-2013-1922-xsa48.patch
+- Upstream patches from Jan
+ 26749-x86-reserve-pages-when-SandyBridge-integrated-graphics.patch
+ 26751-x86-EFI-permit-setting-variable-with-non-zero-attributes.patch
+ 26765-hvm-Clean-up-vlapic_reg_write-error-propagation.patch
+ 26770-x86-irq_move_cleanup_interrupt-must-ignore-legacy-vectors.patch
+ 26771-x86-S3-Restore-broken-vcpu-affinity-on-resume.patch
+ 26772-VMX-Always-disable-SMEP-when-guest-is-in-non-paging-mode.patch
+ 26773-x86-mm-shadow-spurious-warning-when-unmapping-xenheap-pages.patch
+ 26774-defer-event-channel-bucket-pointer-store-until-after-XSM-checks.patch
+ 26799-x86-don-t-pass-negative-time-to-gtime_to_gtsc.patch
+
+-------------------------------------------------------------------
+Thu Apr 4 11:17:43 MDT 2013 - carnold@suse.com
+
+- bnc#813156 - IndentationError in XendCheckpoint.py
+ xend-domain-lock.patch
+
+-------------------------------------------------------------------
+Tue Apr 2 15:41:19 CEST 2013 - ohering@suse.de
+
+- bnc#797014 - no way to control live migrations
+- bnc#803712 - after live migration rcu_sched_state detected stalls
+ xen.migrate.tools-xend_move_assert_to_exception_block.patch
+ xen.migrate.tools-libxc_print_stats_if_migration_is_aborted.patch
+ xen.migrate.tools_set_number_of_dirty_pages_during_migration.patch
+ xen.migrate.tools_notify_restore_to_hangup_during_migration_--abort_if_busy.patch
+
+-------------------------------------------------------------------
+Tue Mar 26 10:37:43 MDT 2013 - carnold@suse.com
+
+- bnc#811764 - XEN (hypervisor or kernel) has a problem with EFI
+ variable services
+ x86-EFI-set-variable-permit-attrs.patch
+- Upstream patches from Jan
+ 26060-ACPI-ERST-table-size-checks.patch
+ 26692-x86-fully-protect-MSI-X-table-from-PV-guest-accesses.patch
+ 26702-powernow-add-fixups-for-AMD-P-state-figures.patch
+ 26704-x86-MCA-suppress-bank-clearing-for-certain-injected-events.patch (bnc#805579)
+ 26731-AMD-IOMMU-Process-softirqs-while-building-dom0-iommu-mappings.patch
+ 26733-VT-d-Enumerate-IOMMUs-when-listing-capabilities.patch
+ 26734-ACPI-ERST-Name-table-in-otherwise-opaque-error-messages.patch
+ 26736-ACPI-APEI-Unlock-apei_iomaps_lock-on-error-path.patch
+ 26737-ACPI-APEI-Add-apei_exec_run_optional.patch
+ 26742-IOMMU-properly-check-whether-interrupt-remapping-is-enabled.patch
+ 26743-VT-d-deal-with-5500-5520-X58-errata.patch (bnc#801910)
+ 26744-AMD-IOMMU-allow-disabling-only-interrupt-remapping.patch
+
+-------------------------------------------------------------------
+Thu Mar 14 09:58:38 MDT 2013 - jfehlig@suse.com
+
+- Load blktap module in xencommons init script. blktap2 doesn't
+ support qcow2, so blktap is needed to support domains with
+ 'tap:qcow2' disk configurations.
+ modified tmp-initscript-modprobe.patch
+
+-------------------------------------------------------------------
+Thu Mar 14 07:32:17 MDT 2013 - carnold@suse.com
+
+- bnc#809203 - xen.efi isn't signed with SUSE Secure Boot key
+ xen.spec
+
+-------------------------------------------------------------------
+Mon Mar 11 21:07:21 MDT 2013 - jfehlig@suse.com
+
+- Fix adding managed PCI device to an inactive domain
+ modified xen-managed-pci-device.patch
+
+-------------------------------------------------------------------
+Mon Mar 11 11:45:22 MDT 2013 - jfehlig@suse.com
+
+- bnc#805094 - xen hot plug attach/detach fails
+ modified blktap-pv-cdrom.patch
+
+-------------------------------------------------------------------
+Mon Mar 11 11:17:57 MDT 2013 - jfehlig@suse.com
+
+- bnc# 802690 - domain locking can prevent a live migration from
+ completing
+ modified xend-domain-lock.patch
+
+-------------------------------------------------------------------
+Fri Mar 8 15:01:15 CET 2013 - ohering@suse.de
+
+- bnc#797014 - no way to control live migrations
+ 26675-tools-xentoollog_update_tty_detection_in_stdiostream_progress.patch
+ xen.migrate.tools-xc_print_messages_from_xc_save_with_xc_report.patch
+ xen.migrate.tools-xc_document_printf_calls_in_xc_restore.patch
+ xen.migrate.tools-xc_rework_xc_save.cswitch_qemu_logdirty.patch
+ xen.migrate.tools_set_migration_constraints_from_cmdline.patch
+ xen.migrate.tools_add_xm_migrate_--log_progress_option.patch
+
+-------------------------------------------------------------------
+Thu Mar 7 14:39:57 MST 2013 - carnold@suse.com
+
+- Upstream patches from Jan
+ 26585-x86-mm-Take-the-p2m-lock-even-in-shadow-mode.patch
+ 26595-x86-nhvm-properly-clean-up-after-failure-to-set-up-all-vCPU-s.patch
+ 26601-honor-ACPI-v4-FADT-flags.patch
+ 26656-x86-fix-null-pointer-dereference-in-intel_get_extended_msrs.patch
+ 26659-AMD-IOMMU-erratum-746-workaround.patch
+ 26660-x86-fix-CMCI-injection.patch
+ 26672-vmx-fix-handling-of-NMI-VMEXIT.patch
+ 26673-Avoid-stale-pointer-when-moving-domain-to-another-cpupool.patch
+ 26676-fix-compat-memory-exchange-op-splitting.patch
+ 26677-x86-make-certain-memory-sub-ops-return-valid-values.patch
+ 26678-SEDF-avoid-gathering-vCPU-s-on-pCPU0.patch
+ 26679-x86-defer-processing-events-on-the-NMI-exit-path.patch
+ 26683-credit1-Use-atomic-bit-operations-for-the-flags-structure.patch
+ 26689-fix-domain-unlocking-in-some-xsm-error-paths.patch
+
+-------------------------------------------------------------------
+Tue Mar 5 13:35:40 MST 2013 - carnold@suse.com
+
+- fate#313584: pass bios information to XEN HVM guest
+ xend-hvm-firmware-passthrough.patch
+
+-------------------------------------------------------------------
+Mon Mar 4 20:28:29 CET 2013 - ohering@suse.de
+
+- bnc#806736: enabling xentrace crashes hypervisor
+ 26686-xentrace_fix_off-by-one_in_calculate_tbuf_size.patch
+
+-------------------------------------------------------------------
+Thu Feb 28 11:12:04 CET 2013 - ohering@suse.de
+
+- update xenalyze to revision 149
+ Make eip_list output more useful
+ Use correct length when copying record into buffer
+ decode PV_HYPERCALL_SUBCALL events
+ decode PV_HYPERCALL_V2 records
+ Analyze populate-on-demand reclamation patterns
+ Handle 64-bit MMIO
+ Also strip write bit when processing a generic event
+ Make the warnigns in hvm_generic_postprocess more informative
+ Don't warn about switching paging levels unless verbosity>=6
+ Process NPFs as generic for summary purposes
+ Add HVM_EVENT_VLAPIC
+
+-------------------------------------------------------------------
+Wed Feb 20 15:00:13 MST 2013 - jfehlig@suse.com
+
+- Add upstream patch to fix vfb/vkb initialization in libxl
+ 26369-libxl-devid.patch
+
+-------------------------------------------------------------------
+Tue Feb 19 14:35:07 MST 2013 - carnold@suse.com
+
+- fate##313584: pass bios information to XEN HVM guest
+ 26554-hvm-firmware-passthrough.patch
+ 26555-hvm-firmware-passthrough.patch
+ 26556-hvm-firmware-passthrough.patch
+
+-------------------------------------------------------------------
+Tue Feb 19 10:46:46 MST 2013 - carnold@suse.com
+
+- Upstream patches from Jan
+ 26516-ACPI-parse-table-retval.patch (Replaces CVE-2013-0153-xsa36.patch)
+ 26517-AMD-IOMMU-clear-irtes.patch (Replaces CVE-2013-0153-xsa36.patch)
+ 26518-AMD-IOMMU-disable-if-SATA-combined-mode.patch (Replaces CVE-2013-0153-xsa36.patch)
+ 26519-AMD-IOMMU-perdev-intremap-default.patch (Replaces CVE-2013-0153-xsa36.patch)
+ 26526-pvdrv-no-devinit.patch
+ 26529-gcc48-build-fix.patch
+ 26531-AMD-IOMMU-IVHD-special-missing.patch (Replaces CVE-2013-0153-xsa36.patch)
+ 26532-AMD-IOMMU-phantom-MSI.patch
+ 26536-xenoprof-div-by-0.patch
+ 26576-x86-APICV-migration.patch
+ 26577-x86-APICV-x2APIC.patch
+ 26578-AMD-IOMMU-replace-BUG_ON.patch
+
+-------------------------------------------------------------------
+Mon Feb 18 17:28:00 CET 2013 - ohering@suse.de
+
+- bnc#797014 - no way to control live migrations
+ 26547-tools-xc_fix_logic_error_in_stdiostream_progress.patch
+ 26548-tools-xc_handle_tty_output_differently_in_stdiostream_progress.patch
+ 26549-tools-xc_turn_XCFLAGS_*_into_shifts.patch
+ 26550-tools-xc_restore_logging_in_xc_save.patch
+ 26551-tools-xc_log_pid_in_xc_save-xc_restore_output.patch
+
+-------------------------------------------------------------------
+Mon Feb 11 14:35:06 UTC 2013 - mmarek@suse.cz
+
+- Set $BRP_PESIGN_FILES in the %install section so that modules
+ are signed in the buildservice (fate#314552).
+
+-------------------------------------------------------------------
+Mon Feb 11 15:33:24 CET 2013 - ohering@suse.de
+
+- PVonHVM: __devinit was removed in linux-3.8
+
+-------------------------------------------------------------------
+Wed Feb 6 09:01:29 MST 2013 - jfehlig@suse.com
+
+- Add 'managed' PCI passthrough support to xend, allowing support
+ for the same through libvirt
+ xen-managed-pci-device.patch
+ FATE#313570
+
+-------------------------------------------------------------------
+Tue Feb 5 11:50:14 MST 2013 - carnold@suse.com
+
+- Upstream patches from Jan
+ 26287-sched-credit-pick-idle.patch
+ 26340-VT-d-intremap-verify-legacy-bridge.patch (Replaces CVE-2012-5634-xsa33.patch)
+ 26370-libxc-x86-initial-mapping-fit.patch
+ 26395-x86-FPU-context-conditional.patch
+ 26404-x86-forward-both-NMI-kinds.patch
+ 26418-x86-trampoline-consider-multiboot.patch
+ 26427-x86-AMD-enable-WC+.patch
+ 26428-x86-HVM-RTC-update.patch
+ 26440-x86-forward-SERR.patch
+ 26443-ACPI-zap-DMAR.patch
+ 26444-x86-nHVM-no-self-enable.patch (Replaces CVE-2013-0152-xsa35.patch)
+ 26501-VMX-simplify-CR0-update.patch
+ 26502-VMX-disable-SMEP-when-not-paging.patch
+
+-------------------------------------------------------------------
+Fri Feb 1 08:30:28 MST 2013 - carnold@suse.com
+
+- bnc#800275 - VUL-0: XSA-36: CVE-2013-0153: xen: interrupt remap
+ entries shared and old ones not cleared on AMD IOMMUs
+ CVE-2013-0153-xsa36.patch
+
+-------------------------------------------------------------------
+Wed Jan 30 15:14:41 UTC 2013 - mmarek@suse.cz
+
+- Add # needssslcertforbuild to the specfile, to make the UEFI
+ signing certificate available during build (fate#314511, fate#314552).
+
+-------------------------------------------------------------------
+Fri Jan 25 14:57:30 MST 2013 - jfehlig@suse.com
+
+- bnc#798188 - Add $network to xend initscript dependencies
+
+-------------------------------------------------------------------
+Thu Jan 24 15:57:12 MST 2013 - jfehlig@suse.com
+
+- Add upstream patches to fix libxl bugs. These patches have
+ already been posted for inclusion in xen-4.2-testing.
+ 25912-partial-libxl.patch
+ 26372-tools-paths.patch
+ 26468-libxl-race.patch
+ 26469-libxl-race.patch
+
+-------------------------------------------------------------------
+Tue Jan 22 08:12:39 MST 2013 - carnold@novell.com
+
+- bnc#797285 - VUL-0: Xen: XSA-34 (CVE-2013-0151) - nested
+ virtualization on 32-bit exposes host crash
+ CVE-2013-0151-xsa34.patch
+- bnc#797287 - VUL-0: Xen: XSA-35 (CVE-2013-0152) - Nested HVM
+ exposes host to being driven out of memory by guest
+ CVE-2013-0152-xsa35.patch
+
+-------------------------------------------------------------------
+Thu Jan 17 14:13:52 MST 2013 - carnold@novell.com
+
+- bnc#793717 - NetWare will not boot on Xen 4.2
+ xnloader.py
+ domUloader.py
+ pygrub-netware-xnloader.patch
+ Removed reverse-24757-use-grant-references.patch
+
+-------------------------------------------------------------------
+Wed Jan 16 11:26:29 MST 2013 - carnold@novell.com
+
+- bnc#797523 - VUL-1: CVE-2012-6075: qemu / kvm-qemu: e1000
+ overflows under some conditions
+ CVE-2012-6075-xsa41.patch
+
+-------------------------------------------------------------------
+Tue Jan 15 13:19:36 MST 2013 - carnold@novell.com
+
+- Mask the floating point exceptions for guests like NetWare on
+ machines that support XSAVE.
+ x86-fpu-context-conditional.patch
+
+-------------------------------------------------------------------
+Mon Jan 14 12:01:33 MST 2013 - carnold@novell.com
+
+- fate##313584: pass bios information to XEN HVM guest
+ 26341-hvm-firmware-passthrough.patch
+ 26342-hvm-firmware-passthrough.patch
+ 26343-hvm-firmware-passthrough.patch
+ 26344-hvm-firmware-passthrough.patch
+
+-------------------------------------------------------------------
+Tue Jan 8 11:06:04 MST 2013 - carnold@novell.com
+
+- bnc#787169 - L3: Marvell 88SE9125 disk controller not detecting
+ disk in Xen kernel
+ 26133-IOMMU-defer-BM-disable.patch
+ 26324-IOMMU-assign-params.patch
+ 26325-IOMMU-add-remove-params.patch
+ 26326-VT-d-context-map-params.patch
+ 26327-AMD-IOMMU-flush-params.patch
+ 26328-IOMMU-pdev-type.patch
+ 26329-IOMMU-phantom-dev.patch
+ 26330-VT-d-phantom-MSI.patch
+ 26331-IOMMU-phantom-dev-quirk.patch
+- Upstream patches from Jan
+ 26294-x86-AMD-Fam15-way-access-filter.patch
+ 26320-IOMMU-domctl-assign-seg.patch
+ 26332-x86-compat-show-guest-stack-mfn.patch
+ 26333-x86-get_page_type-assert.patch
+
+-------------------------------------------------------------------
+Mon Dec 17 11:20:47 MST 2012 - carnold@novell.com
+
+- bnc#794316 - VUL-0: CVE-2012-5634: xen: VT-d interrupt remapping
+ source validation flaw (XSA-33)
+ CVE-2012-5634-xsa33.patch
+
+-------------------------------------------------------------------
+Mon Dec 17 11:15:17 MST 2012 - carnold@novell.com
+
+- Update to Xen 4.2.1 c/s 25952
+
+-------------------------------------------------------------------
+Tue Dec 11 10:14:11 MST 2012 - carnold@novell.com
+
+- Upstream patches from Jan
+ 26195-x86-compat-atp-gmfn-range-cont.patch
+ 26196-ACPI-set-PDC-bits-rc.patch
+ 26200-IOMMU-debug-verbose.patch
+ 26203-x86-HAP-dirty-vram-leak.patch
+ 26229-gnttab-version-switch.patch (Replaces CVE-2012-5510-xsa26.patch)
+ 26230-x86-HVM-limit-batches.patch (Replaces CVE-2012-5511-xsa27.patch)
+ 26231-memory-exchange-checks.patch (Replaces CVE-2012-5513-xsa29.patch)
+ 26232-x86-mark-PoD-error-path.patch (Replaces CVE-2012-5514-xsa30.patch)
+ 26233-memop-order-checks.patch (Replaces CVE-2012-5515-xsa31.patch)
+ 26234-x86-page-from-gfn-pv.patch (Replaces CVE-2012-5525-xsa32.patch)
+ 26235-IOMMU-ATS-max-queue-depth.patch
+ 26252-VMX-nested-rflags.patch
+ 26253-VMX-nested-rdtsc.patch
+ 26254-VMX-nested-dr.patch
+ 26255-VMX-nested-ia32e-mode.patch
+ 26258-VMX-nested-intr-delivery.patch
+ 26260-x86-mmuext-errors.patch
+ 26262-x86-EFI-secure-shim.patch
+ 26266-sched-ratelimit-check.patch
+ 26272-x86-EFI-makefile-cflags-filter.patch
+
+-------------------------------------------------------------------
+Mon Dec 10 14:21:14 MST 2012 - carnold@novell.com
+
+- bnc#757525 - domain destroyed on live migration with missing vif
+ on target machine
+ xen-migration-bridge-check.patch
+
+-------------------------------------------------------------------
+Thu Dec 6 10:56:26 MST 2012 - carnold@novell.com
+
+- NetWare will not boot or install on Xen 4.2
+ reverse-24757-use-grant-references.patch
+
+-------------------------------------------------------------------
+Fri Nov 30 10:30:10 CST 2012 - cyliu@suse.com
+
+- fate#313222 - xenstore-chmod should support 256 permissions
+ 26189-xenstore-chmod.patch
+
+-------------------------------------------------------------------
+Tue Nov 27 09:17:17 MST 2012 - carnold@novell.com
+
+- bnc#789945 - VUL-0: CVE-2012-5510: xen: Grant table version
+ switch list corruption vulnerability (XSA-26)
+ CVE-2012-5510-xsa26.patch
+- bnc#789944 - VUL-0: CVE-2012-5511: xen: Several HVM operations do
+ not validate the range of their inputs (XSA-27)
+ CVE-2012-5511-xsa27.patch
+- bnc#789951 - VUL-0: CVE-2012-5513: xen: XENMEM_exchange may
+ overwrite hypervisor memory (XSA-29)
+ CVE-2012-5513-xsa29.patch
+- bnc#789948 - VUL-0: CVE-2012-5514: xen: Missing unlock in
+ guest_physmap_mark_populate_on_demand() (XSA-30)
+ CVE-2012-5514-xsa30.patch
+- bnc#789950 - VUL-0: CVE-2012-5515: xen: Several memory hypercall
+ operations allow invalid extent order values (XSA-31)
+ CVE-2012-5515-xsa31.patch
+- bnc#789952 - VUL-0: CVE-2012-5525: xen: Several hypercalls do not
+ validate input GFNs (XSA-32)
+ CVE-2012-5525-xsa32.patch
+- Upstream patches from Jan
+ 26129-ACPI-BGRT-invalidate.patch
+ 26132-tmem-save-NULL-check.patch
+ 26134-x86-shadow-invlpg-check.patch
+ 26139-cpumap-masking.patch
+ 26148-vcpu-timer-overflow.patch (Replaces CVE-2012-4535-xsa20.patch)
+ 26149-x86-p2m-physmap-error-path.patch (Replaces CVE-2012-4537-xsa22.patch)
+ 26150-x86-shadow-unhook-toplevel-check.patch (Replaces CVE-2012-4538-xsa23.patch)
+ 26151-gnttab-compat-get-status-frames.patch (Replaces CVE-2012-4539-xsa24.patch)
+ 26179-PCI-find-next-cap.patch
+ 26183-x86-HPET-masking.patch
+ 26188-x86-time-scale-asm.patch
+
+-------------------------------------------------------------------
+Wed Nov 21 20:57:56 CET 2012 - ohering@suse.de
+
+- remove obsolete pv-driver-build.patch to fix build
+
+-------------------------------------------------------------------
+Sat Nov 17 10:51:05 UTC 2012 - aj@suse.de
+
+- Fix build with glibc 2.17: add patch xen-glibc217.patch, fix
+ configure for librt.
+
+-------------------------------------------------------------------
+Tue Nov 13 16:35:55 MST 2012 - jfehlig@suse.com
+
+- bnc#777628 - guest "disappears" after live migration
+ Updated block-dmmd script
+
+-------------------------------------------------------------------
+Fri Nov 9 10:29:51 MST 2012 - carnold@novell.com
+
+- Fix exception in balloon.py and osdep.py
+ xen-max-free-mem.diff
+
+-------------------------------------------------------------------
+Tue Nov 6 17:41:34 MDT 2012 - carnold@novell.com
+
+- fate#311966: Fix XEN VNC implementation to correctly map keyboard
+ layouts
+ VNC-Support-for-ExtendedKeyEvent-client-message.patch
+
+-------------------------------------------------------------------
+Tue Oct 30 15:28:27 CET 2012 - ohering@suse.de
+
+- fate#310510 - fix xenpaging
+ restore changes to integrate paging into xm/xend
+ xenpaging.autostart.patch
+ xenpaging.doc.patch
+
+-------------------------------------------------------------------
+Mon Oct 29 10:46:50 MDT 2012 - carnold@novell.com
+
+- bnc#787163 - VUL-0: CVE-2012-4544: xen: Domain builder Out-of-
+ memory due to malicious kernel/ramdisk (XSA 25)
+ CVE-2012-4544-xsa25.patch
+- bnc#779212 - VUL-0: CVE-2012-4411: XEN / qemu: guest
+ administrator can access qemu monitor console (XSA-19)
+ CVE-2012-4411-xsa19.patch
+
+-------------------------------------------------------------------
+Thu Oct 25 07:02:45 MDT 2012 - carnold@novell.com
+
+- bnc#786516 - VUL-0: CVE-2012-4535: xen: Timer overflow DoS
+ vulnerability
+ CVE-2012-4535-xsa20.patch
+- bnc#786518 - VUL-0: CVE-2012-4536: xen: pirq range check DoS
+ vulnerability
+ CVE-2012-4536-xsa21.patch
+- bnc#786517 - VUL-0: CVE-2012-4537: xen: Memory mapping failure
+ DoS vulnerability
+ CVE-2012-4537-xsa22.patch
+- bnc#786519 - VUL-0: CVE-2012-4538: xen: Unhooking empty PAE
+ entries DoS vulnerability
+ CVE-2012-4538-xsa23.patch
+- bnc#786520 - VUL-0: CVE-2012-4539: xen: Grant table hypercall
+ infinite loop DoS vulnerability
+ CVE-2012-4539-xsa24.patch
+- bnc#784087 - L3: Xen BUG at io_apic.c:129
+ 26102-x86-IOAPIC-legacy-not-first.patch
+
+-------------------------------------------------------------------
+Wed Oct 24 06:15:58 MDT 2012 - carnold@novell.com
+
+- Upstream patches from Jan
+ 25920-x86-APICV-enable.patch
+ 25921-x86-APICV-delivery.patch
+ 25922-x86-APICV-x2APIC.patch
+ 25957-x86-TSC-adjust-HVM.patch
+ 25958-x86-TSC-adjust-sr.patch
+ 25959-x86-TSC-adjust-expose.patch
+ 25975-x86-IvyBridge.patch
+ 25984-SVM-nested-paging-mode.patch
+ 26054-x86-AMD-perf-ctr-init.patch
+ 26055-x86-oprof-hvm-mode.patch
+ 26056-page-alloc-flush-filter.patch
+ 26061-x86-oprof-counter-range.patch
+ 26062-ACPI-ERST-move-data.patch
+ 26063-x86-HPET-affinity-lock.patch
+ 26095-SVM-nested-leak.patch
+ 26096-SVM-nested-vmexit-emul.patch
+ 26098-perfc-build.patch
+
+-------------------------------------------------------------------
+Mon Oct 22 21:21:28 CEST 2012 - ohering@suse.de
+
+- handle possible asprintf failures in log-guest-console.patch
+
+-------------------------------------------------------------------
+Mon Oct 22 20:19:09 CEST 2012 - ohering@suse.de
+
+- bnc#694863 - kexec fails in xen
+ 26093-hvm_handle_PoD_and_grant_pages_in_HVMOP_get_mem_type.patch
+
+-------------------------------------------------------------------
+Thu Oct 18 16:25:53 MDT 2012 - carnold@novell.com
+
+- fate#312709: Pygrub needs to know which entry to select
+ 26114-pygrub-list-entries.patch
+
+-------------------------------------------------------------------
+Thu Oct 18 11:13:32 CEST 2012 - ohering@suse.de
+
+- merge changes fron xen-unstable, obsolete our changes
+ 26077-stubdom_fix_compile_errors_in_grub.patch
+ 26078-hotplug-Linux_remove_hotplug_support_rely_on_udev_instead.patch
+ 26079-hotplug-Linux_close_lockfd_after_lock_attempt.patch
+ 26081-stubdom_fix_rpmlint_warning_spurious-executable-perm.patch
+ 26082-blktap2-libvhd_fix_rpmlint_warning_spurious-executable-perm.patch
+ 26083-blktap_fix_rpmlint_warning_spurious-executable-perm.patch
+ 26084-hotplug_install_hotplugpath.sh_as_data_file.patch
+ 26085-stubdom_install_stubdompath.sh_as_data_file.patch
+ 26086-hotplug-Linux_correct_sysconfig_tag_in_xendomains.patch
+ 26087-hotplug-Linux_install_sysconfig_files_as_data_files.patch
+ 26088-tools_xend_fix_wrong_condition_check_for_xml_file.patch
+
+-------------------------------------------------------------------
+Tue Oct 16 15:38:34 MDT 2012 - carnold@novell.com
+
+- fate#311966: Fix XEN VNC implementation to correctly map keyboard
+ layouts
+ VNC-Support-for-ExtendedKeyEvent-client-message.patch
+
+-------------------------------------------------------------------
+Mon Oct 15 17:45:52 CEST 2012 - ohering@suse.de
+
+- workaround bash bug in locking.sh:claim_lock, close fd
+
+-------------------------------------------------------------------
+Sat Oct 13 15:25:08 CEST 2012 - ohering@suse.de
+
+- fix incorrect self-provides/obsoletes of xen-tools-ioemu
+
+-------------------------------------------------------------------
+Tue Oct 9 06:19:55 MDT 2012 - carnold@novell.com
+
+- bnc#783847 - Virtualization/xen: Bug Xen 4.2 'xendomins' init
+ script incorrectly Requires 'xend' service when using 'xl'
+ toolstack
+ init.xendomains
+
+-------------------------------------------------------------------
+Mon Oct 8 07:53:24 MDT 2012 - carnold@novell.com
+
+- bnc#782835 - Xen HVM Guest fails (errors) to launch on Opensuse
+ 12.2 + Xen 4.2 + 'xl' toolstack
+ xen-pygrub-grub-args.patch
+
+-------------------------------------------------------------------
+Mon Oct 8 14:21:59 CEST 2012 - ohering@suse.de
+
+- backport parallel build support for stubdom
+- rename 5 patches which were merged upstream
+
+-------------------------------------------------------------------
+Fri Oct 5 21:58:46 CEST 2012 - ohering@suse.de
+
+- remove more obsolete changes:
+ CFLAGS passing to qemu-traditional, PYTHON_PREFIX_ARG handling
+ and pygrub installation
+
+-------------------------------------------------------------------
+Fri Oct 5 20:39:23 CEST 2012 - ohering@suse.de
+
+- update blktap-pv-cdrom.patch
+ handle allocation errors in asprintf to fix compile errors
+ handle value returned from xs_read properly
+ remove casts from void pointers
+
+-------------------------------------------------------------------
+Fri Oct 5 20:06:09 CEST 2012 - ohering@suse.de
+
+- update xenalyze to revision 138
+ Fix dump time calculation overflow
+ move struct record_info into a header
+ correctly display of count of HW events
+ update trace.h to match xen-unstable
+ Remove vestigal HW_IRQ trace records
+ Remove decode of PV_UPDATE_VA_MAPPING
+ automatically generate dependencies
+ Get rid of redundant hvm dump_header
+ Introduce more efficient read mechanism
+ Eliminate unnecessary cycles_to_time calculation
+ Rework math to remove two 64-bit divisions
+ Enable -O2 optimization level
+ Remove --dump-cooked
+ Remove spurious dump_header construction
+ Improve record-sorting algorithm
+ Use long to cast into and out of pointers
+ Make max_active_pcpu calculation smarter
+ Optimize pcpu_string
+ Enable more cr3 output
+ Sort cr3 enumerated values by start time
+ Add option to skip vga range in MMIO enumeration
+ Handle MMIO records from different vmexits
+ Relocate pio and mmio enumaration structs to their own sub-struct
+ Handle new hvm_event traces
+ Introduce generic summary functionality
+ Function-ize setting of h->post_process
+ Reorganize cr trace handling
+ Allow several summary handlers to register on a single vmexit
+ Get rid of all tabs in xenalyze.c
+ Handle new IRQ tracing
+ Decrease verbosity
+ Print exit reason number if no string is available
+ Fix minor summary issue
+ Add string for TPR_BELOW_THRESHOLD
+ Raise MAX_CPUS to 256 cpus.
+ Add --report-pcpu option to report physical cpu utilization.
+ increase MAX_CPUS
+ Handle RUNSTATE_INIT in domain_runstate calculation
+
+-------------------------------------------------------------------
+Fri Oct 5 19:58:57 CEST 2012 - ohering@suse.de
+
+- update RPM_OPT_FLAGS handling in spec file
+ pass EXTRA_CFLAGS via environment
+
+-------------------------------------------------------------------
+Fri Oct 5 19:53:38 CEST 2012 - ohering@suse.de
+
+- remove obsolete xencommons-proc-xen.patch
+
+-------------------------------------------------------------------
+Mon Oct 1 10:09:24 MDT 2012 - carnold@novell.com
+
+- Upstream patches from Jan
+ 25927-x86-domctl-ioport-mapping-range.patch
+ 25929-tmem-restore-pool-version.patch
+ 25931-x86-domctl-iomem-mapping-checks.patch
+ 25940-x86-S3-flush-cache.patch
+ 25952-x86-MMIO-remap-permissions.patch
+ 25961-x86-HPET-interrupts.patch
+ 25962-x86-assign-irq-vector-old.patch
+ 25965-x86-ucode-Intel-resume.patch
+
+-------------------------------------------------------------------
+Tue Sep 25 14:24:29 CEST 2012 - ohering@suse.de
+
+- pygrub: always append --args
+ 25941-pygrub_always_append_--args.patch
+
+-------------------------------------------------------------------
+Mon Sep 24 16:41:58 CEST 2012 - ohering@suse.de
+
+- use BuildRequires: gcc46 only in sles11sp2 or 12.1 to fix build
+ in 11.4
+
+-------------------------------------------------------------------
+Wed Sep 19 09:43:42 MDT 2012 - carnold@novell.com
+
+- Upstream patches from Jan
+ 25833-32on64-bogus-pt_base-adjust.patch
+ 25835-adjust-rcu-lock-domain.patch
+ 25836-VT-d-S3-MSI-resume.patch
+ 25850-tmem-xsa-15-1.patch
+ 25851-tmem-xsa-15-2.patch
+ 25852-tmem-xsa-15-3.patch
+ 25853-tmem-xsa-15-4.patch
+ 25854-tmem-xsa-15-5.patch
+ 25855-tmem-xsa-15-6.patch
+ 25856-tmem-xsa-15-7.patch
+ 25857-tmem-xsa-15-8.patch
+ 25858-tmem-xsa-15-9.patch
+ 25859-tmem-missing-break.patch
+ 25860-tmem-cleanup.patch
+ 25861-x86-early-fixmap.patch
+ 25862-sercon-non-com.patch
+ 25863-sercon-ehci-dbgp.patch
+ 25864-sercon-unused.patch
+ 25866-sercon-ns16550-pci-irq.patch
+ 25867-sercon-ns16550-parse.patch
+ 25874-x86-EFI-chain-cfg.patch
+ 25909-xenpm-consistent.patch
+
+-------------------------------------------------------------------
+Tue Sep 18 16:16:04 MDT 2012 - carnold@novell.com
+
+- Fixed the 32bit build.
+
+-------------------------------------------------------------------
+Mon Sep 17 09:02:37 MDT 2012 - carnold@novell.com
+
+- Update to Xen 4.2.0 FCS c/s 25844
+
+-------------------------------------------------------------------
+Fri Sep 7 19:23:15 CEST 2012 - ohering@suse.de
+
+- unmodified_drivers: handle IRQF_SAMPLE_RANDOM, it was removed
+ in 3.6-rc1
+
+-------------------------------------------------------------------
+Wed Sep 5 11:36:24 MDT 2012 - jfehlig@suse.com
+
+- bnc#778105 - first XEN-PV VM fails to spawn
+ xend: Increase wait time for disk to appear in host bootloader
+ Modified existing xen-domUloader.diff
+
+-------------------------------------------------------------------
+Thu Aug 30 14:08:45 MDT 2012 - carnold@novell.com
+
+- Disable the snapshot patches. Snapshot only supported the qcow2
+ image format which was poorly implemented qemu 0.10.2. Snapshot
+ support may be restored in the future when the newer upstream
+ qemu is used by Xen.
+
+-------------------------------------------------------------------
+Tue Aug 28 16:31:18 CEST 2012 - ohering@suse.de
+
+- bnc#776995 - attaching scsi control luns with pvscsi
+ - xend/pvscsi: fix passing of SCSI control LUNs
+ xen-bug776995-pvscsi-no-devname.patch
+ - xend/pvscsi: fix usage of persistant device names for SCSI devices
+ xen-bug776995-pvscsi-persistent-names.patch
+ - xend/pvscsi: update sysfs parser for Linux 3.0
+ xen-bug776995-pvscsi-sysfs-parser.patch
+
+-------------------------------------------------------------------
+Thu Aug 23 15:47:24 MDT 2012 - carnold@novell.com
+
+- Update to Xen 4.2.0 RC3+ c/s 25779
+
+-------------------------------------------------------------------
+Tue Aug 21 13:54:45 MDT 2012 - carnold@novell.com
+
+- Update to Xen 4.2.0 RC2+ c/s 25765
+
+-------------------------------------------------------------------
+Mon Aug 20 18:32:15 CEST 2012 - ohering@suse.de
+
+-bnc#766284 - compiled-in ata_piix driver issues with PVonHVM guests
+ Update xen_pvdrivers.conf to match not only libata but also ata_piix
+ This avoids IO errors in the piix driver caused by unplugged hardware
+
+-------------------------------------------------------------------
+Fri Aug 10 10:07:27 MDT 2012 - carnold@novell.com
+
+- Update to Xen 4.1.3 c/s 23336
+
+-------------------------------------------------------------------
+Mon Jul 30 09:39:35 MDT 2012 - carnold@novell.com
+
+- Upstream or pending upstream patches from Jan
+ 25587-fix-off-by-one-parsing-error.patch
+ 25616-x86-MCi_CTL-default.patch
+ 25617-vtd-qinval-addr.patch
+ 25688-x86-nr_irqs_gsi.patch
+
+-------------------------------------------------------------------
+Sun Jul 29 11:19:53 UTC 2012 - aj@suse.de
+
+- Build all files with optimization (fortify source does not work
+ with -O0).
+
+-------------------------------------------------------------------
+Fri Jul 27 09:29:37 MDT 2012 - carnold@novell.com
+
+- bnc#773393 - VUL-0: CVE-2012-3433: xen: HVM guest destroy p2m
+ teardown host DoS vulnerability
+ CVE-2012-3433-xsa11.patch
+- bnc#773401 - VUL-1: CVE-2012-3432: xen: HVM guest user mode MMIO
+ emulation DoS
+ 25682-x86-inconsistent-io-state.patch
+
+-------------------------------------------------------------------
+Wed Jul 18 10:22:33 MDT 2012 - carnold@novell.com
+
+- bnc#762484 - VUL-1: CVE-2012-2625: xen: pv bootloader doesn't
+ check the size of the bzip2 or lzma compressed kernel, leading to
+ denial of service
+ 25589-pygrub-size-limits.patch
+
+-------------------------------------------------------------------
+Tue Jul 10 10:16:42 UTC 2012 - werner@suse.de
+
+- Make it build with latest TeXLive 2012 with new package layout
+
+-------------------------------------------------------------------
+Fri Jun 15 08:45:50 MDT 2012 - carnold@novell.com
+
+- bnc#767273 - unsupported /var/lock/subsys is still used by xendomains
+ init.xendomains
+
+-------------------------------------------------------------------
+Tue Jun 12 14:37:00 MDT 2012 - carnold@novell.com
+
+- bnc#766283 - opensuse 12.2 pv guests can not start after
+ installation due to lack of grub2 support in the host
+ 24000-pygrub-grub2.patch
+ 24001-pygrub-grub2.patch
+ 24002-pygrub-grub2.patch
+
+-------------------------------------------------------------------
+Mon Jun 11 10:32:42 MDT 2012 - carnold@novell.com
+
+- Upstream pygrub patches for grub2 support and fixes
+ 23686-pygrub-solaris.patch
+ 23697-pygrub-grub2.patch
+ 23944-pygrub-debug.patch
+ 23998-pygrub-GPT.patch
+ 23999-pygrub-grub2.patch
+ 24064-pygrub-HybridISO.patch
+ 24401-pygrub-scrolling.patch
+ 24402-pygrub-edit-fix.patch
+ 24460-pygrub-extlinux.patch
+ 24706-pygrub-extlinux.patch
+
+-------------------------------------------------------------------
+Wed Jun 6 08:14:38 MDT 2012 - carnold@novell.com
+
+- Revised version of security patch and an additional patch for
+ bnc#764077
+ x86_64-AMD-erratum-121.patch
+ x86_64-allow-unsafe-adjust.patch
+
+-------------------------------------------------------------------
+Wed Jun 6 10:21:03 CEST 2012 - ohering@suse.de
+
+- remove dummy asm/smp-processor-id.h
+
+-------------------------------------------------------------------
+Tue May 29 11:59:28 CEST 2012 - jsmeix@suse.de
+
+- removed dummy xenapi.tex which was added because of bnc#750679
+ (see the below entry dated "Mon Apr 2 13:07:20 CEST 2012")
+ because "ps2pdf xenapi.ps xenapi.pdf" failed only for
+ Ghostscript version 9.04 (now we have Ghostscript 9.05).
+
+-------------------------------------------------------------------
+Mon May 25 08:02:13 MDT 2012 - carnold@novell.com
+
+- bnc#764077 - VUL-0: EMBARGOED: xen: XSA-9: denial of service on
+ older AMD systems
+ x86_64-AMD-erratum-121.patch
+- Revised version of security patch for bnc#757537
+ x86_64-sysret-canonical.patch
+
+-------------------------------------------------------------------
+Tue May 15 06:45:59 MDT 2012 - carnold@novell.com
+
+- Upstream patches from Jan
+ 25242-x86_64-hotplug-compat-m2p.patch
+ 25247-SVM-no-rdtsc-intercept.patch
+ 25267-x86-text-unlikely.patch
+ 25269-x86-vMCE-addr-misc-write.patch
+ 25271-x86_64-IST-index.patch
+ 25327-pvdrv-no-asm-system-h.patch
+
+-------------------------------------------------------------------
+Mon May 14 08:32:45 CEST 2012 - ohering@suse.de
+
+- add dummy asm/smp-processor-id.h for kernel-source 3.4-rcX
+
+-------------------------------------------------------------------
+Mon May 14 07:43:33 CEST 2012 - ohering@suse.de
+
+- remove inclusion of asm/system.h from platform-pci.c
+
+-------------------------------------------------------------------
+Tue Apr 24 08:22:16 MDT 2012 - carnold@novell.com
+
+- Upstream patches from Jan
+ 25168-x86-memset-size.patch
+ 25191-x86-tdt-delta-calculation.patch
+ 25195-x86-cpuidle-C2-no-flush-or-bm-check.patch
+ 25196-x86-HAP-PAT-sr.patch
+ 25200-x86_64-trap-bounce-flags.patch
+
+-------------------------------------------------------------------
+Thu Apr 19 07:33:00 MDT 2012 - carnold@novell.com
+
+- bnc#757537 - VUL-0: xen: CVE-2012-0217 PV guest escalation
+ x86_64-sysret-canonical.patch
+- bnc#757970 - VUL-1: xen: guest denial of service on syscall GPF
+ generation
+ x86_64-trap-bounce-flags.patch
+
+-------------------------------------------------------------------
+Tue Apr 3 08:33:36 MDT 2012 - carnold@novell.com
+
+- Upstream patches from Jan
+ 25098-x86-emul-lock-UD.patch
+ 25101-x86-hpet-disable.patch
+ ioemu-9877-MSI-X-device-cleanup.patch
+
+-------------------------------------------------------------------
+Mon Apr 2 13:07:20 CEST 2012 - ohering@suse.de
+
+- bnc#750679 - "ps2pdf xenapi.ps xenapi.pdf" fails for user abuild in Factory
+ add dummy xenapi.tex until ghostscript is fixed
+
+-------------------------------------------------------------------
+Wed Mar 28 11:29:50 CEST 2012 - ohering@suse.de
+
+- remove vcd.o rule from PVonHVM Makefile, not needed anymore
+
+-------------------------------------------------------------------
+Tue Mar 20 14:14:09 MDT 2012 - carnold@novell.com
+
+- bnc#753165 - xen/scripts/network-bridge wont create bridge
+ bridge-bonding.diff
+
+-------------------------------------------------------------------
+Mon Mar 19 11:23:09 MDT 2012 - carnold@novell.com
+
+- Upstream patches from Jan
+ 24950-gnttab-copy-mapped.patch
+ 24970-x86-cpuidle-deny-port-access.patch
+ 24996-x86-cpuidle-array-overrun.patch
+ 25041-tapdisk2-create-init-name.patch
+
+-------------------------------------------------------------------
+Wed Mar 14 12:53:53 CET 2012 - ohering@suse.de
+
+- use BuildRequires: gcc46 only in sles11sp2 to avoid issues
+ when gcc47 and newer is the distro default
+
+-------------------------------------------------------------------
+Mon Feb 27 16:05:19 MST 2012 - jfehlig@suse.com
+
+- bnc#745880 - cpuid setting is not preserved across xend restarts
+ xend-cpuid.patch
+
+-------------------------------------------------------------------
+Mon Feb 27 15:40:02 MST 2012 - jfehlig@suse.com
+
+- Rename 2XXXX-vif-bridge.patch -> vif-bridge-tap-fix.patch
+
+-------------------------------------------------------------------
+Mon Feb 27 08:16:43 MST 2012 - carnold@novell.com
+
+- bnc#747331 - XEN: standard "newburn" kernel QA stress test on guest
+ (+ smartd on Dom0?) freezes the guest
+ 24883-x86-guest-walk-not-present.patch
+- bnc#745367 - MCE bank handling during migration
+ 24781-x86-vmce-mcg_ctl.patch
+ 24886-x86-vmce-mcg_ctl-default.patch
+ 24887-x86-vmce-sr.patch
+- bnc#744771 - L3: VM with passed through PCI card fails to reboot
+ under dom0 load
+ 24888-pci-release-devices.patch
+- Upstream patches from Jan
+ 24517-VT-d-fault-softirq.patch
+ 24527-AMD-Vi-fault-softirq.patch
+ 24535-x86-vMSI-misc.patch
+ 24615-VESA-lfb-flush.patch
+ 24690-x86-PCI-SERR-no-deadlock.patch
+ 24701-gnttab-map-grant-ref-recovery.patch
+ 24742-gnttab-misc.patch
+ 24780-x86-paging-use-clear_guest.patch
+ 24805-x86-MSI-X-dom0-ro.patch
+ ioemu-9869-MSI-X-init.patch
+ ioemu-9873-MSI-X-fix-unregister_iomem.patch
+
+-------------------------------------------------------------------
+Sat Feb 25 21:55:42 CET 2012 - ohering@suse.de
+
+- add BuildRequires: libuuid-devel
+
+-------------------------------------------------------------------
+Tue Feb 14 09:23:35 MST 2012 - carnold@novell.com
+
+- bnc#746702 - Xen HVM DomU crash during Windows Server 2008 R2
+ install, when maxmem > memory
+ README.SuSE
+
+-------------------------------------------------------------------
+Wed Feb 8 10:16:59 MST 2012 - jfehlig@suse.com
+
+- bnc#745005 - Update vif configuration examples in xmexample*
+ Updated xen-xmexample.diff
+
+-------------------------------------------------------------------
+Thu Feb 2 17:11:28 MST 2012 - jfehlig@suse.com
+
+- bnc#743414 - using vifname is ignored when defining a xen virtual
+ interface with xl/libxl
+ 24459-libxl-vifname.patch
+
+-------------------------------------------------------------------
+Thu Feb 2 09:21:01 MST 2012 - carnold@novell.com
+
+- bnc#740165 - VUL-0: kvm: qemu heap overflow in e1000 device
+ emulation (applicable to Xen qemu - CVE-2012-0029)
+ cve-2012-0029-qemu-xen-unstable.patch
+
+-------------------------------------------------------------------
+Wed Feb 1 08:26:58 MST 2012 - carnold@novell.com
+
+- bnc#744014 - blank screen in SLES11 SP2 guest with a VF statically
+ assigned
+ ioemu-MSI-X-fix-unregister_iomem.patch
+- Upstream patches from Jan
+ 24453-x86-vIRQ-IRR-TMR-race.patch
+ 24456-x86-emul-lea.patch
+
+-------------------------------------------------------------------
+Thu Jan 26 15:18:54 CET 2012 - ohering@suse.de
+
+- fate#310510 - fix xenpaging
+ 24586-x86-mm_Properly_account_for_paged_out_pages.patch
+ 24609-tools-libxc_handle_fallback_in_linux_privcmd_map_foreign_bulk_properly.patch
+ 24610-xenpaging_make_file_op_largefile_aware.patch
+ xen-unstable.misc.linux_privcmd_map_foreign_bulk.retry_paged.patch
+ xenpaging.speedup-page-out.resume_pages.find_next_bit_set.patch
+ xenpaging.speedup-page-out.evict_pages.free_slot_stack.patch
+ xenpaging.speedup-page-out.policy_choose_victim.patch
+ update xenpaging.error-handling.patch, flush qemu cache not so often
+
+-------------------------------------------------------------------
+Thu Jan 26 13:24:22 CET 2012 - ohering@suse.de
+
+- fate#310510 - fix xenpaging
+ 24566-tools-libxc_fix_error_handling_in_xc_mem_paging_load.patch
+
+-------------------------------------------------------------------
+Tue Jan 24 15:43:27 CET 2012 - ohering@suse.de
+
+- fate#310510 - fix xenpaging
+ 24466-libxc_Only_retry_mapping_pages_when_ENOENT_is_returned.patch
+
+-------------------------------------------------------------------
+Mon Jan 23 13:41:42 MST 2012 - carnold@novell.com
+
+- The xen kmp packages fail on the 09-check-packaged-twice script.
+ Rename xen_pvdrivers.conf to xen_pvdrivers-<kernel flavor>.conf
+
+-------------------------------------------------------------------
+Fri Jan 20 21:28:42 CET 2012 - ohering@suse.de
+
+- fate#310510 - fix xenpaging
+ xenpaging.speedup-page-in.gfn_to_slot.patch
+
+-------------------------------------------------------------------
+Wed Jan 18 09:42:54 MST 2012 - carnold@novell.com
+
+- bnc#739585 - L3: Xen block-attach fails after repeated attach/detach
+ blktap-close-fifos.patch
+ blktap-disable-debug-printf.patch
+
+-------------------------------------------------------------------
+Fri Jan 13 10:37:53 MST 2012 - jfehlig@suse.com
+
+- bnc#741159 - Fix default setting of XENSTORED_ROOTDIR in
+ xencommons init script
+ xencommons-xenstored-root.patch
+
+-------------------------------------------------------------------
+Thu Jan 12 06:49:57 MST 2012 - carnold@novell.com
+
+- bnc#740625 - xen: cannot interact with xend after upgrade (SLES)
+- bnc#738694 - xen: cannot interact with xend after upgrade (os12.1)
+- Other README changes included.
+ README.SuSE
+
+-------------------------------------------------------------------
+Tue Jan 10 17:30:20 CET 2012 - ohering@suse.de
+
+- bnc#694863 - kexec fails in xen
+ 24478-libxl_add_feature_flag_to_xenstore_for_XS_RESET_WATCHES.patch
+
+-------------------------------------------------------------------
+Mon Jan 9 16:10:19 CET 2012 - ohering@suse.de
+
+- fate#310510 - fix xenpaging
+ xenpaging.speedup-page-out.patch
+
+-------------------------------------------------------------------
+Tue Jan 3 08:26:42 MST 2012 - carnold@novell.com
+
+- bnc#735806 - VF doesn't work after hot-plug for many times
+ 24448-x86-pt-irq-leak.patch
+- Upstream patches from Jan
+ 24261-x86-cpuidle-Westmere-EX.patch
+ 24417-amd-erratum-573.patch
+ 24429-mceinj-tool.patch
+ 24447-x86-TXT-INIT-SIPI-delay.patch
+ ioemu-9868-MSI-X.patch
+
+-------------------------------------------------------------------
+Mon Jan 2 10:05:57 CET 2012 - ohering@suse.de
+
+- bnc#732884 - remove private runlevel 4 from init scripts
+ xen.no-default-runlevel-4.patch
+
+-------------------------------------------------------------------
+Mon Dec 19 15:22:13 MST 2011 - carnold@novell.com
+
+- bnc#727515 - Fragmented packets hang network boot of HVM guest
+ ipxe-gcc45-warnings.patch
+ ipxe-ipv4-fragment.patch
+ ipxe-enable-nics.patch
+
+-------------------------------------------------------------------
+Mon Dec 19 12:43:11 CET 2011 - ohering@suse.de
+
+- fate#310510 - fix xenpaging
+ update xenpaging.autostart.patch, make changes with mem-swap-target
+ permanent
+ update xenpaging.doc.patch, mention issues with live migration
+
+-------------------------------------------------------------------
+Thu Dec 15 17:53:51 CET 2011 - ohering@suse.de
+
+- fate#310510 - fix xenpaging
+ add xenpaging.evict_mmap_readonly.patch
+ update xenpaging.error-handling.patch, reduce debug output
+
+-------------------------------------------------------------------
+Thu Dec 15 08:35:27 MST 2011 - carnold@novell.com
+
+- bnc#736824 - Microcode patches for AMD's 15h processors panic the
+ system
+ 24189-x86-p2m-pod-locking.patch
+ 24412-x86-AMD-errata-model-shift.patch
+ 24411-x86-ucode-AMD-Fam15.patch
+
+-------------------------------------------------------------------
+Wed Dec 14 10:08:24 MST 2011 - carnold@novell.com
+
+- bnc#711219 - SR-IOV VF doesn't work in SLES11 sp2 guest
+ 24357-firmware-no-_PS0-_PS3.patch
+- Upstream patches from Jan
+ 24153-x86-emul-feature-checks.patch
+ 24275-x86-emul-lzcnt.patch
+ 24277-x86-dom0-features.patch
+ 24278-x86-dom0-no-PCID.patch
+ 24282-x86-log-dirty-bitmap-leak.patch
+ 24359-x86-domU-features.patch
+ 24360-x86-pv-domU-no-PCID.patch
+ 24389-amd-fam10-gart-tlb-walk-err.patch
+ 24391-x86-pcpu-version.patch
+
+-------------------------------------------------------------------
+Thu Dec 8 14:19:49 CET 2011 - ohering@suse.de
+
+- bnc#729208 - xenpaging=-1 doesn't work
+ xenpaging.doc.patch
+
+-------------------------------------------------------------------
+Thu Dec 8 08:41:36 CET 2011 - ohering@suse.de
+
+- fate#310510 - fix xenpaging
+ readd xenpaging.qemu.flush-cache.patch
+
+-------------------------------------------------------------------
+Wed Dec 7 11:01:43 MST 2011 - jfehlig@suse.com
+
+- bnc#732782 - L3: xm create hangs when maxmen value is enclosed
+ in "quotes"
+ xm-create-maxmem.patch
+
+-------------------------------------------------------------------
+Wed Dec 7 10:44:06 MST 2011 - carnold@novell.com
+
+- Upstream patches / changes from Jan
+ Added 24358-kexec-compat-overflow.patch
+ Removed 24341-x86-64-mmcfg_remove___initdata_annotation_overlooked_in_23749e8d1c8f074ba.patch
+ Removed 24345-tools-libxc_Fix_x86_32_build_breakage_in_previous_changeset..patch
+
+-------------------------------------------------------------------
+Wed Dec 7 16:42:44 CET 2011 - ohering@suse.de
+
+- fate#310510 - fix xenpaging
+ 24178-debug_Add_domain-vcpu_pause_count_info_to_d_key..patch
+ Use wait queues for paging, improve foreign mappings.
+ xenpaging.versioned-interface.patch
+ xenpaging.mmap-before-nominate.patch
+ xenpaging.p2m_is_paged.patch
+ xenpaging.evict_fail_fast_forward.patch
+ xenpaging.error-handling.patch
+ xenpaging.mem_event-use-wait_queue.patch
+ xenpaging.waitqueue-paging.patch
+ Remove obsolete patch, not needed with wait queue usage
+ xenpaging.HVMCOPY_gfn_paged_out.patch
+
+-------------------------------------------------------------------
+Wed Dec 7 16:23:49 CET 2011 - ohering@suse.de
+
+- fate#310510 - fix xenpaging
+ Fix incorrect backport, remove double memset, use xzalloc
+ 24171-x86waitqueue_Allocate_whole_page_for_shadow_stack..patch
+
+-------------------------------------------------------------------
+Wed Dec 7 12:08:31 CET 2011 - ohering@suse.de
+
+- fate#310510 - fix xenpaging
+ fix typo in nominate, use lock instead of double unlock
+ 23905-xenpaging_fix_locking_in_p2m_mem_paging_functions.patch
+
+-------------------------------------------------------------------
+Wed Dec 7 11:07:23 CET 2011 - ohering@suse.de
+
+- fate#310510 - fix xenpaging
+ 24327-After_preparing_a_page_for_page-in_allow_immediate_fill-in_of_the_page_contents.patch
+ 24328-Tools_Libxc_wrappers_to_automatically_fill_in_page_oud_page_contents_on_prepare.patch
+ 24329-Teach_xenpaging_to_use_the_new_and_non-racy_xc_mem_paging_load_interface.patch
+
+-------------------------------------------------------------------
+Tue Dec 6 11:14:51 MST 2011 - jfehlig@suse.com
+
+- bnc#734826 - xm rename doesn't work anymore
+ Updated xend-migration-domname-fix.patch
+
+-------------------------------------------------------------------
+Fri Dec 2 20:35:29 CET 2011 - ohering@suse.de
+
+- fate#310510 - fix xenpaging
+ 24269-mem_event_move_mem_event_domain_out_of_struct_domain.patch
+ 24270-Free_d-mem_event_on_domain_destruction..patch
+
+-------------------------------------------------------------------
+Fri Dec 2 20:25:24 CET 2011 - ohering@suse.de
+
+- fate#310510 - fix xenpaging
+ 24318-x86-mm_Fix_checks_during_foreign_mapping_of_paged_pages.patch
+
+-------------------------------------------------------------------
+Fri Dec 2 20:21:48 CET 2011 - ohering@suse.de
+
+- fate#310510 - fix xenpaging
+ 23949-constify_vcpu_set_affinitys_second_parameter.patch
+
+-------------------------------------------------------------------
+Fri Dec 2 19:36:33 CET 2011 - ohering@suse.de
+
+- fate#310510 - fix xenpaging
+ 24105-xenpaging_compare_domain_pointer_in_p2m_mem_paging_populate.patch
+ 24106-mem_event_check_capabilities_only_once.patch
+
+-------------------------------------------------------------------
+Fri Dec 2 19:02:05 CET 2011 - ohering@suse.de
+
+- fate#310510 - fix xenpaging
+ 24272-xenpaging_Fix_c-s_235070a29c8c3ddf7_update_machine_to_phys_mapping_during_page_deallocation.patch
+
+-------------------------------------------------------------------
+Fri Dec 2 18:46:14 CET 2011 - ohering@suse.de
+
+- bnc#727081 - xend domains don't work anymore since update from 12.1 beta to 12.1 RC 1
+ 24344-tools-x86_64_Fix_cpuid_inline_asm_to_not_clobber_stacks_red_zone.patch
+ 24345-tools-libxc_Fix_x86_32_build_breakage_in_previous_changeset..patch
+
+-------------------------------------------------------------------
+Fri Dec 2 18:42:16 CET 2011 - ohering@suse.de
+
+- bnc#733449 - Panic in mcfg_ioremap when booting xen-dbg.gz on Xeon E3-1230
+ 24341-x86-64-mmcfg_remove___initdata_annotation_overlooked_in_23749e8d1c8f074ba.patch
+
+-------------------------------------------------------------------
+Fri Dec 2 18:21:46 CET 2011 - ohering@suse.de
+
+- fate#310510 - fix xenpaging
+ backport waitqueue changes from xen-unstable
+ 24104-waitqueue_Double_size_of_x86_shadow_stack..patch
+ 24171-x86waitqueue_Allocate_whole_page_for_shadow_stack..patch
+ 24195-waitqueue_Detect_saved-stack_overflow_and_crash_the_guest..patch
+ 24196-waitqueue_Reorder_prepare_to_wait_so_that_vcpu_is_definitely_on_the.patch
+ 24197-x86-waitqueue_Because_we_have_per-cpu_stacks_we_must_wake_up_on_teh.patch
+ 24231-waitqueue_Implement_wake_up_nroneall..patch
+ 24232-waitqueue_Hold_a_reference_to_a_domain_on_a_waitqueue..patch
+
+-------------------------------------------------------------------
+Fri Dec 2 17:32:34 CET 2011 - ohering@suse.de
+
+- fate#310510 - fix xenpaging
+ 24227-xenpaging_restrict_pagefile_permissions.patch
+
+-------------------------------------------------------------------
+Fri Dec 2 17:29:35 CET 2011 - ohering@suse.de
+
+- fate#310510 - fix xenpaging
+ merge upstream version of our existing patches:
+ 24218-libxc_add_bitmap_clear_function.patch
+ remove old versions:
+ xenpaging.bitmap_clear.patch
+
+-------------------------------------------------------------------
+Fri Dec 2 17:04:56 CET 2011 - ohering@suse.de
+
+- fate#310510 - fix xenpaging
+ merge upstream version of our existing patches:
+ 24138-xenpaging_munmap_all_pages_after_page-in.patch
+ 24208-xenpaging_remove_filename_from_comment.patch
+ 24209-xenpaging_remove_obsolete_comment_in_resume_path.patch
+ 24210-xenpaging_use_PERROR_to_print_errno.patch
+ 24211-xenpaging_simplify_file_op.patch
+ 24212-xenpaging_print_gfn_in_failure_case.patch
+ 24213-xenpaging_update_xenpaging_init.patch
+ 24214-xenpaging_remove_xc_dominfo_t_from_paging_t.patch
+ 24215-xenpaging_track_the_number_of_paged-out_pages.patch
+ 24216-xenpaging_move_page_add-resume_loops_into_its_own_function..patch
+ 24217-xenpaging_improve_mainloop_exit_handling.patch
+ 24219-xenpaging_retry_unpageable_gfns.patch
+ 24220-xenpaging_install_into_LIBEXEC_dir.patch
+ 24221-xenpaging_add_XEN_PAGING_DIR_-_libxl_xenpaging_dir_path.patch
+ 24222-xenpaging_use_guests_tot_pages_as_working_target.patch
+ 24223-xenpaging_watch_the_guests_memory-target-tot_pages_xenstore_value.patch
+ 24224-xenpaging_add_cmdline_interface_for_pager.patch
+ 24225-xenpaging_improve_policy_mru_list_handling.patch
+ 24226-xenpaging_add_debug_to_show_received_watch_event..patch
+ remove old versions:
+ xenpaging.XEN_PAGING_DIR.patch
+ xenpaging.add_evict_pages.patch
+ xenpaging.cmdline-interface.patch
+ xenpaging.encapsulate_domain_info.patch
+ xenpaging.file_op-return-code.patch
+ xenpaging.install-to-libexec.patch
+ xenpaging.low_target_policy_nomru.patch
+ xenpaging.main-loop-exit-handling.patch
+ xenpaging.misleading-comment.patch
+ xenpaging.page_in-munmap-size.patch
+ xenpaging.print-gfn.patch
+ xenpaging.record-numer-paged-out-pages.patch
+ xenpaging.reset-uncomsumed.patch
+ xenpaging.stale-comments.patch
+ xenpaging.target-tot_pages.patch
+ xenpaging.use-PERROR.patch
+ xenpaging.watch-target-tot_pages.patch
+ xenpaging.watch_event-DPRINTF.patch
+ xenpaging.xc_interface_open-comment.patch
+
+-------------------------------------------------------------------
+Wed Nov 30 10:48:50 MST 2011 - jfehlig@suse.com
+
+- bnc#733348 - Use 'xm' in various scripts if xend is running.
+ Modified xmclone.sh and xen-updown.sh
+- Only emit xl warning when xend is running and -f (force) flag
+ is not specified.
+ Modified disable-xl-when-using-xend.patch
+
+-------------------------------------------------------------------
+Wed Nov 30 09:43:34 MST 2011 - carnold@novell.com
+
+- Upstream patches from Jan
+ 24190-hap-log-dirty-disable-rc.patch
+ 24193-hap-track-dirty-vram-rc.patch
+ 24201-x86-pcpu-platform-op.patch
+
+-------------------------------------------------------------------
+Tue Nov 22 17:57:07 MST 2011 - carnold@novell.com
+
+- Upstream patches from Jan
+ 23900-xzalloc.patch
+ 24144-cpufreq-turbo-crash.patch
+ 24148-shadow-pgt-dying-op-performance.patch
+ 24155-x86-ioapic-EOI-after-migration.patch
+ 24156-x86-ioapic-shared-vectors.patch
+ 24157-x86-xstate-init.patch
+ 24168-x86-vioapic-clear-remote_irr.patch
+
+-------------------------------------------------------------------
+Sun Nov 22 12:45:13 CST 2011 - cyliu@suse.com
+- submit fixes for bnc#649209 and bnc#711892
+ xl-create-pv-with-qcow2-img.patch
+ update suspend_evtchn_lock.patch
+
+-------------------------------------------------------------------
+Sun Nov 20 20:45:13 CET 2011 - ohering@suse.de
+
+- Update trace.c, merge patches from upstream
+ 23050-xentrace_dynamic_tracebuffer_allocation.patch
+ 23091-xentrace_fix_t_info_pages_calculation..patch
+ 23092-xentrace_print_calculated_numbers_in_calculate_tbuf_size.patch
+ 23093-xentrace_remove_gdprintk_usage_since_they_are_not_in_guest_context.patch
+ 23094-xentrace_update_comments.patch
+ 23095-xentrace_use_consistent_printk_prefix.patch
+ 23128-xentrace_correct_formula_to_calculate_t_info_pages.patch
+ 23129-xentrace_remove_unneeded_debug_printk.patch
+ 23173-xentrace_Move_register_cpu_notifier_call_into_boot-time_init..patch
+ 23239-xentrace_correct_overflow_check_for_number_of_per-cpu_trace_pages.patch
+ 23308-xentrace_Move_the_global_variable_t_info_first_offset_into_calculate_tbuf_size.patch
+ 23309-xentrace_Mark_data_size___read_mostly_because_its_only_written_once.patch
+ 23310-xentrace_Remove_unneeded_cast_when_assigning_pointer_value_to_dst.patch
+ 23404-xentrace_reduce_trace_buffer_size_to_something_mfn_offset_can_reach.patch
+ 23405-xentrace_fix_type_of_offset_to_avoid_ouf-of-bounds_access.patch
+ 23406-xentrace_update___insert_record_to_copy_the_trace_record_to_individual_mfns.patch
+ 23407-xentrace_allocate_non-contiguous_per-cpu_trace_buffers.patch
+ 23643-xentrace_Allow_tracing_to_be_enabled_at_boot.patch
+ 23719-xentrace_update___trace_var_comment.patch
+ Remove old patches:
+ xen-unstable.xentrace.dynamic_tbuf.patch
+ xen-unstable.xentrace.empty_t_info_pages.patch
+ xen-unstable.xentrace.verbose.patch
+ xen-unstable.xentrace.no_gdprintk.patch
+ xen-unstable.xentrace.comments.patch
+ xen-unstable.xentrace.printk_prefix.patch
+ xen-unstable.xentrace.remove_debug_printk.patch
+ xen-unstable.xentrace.t_info_pages-formula.patch
+ xen-unstable.xentrace.register_cpu_notifier-boot_time.patch
+ xen-unstable.xentrace.t_info_page-overflow.patch
+ xen-unstable.xentrace.t_info_first_offset.patch
+ xen-unstable.xentrace.data_size__read_mostly.patch
+ xen-unstable.xentrace.__insert_record-dst-type.patch
+
+-------------------------------------------------------------------
+Mon Nov 14 09:41:46 MST 2011 - carnold@novell.com
+
+- Upstream patches from Jan
+ 24116-x86-continuation-cancel.patch
+ 24123-x86-cpuidle-quiesce.patch
+ 24124-x86-microcode-amd-quiesce.patch
+ 24137-revert-23666.patch
+ 24xxx-shadow-pgt-dying-op-performance.patch
+
+-------------------------------------------------------------------
+Thu Nov 10 17:03:18 MST 2011 - carnold@novell.com
+
+- bnc#722738 - xm cpupool-create errors out
+ xen-cpupool-xl-config-format.patch
+
+-------------------------------------------------------------------
+Fri Nov 4 15:14:09 MDT 2011 - carnold@novell.com
+
+- Fix broken build when building docs
+ 23819-make-docs.patch
+
+-------------------------------------------------------------------
+Fri Nov 4 11:52:22 MDT 2011 - jfehlig@suse.com
+
+- bnc#720054 - Prevent vif-bridge from adding user-created tap
+ interfaces to a bridge
+ 2XXXX-vif-bridge.patch
+
+-------------------------------------------------------------------
+Fri Nov 4 10:11:04 MDT 2011 - carnold@novell.com
+
+- bnc#713503 - DOM0 filesystem commit
+ 23752-x86-shared-IRQ-vector-maps.patch
+ 23754-AMD-perdev-vector-map.patch
+
+-------------------------------------------------------------------
+Thu Nov 3 23:50:31 CET 2011 - ohering@suse.de
+
+- fate#310510 - fix xenpaging
+ This change reverses the task of xenpaging. Before this change a
+ fixed number of pages was paged out. With this change the guest
+ will not have access to more than the given number of pages at
+ the same time.
+ The xenpaging= config option is replaced by actmem=
+ A new xm mem-swap-target is added.
+ The xenpaging binary is moved to /usr/lib/xen/bin/
+ xenpaging.HVMCOPY_gfn_paged_out.patch
+ xenpaging.XEN_PAGING_DIR.patch
+ xenpaging.add_evict_pages.patch
+ xenpaging.bitmap_clear.patch
+ xenpaging.cmdline-interface.patch
+ xenpaging.encapsulate_domain_info.patch
+ xenpaging.file_op-return-code.patch
+ xenpaging.guest-memusage.patch
+ xenpaging.install-to-libexec.patch
+ xenpaging.low_target_policy_nomru.patch
+ xenpaging.main-loop-exit-handling.patch
+ xenpaging.misleading-comment.patch
+ xenpaging.page_in-munmap-size.patch
+ xenpaging.print-gfn.patch
+ xenpaging.record-numer-paged-out-pages.patch
+ xenpaging.reset-uncomsumed.patch
+ xenpaging.stale-comments.patch
+ xenpaging.target-tot_pages.patch
+ xenpaging.use-PERROR.patch
+ xenpaging.watch-target-tot_pages.patch
+ xenpaging.watch_event-DPRINTF.patch
+ xenpaging.xc_interface_open-comment.patch
+
+-------------------------------------------------------------------
+Thu Nov 3 23:32:12 CET 2011 - ohering@suse.de
+
+- xen.spec: update filelist
+ package /usr/lib*/xen with wildcard to pickup new files
+ remove duplicate /usr/sbin/xen-list from filelist
+
+-------------------------------------------------------------------
+Wed Oct 26 10:13:04 MDT 2011 - carnold@novell.com
+
+- bnc#725169 - xen-4.0.2_21511_03-0.5.3: bootup hangs
+ 23993-x86-microcode-amd-fix-23871.patch
+
+-------------------------------------------------------------------
+Wed Oct 26 09:48:14 MDT 2011 - carnold@novell.com
+
+- Update to Xen 4.1.2 FCS c/s 23174
+
+-------------------------------------------------------------------
+Mon Oct 24 09:26:24 MDT 2011 - jfehlig@suse.com
+
+- bnc#720054 - Fix syntax error introduced during recent adjustment
+ of Xen's tap udev rule.
+ Updated udev-rules.patch
+
+-------------------------------------------------------------------
+Thu Oct 20 21:39:08 CEST 2011 - ohering@suse.de
+
+- fate#310510 - fix xenpaging
+ Merge paging related fixes from xen-unstable:
+ 23506-x86_Disable_set_gpfn_from_mfn_until_m2p_table_is_allocated..patch
+ 23507-xenpaging_update_machine_to_phys_mapping_during_page_deallocation.patch
+ 23509-x86_32_Fix_build_Define_machine_to_phys_mapping_valid.patch
+ 23562-xenpaging_remove_unused_spinlock_in_pager.patch
+ 23576-x86_show_page_walk_also_for_early_page_faults.patch
+ 23577-tools_merge_several_bitop_functions_into_xc_bitops.h.patch
+ 23578-xenpaging_add_xs_handle_to_struct_xenpaging.patch
+ 23579-xenpaging_drop_xc.c_remove_ASSERT.patch
+ 23580-xenpaging_drop_xc.c_remove_xc_platform_info_t.patch
+ 23581-xenpaging_drop_xc.c_remove_xc_wait_for_event.patch
+ 23582-xenpaging_drop_xc.c_move_xc_mem_paging_flush_ioemu_cache.patch
+ 23583-xenpaging_drop_xc.c_move_xc_wait_for_event_or_timeout.patch
+ 23584-xenpaging_drop_xc.c_remove_xc_files.patch
+ 23585-xenpaging_correct_dropping_of_pages_to_avoid_full_ring_buffer.patch
+ 23586-xenpaging_do_not_bounce_p2mt_back_to_the_hypervisor.patch
+ 23587-xenpaging_remove_srand_call.patch
+ 23588-xenpaging_remove_return_values_from_functions_that_can_not_fail.patch
+ 23589-xenpaging_catch_xc_mem_paging_resume_errors.patch
+ 23590-xenpaging_remove_local_domain_id_variable.patch
+ 23591-xenpaging_move_num_pages_into_xenpaging_struct.patch
+ 23592-xenpaging_start_paging_in_the_middle_of_gfn_range.patch
+ 23593-xenpaging_pass_integer_to_xenpaging_populate_page.patch
+ 23594-xenpaging_add_helper_function_for_unlinking_pagefile.patch
+ 23595-xenpaging_add_watch_thread_to_catch_guest_shutdown.patch
+ 23596-xenpaging_implement_stopping_of_pager_by_sending_SIGTERM-SIGINT.patch
+ 23597-xenpaging_remove_private_mem_event.h.patch
+ 23599-tools_fix_build_after_recent_xenpaging_changes.patch
+ 23817-mem_event_add_ref_counting_for_free_requestslots.patch
+ 23818-mem_event_use_mem_event_mark_and_pause_in_mem_event_check_ring.patch
+ 23827-xenpaging_use_batch_of_pages_during_final_page-in.patch
+ 23841-mem_event_pass_mem_event_domain_pointer_to_mem_event_functions.patch
+ 23842-mem_event_use_different_ringbuffers_for_share_paging_and_access.patch
+ 23874-xenpaging_track_number_of_paged_pages_in_struct_domain.patch
+ 23904-xenpaging_use_p2m-get_entry_in_p2m_mem_paging_functions.patch
+ 23905-xenpaging_fix_locking_in_p2m_mem_paging_functions.patch
+ 23906-xenpaging_remove_confusing_comment_from_p2m_mem_paging_populate.patch
+ 23908-p2m_query-modify_p2mt_with_p2m_lock_held.patch
+ 23943-xenpaging_clear_page_content_after_evict.patch
+ 23953-xenpaging_handle_evict_failures.patch
+ 23978-xenpaging_check_p2mt_in_p2m_mem_paging_functions.patch
+ 23979-xenpaging_document_p2m_mem_paging_functions.patch
+ 23980-xenpaging_disallow_paging_in_a_PoD_guest.patch
+ Remove obsolete patches:
+ x86-show-page-walk-early.patch
+ xenpaging.23817-mem_event_check_ring.patch
+ xenpaging.catch-xc_mem_paging_resume-error.patch
+ xenpaging.guest_remove_page.slow_path.patch
+ xenpaging.mem_event-no-p2mt.patch
+ xenpaging.no-srand.patch
+ xenpaging.return-void.patch
+ xenpaging.xenpaging_populate_page-gfn.patch
+
+-------------------------------------------------------------------
+Thu Oct 20 20:57:11 CEST 2011 - ohering@suse.de
+
+- xen.spec: use changeset number as patch number for upstream patches
+
+-------------------------------------------------------------------
+Wed Oct 19 11:37:36 UTC 2011 - adrian@suse.de
+
+- do not use runlevel 4 in init scripts, it makes it impossible
+ to "insserv xend" on 12.1
+
+-------------------------------------------------------------------
+Mon Oct 17 11:27:51 MDT 2011 - carnold@novell.com
+
+- Upstream patches from Jan
+ 23955-x86-pv-cpuid-xsave.patch
+ 23957-cpufreq-error-paths.patch
+
+-------------------------------------------------------------------
+Tue Oct 11 09:38:59 MDT 2011 - carnold@novell.com
+
+- Upstream patches from Jan
+ 23933-pt-bus2bridge-update.patch
+ 23726-x86-intel-flexmigration-v2.patch
+ 23925-x86-AMD-ARAT-Fam12.patch
+ 23246-x86-xsave-enable.patch
+ 23897-x86-mce-offline-again.patch
+
+-------------------------------------------------------------------
+Mon Oct 10 09:53:42 MDT 2011 - carnold@novell.com
+
+- Update to Xen 4.1.2_rc3 c/s 23171
+
+-------------------------------------------------------------------
+Thu Oct 6 17:57:56 MDT 2011 - jfehlig@suse.com
+
+- bnc#720054 - Changed /etc/udev/rules.d/40-xen.rules to not run
+ Xen's vif-bridge script when not running Xen. This is not a
+ solution to the bug but an improvement in the rules regardless.
+ Updated udev-rules.patch
+
+-------------------------------------------------------------------
+Tue Oct 4 11:00:56 MDT 2011 - carnold@novell.com
+
+- Upstream patches from Jan
+ 23868-vtd-RMRR-validation.patch
+ 23871-x86-microcode-amd-silent.patch
+ 23898-cc-option-grep.patch
+
+-------------------------------------------------------------------
+Fri Sep 30 12:47:59 MDT 2011 - jfehlig@suse.com
+
+- Add pciback init script and sysconf file, giving users a simple
+ mechanism to configure pciback.
+ init.pciback sysconfig.pciback
+
+-------------------------------------------------------------------
+Fri Sep 23 12:11:23 CEST 2011 - ohering@suse.de
+
+- update scripts to use xl -f, or xm if xend is running:
+ xen-updown.sh, init.xendomains, xmclone.sh
+
+-------------------------------------------------------------------
+Fri Sep 23 11:28:36 CEST 2011 - ohering@suse.de
+
+- bnc#694863 - kexec fails in xen
+ xenstored: allow guest to shutdown all its watches/transactions
+ xenstored.XS_RESET_WATCHES.patch
+
+-------------------------------------------------------------------
+Thu Sep 22 09:33:28 MDT 2011 - carnold@novell.com
+
+- Upstream patches from Jan
+ 23843-scheduler-switch.patch
+ 23846-x86-TSC-check.patch
+ 23848-vmx-conditional-off.patch
+ 23853-x86-pv-cpuid-xsave.patch
+
+-------------------------------------------------------------------
+Fri Sep 16 11:40:28 CEST 2011 - ohering@suse.de
+
+- fate#310510 - fix xenpaging
+ mem_event: add ref counting for free requestslots
+ xenpaging.23817-mem_event_check_ring.patch
+
+-------------------------------------------------------------------
+Wed Sep 14 13:54:21 MDT 2011 - carnold@novell.com
+
+- bnc#717650 - Unable to start VM
+- Update to Xen 4.1.2_rc2 c/s 23152
+
+-------------------------------------------------------------------
+Fri Sep 9 10:44:23 MDT 2011 - jfehlig@suse.com
+
+- bnc#716695 - domUs using tap devices will not start
+ updated multi-xvdp.patch
+
+-------------------------------------------------------------------
+Tue Sep 6 13:11:51 MDT 2011 - carnold@novell.com
+
+- Upstream patches from Jan
+ 23803-intel-pmu-models.patch
+ 23800-x86_64-guest-addr-range.patch
+ 23795-intel-ich10-quirk.patch
+ 23804-x86-IPI-counts.patch
+
+-------------------------------------------------------------------
+Wed Aug 31 09:31:27 MDT 2011 - jfehlig@suse.com
+
+- bnc#706106 - Inconsistent reporting of VM names during migration
+ xend-migration-domname-fix.patch
+
+-------------------------------------------------------------------
+Tue Aug 30 08:50:40 MDT 2011 - carnold@novell.com
+
+- bnc#712823 - L3:Xen guest does not start reliable when rebooted
+ xend-vcpu-affinity-fix.patch
+
+-------------------------------------------------------------------
+Tue Aug 23 08:53:20 MDT 2011 - carnold@novell.com
+
+- Upstream patches from Jan
+ 23725-pci-add-device.patch
+ 23762-iommu-fault-bm-off.patch
+ 23763-pci-multi-seg-x2apic-vtd-no-crash.patch
+ 23765-x86-irq-vector-leak.patch
+ 23766-x86-msi-vf-bars.patch
+ 23771-x86-ioapic-clear-pin.patch
+ 23772-x86-trampoline.patch
+ 23774-x86_64-EFI-EDD.patch
+ 23776-x86-kexec-hpet-legacy-bcast-disable.patch
+ 23781-pm-wide-ACPI-ids.patch
+ 23782-x86-ioapic-clear-irr.patch
+ 23783-ACPI-set-_PDC-bits.patch
+
+-------------------------------------------------------------------
+Mon Aug 15 11:54:08 CEST 2011 - ohering@suse.de
+
+- Include gcc46 only when its available (>11.4 && >sles11sp1)
+
+-------------------------------------------------------------------
+Fri Aug 12 09:43:23 MDT 2011 - carnold@novell.com
+
+- bnc#711943 - [xl] Fail to create multi-guests with NIC assigned
+ 23685-libxl-segfault-fix.patch
+
+-------------------------------------------------------------------
+Thu Aug 11 00:36:17 MDT 2011 - jfehlig@suse.com
+
+- libxenlight and legacy xend toolstack should not be used
+ together. If xend is running, print a warning and exit
+ xl. Add a '-f' (force) option to xl to override this
+ behavior.
+ disable-xl-when-using-xend.patch
+ bnc#707664
+
+-------------------------------------------------------------------
+Wed Aug 10 09:08:28 MDT 2011 - carnold@novell.com
+
+- Upstream patches from Jan
+ 23732-sedf.patch
+ 23735-guest-dom0-cap.patch
+ 23746-vtd-cleanup-timers.patch
+ 23747-mmcfg-base-address.patch
+ 23749-mmcfg-reservation.patch
+
+-------------------------------------------------------------------
+Tue Aug 9 13:38:09 CST 2011 - cyliu@novell.com
+
+- bnc#704160 - crm resource migrate fails with xen machines
+ update snapshot-xend.patch
+- bnc#706574 - xm console DomUName hang after "xm save/restore" of
+ PVM on the latest Xen
+ xend-console-port-restore.patch
+
+-------------------------------------------------------------------
+Tue Aug 9 16:42:23 CEST 2011 - ohering@suse.de
+
+- update xencommons script to run only when needed
+ xencommons-proc-xen.patch
+
+-------------------------------------------------------------------
+Fri Jul 22 09:34:34 MDT 2011 - carnold@novell.com
+
+- Upstream patches from Jan
+ 23726-x86-intel-flexmigration.patch
+ 23706-fix-20892.patch
+ 23723-x86-CMOS-lock.patch
+ 23676-x86_64-image-map-bounds.patch
+ 23724-x86-smpboot-x2apic.patch
+
+-------------------------------------------------------------------
+Mon Jul 11 17:19:53 CEST 2011 - ohering@suse.de
+
+- hotplug.losetup.patch
+ correct dev:inode detection, stat returns major:minor without
+ leading zeros, while losetup -a includes trailing zeros
+
+-------------------------------------------------------------------
+Fri Jul 8 19:13:30 CST 2011 - cyliu@novell.com
+
+- fate#310635: xen npiv multipath support
+ update block-npiv* scripts for testing
+
+-------------------------------------------------------------------
+Thu Jul 7 10:17:08 MDT 2011 - carnold@novell.com
+
+- Fixes for EFI support
+ x86-EFI-discard-comment.patch
+
+-------------------------------------------------------------------
+Wed Jun 29 09:37:05 MDT 2011 - carnold@novell.com
+
+- fate#309894: Xen needs to correctly understand family 15h CPU
+ topology
+- fate#311376: EFI support in SP2
+- fate#311529: Native UEFI booting under Xen (installation)
+ 23074-pfn.h.patch
+ 23571-vtd-fault-verbosity.patch
+ 23574-x86-dom0-compressed-ELF.patch
+ 23575-x86-DMI.patch
+ 23610-x86-topology-info.patch
+ 23611-amd-fam15-topology.patch
+ 23613-EFI-headers.patch
+ 23614-x86_64-EFI-boot.patch
+ 23615-x86_64-EFI-runtime.patch
+ 23616-x86_64-EFI-MPS.patch
+
+-------------------------------------------------------------------
+Wed Jun 29 15:01:54 CEST 2011 - jbeulich@novell.com
+
+- Mark xen-scsi.ko supported (bnc#582265, fate#309459).
+
+-------------------------------------------------------------------
+Tue Jun 28 11:07:10 MDT 2011 - carnold@novell.com
+
+- fate#310308: Hypervisor assisted watchdog driver
+ ioemu-watchdog-support.patch
+ ioemu-watchdog-linkage.patch
+ ioemu-watchdog-ib700-timer.patch
+ tools-watchdog-support.patch
+
+-------------------------------------------------------------------
+Mon Jun 27 09:03:17 MDT 2011 - carnold@novell.com
+
+- bnc#702025 - VUL-0: xen: VT-d (PCI passthrough) MSI trap
+ injection (CVE-2011-1898)
+ Fixed in Xen version 4.1.1
+
+-------------------------------------------------------------------
+Wed Jun 22 18:11:18 CST 2011 - cyliu@novell.com
+
+- fate#310956: Support Direct Kernel Boot for FV guests
+ kernel-boot-hvm.patch
+
+-------------------------------------------------------------------
+Wed Jun 22 13:49:22 CST 2011 - cyliu@novell.com
+
+- fate#310316: Support change vnc password while vm is running
+ change-vnc-passwd.patch
+- fate#310325: Support get domU console log from Dom0
+ log-guest-console.patch
+
+-------------------------------------------------------------------
+Wed Jun 22 11:29:47 CEST 2011 - ohering@suse.de
+
+- fate#311487: remove modprobe.conf files for autoloading of Xen
+ and Hyper-V drivers
+ xen.sles11sp1.fate311487.xen_platform_pci.dmistring.patch
+ add dmi modalias to xen-platform-pci.ko
+
+-------------------------------------------------------------------
+Tue Jun 21 14:21:42 MDT 2011 - carnold@novell.com
+
+- fate#308532: [NONCODE] Remove XEN 32-bit Hypervisor
+ Modify ExclusiveArch in xen.spec to build only x86_64
+
+-------------------------------------------------------------------
+Tue Jun 21 08:03:59 MDT 2011 - carnold@novell.com
+
+- fate#309900 - Add Xen support for SVM Decode Assist in AMD family
+ 15h
+- fate#309902 - Add Xen support for AMD family 12h processors
+- fate#309903 - Add Xen support for AMD family 14h processors
+- fate#309906 - Add Xen support for performance event counters in
+ AMD family 15h
+
+-------------------------------------------------------------------
+Fri Jun 17 06:37:36 MDT 2011 - carnold@novell.com
+
+- fate#309893: Add Xen support for AMD family 15h processors
+- fate#309901: Add Xen support for SVM TSC scaling in AMD family
+ 15h
+- fate#311951: Ivy Bridge: XEN support for Supervisor Mode
+ Execution Protection (SMEP)
+ 23437-amd-fam15-TSC-scaling.patch
+ 23462-libxc-cpu-feature.patch
+ 23481-x86-SMEP.patch
+ 23504-x86-SMEP-hvm.patch
+ 23505-x86-cpu-add-arg-check.patch
+ 23508-vmx-proc-based-ctls-probe.patch
+ 23510-hvm-cpuid-DRNG.patch
+ 23511-amd-fam15-no-flush-for-C3.patch
+ 23516-cpuid-ERMS.patch
+ 23538-hvm-pio-emul-no-host-crash.patch
+ 23539-hvm-cpuid-FSGSBASE.patch
+ 23543-x86_64-maddr_to_virt-assertion.patch
+ 23546-fucomip.patch
+
+-------------------------------------------------------------------
+Wed Jun 15 15:31:17 MDT 2011 - jfehlig@novell.com
+
+- Fix libxc reentrancy issues
+ 23383-libxc-rm-static-vars.patch
+
+-------------------------------------------------------------------
+Wed Jun 15 08:09:53 MDT 2011 - carnold@novell.com
+
+- fate#310957 - Update to Xen 4.1.1 FCS c/s 23079
+
+-------------------------------------------------------------------
+Tue Jun 14 11:26:30 CST 2011 - lidongyang@novell.com
+
+- fate#311000 - Extend Xen domain lock framework to support
+ more alternative
+ xend-domain-lock-sfex.patch
+
+-------------------------------------------------------------------
+Mon Jun 13 14:50:32 CST 2011 - lidongyang@novell.com
+
+- fate#311371 - Enhance yast to configure live migration for
+ Xen and KVM
+ add firewall service file for xen-tools
+
+-------------------------------------------------------------------
+Fri Jun 10 09:14:07 MDT 2011 - jfehlig@novell.com
+
+- Add man page for xen-list utility
+ updated xen-utils-0.1.tar.bz2
+
+-------------------------------------------------------------------
+Thu May 26 06:36:49 MDT 2011 - carnold@novell.com
+
+- Upstream patches from Jan
+ 23233-hvm-cr-access.patch
+ 23234-svm-decode-assist-base.patch
+ 23235-svm-decode-assist-crs.patch
+ 23236-svm-decode-assist-invlpg.patch
+ 23238-svm-decode-assist-insn-fetch.patch
+ 23303-cpufreq-misc.patch
+ 23304-amd-oprofile-strings.patch
+ 23305-amd-fam15-xenoprof.patch
+ 23306-amd-fam15-vpmu.patch
+ 23334-amd-fam12+14-vpmu.patch
+ 23338-vtd-force-intremap.patch
+
+-------------------------------------------------------------------
+Thu May 26 06:27:56 MDT 2011 - carnold@novell.com
+
+- fate#310957 - Update to Xen 4.1.1-rc1 c/s 23064
+
+-------------------------------------------------------------------
+Tue May 24 18:19:04 CEST 2011 - ohering@suse.de
+
+- xentrace: dynamic tracebuffer allocation
+ xen-unstable.xentrace.dynamic_tbuf.patch
+ xen-unstable.xentrace.empty_t_info_pages.patch
+ xen-unstable.xentrace.verbose.patch
+ xen-unstable.xentrace.no_gdprintk.patch
+ xen-unstable.xentrace.comments.patch
+ xen-unstable.xentrace.printk_prefix.patch
+ xen-unstable.xentrace.remove_debug_printk.patch
+ xen-unstable.xentrace.t_info_pages-formula.patch
+ xen-unstable.xentrace.register_cpu_notifier-boot_time.patch
+ xen-unstable.xentrace.t_info_page-overflow.patch
+ xen-unstable.xentrace.t_info_first_offset.patch
+ xen-unstable.xentrace.data_size__read_mostly.patch
+ xen-unstable.xentrace.__insert_record-dst-type.patch
+
+-------------------------------------------------------------------
+Tue May 24 13:51:14 CEST 2011 - ohering@suse.de
+
+- fate#310510 - fix xenpaging
+ update xenpaging patches for xen 4.1
+ xenpaging.guest_remove_page.slow_path.patch
+ xenpaging.mem_event-no-p2mt.patch
+ xenpaging.no-srand.patch
+ xenpaging.return-void.patch
+ xenpaging.catch-xc_mem_paging_resume-error.patch
+ xenpaging.xenpaging_populate_page-gfn.patch
+ xenpaging.autostart.patch
+
+-------------------------------------------------------------------
+Fri May 20 10:48:54 MDT 2011 - carnold@novell.com
+
+- bnc#670465 - When connecting to Xen guest through vncviewer mouse
+ tracking is off.
+- Upstream patch 23298-hvmop-get-mem-type.patch replaces
+ xen.sles11sp1.bug684297.HVMOP_get_mem_type.patch
+- Upstream patches from Jan
+ 23333-hvm-32bit-compat-hypercalls.patch
+ 23337-vtd-malicious-msi-filter.patch
+ 23338-vtd-force-intremap.patch (CVE-2011-1898)
+ 23341-x86-ioapic-write-entry.patch
+ 23343-vtd-error-path-leaks.patch
+
+-------------------------------------------------------------------
+Thu May 19 11:22:51 CEST 2011 - ohering@suse.de
+
+- bnc#684305 - on_crash is being ignored with kdump now working in HVM
+ xend-config-enable-dump-comment.patch
+
+-------------------------------------------------------------------
+Thu May 19 11:19:37 CEST 2011 - ohering@suse.de
+
+- disable xend's logrotation for xend.log, use included logrotate.conf
+
+-------------------------------------------------------------------
+Wed May 18 17:00:16 CEST 2011 - ohering@suse.de
+
+- bnc#684297 - HVM taking too long to dump vmcore
+ xen.sles11sp1.bug684297.HVMOP_get_mem_type.patch
+ new hvm_op hyper call option
+ xen.sles11sp1.bug684297.xen_oldmem_pfn_is_ram.patch
+ Use new Xen HVMOP_get_mem_type hvmop hypercall option and new Linux
+ kernel register_oldmem_pfn_is_ram interface.
+ (depends on two kernel-source changes)
+
+-------------------------------------------------------------------
+Tue May 17 11:31:49 MDT 2011 - carnold@novell.com
+
+- Update to Xen 4.1.1-rc1-pre c/s 23051
+
+-------------------------------------------------------------------
+Thu May 12 21:10:21 MDT 2011 - carnold@novell.com
+
+- Numerous cleanups when compiling with the unused-but-set-variable
+ flag enabled and warnings equal to errors.
+ xen-warnings-unused.diff
+
+-------------------------------------------------------------------
+Thu May 12 08:30:48 MDT 2011 - jfehlig@novell.com
+
+- Add a 'long' option to xen-list utility
+ Updated xen-utils-0.1.tar.bz2
+
+-------------------------------------------------------------------
+Tue May 10 08:53:27 MDT 2011 - jfehlig@novell.com
+
+- bnc#691256 - move modprobe of xen backend modules from xend to
+ xencommons initscript
+ tmp-initscript-modprobe.patch
+
+-------------------------------------------------------------------
+Mon May 9 16:26:06 MDT 2011 - jfehlig@novell.com
+
+- bnc#691738 - Xen does not find device create with npiv block
+ xen-qemu-iscsi-fix.patch
+
+-------------------------------------------------------------------
+Tue May 3 11:11:05 MDT 2011 - carnold@novell.com
+
+- Upstream patches from Jan
+ 22998-x86-get_page_from_l1e-retcode.patch
+ 22999-x86-mod_l1_entry-retcode.patch
+ 23000-x86-mod_l2_entry-retcode.patch
+ 23096-x86-hpet-no-cpumask_lock.patch
+ 23099-x86-rwlock-scalability.patch
+ 23103-x86-pirq-guest-eoi-check.patch
+ 23127-vtd-bios-settings.patch
+ 23153-x86-amd-clear-DramModEn.patch
+ 23154-x86-amd-iorr-no-rdwr.patch
+ 23199-amd-iommu-unmapped-intr-fault.patch
+ 23200-amd-iommu-intremap-sync.patch
+ 23228-x86-conditional-write_tsc.patch
+
+-------------------------------------------------------------------
+Tue May 3 08:54:51 MDT 2011 - carnold@novell.com
+
+- bnc#691238 - L3: question on behaviour change xm list
+ snapshot-xend.patch
+
+-------------------------------------------------------------------
+Mon May 2 12:42:16 CEST 2011 - ohering@suse.de
+
+- update xenalyze to revision 98
+ * Unify setting of vcpu data type
+ * Unify record size checks
+ * Fix cr3_switch not to access hvm struct before it's initialized
+- add xenalyze.gcc46.patch to fix unused-but-set-variable errors
+
+-------------------------------------------------------------------
+Thu Apr 28 10:24:46 MDT 2011 - jfehlig@novell.com
+
+- bnc#688473 - VUL-0: potential buffer overflow in tools
+ cve-2011-1583-4.0.patch
+
+-------------------------------------------------------------------
+Thu Apr 28 17:18:57 CEST 2011 - ohering@suse.de
+
+- hotplug.losetup.patch
+ correct dev:inode detection and use variable expansion
+
+-------------------------------------------------------------------
+Tue Apr 26 11:30:39 MDT 2011 - carnold@novell.com
+
+- bnc#623680 - xen kernel freezes during boot when processor module
+ is loaded
+ 23228-x86-conditional-write_tsc.patch
+- bnc#680824 - dom0 can't recognize boot disk when IOMMU is enabled
+ 23200-amd-iommu-intremap-sync.patch
+- Upstream patches from Jan
+ 23127-vtd-bios-settings.patch
+ 23153-x86-amd-clear-DramModEn.patch
+ 23154-x86-amd-iorr-no-rdwr.patch
+ 23199-amd-iommu-unmapped-intr-fault.patch
+
+-------------------------------------------------------------------
+Thu Apr 21 16:30:30 CEST 2011 - ohering@suse.de
+
+- bnc#685189: update vif-route-ifup.patch to use correct variable
+ after upstream commit 22910:d4bc41a8cecb
+
+-------------------------------------------------------------------
+Wed Apr 20 17:50:04 CEST 2011 - ohering@suse.de
+
+- bnc#688519: correct indention in xend-domain-lock.patch
+
+-------------------------------------------------------------------
+Thu Apr 19 06:43:19 MST 2011 - jfehlig@novell.com
+
+- bnc#687981 - L3: mistyping model type when defining VIF crashes
+ VM
+ xend-validate-nic-model.patch
+
+-------------------------------------------------------------------
+Mon Apr 11 15:55:04 MDT 2011 - jfehlig@suse.de
+
+- bnc#685338: Fix porting of xend-domain-lock.patch
+
+-------------------------------------------------------------------
+Mon Apr 11 19:33:34 CEST 2011 - ohering@suse.de
+
+- update scripts to use xl instead of xm:
+ xen-updown.sh, init.xendomains, xmclone.sh
+
+-------------------------------------------------------------------
+Mon Apr 11 17:34:46 CEST 2011 - ohering@suse.de
+
+- disable xend in openSuSE > 11.4
+ the xl command is the replacement for the xm command
+
+-------------------------------------------------------------------
+Thu Apr 7 18:16:45 CEST 2011 - ohering@suse.de
+
+- mark runlevel scripts as config to preserve local changes by
+ admin or dev during package update
+
+-------------------------------------------------------------------
+Thu Apr 7 18:11:14 CEST 2011 - ohering@suse.de
+
+- enable xencommons runlevel script during upgrade if xend was
+ already enabled
+
+-------------------------------------------------------------------
+Thu Apr 7 17:50:23 CEST 2011 - ohering@suse.de
+
+- call /sbin/ldconfig directly in xen-libs post install scripts
+
+-------------------------------------------------------------------
+Tue Apr 5 10:57:20 MDT 2011 - carnold@novell.com
+
+- Upstream patches from Jan
+ 23103-x86-pirq-guest-eoi-check.patch
+ 23030-x86-hpet-init.patch
+ 23061-amd-iommu-resume.patch
+ 23127-vtd-bios-settings.patch
+
+-------------------------------------------------------------------
+Thu Mar 31 12:41:24 UTC 2011 - coolo@novell.com
+
+- add baselibs.conf as libvirt uses 32bit libraries
+
+-------------------------------------------------------------------
+Tue Mar 29 10:18:09 MDT 2011 - carnold@novell.com
+
+- Remus support is enabled for now.
+
+-------------------------------------------------------------------
+Mon Mar 28 09:28:49 MDT 2011 - carnold@novell.com
+
+- Enable support for kernel decompression for gzip, bzip2, and LZMA
+ so that kernels compressed with any of these methods can be
+ launched
+
+-------------------------------------------------------------------
+Fri Mar 25 09:48:04 MDT 2011 - carnold@novell.com
+
+- Update to Xen 4.1 FCS
+
+-------------------------------------------------------------------
+Thu Mar 24 11:44:17 CET 2011 - ohering@suse.de
+
+- fix xentrace.dynamic_sized_tbuf.patch
+ the default case did not work, correct size calculation
+
+-------------------------------------------------------------------
+Tue Mar 22 15:13:08 MDT 2011 - carnold@novell.com
+
+- Update to c/s 23010 Xen 4.1 rc8
+
+-------------------------------------------------------------------
+Tue Mar 22 10:53:00 CET 2011 - ohering@suse.de
+
+- use _smp_mflags instead of jobs, jobs is not expanded everywhere
+
+-------------------------------------------------------------------
+Mon Mar 21 10:09:50 MDT 2011 - carnold@novell.com
+
+- bnc#681302 - xm create -x <guest> returns "ImportError: No module
+ named ext"
+ xm-create-xflag.patch
+
+-------------------------------------------------------------------
+Thu Mar 17 06:22:30 MDT 2011 - carnold@novell.com
+
+- bnc#675817 - Kernel panic when creating HVM guests on AMD
+ platforms with XSAVE
+ 22462-x86-xsave-init-common.patch
+
+-------------------------------------------------------------------
+Tue Mar 15 09:22:24 MDT 2011 - carnold@novell.com
+
+- bnc#679344 - Xen: multi-vCPU pv guest may crash host
+ 23034-x86-arch_set_info_guest-DoS.patch
+- bnc#678871 - dom0 hangs long time when starting hvm guests with
+ memory >= 64GB
+ 22780-pod-preempt.patch
+- bnc#675363 - Random lockups with kernel-xen. Possibly graphics
+ related
+ 22997-x86-map_pages_to_xen-check.patch
+- Upstream patches from Jan
+ 22949-x86-nmi-pci-serr.patch
+ 22992-x86-fiop-m32i.patch
+ 22996-x86-alloc_xen_pagetable-no-BUG.patch
+ 23020-x86-cpuidle-ordering.patch
+ 23039-csched-constrain-cpu.patch
+
+-------------------------------------------------------------------
+Mon Mar 14 22:20:39 MDT 2011 - jfehlig@novell.com
+
+- Fix xen-utils to cope with xen-unstable c/s 21483
+
+-------------------------------------------------------------------
+Mon Mar 14 10:11:19 MDT 2011 - carnold@novell.com
+
+- bnc#678229 - restore of sles HVM fails
+ 22873-svm-sr-32bit-sysenter-msrs.patch
+
+-------------------------------------------------------------------
+Fri Mar 11 22:28:37 CET 2011 - ohering@suse.de
+
+- xz-devel is available since 11.2, make it optional for SLES11SP1
+
+-------------------------------------------------------------------
+Mon Feb 28 14:07:01 CST 2011 - cyliu@novell.com
+
+- Fix /vm/uuid xenstore leak on tapdisk2 device cleanup
+ 22499-xen-hotplug-cleanup.patch
+
+-------------------------------------------------------------------
+Fri Feb 25 14:07:01 MST 2011 - carnold@novell.com
+
+- Upstream patches from Jan
+ 22872-amd-iommu-pci-reattach.patch
+ 22879-hvm-no-self-set-mem-type.patch
+ 22899-x86-tighten-msr-permissions.patch
+ 22915-x86-hpet-msi-s3.patch
+ 22947-amd-k8-mce-init-all-msrs.patch
+
+-------------------------------------------------------------------
+Thu Feb 17 21:18:19 MST 2011 - jfehlig@novell.com
+
+- bnc#672833 - xen-tools bug causing problems with Ubuntu 10.10
+ under Xen 4.
+ 22238-pygrub-grub2-fix.patch
+
+-------------------------------------------------------------------
+Thu Feb 17 20:06:07 CST 2011 - lidongyang@novell.com
+
+- bnc#665610 - xm console > 1 to same VM messes up both consoles
+ Upstream rejected due to portability concern, see
+ http://lists.xensource.com/archives/html/xen-devel/2011-02/msg00942.html
+ xenconsole-no-multiple-connections.patch
+
+-------------------------------------------------------------------
+Fri Feb 11 11:50:20 MST 2011 - carnold@novell.com
+
+- Enable support for kernel decompression for gzip, bzip2, and LZMA
+ so that kernels compressed with any of these methods can be
+ launched.
+
+-------------------------------------------------------------------
+Tue Feb 10 14:12:46 CST 2011 - lidongyang@novell.com
+
+- bnc#651822 - xm snapshot-xxx scripts lead to an XP SP3 HVM domU
+ to chkdsk
+ Make sure we only apply the snapshot once, and the changes made
+ after snapshot-apply hit the disk.
+
+-------------------------------------------------------------------
+Wed Feb 9 16:38:12 MST 2011 - carnold@novell.com
+
+- Update to Xen 4.1.0 c/s 22861
+
+-------------------------------------------------------------------
+Tue Feb 8 16:02:46 MST 2011 - jfehlig@novell.com
+
+- bnc#658569 - SLES 11 SP1 dom0 iptables gives lots of physdev
+ messages
+ 22385-vif-common.patch
+
+-------------------------------------------------------------------
+Mon Feb 7 13:25:04 CET 2011 - ohering@suse.de
+
+- update xenalyze, more 64bit fixes
+
+-------------------------------------------------------------------
+Mon Feb 7 13:17:12 CET 2011 - ohering@suse.de
+
+- allocate xentrace buffer metadata based on requested tbuf_size
+ xentrace.dynamic_sized_tbuf.patch
+
+-------------------------------------------------------------------
+Mon Feb 7 13:07:43 CET 2011 - ohering@suse.de
+
+- fate#310510 - fix xenpaging
+ xenpaging.runtime_mru_size.patch
+ - specify policy mru size at runtime
+ xenpaging.no_domain_id.patch
+ - reduce memory usage in pager
+
+-------------------------------------------------------------------
+Mon Feb 7 13:01:03 CET 2011 - ohering@suse.de
+
+- bnc#625394 - set vif mtu from bridge mtu if kernel supports it
+ vif-bridge.mtu.patch
+
+-------------------------------------------------------------------
+Sun Feb 6 15:46:43 CET 2011 - ohering@suse.de
+
+- fate#310510 - fix xenpaging
+ xenpaging.autostart_delay.patch
+ - decouple create/destroycreateXenPaging from _create/_removeDevices
+ - change xenpaging variable from int to str
+ - init xenpaging variable to 0 if xenpaging is not in config file
+ to avoid string None coming from sxp file
+
+-------------------------------------------------------------------
+Tue Feb 1 16:01:45 MST 2011 - carnold@novell.com
+
+- Update to Xen 4.0.2 rc2-pre, changeset 21443
+
+-------------------------------------------------------------------
+Mon Jan 31 10:45:21 MST 2011 - carnold@novell.com
+
+- bnc#633573 - System fail to boot after running several warm
+ reboot tests
+ 22749-vtd-workarounds.patch
+- Upstream patches from Jan
+ 22744-ept-pod-locking.patch
+ 22777-vtd-ats-fixes.patch
+ 22781-pod-hap-logdirty.patch
+ 22782-x86-emul-smsw.patch
+ 22789-i386-no-x2apic.patch
+ 22790-svm-resume-migrate-pirqs.patch
+ 22816-x86-pirq-drop-priv-check.patch
+
+-------------------------------------------------------------------
+Thu Jan 27 06:23:35 MST 2011 - carnold@novell.com
+
+- Don't pass the deprecataed extid parameter to xc.hvm_build
+
+-------------------------------------------------------------------
+Fri Jan 14 08:29:15 MST 2011 - carnold@novell.com
+
+- bnc#658704 - SLES11 SP1 Xen boot panic in x2apic mode
+ 22707-x2apic-preenabled-check.patch
+- bnc#641419 - L3: Xen: qemu-dm reports "xc_map_foreign_batch: mmap failed:
+ Cannot allocate memory"
+ 7434-qemu-rlimit-as.patch
+- Additional or upstream patches from Jan
+ 22693-fam10-mmio-conf-base-protect.patch
+ 22694-x86_64-no-weak.patch
+ 22708-xenctx-misc.patch
+ 21432-4.0-cpu-boot-failure.patch
+ 22645-amd-flush-filter.patch
+ qemu-fix-7433.patch
+
+-------------------------------------------------------------------
+Wed Jan 12 21:28:18 MST 2011 - carnold@novell.com
+
+- Maintain compatibility with the extid flag even though it is
+ deprecated for both legacy and sxp config files.
+ hv_extid_compatibility.patch
+
+-------------------------------------------------------------------
+Wed Jan 12 16:08:10 CST 2011 - cyliu@novell.com
+
+- bnc#649209-improve suspend eventchn lock
+ suspend_evtchn_lock.patch
+
+-------------------------------------------------------------------
+Tue Jan 11 11:48:10 MST 2011 - carnold@novell.com
+
+- Removed the hyper-v shim patches in favor of using the upstream
+ version.
+
+-------------------------------------------------------------------
+Mon Jan 10 21:15:43 MST 2011 - carnold@novell.com
+
+- bnc#641419 - L3: Xen: qemu-dm reports "xc_map_foreign_batch: mmap
+ failed: Cannot allocate memory"
+ qemu-rlimit-as.patch
+
+-------------------------------------------------------------------
+Mon Jan 10 15:23:18 CST 2011 - cyliu@novell.com
+
+- Upstream c/s 7433 to replace qemu_altgr_more.patch
+ 7433-qemu-altgr.patch
+
+-------------------------------------------------------------------
+Fri Jan 7 16:13:24 MST 2011 - jfehlig@novell.com
+
+- bnc#661931 - Fix fd leak in xenstore library
+ 21344-4.0-testing-xenstore-fd-leak.patch
+
+-------------------------------------------------------------------
+Tue Jan 4 18:06:31 MST 2011 - carnold@novell.com
+
+- bnc#656369 - g5plus: sles11sp1 xen crash with 8 socket x2apic
+ preenabled
+ 21989-x2apic-resume.patch
+ 22475-x2apic-cleanup.patch
+ 22535-x2apic-preenabled.patch
+- bnc#658163 - maintenance release - Nehalem system cannot boot
+ into xen with maintenance release installed
+ 22504-iommu-dom0-holes.patch
+ 22506-x86-iommu-dom0-estimate.patch
+- bnc#658704 - SLES11 SP1 Xen boot panic in x2apic mode
+ 21810-x2apic-acpi.patch
+- Upstream patches from Jan
+ 22470-vlapic-tick-loss.patch
+ 22484-vlapic-tmcct-periodic.patch
+ 22526-ept-access-once.patch
+ 22533-x86-32bit-apicid.patch
+ 22534-x86-max-local-apic.patch
+ 22538-keyhandler-relax.patch
+ 22540-32on64-hypercall-debug.patch
+ 22549-vtd-map-page-leak.patch
+ 22574-ept-skip-validation.patch
+ 22632-vtd-print-entries.patch
+
+-------------------------------------------------------------------
+Tue Jan 4 16:53:54 MST 2011 - carnold@novell.com
+
+- bnc#661298 - maintenance release candidate - Windows VMs reboot
+ too fast, triggering failsafe
+ xen-minimum-restart-time.patch
+
+-------------------------------------------------------------------
+Tue Jan 4 10:23:18 CST 2011 - cyliu@novell.com
+
+- bnc#659070 - Fail to input '|' in en-us keyboard
+ qemu_altgr_more.patch
+
+-------------------------------------------------------------------
+Tue Dec 28 11:23:18 MST 2010 - jfehlig@novell.com
+
+- bnc#659466 - XEN drbd block device type not working on SLES 11 SP1
+ 20158-revert.patch
+
+-------------------------------------------------------------------
+Mon Dec 27 15:35:04 MST 2010 - jfehlig@novell.com
+
+- Revert changes made to snapshot-xend.patch and
+ snapshot-ioemu-restore.patch made on 2010-11-19. The changes
+ were intended to fix bnc#651822, but testing revealed additional
+ changes were needed to completely resolve the bug. bnc#651822
+ will be fixed in a subsequent maintenance release.
+
+-------------------------------------------------------------------
+Mon Dec 27 14:43:13 CST 2010 - lidongyang@novell.com
+
+- bnc#654543 - PV guest won't unplug the IDE disk created by
+ qemu-dm
+ a dirty hack, only add the device to drives_table[] if we are FV
+ domU, that will be unplugged anyway if a PV driver is loaded
+ later.
+ ioemu-disable-emulated-ide-if-pv.patch
+
+-------------------------------------------------------------------
+Wed Dec 22 11:31:52 CST 2010 - cyliu@novell.com
+
+- Upstream patch to replace xenfb_32bpp.patch
+ 7426-xenfb-depth.patch
+
+-------------------------------------------------------------------
+Tue Dec 21 11:31:52 CST 2010 - lidongyang@novell.com
+
+- bnc#651822 make sure we only apply the snapshot once, and the
+ changes made after snapshot-apply hit the disk.
+ snapshot-xend.patch
+ snapshot-without-pv-fix.patch
+
+-------------------------------------------------------------------
+Fri Dec 17 14:34:18 CET 2010 - ohering@suse.de
+
+- fate#310510 - fix xenpaging
+ xenpaging.HVMCOPY_gfn_paged_out.patch
+ - remove incorrect and unneeded cleanup from do_memory_op
+ subfunctions
+ add mainline tag to merged patches
+
+-------------------------------------------------------------------
+Thu Dec 16 17:29:11 MST 2010 - jfehlig@novell.com
+
+- bnc#613584 - If available, use kpartx '-f' option in domUloader
+
+-------------------------------------------------------------------
+Thu Dec 16 10:14:47 MST 2010 - jfehlig@novell.com
+
+- bnc#659872 - xend: Do no release domain lock on checkpoint
+ operation.
+
+-------------------------------------------------------------------
+Tue Dec 14 11:59:26 MST 2010 - carnold@novell.com
+
+- Upstream patches from Jan
+ 22431-p2m-remove-bug-check.patch
+ 22448-x86_64-gdt-ldt-fault-filter.patch
+ 22466-x86-sis-apic-bug.patch
+ 22451-hvm-cap-clobber.patch
+ 22388-x2apic-panic.patch
+ 22452-x86-irq-migrate-directed-eoi.patch
+
+-------------------------------------------------------------------
+Tue Dec 14 10:39:56 MST 2010 - carnold@novell.com
+
+- bnc#658163 - maintenance release - Nehalem system cannot boot
+ into xen with maintenance release installed
+ iommu-dom0-holes.patch
+ x86-iommu-dom0-estimate.patch
+
+-------------------------------------------------------------------
+Tue Dec 14 10:35:52 MST 2010 - carnold@novell.com
+
+- bnc#659085 - physical host is rebooted with unknown reason
+ Regression: Remove the patch 22071-ept-get-entry-lock.patch
+
+-------------------------------------------------------------------
+Tue Dec 13 10:27:04 MST 2010 - carnold@novell.com
+
+- Removed 7410-qemu-alt-gr.patch and altgr_2.patch. It causes a
+ regression (see bnc#659070)
+
+-------------------------------------------------------------------
+Tue Dec 7 15:38:58 CET 2010 - ohering@suse.de
+
+- make stubdom build optional
+
+-------------------------------------------------------------------
+Tue Dec 7 15:14:12 CET 2010 - ohering@suse.de
+
+- pass -j N to stubdom build
+
+-------------------------------------------------------------------
+Tue Dec 7 14:56:31 CET 2010 - ohering@suse.de
+
+- add xenalzye from http://xenbits.xensource.com/ext/xenalyze.hg
+
+-------------------------------------------------------------------
+Tue Dec 7 14:25:54 CET 2010 - ohering@suse.de
+
+- hotplug-block-losetup-a.patch
+ allow hardlinked blockdevices
+- fate#310510 - fix xenpaging
+ xenpaging.paging_prep_enomem.patch
+ - retry page-in if guest is temporary out-of-memory
+ xenpaging.print-arguments.patch
+ - print arguments passed to xenpaging
+ xenpaging.machine_to_phys_mapping.patch
+ - invalidate array during page deallocation
+ xenpaging.autostart_delay.patch
+ - fold xenpaging.enabled.patch into this patch
+ - set xenpaging_delay to 0.0 to start xenpaging right away
+
+-------------------------------------------------------------------
+Fri Dec 3 15:57:58 MST 2010 - carnold@novell.com
+
+- bnc#654591 - SLES11 SP0->Sp1 regression? (Xen, HVMs, NPIV)
+ Fixed xen-qemu-iscsi-fix.patch
+
+-------------------------------------------------------------------
+Fri Dec 3 14:50:01 CST 2010 - cyliu@novell.com
+
+- blktap2 patch - fix problem that blktap2 device info not cleared
+ when block-attach fail.
+ blktap2.patch
+
+-------------------------------------------------------------------
+Tue Nov 30 13:44:35 MST 2010 - carnold@novell.com
+
+- bnc#655438 - Using performance counter in domU on Nehalem cpus
+ 22417-vpmu-nehalem.patch
+- Upstream patches from Jan
+ 22389-amd-iommu-decls.patch
+ 22416-acpi-check-mwait.patch
+ 22431-p2m-remove-bug-check.patch
+
+-------------------------------------------------------------------
+Tue Nov 30 06:46:28 MST 2010 - carnold@novell.com
+
+- bnc#656245 - VUL-1: hypervisor: application or kernel in any pv
+ Xen domain can crash Xen
+ x86_64-gdt-ldt-fault-filter.patch
+
+-------------------------------------------------------------------
+Mon Nov 29 10:06:49 MST 2010 - carnold@novell.com
+
+- bnc#654050 - Python: a crasher bug in pyexpat - upstream patch
+ needs backporting
+ 22235-lxml-validator.patch
+
+-------------------------------------------------------------------
+Tue Nov 23 15:46:09 MST 2010 - jfehlig@novell.com
+
+- bnc#628729 - Add a small, fast alternative to 'xm list' for
+ enumerating active domains. xen-list is a C program that uses
+ libxenstore and libxenctl directly, bypassing the python
+ toolstack.
+ xen-utils-0.1.tar.bz2
+
+-------------------------------------------------------------------
+Mon Nov 22 11:51:30 MST 2010 - jfehlig@novell.com
+
+- bnc#628729 - Add a small, fast alternative to 'xm list' for
+ enumerating active domains. xen-list is a C program that uses
+ libxenstore and libxenctl directly, bypassing the python
+ toolstack.
+ xen-utils-0.1.tar.bz2
+
+-------------------------------------------------------------------
+Fri Nov 19 11:48:43 CST 2010 - lidongyang@novell.com
+
+- bnc#651822 - xm snapshot-xxx scripts lead to an XP SP3 HVM domU
+ to chkdsk
+ snapshot-xend.patch
+ snapshot-ioemu-restore.patch
+
+-------------------------------------------------------------------
+Wed Nov 17 15:20:02 MST 2010 - carnold@novell.com
+
+- bnc#651957 - Xen: vm-install failed to start
+ xenpaging.enabled.patch
+
+-------------------------------------------------------------------
+Wed Nov 17 10:35:52 CET 2010 - ohering@suse.de
+
+- fate#310510 - fix xenpaging
+ xenpaging.signal_handling.patch
+ - unlink pagefile in signal handler
+
+-------------------------------------------------------------------
+Fri Nov 12 09:48:14 MST 2010 - carnold@novell.com
+
+- Upstream patch for python 2.7 compatibility
+ 22045-python27-compat.patch
+
+-------------------------------------------------------------------
+Thu Nov 11 18:44:48 CST 2010 - cyliu@novell.com
+
+- bnc#641144 - FV Xen VM running windows or linux cannot write to
+ virtual floppy drive
+ bdrv_default_rwflag.patch
+
+-------------------------------------------------------------------
+Thu Nov 11 21:01:12 CET 2010 - ohering@suse.de
+
+- fate#310510 - fix xenpaging
+ xenpaging.optimize_p2m_mem_paging_populate.patch
+ xenpaging.HVMCOPY_gfn_paged_out.patch
+
+-------------------------------------------------------------------
+Thu Nov 11 10:11:35 MST 2010 - carnold@novell.com
+
+- bnc#649864 - automatic numa cpu placement of xen conflicts with
+ cpupools
+ 22326-cpu-pools-numa-placement.patch
+
+-------------------------------------------------------------------
+Wed Nov 10 17:38:39 CET 2010 - ohering@suse.de
+
+- fate#310510 - fix xenpaging
+ xenpaging.populate_only_if_paged.patch
+ - revert logic, populate needs to happen unconditionally
+ xenpaging.p2m_mem_paging_populate_if_p2m_ram_paged.patch
+ - invalidate current mfn only if gfn is not in flight or done
+ xenpaging.mem_event_check_ring-free_requests.patch
+ - print info only if 1 instead of 2 slots are free
+ xenpaging.guest_remove_page.patch
+ - check mfn before usage in resume function
+ xenpaging.machine_to_phys_mapping.patch
+ - check mfn before usage in resume function
+
+-------------------------------------------------------------------
+Tue Nov 9 10:00:48 MST 2010 - jfehlig@novell.com
+
+- bnc#552115 - Remove target discovery in block-iscsi
+ modified block-iscsi script
+
+-------------------------------------------------------------------
+Mon Nov 8 13:11:02 MDT 2010 - jfehlig@novell.com
+
+- bnc#649277 - Fix pci passthru in xend interface used by libvirt
+ 22369-xend-pci-passthru-fix.patch
+
+-------------------------------------------------------------------
+Mon Nov 8 02:49:00 UTC 2010 - lidongyang@novell.com
+
+- bnc#642078 - xm snapshot-create causes qemu-dm to SEGV
+ snapshot-without-pv-fix.patch
+
+-------------------------------------------------------------------
+Fri Nov 5 16:22:15 CET 2010 - ohering@suse.de
+
+- fate#310510 - fix xenpaging
+ xenpaging.num_pages_equal_max_pages.patch
+
+-------------------------------------------------------------------
+Fri Nov 5 09:13:38 MDT 2010 - carnold@novell.com
+
+- bnc#647681 - L3: Passthrough of certain PCI device broken after
+ SLES 11 to SP1 upgrade
+- bnc#650871 - Regression in Xen PCI Passthrough
+ 22348-vtd-check-secbus-devfn.patch
+- Upstream patches from Jan
+ 22223-vtd-workarounds.patch (bnc#652935)
+ 22231-x86-pv-ucode-msr-intel.patch
+ 22232-x86-64-lahf-lm-bios-workaround.patch
+ 22280-kexec.patch
+ 22337-vtd-scan-single-func.patch
+
+-------------------------------------------------------------------
+Wed Nov 3 16:26:10 MDT 2010 - carnold@novell.com
+
+- bnc#497149 - SLES11 64bit Xen - SLES11 64bit HVM guest has
+ corrupt text console
+ stdvga-cache.patch
+
+-------------------------------------------------------------------
+Wed Nov 3 17:52:14 CET 2010 - ohering@suse.de
+
+- fate#310510 - fix xenpaging
+ xenpaging.page_already_populated.patch
+ xenpaging.notify_policy_only_once.patch
+ xenpaging.guest_remove_page.patch
+ xenpaging.machine_to_phys_mapping.patch
+ remove xenpaging.memory_op.patch, retry loops are not needed
+
+-------------------------------------------------------------------
+Tue Nov 2 14:10:34 MDT 2010 - carnold@novell.com
+
+- bnc#474789 - xen-tools 3.3 rpm misses pv-grub
+- PV-GRUB replaces PyGrub to boot domU images safely: it runs the
+ regular grub inside the created domain itself and uses regular
+ domU facilities to read the disk / fetch files from network etc.;
+ it eventually loads the PV kernel and chain-boots it.
+
+-------------------------------------------------------------------
+Wed Oct 27 20:08:51 CEST 2010 - ohering@suse.de
+
+- fate#310510 - fix xenpaging
+ xenpaging.doc.patch
+- add /var/lib/xen/xenpaging directory
+
+-------------------------------------------------------------------
+Wed Oct 27 11:50:17 MDT 2010 - ksrinivasan@novell.com
+
+- Some cleanup in the APIC handling code in the HyperV shim.
+ hv_apic.patch
+
+-------------------------------------------------------------------
+Wed Oct 27 18:04:30 CEST 2010 - ohering@suse.de
+
+- fate#310510 - fix xenpaging
+ xenpaging.memory_op.patch, correct delay handling in retry loop
+
+-------------------------------------------------------------------
+Wed Oct 27 03:56:38 EDT 2010 - cyliu@novell.com
+
+- bnc#640370 - VM graphic console in VNC is corrupted
+ xenfb_32bpp.patch
+
+-------------------------------------------------------------------
+Fri Oct 22 13:34:54 CEST 2010 - ohering@suse.de
+
+- fate#310510 - fix xenpaging
+ xenpaging.autostart_delay.patch
+ delay start of xenpaging 7 seconds for smooth BIOS startup
+
+-------------------------------------------------------------------
+Wed Oct 20 15:50:01 CEST 2010 - ohering@suse.de
+
+- fate#310510 - fix xenpaging
+ xenpaging.tools_xenpaging_cleanup.patch
+
+-------------------------------------------------------------------
+Wed Oct 20 15:31:47 CEST 2010 - ohering@suse.de
+
+- fate#310510 - fix xenpaging
+ xenpaging.mem_event_check_ring-free_requests.patch
+
+-------------------------------------------------------------------
+Wed Oct 20 15:29:40 CEST 2010 - ohering@suse.de
+
+- install /etc/xen/examples/xentrace_formats.txt to get human readable
+ tracedata if xenalyze is not used
+
+-------------------------------------------------------------------
+Sun Oct 17 11:14:33 CEST 2010 - ohering@suse.de
+
+- fate#310510 - fix xenpaging
+ xenpaging.autostart_delay.patch
+ xenpaging.blacklist.patch
+ xenpaging.MRU_SIZE.patch
+ remove xenpaging.hacks.patch, realmode works
+
+-------------------------------------------------------------------
+Mon Oct 11 08:59:35 MDT 2010 - carnold@novell.com
+
+- Upstream patches from Jan including fixes for the following bugs
+ bnc#583568 - Xen kernel is not booting
+ bnc#615206 - Xen kernel fails to boot with IO-APIC problem
+ bnc#640773 - Xen kernel crashing right after grub
+ bnc#643477 - issues with PCI hotplug/hotunplug to Xen driver domain
+ 22222-x86-timer-extint.patch
+ 22214-x86-msr-misc-enable.patch
+ 22213-x86-xsave-cpuid-check.patch
+ 22194-tmem-check-pv-mfn.patch
+ 22177-i386-irq-safe-map_domain_page.patch
+ 22175-x86-irq-enter-exit.patch
+ 22174-x86-pmtimer-accuracy.patch
+ 22160-Intel-C6-EOI.patch
+ 22159-notify-evtchn-dying.patch
+ 22157-x86-debug-key-i.patch
+
+-------------------------------------------------------------------
+Mon Oct 11 16:03:23 CEST 2010 - ohering@suse.de
+
+- fate#310510 - fix xenpaging
+ xenpaging.signal_handling.patch
+ xenpaging.autostart.patch
+ xenpaging.hacks.patch
+
+-------------------------------------------------------------------
+Mon Oct 11 15:42:02 CEST 2010 - ohering@suse.de
+
+- rename xenpaging.XENMEM_decrease_reservation.patch
+ to xenpaging.memory_op.patch
+
+-------------------------------------------------------------------
+Tue Oct 8 14:11:31 CST 2010 - cyliu@novell.com
+
+- bnc#632956 - fix VNC altgr-insert behavior
+ 7410-qemu-alt-gr.patch
+ altgr_2.patch
+
+-------------------------------------------------------------------
+Thu Oct 7 10:58:39 MDT 2010 - jfehlig@novell.com
+
+- bnc#618087 - VNC view won't stay connected to fully virtualized
+ Linux Xen VMs
+ modified ioemu-vnc-resize.patch
+
+-------------------------------------------------------------------
+Tue Oct 5 09:34:20 MDT 2010 - carnold@novell.com
+
+- bnc#639546 - Dom-U deleted after introduction of the parameter
+ "change_home_server False" in the VM configuration
+ change_home_server.patch
+
+-------------------------------------------------------------------
+Mon Oct 4 09:06:41 MDT 2010 - jfehlig@novell.com
+
+- bnc#641859 - block-dmmd script does not handle the configuration
+ when only MD is used
+ modified block-dmmd script
+
+-------------------------------------------------------------------
+Thu Sep 30 17:52:55 CEST 2010 - ohering@suse.de
+
+- fate#310510 - fix xenpaging
+ xenpaging.populate_only_if_paged.patch
+
+-------------------------------------------------------------------
+Mon Sep 27 09:59:37 MDT 2010 - carnold@novell.com
+
+- bnc#640773 - Xen kernel crashing right after grub
+ 21894-intel-unmask-cpuid.patch
+- Upstream patch from Jan
+ 22148-serial-irq-dest.patch
+
+-------------------------------------------------------------------
+Tue Sep 23 16:45:11 CST 2010 - cyliu@novell.com
+
+- bnc#628719 - improve check_device_status to handle HA cases
+ check_device_status.patch
+
+-------------------------------------------------------------------
+Tue Sep 23 16:43:11 CST 2010 - cyliu@novell.com
+
+- bnc#628719 - multi-xvdp
+ mutli-xvdp.patch
+
+-------------------------------------------------------------------
+Wed Sep 22 10:50:20 CEST 2010 - ohering@suse.de
+
+- fate#310510 - fix xenpaging
+ xenpaging.XENMEM_decrease_reservation.patch
+ xenpaging.xenpaging_init.patch
+ xenpaging.policy_linear.patch
+
+-------------------------------------------------------------------
+Tue Sep 20 14:11:31 CST 2010 - cyliu@novell.com
+
+- bnc#632956 - fix VNC altgr-insert behavior
+ 7410-qemu-alt-gr.patch
+ altgr_2.patch
+
+-------------------------------------------------------------------
+Fri Sep 17 15:59:45 CEST 2010 - ohering@suse.de
+
+- fate#310510 - fix xenpaging
+ xenpaging.pageout_policy.patch
+ xenpaging.xs_daemon_close.patch
+ xenpaging.pagefile.patch
+ xenpaging.mem_paging_tool_qemu_flush_cache.patch
+ xenpaging.get_paged_frame.patch
+ xenpaging.notify_via_xen_event_channel.patch
+
+-------------------------------------------------------------------
+Mon Sep 13 16:24:31 MDT 2010 - carnold@novell.com
+
+- bnc#636231 - XEN: Unable to disconnect/remove CDROM drive from VM
+ xend-devid-or-name.patch
+
+-------------------------------------------------------------------
+Mon Sep 13 10:50:56 MDT 2010 - carnold@novell.com
+
+- Upstream patches from Jan
+ 22019-x86-cpuidle-online-check.patch
+ 22051-x86-forced-EOI.patch
+ 22067-x86-irq-domain.patch
+ 22068-vtd-irte-RH-bit.patch
+ 22071-ept-get-entry-lock.patch
+ 22084-x86-xsave-off.patch
+
+-------------------------------------------------------------------
+Mon Sep 13 10:47:09 MDT 2010 - carnold@novell.com
+
+- bnc#638465 - hypervisor panic in memory handling
+ 22135-heap-lock.patch
+
+-------------------------------------------------------------------
+Thu Sep 10 14:14:50 MDT 2010 - carnold@novell.com
+
+- Update to Xen 4.0.1. This is a bug fix release.
+
+-------------------------------------------------------------------
+Thu Sep 9 16:42:43 MDT 2010 - jfehlig@novell.com
+
+- bnc#635380 - Fix pygrub Grub2 support
+ See update to Xen 4.0.1 for fixes
+
+-------------------------------------------------------------------
+Fri Aug 27 16:22:48 CST 2010 - cyliu@novell.com
+
+- bnc#628701 - Improve performance when activate/deactivate dmmd
+ devices
+ modified block-dmmd script
+
+-------------------------------------------------------------------
+Wed Aug 25 16:18:39 MDT 2010 - jfehlig@novell.com
+
+- bnc#628701 - Fix qemu-dm handling of dmmd devices
+ modified xen-qemu-iscsi-fix.patch
+
+-------------------------------------------------------------------
+Mon Aug 16 18:35:11 MDT 2010 - carnold@novell.com
+
+- bnc#626262 - Populate-on-demand memory problem on xen with hvm
+ guest
+ 21971-pod-accounting.patch
+
+-------------------------------------------------------------------
+Mon Aug 16 17:03:58 CST 2010 - cyliu@novell.com
+
+- bnc#584204 - xm usb-list broken
+ usb-list.patch
+
+-------------------------------------------------------------------
+Thu Aug 12 06:13:44 MDT 2010 - carnold@novell.com
+
+- bnc#625520 - TP-L3: NMI cannot be triggered for xen kernel
+ 21926-x86-pv-NMI-inject.patch
+
+-------------------------------------------------------------------
+Mon Aug 9 09:47:09 MDT 2010 - carnold@novell.com
+
+- bnc#613529 - TP-L3: kdump kernel hangs when crash was initiated
+ from xen kernel
+ 21886-kexec-shutdown.patch
+
+-------------------------------------------------------------------
+Mon Aug 2 16:42:41 MDT 2010 - carnold@novell.com
+
+- Upstream Intel patches to improve X2APIC handling.
+ 21716-iommu-alloc.patch
+ 21717-ir-qi.patch
+ 21718-x2apic-logic.patch
+
+-------------------------------------------------------------------
+Tue Jul 27 16:23:09 MDT 2010 - jfehlig@novell.com
+
+- bnc#623833 - Error in Xend-API method VM_set_actions_after_crash
+ 21866-xenapi.patch
+
+-------------------------------------------------------------------
+Tue Jul 27 15:37:51 MDT 2010 - jfehlig@novell.com
+
+- bnc#625003 - Fix vm config options coredump-{restart,destroy}
+ Added hunk to xm-create-xflag.patch
+
+-------------------------------------------------------------------
+Mon Jul 26 16:53:02 MDT 2010 - jfehlig@novell.com
+
+- bnc#605186 - Squelch harmless error messages in block-iscsi
+
+-------------------------------------------------------------------
+Mon Jul 26 16:22:56 MDT 2010 - jfehlig@novell.com
+
+- bnc#623438 - Add ability to control SCSI device path scanning
+ in xend
+ 21847-pscsi.patch
+
+-------------------------------------------------------------------
+Mon Jul 26 16:01:07 MDT 2010 - carnold@novell.com
+
+- Enable the packaging of create.dtd. This is needed for when xm
+ is configured to use xenapi.
+
+-------------------------------------------------------------------
+Wed Jul 21 11:46:41 MDT 2010 - carnold@novell.com
+
+- bnc#624285 - TP-L3: xen rdtsc emulation reports wrong frequency
+ 21445-x86-tsc-handling-cleanups-v2.patch
+
+-------------------------------------------------------------------
+Thu Jul 20 13:23:14 MDT 2010 - carnold@novell.com
+
+- bnc#623201 - drbd xvd will fail in new xen4 packages due to wrong
+ popen2 arguments in blkif.py
+ popen2-argument-fix.patch
+
+-------------------------------------------------------------------
+Thu Jul 8 15:27:14 MDT 2010 - carnold@novell.com
+
+- bnc#620694 - Xen yast vm-install for existing paravirtualized
+ disk fails with UnboundLocalError: local variable 'dev_type'
+ referenced before assignment
+ 21678-xend-mac-fix.patch
+
+-------------------------------------------------------------------
+Wed Jul 7 11:20:30 MDT 2010 - carnold@novell.com
+
+- bnc#586221 - cannot add DomU with USB host controller defined
+ domu-usb-controller.patch (Chun Yan Liu)
+
+-------------------------------------------------------------------
+Tue Jul 6 11:31:33 MDT 2010 - carnold@novell.com
+
+- Upstream patches from Jan
+ 21151-trace-bounds-check.patch
+ 21627-cpuidle-wrap.patch
+ 21643-vmx-vpmu-pmc-offset.patch
+ 21682-trace-buffer-range.patch
+ 21683-vtd-kill-timer-conditional.patch
+ 21693-memevent-64bit-only.patch
+ 21695-trace-t_info-readonly.patch
+ 21698-x86-pirq-range-check.patch
+ 21699-p2m-query-for-type-change.patch
+ 21700-32on64-vm86-gpf.patch
+ 21705-trace-printk.patch
+ 21706-trace-security.patch
+ 21712-amd-osvw.patch
+ 21744-x86-cpufreq-range-check.patch
+ 21933-vtd-ioapic-write.patch
+ 21953-msi-enable.patch
+
+-------------------------------------------------------------------
+Fri Jun 25 15:43:35 CST 2010 - jsong@novell.com
+
+- bnc#599550 - Xen cannot distinguish the status of 'pause'
+ 21723-get-domu-state.patch
+
+-------------------------------------------------------------------
+Tue Jun 22 11:50:35 MDT 2010 - jfehlig@novell.com
+
+- bnc#604611 - Do not store vif device details when vif config
+ contains invalid mac address.
+ 21653-xend-mac-addr.patch
+
+-------------------------------------------------------------------
+Wed Jun 16 08:36:44 MDT 2010 - carnold@novell.com
+
+- linux pvdrv: generalize location of autoconf.h
+ Fixes error because of missing autoconf.h when building os11.2
+ Factory.
+
+-------------------------------------------------------------------
+Mon Jun 14 10:00:07 MDT 2010 - carnold@novell.com
+
+- bnc#609153 - xm migrate <domain_name> localhost -l fails on
+ Windows VMs
+ 21615-dont-save-xen-heap-pages.patch
+- Upstream fixes from Jan
+ 21446-iommu-graceful-generic-fail.patch
+ 21453-shadow-avoid-remove-all-after-teardown.patch
+ 21456-compat-hvm-addr-check.patch
+ 21492-x86-pirq-unbind.patch
+ 21526-x86-nehalem-cpuid-mask.patch
+ 21620-x86-signed-domain-irq.patch
+
+-------------------------------------------------------------------
+Mon Jun 7 10:55:20 MDT 2010 - carnold@novell.com
+
+- bnc#612189 - Clear APIC Timer Initial Count Register when masking
+ timer interrupt
+ 21542-amd-erratum-411.patch
+
+-------------------------------------------------------------------
+Fri Jun 4 10:48:30 MDT 2010 - carnold@novell.com
+
+- bnc#610658 - XEN: PXE boot fails for fully virtualized guests -
+ e1000 virtual nic. (see also bnc#484778)
+ enable_more_nic_pxe.patch
+
+-------------------------------------------------------------------
+Tue May 25 15:17:38 MDT 2010 - carnold@novell.com
+
+- bnc#608191 - /var/adm/fillup-templates/sysconfig.xend from
+ package xen-tools is no valid sysconfig file
+ xend-sysconfig.patch
+
+-------------------------------------------------------------------
+Tue May 25 14:32:57 MDT 2010 - carnold@novell.com
+
+- bnc#608194 - /etc/xen/* config files are not packaged with
+ noreplace
+
+-------------------------------------------------------------------
+Tue May 25 13:19:17 MDT 2010 - carnold@novell.com
+
+- bnc#569744 - SLE HVM guest clock/timezone is incorrect after
+ reboot
+ 21460-xend-timeoffset.patch
+
+-------------------------------------------------------------------
+Tue May 25 11:20:30 MDT 2010 - jfehlig@novell.com
+
+- bnc#606882 - Allow spaces in vbd path names
+ 21459-block-script.patch
+
+-------------------------------------------------------------------
+Mon May 24 15:10:12 CST 2010 - jsong@novell.com
+- bnc#591799 - The status of Caps Lock is incorrect in domU
+ capslock_enable.patch
+
+-------------------------------------------------------------------
+Thu May 20 09:56:07 MDT 2010 - carnold@novell.com
+
+- Upstream fixes from Jan including a fix for Intel's ATS issue
+ 21435-vmx-retain-global-controls.patch
+ 21406-x86-microcode-quiet.patch
+ 21421-vts-ats-enabling.patch
+
+-------------------------------------------------------------------
+Wed May 19 13:23:36 MDT 2010 - carnold@novell.com
+
+- bnc#607219 - AMD Erratum 383 workaround for Xen
+ 21408-amd-erratum-383.patch
+
+-------------------------------------------------------------------
+Wed May 19 08:09:41 MDT 2010 - carnold@novell.com
+
+- Added modprobe of evtchn to init.xend. The kernel will also need
+ to build evtchn as a module for this to be meaningful.
+
+-------------------------------------------------------------------
+Mon May 17 08:31:24 MDT 2010 - carnold@novell.com
+
+- bnc#603008 - On an 8 Socket Nehalem-EX system, the fix for 593536
+ causes a hang during network setup.
+- Upstream patches from Jan.
+ 21360-x86-mce-polling-disabled-init.patch
+ 21372-x86-cross-cpu-wait.patch
+ 21331-svm-vintr-during-nmi.patch
+ 21333-xentrace-t_info-size.patch
+ 21340-vtd-dom0-mapping-latency.patch
+ 21346-x86-platform-timer-wrap.patch
+ 21373-dummy-domain-io-caps.patch
+
+-------------------------------------------------------------------
+Wed May 12 08:42:20 MDT 2010 - carnold@novell.com
+
+- bnc#605182 - /etc/xen/scripts/xen-hotplug-cleanup: line 24: [:
+ !=: unary operator expected
+ 21129-xen-hotplug-cleanup.patch
+
+-------------------------------------------------------------------
+Mon May 10 10:26:07 MDT 2010 - carnold@novell.com
+
+- bnc#599929 - Hot add/remove Kawela NIC device over 500 times will
+ cause guest domain crash
+ passthrough-hotplug-segfault.patch
+
+-------------------------------------------------------------------
+Fri May 7 09:00:12 MDT 2010 - jfehlig@novell.com
+
+- bnc#603583 - Fix migration of domUs using tapdisk devices
+ 21317-xend-blkif-util-tap2.patch
+ suse-disable-tap2-default.patch
+
+-------------------------------------------------------------------
+Thu May 6 08:33:22 MDT 2010 - carnold@novell.com
+
+- Match upstreams cpu pools switch from domctl to sysctl
+- Upstream replacements for two of our custom patches (to ease
+ applying further backports)
+- Fixed dump-exec-state.patch (could previously hang the system, as
+ could - with lower probability - the un-patched implementation)
+
+-------------------------------------------------------------------
+Wed May 5 08:20:45 MDT 2010 - carnold@novell.com
+
+- bnc#593536 - xen hypervisor takes very long to initialize Dom0 on
+ 128 CPUs and 256Gb
+ 21272-x86-dom0-alloc-performance.patch
+ 21266-vmx-disabled-check.patch
+ 21271-x86-cache-flush-global.patch
+
+-------------------------------------------------------------------
+Tue May 4 09:46:22 MDT 2010 - carnold@novell.com
+
+- bnc#558815 - using multiple npiv luns with same wwpn/wwnn broken
+- bnc#601104 - Xen /etc/xen/scripts/block-npiv script fails when
+ accessing multiple disks using NPIV
+ block-npiv
+
+-------------------------------------------------------------------
+Fri Apr 30 08:10:52 MDT 2010 - carnold@novell.com
+
+- bnc#595124 - VT-d can not be enabled on 32PAE Xen on Nehalem-EX
+ platform
+ 21234-x86-bad-srat-clear-pxm2node.patch
+ bnc#585371 - kdump fails to load with xen: locate_hole failed
+ 21235-crashkernel-advanced.patch
+
+-------------------------------------------------------------------
+Thu Apr 29 08:02:49 MDT 2010 - carnold@novell.com
+
+- bnc#588918 - Attaching a U-disk to domain's failed by
+ "xm usb-attach"
+ init.xend
+
+-------------------------------------------------------------------
+Wed Apr 21 21:15:04 MDT 2010 - jfehlig@novell.com
+
+- bnc#596442 - Preserve device config on domain start failure
+ xend-preserve-devs.patch
+
+-------------------------------------------------------------------
+Tue Apr 20 15:18:31 MDT 2010 - jfehlig@novell.com
+
+- bnc#597770 - insserv reports a loop between xendomains and
+ openais. Remove openais from Should-Start in xendomains script.
+
+-------------------------------------------------------------------
+Fri Apr 16 15:00:52 MDT 2010 - jfehlig@novell.com
+
+- bnc#569194 - Tools-side fixes for tapdisk protocol specification
+ blktap-script.patch
+ ioemu-subtype.patch
+ Modified xen-domUloader.diff
+
+-------------------------------------------------------------------
+Wed Apr 14 08:14:31 MDT 2010 - carnold@novell.com
+
+- Upstream bug fixes from Jan
+ 21089-x86-startup-irq-from-setup-gsi.patch
+ 21109-x86-cpu-hotplug.patch
+ 21150-shadow-race.patch
+ 21160-sysctl-debug-keys.patch
+
+-------------------------------------------------------------------
+Fri Apr 9 12:38:47 MDT 2010 - jfehlig@novell.com
+
+- Updated to Xen 4.0.0 FCS, changeset 21091
+
+-------------------------------------------------------------------
+Tue Apr 6 18:18:36 MDT 2010 - jfehlig@novell.com
+
+- Change default lock dir (when domain locking is enabled) to
+ /var/lib/xen/images/vm_locks
+- Support SXP config files in xendomains script
+
+-------------------------------------------------------------------
+Tue Mar 31 08:09:49 MDT 2010 - carnold@novell.com
+
+- Update to changeset 21087 Xen 4.0.0 RC9.
+
+-------------------------------------------------------------------
+Fri Mar 26 07:57:33 MDT 2010 - carnold@novell.com
+
+- Update to changeset 21075 Xen 4.0.0 RC8.
+
+-------------------------------------------------------------------
+Thu Mar 25 15:59:28 CST 2010 - jsong@novell.com
+
+- bnc#584210 - xm usb-hc-destroy does not remove entry from xend
+ del_usb_xend_entry.patch
+
+-------------------------------------------------------------------
+Tue Mar 23 09:55:52 MDT 2010 - carnold@novell.com
+
+- Update to changeset 21057 Xen 4.0.0 RC7.
+
+-------------------------------------------------------------------
+Wed Mar 17 16:42:20 CST 2010 - jsong@novell.com
+
+-Fix bnc#466899 - numa enabled xen fails to start/create vms
+ adjust_vcpuaffinity_more_cpu.patch
+
+-------------------------------------------------------------------
+Tue Mar 9 16:28:59 MST 2010 - carnold@novell.com
+
+- Update to changeset 21022 Xen 4.0.0 RC6.
+
+-------------------------------------------------------------------
+Tue Mar 9 10:43:27 MST 2010 - carnold@novell.com
+
+- bnc#586510 - cpupool fixes
+ cpu-pools-update.patch
+
+-------------------------------------------------------------------
+Fri Mar 5 09:04:18 MST 2010 - carnold@novell.com
+
+- bnc#582645 - Xen stuck, mptbase driver attempting to reset config
+ request
+
+-------------------------------------------------------------------
+Mon Mar 1 10:05:07 MST 2010 - carnold@novell.com
+
+- Update to changeset 20990 Xen 4.0.0 RC5.
+
+-------------------------------------------------------------------
+Mon Feb 22 08:26:01 MST 2010 - jfehlig@novell.com
+
+- bnc#556939 - Improve device map cleanup code in domUloader
+
+-------------------------------------------------------------------
+Sun Feb 21 21:34:23 MST 2010 - jfehlig@novell.com
+
+- bnc# 578910 - xm block-detach does not cleanup xenstore
+ hotplug-cleanup-fix.patch
+
+-------------------------------------------------------------------
+Fri Feb 19 11:56:57 MST 2010 - carnold@novell.com
+
+- bnc#579361 - Windows Server 2003 cannot wake up from stand by in
+ sp1
+ hibernate.patch
+
+-------------------------------------------------------------------
+Fri Feb 19 09:49:56 MST 2010 - carnold@novell.com
+
+- fate#308852: XEN CPU Pools
+ cpupools-core.patch
+ cpupools-core-fixup.patch
+ keyhandler-alternative.patch
+ cpu-pools-libxc.patch
+ cpu-pools-python.patch
+ cpu-pools-libxen.patch
+ cpu-pools-xmtest.patch
+ cpu-pools-docs.patch
+
+-------------------------------------------------------------------
+Thu Feb 18 15:18:59 MST 2010 - ksrinivasan@novell.com
+
+- bnc#558760: Disable scsi devices when PV drivers are loaded.
+
+-------------------------------------------------------------------
+Tue Feb 16 08:35:08 MST 2010 - carnold@novell.com
+
+- Update to changeset 20951 Xen 4.0.0 RC4 for sle11-sp1 beta5.
+
+-------------------------------------------------------------------
+Mon Feb 8 08:08:01 MST 2010 - carnold@novell.com
+
+- bnc#572146 - SLES11 SP1 beta 2 Xen - BUG: soft lockup - CPU#31
+ stuck for 61s! [kstop/31:4512]
+ cpuidle-hint-v3.patch
+
+-------------------------------------------------------------------
+Fri Feb 5 08:16:39 MST 2010 - carnold@novell.com
+
+- Update to changeset 20900 RC2+ for sle11-sp1 beta4.
+
+-------------------------------------------------------------------
+Fri Jan 29 09:22:46 MST 2010 - carnold@novell.com
+
+- bnc#573376 - OS reboot while create DomU with Windows CD
+
+-------------------------------------------------------------------
+Wed Jan 27 11:45:27 MST 2010 - carnold@novell.com
+
+- bnc#573881 - /usr/lib64/xen/bin/qemu-dm is a broken link
+
+-------------------------------------------------------------------
+Thu Jan 21 18:50:36 MST 2010 - carnold@novell.com
+
+- Update to changeset 20840 RC1+ for sle11-sp1 beta3.
+
+-------------------------------------------------------------------
+Thu Jan 21 10:41:59 MST 2010 - jfehlig@novell.com
+
+- bnc#569581 - SuSEfirewall2 should handle rules. Disable
+ handle_iptable in vif-bridge script
+ vif-bridge-no-iptables.patch
+
+-------------------------------------------------------------------
+Wed Jan 20 09:12:00 MST 2010 - carnold@novell.com
+
+- bnc#569577 - /etc/modprove.d/xen_pvdrivers, installed by
+ xen-kmp-default, to ../xen_pvdrivers.conf
+
+-------------------------------------------------------------------
+Wed Jan 6 16:50:16 EST 2010 - ksrinivasan@novell.com
+
+- bnc#564406 - Make the new PV drivers work with older hosts that
+ do not understand the new PV driver protocol.
+
+-------------------------------------------------------------------
+Fri Dec 11 08:28:16 MST 2009 - carnold@novell.com
+
+- Upstream Xen version renamed to 4.0.0 in changeset 20624 & 20625.
+
+-------------------------------------------------------------------
+Wed Dec 9 10:37:12 MST 2009 - carnold@novell.com
+
+- fate#307594: HP-MCBS: XEN: support NR_CPUS=256
+ This is a spec file change (xen.spec)
+
+-------------------------------------------------------------------
+Thu Dec 3 06:55:00 MST 2009 - carnold@novell.com
+
+- bnc#555152 - "NAME" column in xentop (SLES11) output limited to
+ 10 characters unlike SLES10
+ The update to c/s 20572 includes this fix (at c/s 20567).
+
+-------------------------------------------------------------------
+Tue Dec 1 17:46:20 CST 2009 - wkong@novell.com
+
+- Modify xen-paths.diff
+
+-------------------------------------------------------------------
+Tue Dec 1 16:39:26 CST 2009 - wkong@novell.com
+
+- Merge xend-tap-fix.patch to xen-domUloader.diff
+ remove part of it which accepted by upstream
+
+-------------------------------------------------------------------
+Tue Dec 1 11:08:10 MST 2009 - jfehlig@novell.com
+
+- Load gntdev module in xend init script similar to blkbk,
+ netbk, etc.
+
+-------------------------------------------------------------------
+Thu Nov 26 11:29:51 CST 2009 - wkong@novell.com
+
+- Backport dmmd from sles11/xen
+ block-dmmd
+ xen-qemu-iscsi-fix.patch
+ xen.spec
+
+-------------------------------------------------------------------
+Thu Nov 26 10:53:16 CST 2009 - wkong@novell.com
+
+- Fix regression when create_vbd for tap
+ xend-tap-fix.patch
+
+-------------------------------------------------------------------
+Tue Nov 24 11:01:22 MST 2009 - carnold@novell.com
+
+- Temporarily disable libxl because of libconfig dependency.
+
+-------------------------------------------------------------------
+Thu Nov 19 11:32:12 CST 2009 - wkong@novell.com
+
+- fate#302864 domUloader support lvm in disk
+ domUloader.py
+ Note: for test in Beta1, if not good, remove it
+
+-------------------------------------------------------------------
+Thu Nov 19 11:23:22 CST 2009 - wkong@novell.com
+
+- fate#302864 domUloader support fs on whole disk
+ domUloader.py
+
+-------------------------------------------------------------------
+Fri Nov 6 16:51:31 CET 2009 - carnold@suse.de
+
+- Turn KMPs back on now that kernel side fix is checked in.
+
+-------------------------------------------------------------------
+Tue Oct 20 15:09:14 MDT 2009 - jfehlig@novell.com
+
+- fate#304415 VMM: ability to switch networking mode
+ Add vif-route-ifup to handle routed configurations using
+ sysconfig scripts.
+ vif-route-ifup.patch
+
+-------------------------------------------------------------------
+Mon Oct 19 17:21:25 CST 2009 - jsong@novell.com
+
+- fate#307540 USB for Xen VMs
+ usb-add.patch
+
+-------------------------------------------------------------------
+Mon Oct 19 17:21:00 CST 2009 - jsong@novell.com
+
+- fate#305545 XEN extra descriptive field within xenstore
+ add_des.patch
+
+-------------------------------------------------------------------
+Mon Oct 12 12:51:50 MDT 2009 - carnold@novell.com
+
+- Update to Xen version 3.5.0 for the following features.
+ fate#304226 XEN: FlexMigration feature of VT-x2 support
+ fate#305004 Add SR-IOV PF and VF drivers to Vt-d enabled Xen
+ fate#306830 T states in Xen controlling by MSR
+ fate#306832 Fix for xen panic on new processors
+ fate#306833 Westmere and Nehalem-EX: Add support for Pause Loop exiting feature for Xen
+ fate#306835 Xen: server virtual power management enhacement
+ fate#306837 VT-d2 - PCI SIG ATS support
+ fate#306872 Xen: Node manager support P/T-states change when Vt-d enable
+ fate#306873 Xen: SMP guest live migration may fail with hap=1 on NHM
+ fate#306875 Westmere: LT-SX (Xen)
+ fate#306891 RAS features for Xen: Add support for Machine Check and CPU/Memory online/offline features
+ fate#307322 1GB page support in Xen
+ fate#307324 Xen IOMMU support
+
+-------------------------------------------------------------------
+Fri Oct 9 09:24:29 MDT 2009 - carnold@novell.com
+
+- bnc#541945 - xm create -x command does not work in SLES 10 SP2 or
+ SLES 11
+ xm-create-xflag.patch
+
+-------------------------------------------------------------------
+Thu Oct 8 22:44:04 MDT 2009 - jfehlig@novell.com
+
+- Minor enhancement to xen-updown.sh sysconfig hook
+
+-------------------------------------------------------------------
+Mon Sep 28 16:34:19 CST 2009 - wkong@novell.com
+
+- Add patch ioemu-bdrv-open-CACHE_WB.patch
+ for install guest on tapdisk very very slow.
+
+-------------------------------------------------------------------
+Fri Sep 25 15:08:12 MDT 2009 - jfehlig@novell.com
+
+- Add temporary workaround for race between xend writing and
+ qemu-dm reading from xenstore. The issue is preventing PV
+ domUs from booting as they have no backend console.
+ qemu-retry-be-status.patch
+- bnc#520234 - npiv does not work with XEN
+ Update block-npiv
+- bnc#496033 - Support for creating NPIV ports without starting vm
+ block-npiv-common.sh
+ block-npiv-vport
+ Update block-npiv
+- bnc#500043 - Fix access to NPIV disk from HVM vm
+ Update xen-qemu-iscsi-fix.patch
+
+-------------------------------------------------------------------
+Tue Sep 15 09:32:59 MDT 2009 - jfehlig@novell.com
+
+- bnc#513921 - Xen doesn't work get an eror when starting the
+ install processes or starting a pervious installed DomU
+ 20125-xc-parse-tuple-fix.patch
+
+-------------------------------------------------------------------
+Wed Sep 2 10:12:18 MDT 2009 - carnold@novell.com
+
+- bnc#536176 - Xen panic when using iommu after updating hypervisor
+ 19380-vtd-feature-check.patch
+
+-------------------------------------------------------------------
+Fri Aug 28 09:54:08 MDT 2009 - jfehlig@novell.com
+
+- bnc#530959 - virsh autostart doesn't work
+ Fixing this libvirt bug also required fixing xend's op_pincpu
+ method with upstream c/s 19580
+ 19580-xend-pincpu.patch
+
+-------------------------------------------------------------------
+Fri Aug 28 08:05:17 MDT 2009 - jbeulich@novell.com
+
+- bnc#534146 - Xen: Fix SRAT check for discontig memory
+ 20120-x86-srat-check-discontig.patch
+
+-------------------------------------------------------------------
+Mon Aug 24 07:59:14 MDT 2009 - carnold@novell.com
+
+- bnc#491081 - Xen time goes backwards x3950M2
+ 20112-x86-dom0-boot-run-timers.patch
+
+-------------------------------------------------------------------
+Tue Aug 11 01:08:51 CEST 2009 - ro@suse.de
+
+- disable module build for ec2 correctly to fix build
+ (at the suse_kernel_module_package macro)
+
+-------------------------------------------------------------------
+Mon Aug 10 16:21:00 EDT 2009 - ksrinivasan@novell.com
+
+- bnc#524071 - implemented workaround for a windows7 bug.
+ hv_win7_eoi_bug.patch
+
+-------------------------------------------------------------------
+Mon Aug 3 11:53:37 MDT 2009 - jfehlig@novell.com
+
+- bnc#524180 - xend memory leak resulting in long garbage collector
+ runs
+ 20013-xend-memleak.patch
+
+-------------------------------------------------------------------
+Fri Jul 31 13:22:09 MDT 2009 - carnold@novell.com
+
+- Upstream bugfixes from Jan.
+ 19896-32on64-arg-xlat.patch
+ 19960-show-page-walk.patch
+ 19945-pae-xen-l2-entries.patch
+ 19953-x86-fsgs-base.patch
+ 19931-gnttblop-preempt.patch
+ 19885-kexec-gdt-switch.patch
+ 19894-shadow-resync-fastpath-race.patch
+- hvperv shim patches no longer require being applied conditionally
+
+-------------------------------------------------------------------
+Wed Jul 29 08:47:50 MDT 2009 - jfehlig@novell.com
+
+- bnc#520234 - npiv does not work with XEN in SLE11
+ Update block-npiv
+- bnc#496033 - Support for creating NPIV ports without starting vm
+ block-npiv-common.sh
+ block-npiv-vport
+ Update block-npiv
+- bnc#500043 - Fix access to NPIV disk from HVM vm
+ Update xen-qemu-iscsi-fix.patch
+
+-------------------------------------------------------------------
+Wed Jul 15 11:52:31 MDT 2009 - carnold@novell.com
+
+- Don't build the KMPs for the ec2 kernel.
+
+-------------------------------------------------------------------
+Thu Jul 2 12:45:32 MDT 2009 - jfehlig@novell.com
+
+- Upstream fixes from Jan Beulich
+ 19606-hvm-x2apic-cpuid.patch
+ 19734-vtd-gcmd-submit.patch
+ 19752-vtd-srtp-sirtp-flush.patch
+ 19753-vtd-reg-write-lock.patch
+ 19764-hvm-domain-lock-leak.patch
+ 19765-hvm-post-restore-vcpu-state.patch
+ 19767-hvm-port80-inhibit.patch
+ 19768-x86-dom0-stack-dump.patch
+ 19770-x86-amd-s3-resume.patch
+ 19801-x86-p2m-2mb-hap-only.patch
+ 19815-vtd-kill-correct-timer.patch
+- Patch from Jan Beulich to aid in debugging bnc#509911
+ gnttblop-preempt.patch
+
+-------------------------------------------------------------------
+Tue Jun 23 15:32:14 CST 2009 - wkong@novell.com
+
+- bnc#515220 - qemu-img-xen snapshot Segmentation fault
+ qemu-img-snapshot.patch update
+
+-------------------------------------------------------------------
+Tue Jun 9 13:52:07 CST 2009 - wkong@novell.com
+
+- bnc#504491 - drop write data when set read only disk in xen config
+ bdrv_open2_fix_flags.patch
+ bdrv_open2_flags_2.patch
+
+-------------------------------------------------------------------
+Fri Jun 5 13:19:04 MDT 2009 - carnold@novell.com
+
+- Upstream fixes from Jan Beulich.
+ 19474-32on64-S3.patch
+ 19490-log-dirty.patch
+ 19492-sched-timer-non-idle.patch
+ 19493-hvm-io-intercept-count.patch
+ 19505-x86_64-clear-cr1.patch
+ 19519-domctl-deadlock.patch
+ 19523-32on64-restore-p2m.patch
+ 19555-ept-live-migration.patch
+ 19557-amd-iommu-ioapic-remap.patch
+ 19560-x86-flush-tlb-empty-mask.patch
+ 19571-x86-numa-shift.patch
+ 19578-hvm-load-ldt-first.patch
+ 19592-vmx-exit-reason-perfc-size.patch
+ 19595-hvm-set-callback-irq-level.patch
+ 19597-x86-ioport-quirks-BL2xx.patch
+ 19602-vtd-multi-ioapic-remap.patch
+ 19631-x86-frametable-map.patch
+ 19653-hvm-vcpuid-range-checks.patch
+
+-------------------------------------------------------------------
+Wed Jun 05 10:35:18 MDT 2009 - jsong@novell.com
+
+- bnc#382112 - Caps lock not being passed to vm correctly.
+ capslock_enable.patch
+
+-------------------------------------------------------------------
+Wed May 27 10:35:18 MDT 2009 - jfehlig@novell.com
+
+- bnc#506833 - Use pidof in xend and xendomains init scripts
+
+-------------------------------------------------------------------
+Wed May 27 09:39:25 MDT 2009 - jsong@novell.com
+- bnc#484778 - XEN: PXE boot of FV domU using non-Realtek NIC fails
+ enable_more_nic_pxe.patch
+
+-------------------------------------------------------------------
+Wed May 27 09:38:40 MDT 2009 - jsong@novell.com
+cross-migrate.patch
+- bnc#390961 - cross-migration of a VM causes it to become
+ unresponsive (remains paused after migration)
+
+-------------------------------------------------------------------
+Tue May 19 10:58:40 MDT 2009 - carnold@novell.com
+
+- Patches taken to fix the xenctx tool. The fixed version of this
+ tool is needed to debug bnc#502735.
+ 18962-xc_translate_foreign_address.patch
+ 18963-xenctx.patch
+ 19168-hvm-domctl.patch
+ 19169-remove-declare-bitmap.patch
+ 19170-libxc.patch
+ 19171-xenctx.patch
+ 19450-xc_translate_foreign_address.patch
+
+-------------------------------------------------------------------
+Mon May 18 16:15:57 CST 2009 - wkong@novell.com
+-bnc#485770 - check exsit file for save and snapshot-create
+ xm-save-check-file.patch
+ snapshot-xend.patch
+
+-------------------------------------------------------------------
+Mon May 18 15:06:41 CST 2009 - wkong@novell.com
+-bnc#503782 - Using converted vmdk image does not work
+ ioemu-tapdisk-compat-QEMU_IMG.patch
+
+-------------------------------------------------------------------
+Thu May 14 10:54:03 MDT 2009 - jfehlig@novell.com
+
+- bnc#503332 - Remove useless qcow tools
+ /usr/sbin/{qcow-create,img2qcow,qcow2raw} from xen-tools package.
+
+-------------------------------------------------------------------
+Wed May 13 09:59:50 CST 2009 - jsong@novell.com
+- bnc#474738 - adding CD drive to VM guest makes it unbootable.
+ parse_boot_disk.patch
+
+-------------------------------------------------------------------
+Mon May 11 18:49:50 CST 2009 - wkong@novell.com
+- bnc#477892 - snapshot windows can't accomplish.
+ snapshot-xend.patch
+
+-------------------------------------------------------------------
+Tue Apr 28 11:57:00 MDT 2009 - carnold@novell.com
+
+- bnc#495300 - L3: Xen unable to PXE boot Windows based DomU's
+ 18545-hvm-gpxe-rom.patch, 18548-hvm-gpxe-rom.patch
+
+-------------------------------------------------------------------
+Mon Apr 27 10:42:17 MDT 2009 - jfehlig@novell.com
+
+- bnc#459836 - Fix rtc_timeoffset when localtime=0
+ xend-timeoffset.patch
+
+-------------------------------------------------------------------
+Wed Apr 22 14:50:35 MDT 2009 - carnold@novell.com
+
+- bnc#497440 - xmclone.sh script incorrectly handles networking for
+ SLE11.
+
+-------------------------------------------------------------------
+Fri Apr 17 16:21:36 MDT 2009 - wkong@novell.com
+- bnc#477890 - VM becomes unresponsive after applying snapshot
+
+-------------------------------------------------------------------
+Wed Apr 15 16:34:08 MDT 2009 - jfehlig@novell.com
+
+- bnc#494892 - Update xend-domain-lock.patch to flock the lock
+ file.
+
+-------------------------------------------------------------------
+Wed Apr 8 16:30:14 EDT 2009 - ksrinivasan@novell.com
+
+- bnc#439639 - SVVP Test 273 System - Sleep Stress With IO" fails
+
+Turned off s3/s4 sleep states for HVM guests.
+
+-------------------------------------------------------------------
+Tue Apr 7 21:55:14 MDT 2009 - jsong@novell.com
+
+- bnc#468169 - fix domUloader to umount the mounted device mapper target in dom0
+ when install a sles10 guest with disk = /dev/disk/by_path
+
+-------------------------------------------------------------------
+Thu Apr 2 16:03:25 MDT 2009 - jfehlig@novell.com
+
+- bnc#488490 - domUloader can't handle block device names with ':'
+- bnc#486244 - vms fail to start after reboot when using qcow2
+
+-------------------------------------------------------------------
+Tue Mar 31 15:00:50 MDT 2009 - carnold@novell.com
+
+- bnc#490835 - VTd errata on Cantiga chipset
+ 19230-vtd-mobile-series4-chipset.patch
+
+-------------------------------------------------------------------
+Mon Mar 30 15:03:16 MDT 2009 - carnold@novell.com
+
+- bnc#482515 - Missing dependency in xen.spec
+
+-------------------------------------------------------------------
+Thu Mar 26 09:17:00 MDT 2009 - carnold@novell.com
+
+- Additional upstream bug fix patches from Jan Beulich.
+ 19132-page-list-mfn-links.patch
+ 19134-fold-shadow-page-info.patch
+ 19135-next-shadow-mfn.patch
+ 19136-page-info-rearrange.patch
+ 19156-page-list-simplify.patch
+ 19161-pv-ldt-handling.patch
+ 19162-page-info-no-cpumask.patch
+ 19216-msix-fixmap.patch
+ 19268-page-get-owner.patch
+ 19293-vcpu-migration-delay.patch
+ 19391-vpmu-double-free.patch
+ 19415-vtd-dom0-s3.patch
+
+-------------------------------------------------------------------
+Wed Mar 25 13:55:25 MDT 2009 - carnold@novell.com
+
+- Imported numerous upstream bug fix patches.
+ 19083-memory-is-conventional-fix.patch
+ 19097-M2P-table-1G-page-mappings.patch
+ 19137-lock-domain-page-list.patch
+ 19140-init-heap-pages-max-order.patch
+ 19167-recover-pat-value-s3-resume.patch
+ 19172-irq-to-vector.patch
+ 19173-pci-passthrough-fix.patch
+ 19176-free-irq-shutdown-fix.patch
+ 19190-pciif-typo-fix.patch
+ 19204-allow-old-images-restore.patch
+ 19232-xend-exception-fix.patch
+ 19239-ioapic-s3-suspend-fix.patch
+ 19240-ioapic-s3-suspend-fix.patch
+ 19242-xenstored-use-after-free-fix.patch
+ 19259-ignore-shutdown-deferrals.patch
+ 19266-19365-event-channel-access-fix.patch
+ 19275-19296-schedular-deadlock-fixes.patch
+ 19276-cpu-selection-allocation-fix.patch
+ 19302-passthrough-pt-irq-time-out.patch
+ 19313-hvmemul-read-msr-fix.patch
+ 19317-vram-tracking-fix.patch
+ 19335-apic-s3-resume-error-fix.patch
+ 19353-amd-migration-fix.patch
+ 19354-amd-migration-fix.patch
+ 19371-in-sync-L1s-writable.patch
+ 19372-2-on-3-shadow-mode-fix.patch
+ 19377-xend-vnclisten.patch
+ 19400-ensure-ltr-execute.patch
+ 19410-virt-to-maddr-fix.patch
+
+-------------------------------------------------------------------
+Mon Mar 9 16:28:27 MDT 2009 - jfehlig@novell.com
+
+- bnc#483565 - Fix block-iscsi script.
+ Updated block-iscsi and xen-domUloader.diff
+
+-------------------------------------------------------------------
+Mon Mar 9 16:06:03 MDT 2009 - carnold@novell.com
+
+- bnc#465814 - Mouse stops responding when wheel is used in Windows
+ VM.
+ mouse-wheel-roll.patch (James Song)
+- bnc#470704 - save/restore of windows VM throws off the mouse
+ tracking.
+ usb-save-restore.patch (James Song)
+
+-------------------------------------------------------------------
+Thu Mar 5 15:35:30 MST 2009 - jfehlig@novell.com
+
+- bnc#436629 - Use global vnc-listen setting specified in xend
+ configuration file.
+ xend-vnclisten.patch
+- bnc#482623 - Fix pygrub to append user-supplied 'extra' args
+ to kernel args.
+ 19234_pygrub.patch
+
+-------------------------------------------------------------------
+Thu Mar 5 13:52:48 MST 2009 - carnold@novell.com
+
+- bnc#481161 upgrade - sles10sp2 to sles11 upgrade keeps
+ xen-tools-ioemu
+
+-------------------------------------------------------------------
+Tue Mar 3 16:11:39 CET 2009 - kukuk@suse.de
+
+- Don't load 8139* driver if xen-vnif works [bnc#480164]
+
+-------------------------------------------------------------------
+Fri Feb 27 18:32:01 MST 2009 - carnold@novell.com
+
+- bnc#480164 - Default network proposal in fully virtualized
+ SLES 11 VM is invalid.
+ xen_pvdrivers
+
+-------------------------------------------------------------------
+Thu Feb 26 15:05:38 MST 2009 - carnold@novell.com
+
+- bnc#474822 - L3: Win2003 i386 XEN VM can see only 2 TB with a
+ 4TB LUN.
+ int13_hardisk-64bit-lba.patch
+
+-------------------------------------------------------------------
+Wed Feb 25 11:52:16 MST 2009 - jfehlig@novell.com
+
+- bnc#477890 - Destroy domain if snapshot restore fails.
+ Updated snapshot-xend.patch
+
+-------------------------------------------------------------------
+Tue Feb 24 14:13:35 EST 2009 - ksrinivasan@novell.com
+
+- bnc#470238 - SLE11 32FV guest is hanging during certification
+ tests.
+ bnc#468265 - Xen guest shows duplicate drives
+ bnc#469598 - SLES11 RC2 64bit Xen - SLES11 full virt guests
+ hanging under load.
+ disable_emulated_device.diff
+
+-------------------------------------------------------------------
+Tue Feb 24 16:03:35 CET 2009 - kwolf@suse.de
+
+- bnc#477892 - Disable xend timeout for snapshots
+ Updated snapshot-xend.patch
+
+-------------------------------------------------------------------
+Tue Feb 24 14:28:52 CET 2009 - kwolf@suse.de
+
+- bnc#477895 - Fix detaching blktap disks from domains without
+ device model
+ Updated blktap-ioemu-close-fix.patch
+
+-------------------------------------------------------------------
+Fri Feb 20 11:46:12 CET 2009 - kwolf@suse.de
+
+- bnc#472390 - Enable debuginfo for ioemu
+ ioemu-debuginfo.patch
+
+-------------------------------------------------------------------
+Thu Feb 19 08:40:07 MST 2009 - carnold@novell.com
+
+- bnc#473883 - Xen: 64 bit guest crashes with qemu-dm segfault
+ qemu-dm-segfault.patch
+
+-------------------------------------------------------------------
+Wed Feb 18 15:33:17 MST 2009 - jfehlig@novell.com
+
+- bnc#437776 - Remove tracing (bash -x) from network-nat script
+ network-nat.patch
+
+-------------------------------------------------------------------
+Wed Feb 18 15:19:21 MST 2009 - jfehlig@novell.com
+
+- bnc#473815 - Handle NULL return when reading a xenstore path.
+ Updated blktap-error-handling.patch
+
+-------------------------------------------------------------------
+Wed Feb 18 20:52:23 CET 2009 - kwolf@suse.de
+
+- Fix VHD image support for > 4 GB (offsets truncated to 32 bits)
+ ioemu-vpc-4gb-fix.patch
+
+-------------------------------------------------------------------
+Thu Feb 12 12:03:44 EST 2009 - ksrinivasan@novell.com
+
+- bnc#468660 - Fix migration from sles10 to sles11 on Intel.
+ old-arbytes.patch
+
+-------------------------------------------------------------------
+Thu Feb 12 08:17:31 MST 2009 - carnold@novell.com
+
+- bnc#473800 - If VT-d is enabled, Dom0 fails to boot up on
+ Nehalem-HEDT platform.
+ 19198-fix-snoop.patch
+ 19154-snoop-control.patch
+
+-------------------------------------------------------------------
+Thu Feb 5 12:03:44 MST 2009 - jfehlig@novell.com
+
+- bnc#470133 - Better error handling in xm when not booted Xen
+ 19153-xm-noxen-error.patch
+
+-------------------------------------------------------------------
+Wed Feb 4 20:35:41 CET 2009 - kwolf@suse.de
+
+- bnc#472075 - Fix ioemu to initialize its blktap backend also for
+ fully virtualized guests
+ ioemu-blktap-fv-init.patch
+
+-------------------------------------------------------------------
+Tue Feb 3 13:35:28 MST 2009 - jfehlig@novell.com
+
+- bnc#470855 - Add note to xm man page on how to detach domain
+ console
+ 19152-xm-man-page.patch
+
+-------------------------------------------------------------------
+Mon Feb 2 14:15:55 MST 2009 - jfehlig@novell.com
+
+- bnc#471090 - XendAPIStore: Do not remove non-existent item
+ class list
+ 19151-xend-class-dereg.patch
+
+-------------------------------------------------------------------
+Mon Feb 2 10:41:05 MST 2009 - carnold@novell.com
+
+- bnc#470949 - user mode application may crash kernel
+ 19088-x86-page-non-atomic-owner.patch (Jan Beulich)
+ 19089-x86_64-widen-page-refcounts.patch
+ 19103-x86_64-fold-page-lock.patch
+ x86_64-page-info-pack.patch
+ x86_64-sh-next-shadow.patch
+
+-------------------------------------------------------------------
+Fri Jan 23 11:47:31 MST 2009 - carnold@novell.com
+
+- Intel - Remove improper operating condition that results in a
+ machine check.
+ 19072-vmx-pat.patch
+ 19079-snp_ctl-1.patch
+
+-------------------------------------------------------------------
+Fri Jan 23 11:45:16 CET 2009 - kwolf@suse.de
+
+- bnc#465379 - Fix blktap error handling
+ blktap-error-handling.patch
+
+-------------------------------------------------------------------
+Thu Jan 22 08:36:40 MST 2009 - carnold@novell.com
+
+- bnc#435219 - XEN pv-driver doesn't work
+
+-------------------------------------------------------------------
+Thu Jan 22 14:17:00 CET 2009 - jbeulich@novell.com
+
+- Fix unmaskable MSI handling.
+ 18778-msi-irq-fix.patch
+
+-------------------------------------------------------------------
+Wed Jan 21 16:33:16 MST 2009 - jfehlig@novell.com
+
+- bnc#467883 - Squelch output of xen-updown.sh sysconfig hook
+ script and don't save state of tap devices not belonging to Xen.
+
+-------------------------------------------------------------------
+Wed Jan 21 08:15:31 MST 2009 - carnold@novell.com
+
+- bnc#467807 - Xen: IRQs stop working
+ xen-ioapic-ack-default.diff
+
+-------------------------------------------------------------------
+Fri Jan 16 14:20:08 MST 2009 - carnold@novell.com
+
+- bnc#447178 - xm dump-core does not work for cross-bitness guest.
+ 19046-cross-bit-coredumping.patch
+ 19048-cross-bit-coredumping.patch
+ 19051-cross-bit-coredumping.patch
+
+-------------------------------------------------------------------
+Thu Jan 15 10:26:13 MST 2009 - brieske@novell.com
+
+- bnc#429637 - SSVP SMBIOS HCT Test failing
+ 19027-hvmloader-SMBIOS-dev-mem-boundary.patch
+
+-------------------------------------------------------------------
+Wed Jan 14 08:22:08 MST 2009 - carnold@novell.com
+
+- bnc#460805 - Unable to boot with Xen kernel with IBM T42p / T41p
+ 19039-x86-propagate-nolapic.patch
+ 19038-x86-no-apic.patch
+
+-------------------------------------------------------------------
+Mon Jan 5 10:14:41 MST 2009 - carnold@novell.com
+
+- bnc#435596 - dom0 S3 resume fails if disk drive is set as AHCI
+ mode.
+ 18937-S3-MSI.patch
+- Final Xen 3.3.1 FCS changeset 18546
+
+-------------------------------------------------------------------
+Mon Dec 29 09:16:20 MST 2008 - carnold@novell.com
+
+- bnc#436021 - On PAE host with EPT enabled, booting a HVM guest
+ with 4G memory will cause Xen hang.
+ 18943-amd-32bit-paging-limit.patch
+
+-------------------------------------------------------------------
+Mon Dec 22 14:18:15 MST 2008 - carnold@novell.com
+
+- bnc#461596 - Failue to load 64-bit HVM Solaris 10U6 DomU with 2
+ vcpus. Update to RC4 contains fix in c/s 18538.
+
+-------------------------------------------------------------------
+Mon Dec 22 11:27:38 MST 2008 - jfehlig@novell.com
+
+- bnc#379032 and bnc#404014 - Fix loop device leak in domUloader
+
+-------------------------------------------------------------------
+Wed Dec 17 16:32:12 CET 2008 - kwolf@suse.de
+
+- bnc#456758 - Allow all block device types for which a script
+ exists in /etc/xen/scripts besides file, tap and phy.
+ reenable-block-protocols.patch
+
+-------------------------------------------------------------------
+Mon Dec 15 10:30:25 MST 2008 - carnold@novell.com
+
+- Patch cleanup. Updated tarball with several of our stand-alone
+ but now upstream patches (c/s 18536).
+
+-------------------------------------------------------------------
+Fri Dec 5 15:47:31 CET 2008 - kwolf@suse.de
+
+- bnc#404014 - Fix memory leak in libxenguest during domain
+ creation
+ libxc-zlib-memleak.patch
+
+-------------------------------------------------------------------
+Thu Dec 4 11:45:55 MST 2008 - jfehlig@novell.com
+
+- bnc#456511 - Fix domain name change after checkpoint/shutdown
+ events.
+
+-------------------------------------------------------------------
+Tue Dec 2 15:57:03 MST 2008 - carnold@novell.com
+
+- Fixed xmclone.sh. It calls lomount which no longer exists in the
+ distro.
+
+-------------------------------------------------------------------
+Tue Nov 25 15:09:12 CET 2008 - kwolf@suse.de
+
+- Fix the build. Build system seems to be unhappy about having two
+ copies of the xenstore binary (this is not a proper fix in fact
+ as the build error says the two files are not identical - they
+ are hardlinks, so this seems unlikely to be the real cause).
+
+ tmp_build.patch
+
+-------------------------------------------------------------------
+Mon Nov 24 14:24:06 MST 2008 - jfehlig@novell.com
+
+- bnc#448364 - Fix cpu affinity on save/restore/migrate
+
+-------------------------------------------------------------------
+Thu Nov 20 19:57:19 CET 2008 - kwolf@suse.de
+
+- bnc#444731 - Fix data corruption bug (caused by broken x86
+ emulation for movnti instruction)
+
+ xen-x86-emulate-movnti.patch
+
+-------------------------------------------------------------------
+Wed Nov 19 20:14:54 CET 2008 - kwolf@suse.de
+
+- Report device model errors during the creation of snapshots
+ to xend instead of failing silently
+
+-------------------------------------------------------------------
+Wed Nov 19 16:27:01 CET 2008 - kwolf@suse.de
+
+- bnc#445659 - ioemu: Workaround for VNC client initialization
+ race with xenfb changing the resolution (caused VNC connection
+ to be closed, vm-install recognized this as failed installation)
+
+ ioemu-vnc-resize.patch
+
+-------------------------------------------------------------------
+Tue Nov 18 08:11:34 MST 2008 - carnold@novell.com
+
+- bnc#444203 - With EPT mode4, HVM S3 causes Xen HV crash.
+ 18783-hvm-vcpu-reset-state-fix.patch
+
+-------------------------------------------------------------------
+Mon Nov 17 09:14:12 MST 2008 - carnold@novell.com
+
+- bnc#444731 - Blackscreen instead of second stage during
+ installation
+ 18766-realmode-stack-size-fix.patch
+
+-------------------------------------------------------------------
+Thu Nov 13 09:22:54 MST 2008 - carnold@novell.com
+
+- bnc#429739 - Network failure with bnx2 when booted to XEN
+ 18778-msi-irq-fix.patch
+
+-------------------------------------------------------------------
+Wed Nov 12 19:07:11 CET 2008 - kwolf@suse.de
+
+- bnc#444197 - Add udev rule to fix domUloader race with
+ automounter (udev-rules.patch)
+
+-------------------------------------------------------------------
+Sun Nov 9 23:54:34 CET 2008 - ro@suse.de
+
+- disable kmp to fix build again
+
+-------------------------------------------------------------------
+Fri Nov 7 13:49:09 CET 2008 - kwolf@suse.de
+
+- Fix merge damage which prevented disks to be snapshotted when
+ not in disk-only snapshot mode
+
+-------------------------------------------------------------------
+Wed Nov 5 17:22:30 CET 2008 - kwolf@suse.de
+
+- bnc#435195 - Fix error handling for blktap devices and ioemu;
+ check for images smaller than a sector and abort (causes hangs
+ of the complete blktap stack otherwise)
+
+ ioemu-blktap-zero-size.patch
+
+-------------------------------------------------------------------
+Mon Nov 3 10:30:49 MST 2008 - plc@novell.com
+
+- bnc#436572 - L3: vm serial port configuration and access is not
+ persistent across dom0 reboot
+
+-------------------------------------------------------------------
+Wed Oct 29 11:50:45 MDT 2008 - carnold@novell.com
+
+- bnc#436926 - Xen hypervisor crash
+
+-------------------------------------------------------------------
+Tue Oct 28 21:17:12 MDT 2008 - jfehlig@novell.com
+
+- bnc#438927 - Fix migration bug in xend
+
+-------------------------------------------------------------------
+Tue Oct 28 18:19:52 CET 2008 - carnold@suse.de
+
+- disable KMP, does not build with current kernel
+
+-------------------------------------------------------------------
+Fri Oct 24 13:01:41 MDT 2008 - jfehlig@novell.com
+
+- bnc#437756 - Fix default netdev device in network-route
+
+-------------------------------------------------------------------
+Wed Oct 22 10:38:58 MDT 2008 - jfehlig@novell.com
+
+- bnc#434560 - Remove local patch that prevents creating PV vif
+ when "type=ioemu" is specified in guest vif config. This patch
+ is causing several problems with recent changes to xenstore
+ layout.
+
+-------------------------------------------------------------------
+Wed Oct 22 09:10:45 MDT 2008 - jfehlig@novell.com
+
+- bnc#431758 - Added upstream changeset 18654 to prevent setting
+ vcpus > VCPUs_max on running domain.
+
+-------------------------------------------------------------------
+Tue Oct 21 10:28:55 MDT 2008 - carnold@novell.com
+
+- Update to changeset 18455.
+
+-------------------------------------------------------------------
+Fri Oct 17 08:52:44 CEST 2008 - olh@suse.de
+
+- add ExclusiveArch x86 x86_64
+
+-------------------------------------------------------------------
+Wed Oct 15 01:32:18 MDT 2008 - jfehlig@novell.com
+
+- bnc#433722 - Fix handling of default bridge in qemu-ifup.
+
+-------------------------------------------------------------------
+Mon Oct 13 10:51:51 MDT 2008 - carnold@novell.com
+
+- bnc#431324 - Cannot boot from XEN kernel
+
+-------------------------------------------------------------------
+Mon Oct 13 14:27:35 CEST 2008 - kwolf@suse.de
+
+- blktapctrl: Close connection to tapdisk-ioemu only if there are
+ no more attached disks
+ blktap-ioemu-close-fix.patch
+- blktapctrl: If tapdisk-ioemu has been shut down and a new
+ instance is needed, fix saving the PID of the new instance
+
+-------------------------------------------------------------------
+Thu Oct 2 16:23:15 MDT 2008 - jfehlig@novell.com
+
+- bnc#431737 - Fix use of deprecated python constructs in xend
+
+-------------------------------------------------------------------
+Mon Sep 29 10:36:07 MDT 2008 - carnold@novell.com
+
+- Update to c/s 18430, remove our versions of upstream patches.
+- fate#303867 - minimum HVM domain limits. Pulled upstream
+ patches for supporting up to 255 cpus.
+
+-------------------------------------------------------------------
+Fri Sep 26 18:09:13 CEST 2008 - kwolf@suse.de
+
+- bnc#430222 - Fixed block-attach for tap:aio images
+
+-------------------------------------------------------------------
+Thu Sep 25 13:30:33 CEST 2008 - kwolf@suse.de
+
+- bnc#429801 - Fixed xm start -c / --vncviewer
+ xm-start-fix.patch
+
+-------------------------------------------------------------------
+Wed Sep 24 15:44:43 MDT 2008 - carnold@novell.com
+
+- bnc#382401 - xm man page missing information for commands.
+
+-------------------------------------------------------------------
+Wed Sep 17 14:57:29 MDT 2008 - carnold@novell.com
+
+- Pulled some upstream patches for Intel and AMD microcode fixes.
+
+-------------------------------------------------------------------
+Tue Sep 16 10:51:44 MDT 2008 - carnold@novell.com
+
+- Update to changeset 18412. Contains several bug fixes including
+ a crash fix in qemu-dm and also various memory leaks fixes.
+
+-------------------------------------------------------------------
+Mon Sep 15 10:48:35 MDT 2008 - carnold@novell.com
+
+- Fix parameters in call to kill_proc_info (pv drivers).
+- Add conditional for use of smp_call_function so the pv drivers
+ can be built on older kernel versions.
+
+-------------------------------------------------------------------
+Thu Sep 11 12:42:05 MDT 2008 - brogers@novell.com
+
+- Added gdbserver-xen to the set of tools we build.
+ fate#302942
+
+-------------------------------------------------------------------
+Thu Sep 11 10:32:17 MDT 2008 - jfehlig@novell.com
+
+- Added ocfs2 to Should-Start in xendomains init script
+
+-------------------------------------------------------------------
+Wed Sep 10 20:47:45 MDT 2008 - plc@novell.com
+
+- Added pv cdrom support to blktap
+ fate#300964
+
+-------------------------------------------------------------------
+Wed Sep 10 14:06:51 MDT 2008 - jfehlig@novell.com
+
+- Removed invocation of network-bridge script from xend-config.sxp.
+ Networks are now created through yast2-network package.
+- Added sysconfig hook script for Xen to cope with ifup/ifdown
+ events on network devices (e.g. bridges) in use by virtual
+ machines.
+ fate#303386
+
+-------------------------------------------------------------------
+Mon Sep 8 08:53:25 MDT 2008 - carnold@novell.com
+
+- Updated to xen version 3.3.1 RC changeset 18390.
+
+-------------------------------------------------------------------
+Wed Sep 3 21:07:56 CEST 2008 - kwolf@suse.de
+
+- Snapshots: Fix xend API functions for libvirt usage
+
+-------------------------------------------------------------------
+Mon Sep 1 08:56:32 MDT 2008 - carnold@novell.com
+
+- Fix problems building KMPs against the 2.6.27 kernel.
+
+-------------------------------------------------------------------
+Fri Aug 29 06:39:21 MDT 2008 - plc@novell.com
+
+- Added 'tap' to the type of devices for HalDaemon.py to
+ scan for change of xenstore attribute media-present.
+
+-------------------------------------------------------------------
+Wed Aug 27 12:21:19 MDT 2008 - jfehlig@novell.com
+
+- Don't create pv vif device if emulated network device is
+ explicitly specified in guest config.
+
+-------------------------------------------------------------------
+Fri Aug 22 08:37:49 MDT 2008 - carnold@novell.com
+
+- Updated to xen-unstable changeset 18358 Xen 3.3.0 FCS.
+
+-------------------------------------------------------------------
+Wed Aug 20 13:59:45 MDT 2008 - carnold@novell.com
+
+- Updated to xen-unstable changeset 18353 RC7.
+
+-------------------------------------------------------------------
+Wed Aug 20 15:08:19 CEST 2008 - kwolf@suse.de
+
+- Implementation of xm snapshot-delete
+ snapshot-ioemu-delete.patch, snapshot-xend.patch
+- Add snapshot options to qemu-img-xen
+ qemu-img-snapshot.patch
+
+-------------------------------------------------------------------
+Tue Aug 19 10:27:05 MDT 2008 - carnold@novell.com
+
+- Enable kboot and kexec patches.
+
+-------------------------------------------------------------------
+Mon Aug 18 11:13:55 MDT 2008 - carnold@novell.com
+
+- Updated to xen-unstable changeset 18335 RC5.
+
+-------------------------------------------------------------------
+Mon Aug 18 17:17:25 CEST 2008 - carnold@suse.de
+
+- Removed git dependency. Instead use a static version of
+ ioemu-remote.
+
+-------------------------------------------------------------------
+Thu Aug 14 17:58:06 MDT 2008 - jfehlig@novell.com
+
+- Added patch to prevent starting same domU from multiple hosts.
+ Feature is disabled by default - see /etc/xen/xend-config.sxp.
+ fate#305062
+
+-------------------------------------------------------------------
+Mon Aug 11 16:42:18 MDT 2008 - jfehlig@novell.com
+
+- Added python-openssl to Requires list for xen-tools. This
+ package is required if SSL relocation is enabled by user.
+
+-------------------------------------------------------------------
+Mon Aug 11 14:44:03 MDT 2008 - carnold@novell.com
+
+- Updated to xen-unstable changeset 18309. Pre 3.3.0-rc4.
+
+-------------------------------------------------------------------
+Sat Aug 9 13:22:37 MDT 2008 - jfehlig@novell.com
+
+- Disabled xend-relocation-ssl-server for now. Certificates must
+ be created and feature needs testing.
+
+-------------------------------------------------------------------
+Fri Aug 8 15:34:04 MDT 2008 - carnold@novell.com
+
+- Update to xen-unstable changeset 18269 post RC3. Reverse
+ version back to 3.3.0 from 4.0.0.
+
+-------------------------------------------------------------------
+Wed Aug 6 10:30:51 MDT 2008 - carnold@novell.com
+
+- Updated to xen-unstable changeset 18242. Version changes from
+ 3.3.0 to 4.0.0
+
+-------------------------------------------------------------------
+Thu Aug 4 10:25:01 MDT 2008 - carnold@novell.com
+
+- Updated to xen-unstable changeset 18210. Post 3.3.0-rc2.
+
+-------------------------------------------------------------------
+Tue Jul 8 16:39:42 MDT 2008 - carnold@novell.com
+
+- Updated to xen-unstable changeset 17990.
+
+-------------------------------------------------------------------
+Tue Jul 8 15:09:51 MDT 2008 - kwolf@suse.de
+
+- ioemu: Write barriers for blktap devices
+ ioemu-blktap-barriers.patch
+
+-------------------------------------------------------------------
+Thu Jul 3 13:28:35 MDT 2008 - kwolf@suse.de
+
+- blktapctrl defaults to using ioemu instead of tapdisk now
+ blktapctrl-default-to-ioemu.patch
+- Now that ioemu is default, it can be called with image paths
+ starting e.g. with tap:qcow2. If the image format is specified,
+ it has to be respected and no guessing on the image file must
+ happen.
+ ioemu-blktap-image-format.patch
+- qcow2: Read/Write multiple sectors at once if possible to
+ improve performance.
+ ioemu-qcow2-multiblock-aio.patch
+
+-------------------------------------------------------------------
+Thu Jun 12 14:12:05 MDT 2008 - kwolf@novell.com
+
+- Add snapshot support to ioemu and blktapctrl
+ snapshot-ioemu-save.patch
+ snapshot-ioemu-restore.patch
+
+-------------------------------------------------------------------
+Fri Jun 6 08:56:56 MDT 2008 - jfehlig@novell.com
+
+- bnc#397890 - Create and own /var/lib/xen/dump
+
+-------------------------------------------------------------------
+Thu Jun 5 11:02:32 MDT 2008 - kwolf@novell.com
+
+- Fix tapdisk for qcow2 images > 2 GB
+ 1xxxx-qcow2-2gb-bug.patch
+
+-------------------------------------------------------------------
+Thu Jun 5 10:34:29 MDT 2008 - jfehlig@novell.com
+
+- Updated to xen-unstable changeset 17772.
+
+-------------------------------------------------------------------
+Tue May 27 13:29:22 MDT 2008 - plc@novell.com
+
+- bnc#381368 - boot qcow image fix.
+
+-------------------------------------------------------------------
+Fri May 23 09:13:59 MDT 2008 - jfehlig@novell.com
+
+- bnc#378595 - Revert patch that disables use of ifup/ifdown.
+ ifup-bridge in sysconfig has been fixed so patch is no longer
+ needed. Calling ifdown on bridge now removes ports and deletes
+ bridge, so network-bridge no longer needs to do these tasks.
+
+-------------------------------------------------------------------
+Fri May 16 15:29:26 MDT 2008 - carnold@novell.com
+
+- bnc#390985 - xm man page needs FIXME sections to be fixed
+ xen-fixme-doc.diff
+
+-------------------------------------------------------------------
+Wed May 14 11:00:42 MDT 2008 - carnold@novell.com
+
+- bnc#375322 - L3:timer went backwards
+ x86-domain-shutdown-latency.patch
+
+-------------------------------------------------------------------
+Sat May 10 12:56:24 MDT 2008 - plc@novell.com
+
+- bnc#388969 - Shift tab traversal does not work
+ xen-shift-key.patch
+- bnc#384277 - PVFB security hole
+ xen-pvfb-security.patch
+- bnc#385586 - VNC windows size too small
+ xen-vnc-resize.patch
+
+-------------------------------------------------------------------
+Fri Apr 25 13:24:39 MDT 2008 - carnold@novell.com
+
+- bnc#383513 - Unknown unit 'K' in Xen's logrotate config file.
+
+-------------------------------------------------------------------
+Tue Apr 25 08:23:37 MDT 2008 - carnold@novell.com
+
+- Update to Xen 3.2.1 FCS changeset 16881.
+
+-------------------------------------------------------------------
+Fri Apr 11 08:38:21 MDT 2008 - carnold@novell.com
+
+- Update to Xen 3.2.1 RC5 changeset 16864.
+
+-------------------------------------------------------------------
+Thu Apr 10 17:32:15 MDT 2008 - jfehlig@novell.com
+
+- bnc#378595 - Do not use ifup/ifdown in network-bridge for now.
+
+-------------------------------------------------------------------
+Mon Mar 24 16:47:56 MDT 2008 - carnold@novell.com
+
+- bnc#373194 - The xen module and the kernel for Dom0 don't match.
+- Add ncurses-devel build dependency
+
+-------------------------------------------------------------------
+Mon Mar 24 10:56:35 MDT 2008 - carnold@novell.com
+
+- Update to Xen 3.2.1 RC1 changeset 16820.
+
+-------------------------------------------------------------------
+Thu Mar 20 09:38:03 CET 2008 - coolo@suse.de
+
+- 3.1.0 is unfortunately not enough to obsolete 3.1.0_<something>
+ in rpm terms
+
+-------------------------------------------------------------------
+Fri Mar 14 16:58:04 CET 2008 - carnold@novell.com
+
+- Update to Xen 3.2.1 changeset 16805.
+
+-------------------------------------------------------------------
+Fri Mar 14 11:20:22 CET 2008 - coolo@suse.de
+
+- ipcalc does not exist - and breaks pattern
+
+-------------------------------------------------------------------
+Wed Mar 12 12:28:34 MDT 2008 - jfehlig@novell.com
+
+- Increased dom0-min-mem value to 512Mb in xend-config.sxp
+ bnc#370007
+
+-------------------------------------------------------------------
+Mon Mar 10 16:38:47 MDT 2008 - jfehlig@novell.com
+
+- Fixed initialization of default VM config values when creating
+ VMs through Xen API. bnc#368273
+
+-------------------------------------------------------------------
+Mon Mar 10 14:11:52 MDT 2008 - jfehlig@novell.com
+
+- Removed unused/untested xend-relocation script.
+
+-------------------------------------------------------------------
+Fri Mar 7 15:44:36 MST 2008 - jfehlig@novell.com
+
+- Set device model when creating pvfb consoles via XenAPI.
+ bnc#367851
+
+-------------------------------------------------------------------
+Fri Mar 7 09:28:58 MST 2008 - jfehlig@novell.com
+
+- Ensure dhcpcd is activated, if appropriate, on bridges created
+ by network-multinet. bnc#364633
+
+-------------------------------------------------------------------
+Fri Feb 29 09:58:06 MST 2008 - carnold@novell.com
+
+- bnc#357966 - VT-D dosen't work for HVM guest.
+
+-------------------------------------------------------------------
+Fri Feb 29 08:35:11 MST 2008 - plc@novell.com
+
+- Send UNIT_ATTENTION when CD drive has newly inserted media and
+ becomes ready. bnc#365386
+
+-------------------------------------------------------------------
+Thu Feb 28 16:42:16 MST 2008 - jfehlig@novell.com
+
+- Updated block-iscsi script and xen-domUloader patch, bnc #365385
+
+-------------------------------------------------------------------
+Thu Feb 28 11:34:52 MST 2008 - carnold@novell.com
+
+- Add support for Intel EPT / VPID.
+
+-------------------------------------------------------------------
+Tue Feb 26 14:12:17 MST 2008 - carnold@novell.com
+
+- bnc#362415 - SLE-based installs 32-bit fully-virtualized have
+ network problems during installs.
+- bnc#358244 - Time remaining does not change properly for FV SLES10
+ SP2 guest.
+- bnc#363053 - Install remaining time always shows 2:00:00
+
+-------------------------------------------------------------------
+Tue Feb 26 10:37:11 MST 2008 - carnold@novell.com
+
+- bnc#359457 - Xen full virt has data integrity issue.
+
+-------------------------------------------------------------------
+Tue Feb 26 08:34:17 MST 2008 - plc@novell.com
+
+- Tranlate colors from 32 bit to 16 bit when viewing a 32 bit PV
+ VM from a 16 bit client. bnc#351470
+ Also includes upstream mouse queue patch.
+
+-------------------------------------------------------------------
+Fri Feb 22 17:57:38 MST 2008 - jfehlig@novell.com
+
+- Added PAM configuration files for remote authentication via
+ Xen API. bnc #353464
+
+-------------------------------------------------------------------
+Tue Feb 19 13:22:32 MST 2008 - carnold@novell.com
+
+- Fix PV drivers for HVM guests.
+
+-------------------------------------------------------------------
+Fri Feb 15 14:08:35 MST 2008 - carnold@novell.com
+
+- Support for pxe booting fully virtualized guests in vm-install is
+ complete.
+
+-------------------------------------------------------------------
+Thu Feb 14 11:47:50 MST 2008 - carnold@novell.com
+
+- Added upstream changesets that fix various bugs.
+ 16859 16929 16930 16945 16947 16962 16976 16980 16995 16998 17036
+
+-------------------------------------------------------------------
+Wed Feb 13 17:42:17 MST 2008 - jfehlig@novell.com
+
+- Updated network-multinet
+ - Simplify bridge creation
+ - Create traditional bridge and hostonly networks by default
+
+-------------------------------------------------------------------
+Fri Feb 8 11:01:49 MST 2008 - jfehlig@novell.com
+
+- Added upstream changesets 16932, 16965, 16977, and 16988 to fix
+ various bugs in tool stack
+- Also added upstream changeset 16989 to complete fate #302941.
+
+-------------------------------------------------------------------
+Mon Feb 4 14:01:56 MST 2008 - plc@novell.com
+
+- Replaced xen-blktab-subtype-strip.patch with official upstream
+ changeset for bnc#353065.
+
+-------------------------------------------------------------------
+Fri Feb 1 16:11:59 MST 2008 - carnold@novell.com
+
+- Update to xen 3.2 FCS. Changeset 16718
+- Merge xen-tools and xen-tools-ioemu into xen-tools.
+
+-------------------------------------------------------------------
+Wed Dec 19 16:16:36 MST 2007 - carnold@novell.com
+
+- Update to xen 3.2 RC2. Changeset 16646
+
+-------------------------------------------------------------------
+Thu Dec 13 15:37:09 MST 2007 - carnold@novell.com
+
+- Added agent support for HP Proliant hardware.
+
+-------------------------------------------------------------------
+Wed Dec 5 13:04:17 MST 2007 - carnold@novell.com
+
+- #338108 - VUL-0: Xen security issues in SLE10
+- #279062 - Timer ISR/1: Time went backwards
+
+-------------------------------------------------------------------
+Thu Nov 29 13:44:29 MST 2007 - carnold@novell.com
+
+- Added part of upstream c/s 15211. Fixed open call with O_CREAT
+ because it had no mode flags (15211-fix-open-mode.patch).
+
+-------------------------------------------------------------------
+Mon Nov 5 09:38:14 MST 2007 - jfehlig@novell.com
+
+- Added upstream c/s 15434 to allow access to serial devices.
+ Bug #338486.
+
+-------------------------------------------------------------------
+Thu Nov 1 13:17:46 MDT 2007 - carnold@novell.com
+
+- #334445: xenbaked: Fix security vulnerability CVE-2007-3919.
+
+-------------------------------------------------------------------
+Thu Nov 1 11:30:35 MDT 2007 - carnold@novell.com
+
+- #310279: Kernel Panic while booting Xen
+
+-------------------------------------------------------------------
+Tue Oct 2 17:05:28 MDT 2007 - ccoffing@novell.com
+
+- #286859: Fix booting from SAN
+
+-------------------------------------------------------------------
+Thu Sep 13 11:26:33 MDT 2007 - ccoffing@novell.com
+
+- #310338: Fix "No such file or directory" in network-multinet
+
+-------------------------------------------------------------------
+Wed Sep 12 18:04:33 MDT 2007 - jfehlig@novell.com
+
+- #309940: Fix 'xm reboot'
+- Moved hvm_vnc.diff and xend_mem_leak.diff to 'Upstream patches'
+ section of spec file since both have been accepted upstream now.
+
+-------------------------------------------------------------------
+Mon Sep 10 10:02:36 MDT 2007 - jfehlig@novell.com
+
+- #289283: Fix memory leak in xend
+
+-------------------------------------------------------------------
+Fri Sep 7 14:17:11 MDT 2007 - jfehlig@novell.com
+
+- #297125: Expose 'type vnc' in vfb device sexp for HVM guests.
+
+-------------------------------------------------------------------
+Thu Sep 6 14:42:19 MDT 2007 - ccoffing@novell.com
+
+- #302106: Update network-multinet
+
+-------------------------------------------------------------------
+Wed Sep 5 09:12:31 MDT 2007 - carnold@novell.com
+
+- #307458: AMD-V CR8 intercept reduction for HVM windows 64b guests
+
+-------------------------------------------------------------------
+Wed Aug 29 16:20:48 MDT 2007 - ccoffing@novell.com
+
+- Update block-iscsi to match changes to open-iscsi.
+
+-------------------------------------------------------------------
+Mon Aug 27 16:49:48 MDT 2007 - carnold@novell.com
+
+- #289275 - domu will not reboot if pci= is passed in at boot time.
+
+-------------------------------------------------------------------
+Fri Aug 24 11:30:49 MDT 2007 - carnold@novell.com
+
+- #297345: Added several upstream patches for hvm migration.
+
+-------------------------------------------------------------------
+Fri Aug 17 18:28:34 MDT 2007 - jfehlig@novell.com
+
+- Added upstream c/s 15128, 15153, 15477, and 15716. These patches
+ provide foundation for bug #238986
+- Renamed xend_dev_destroy_cleanup.patch to reflect the upstream
+ c/s number and moved it to "upstream patches" section of spec
+ file.
+
+-------------------------------------------------------------------
+Mon Aug 13 10:25:32 MDT 2007 - carnold@novell.com
+
+- hvm svm: Log into 'xm dmesg' that SVM NPT is enabled.
+
+-------------------------------------------------------------------
+Fri Aug 10 16:43:31 MDT 2007 - ccoffing@novell.com
+
+- Honor RPM_OPT_FLAGS better
+
+-------------------------------------------------------------------
+Thu Aug 9 10:29:08 MDT 2007 - ccoffing@novell.com
+
+- #298176: Do not enable NX if CPU/BIOS does not support it
+- #289569: Modify network-bridge to handle vlan
+- #297295: Fix bridge setup: stop using getcfg
+
+-------------------------------------------------------------------
+Tue Aug 7 08:47:11 CEST 2007 - olh@suse.de
+
+- remove inclusion of linux/compiler.h and linux/string.h
+ remove ExclusiveArch and fix prep section for quilt setup *.spec
+
+-------------------------------------------------------------------
+Thu Aug 2 13:10:36 MDT 2007 - jfehlig@novell.com
+
+- Added patch to fix/cleanup destoryDevice code path in xend.
+ Patch was submitted upstream. Aids in fixing several bugs, e.g.
+ #217211 and #242953.
+
+-------------------------------------------------------------------
+Tue Jul 31 13:12:40 MDT 2007 - ccoffing@novell.com
+
+- Update Ron Terry's network-multi script
+- Fix insserv
+
+-------------------------------------------------------------------
+Tue Jul 31 11:41:13 MDT 2007 - jfehlig@novell.com
+
+- Added following upstream patches:
+ + 15642 - Fixes bug 289421 found in SLES10 SP1 but applies to
+ Xen 3.1.0 as well.
+ + 15649, 15650, 15651 - Fixes/enhancements to Xen API required
+ by Xen CIM providers
+
+-------------------------------------------------------------------
+Fri Jul 27 10:50:58 MDT 2007 - ccoffing@novell.com
+
+- #242953: Allow HVM to use blktap
+- #239173: block-attach as RW for domUloader to avoid failures with
+ reiserfs (since blktap does not yet correctly communicate RO to
+ the kernel)
+
+-------------------------------------------------------------------
+Mon Jul 23 12:57:45 MDT 2007 - ccoffing@novell.com
+
+- Drop xen-bootloader-dryrun.diff; not needed for xen 3.1
+- rpmlint: Actually apply patch for #280637
+- rpmlint: Rename logrotate config from xend to xen
+- Don't package xenperf twice
+- xen-detect is a domU tool
+
+-------------------------------------------------------------------
+Mon Jul 23 12:06:55 MDT 2007 - jfehlig@novell.com
+
+- Added upstream patches that fix various bugs
+ + 15168 fixes check for duplicate domains
+ + 15587 resets domain ID and fixes problems with domain state
+ via Xen API
+ + 15609 stores memory values changed via Xen API
+
+-------------------------------------------------------------------
+Thu Jul 19 13:41:15 MDT 2007 - ccoffing@novell.com
+
+- BuildRequires LibVNCServer-devel
+- Rotate all logs.
+- Fix network data corruption on Win2003 with rtl8139. (#254646)
+- Xen fails to create VM due to "out of memory" errors. (#280637)
+
+-------------------------------------------------------------------
+Tue Jul 17 08:23:18 MDT 2007 - plc@novell.com
+
+- Added CDROM removable media patch from 3.0.4
+
+-------------------------------------------------------------------
+Fri Jul 6 14:34:20 MDT 2007 - ccoffing@novell.com
+
+- xensource bug #858: Disable strict aliasing for xenstore, to
+ avoid domU hangs.
+
+-------------------------------------------------------------------
+Tue Jul 3 15:15:28 MDT 2007 - ccoffing@novell.com
+
+- #285929: Bad "xendomains status" output w/ empty XENDOMAINS_SAVE
+
+-------------------------------------------------------------------
+Tue Jul 3 13:39:35 MDT 2007 - carnold@novell.com
+
+- Changes necessary to support EDD and EDID from Jan.
+
+-------------------------------------------------------------------
+Wed Jun 20 17:48:18 MDT 2007 - jfehlig@novell.com
+
+- Added upstream changesets 15273, 15274, and 15275.
+- Removed the modified 15157 patch. This patch was actually a
+ consolidation of changesets 15157 and 15250. These changesets
+ are now discrete patches to ease subsequent updates of Xen.
+
+-------------------------------------------------------------------
+Wed Jun 20 15:41:21 MDT 2007 - ccoffing@novell.com
+
+- Split vm-install off as a separate package.
+- Update man page.
+- Update Ron Terry's network-multi script.
+
+-------------------------------------------------------------------
+Mon Jun 18 14:23:38 MDT 2007 - ccoffing@novell.com
+
+- Fix compiler warnings.
+- Update block-npiv.
+
+-------------------------------------------------------------------
+Mon Jun 11 10:11:00 MDT 2007 - ccoffing@novell.com
+
+- Fix more warn_unused_value compiler warnings.
+
+-------------------------------------------------------------------
+Fri Jun 8 12:11:42 MDT 2007 - ccoffing@novell.com
+
+- Update to official rc10 (changeset 15042).
+- Updated vm-install:
+ + easier to exit with Ctrl-C
+ + drop "TERM=xterm" for Linux (breaks PVFB text install)
+ + use "TERM=vt100" when calling "xm" to suppress terminal codes
+ + command-line support for VNC password
+ + fixed disk groups (e.g., 2 disks on command line w/o PDEV)
+ + fixed regression: Don't let user close progress window
+ + failure to open a device should not completely fail search for
+ bootsector (consider: no media in /dev/cdrom)
+ + always remove PV kernel and initrd from /tmp
+ + #279153: Support disks on iscsi/qcow/vmdk/nbd/file/phy/...
+
+-------------------------------------------------------------------
+Fri Jun 8 11:33:41 MDT 2007 - jfehlig@novell.com
+
+- Added a modified version of upstream c/s 15157. Original version
+ of c/s 15157 fixed bug #262805 but also broke
+ 'xm block-detach dom dev_name'. Modified version fixes bug 262805
+ without introducing regression. Patch fixing c/s 15157 has been
+ submitted upstream.
+
+-------------------------------------------------------------------
+Wed May 23 16:36:54 MDT 2007 - ccoffing@novell.com
+
+- Drop xen-messages.diff; Xen now supports HVM save/restore.
+
+-------------------------------------------------------------------
+Tue May 22 09:52:50 MDT 2007 - ccoffing@novell.com
+
+- Update Ron Terry's network-multi script.
+- Drop xen-doc-ps. (#267948)
+- Update init scripts.
+- Tidy spec file to fix rpmlint errors.
+- Updated patches from Jan.
+
+-------------------------------------------------------------------
+Mon May 21 10:41:41 MDT 2007 - ccoffing@novell.com
+
+- vm-install bug fixes:
+ + #211342: better progress bar
+ + #259994: disk size would reset when editing path
+ + #247073: handle autoyast URLs
+ + #254311: physical disks were showing as 0.0 GB
+
+-------------------------------------------------------------------
+Wed May 16 16:05:22 MDT 2007 - ccoffing@novell.com
+
+- Properly quote pathnames in domUloader to fix EVMS. (#274484)
+- Allow user to specify a default 'keymap' in xend's configuration
+ file. (#258818 and 241149)
+
+-------------------------------------------------------------------
+Mon May 14 12:46:35 MDT 2007 - plc@novell.com
+
+- Added upstream python patches for keymap specification in
+ PV config file. Added upstream ALTGR fix, sign extension fix
+ and modified patch 323 so that upstream patches applied cleanly.
+ (#258818)
+
+-------------------------------------------------------------------
+Fri May 11 12:29:27 MDT 2007 - ccoffing@novell.com
+
+- Update to xen-3.1-testing rc10 (changeset 15040).
+- Update .desktop with proper group. (#258600)
+- Include Kurt's updated block-iscsi. (#251368)
+- Jim's updated patch to honor localtime setting. (#273430)
+- Fix vm-install to work correctly when doing multiple simultaneous
+ installs via virt-manager. (#259917)
+- Network connectivity fails in FV SLES 10 SP1; MAC address was
+ being read incorrectly from xenstore by PV driver. (#272351)
+- For FV SLES 9, default apic=1 to allow x86_64 SLES 9 to boot.
+ (#264183)
+
+-------------------------------------------------------------------
+Fri May 4 08:41:38 MDT 2007 - carnold@novell.com
+
+- Added security fixes for problems found Travis Orandy (#270621)
+ CVE-2007-1320, CVE-2007-1321, CVE-2007-1322, CVE-2007-1323,
+ CVE-2007-1366
+
+-------------------------------------------------------------------
+Thu May 3 15:35:19 MDT 2007 - ccoffing@novell.com
+
+- Update to xen-3.1-testing rc7 (changeset 15020).
+- Fix identification of virt-manager windows. (#264162)
+
+-------------------------------------------------------------------
+Tue May 1 17:43:33 MDT 2007 - jfehlig@novell.com
+
+- Integrated domUloader with 3.0.5. Updated xen-domUloader.diff.
+
+-------------------------------------------------------------------
+Mon Apr 30 10:44:41 MDT 2007 - ccoffing@novell.com
+
+- Update to xen-3.0.5-testing rc4 (changeset 14993).
+
+-------------------------------------------------------------------
+Thu Apr 26 13:20:36 MDT 2007 - jfehlig@novell.com
+
+- Fixed autobuild error in function that returns random data.
+ File tools/ioemu/hw/piix4acpi.c line 72. Fix added to
+ xen-warnings.diff.
+
+-------------------------------------------------------------------
+Thu Apr 26 11:59:04 MDT 2007 - ccoffing@novell.com
+
+- Fix build on SLES 10 SP1.
+
+-------------------------------------------------------------------
+Wed Apr 25 13:41:20 MDT 2007 - ccoffing@novell.com
+
+- Update to xen-3.0.5-testing rc3 (changeset 14934).
+- Switch BuildRequires to texlive.
+
+-------------------------------------------------------------------
+Fri Apr 20 11:43:06 MDT 2007 - ccoffing@novell.com
+
+- Updated README. (#250705)
+- Fix vm-install's detection of PV RHEL4/5 kernels. (#260983)
+
+-------------------------------------------------------------------
+Thu Apr 19 16:00:12 MDT 2007 - ccoffing@novell.com
+
+- Place xenstore-* tools in new xen-tools-domU package, to be used
+ by suse_register. (#249157)
+
+-------------------------------------------------------------------
+Tue Apr 17 08:20:47 MDT 2007 - ccoffing@novell.com
+
+- Update translations.
+
+-------------------------------------------------------------------
+Thu Apr 12 14:23:15 MDT 2007 - ccoffing@novell.com
+
+- Combine two xenstore reads into one transaction, which causes
+ xenstored to not thrash so badly, and makes virt-manager more
+ responsive and less likely to time out or lock up. Partial fix
+ for #237406.
+- If disk is read-only, pass -r to losetup. (#264158)
+
+-------------------------------------------------------------------
+Thu Apr 5 17:45:45 MDT 2007 - ccoffing@novell.com
+
+- Update vm-install:
+ + #260510: do not delete xml settings file
+ + #260579: write correct vif line for PV NIC in FV VM
+ + #261288: re-enable add disk buttons after deleting a disk
+ + #192272, #222765, #250618: Update OS list and their defaults
+
+-------------------------------------------------------------------
+Tue Apr 3 17:07:37 MDT 2007 - ccoffing@novell.com
+
+- Could not do simultaneous installs via virt-manager. (#259917)
+
+-------------------------------------------------------------------
+Mon Apr 2 17:48:43 MDT 2007 - jfehlig@novell.com
+
+- Fix improper handling of guest kernel arguments in domUloader.
+ Bug #259810
+
+-------------------------------------------------------------------
+Mon Apr 2 17:02:11 MDT 2007 - ccoffing@novell.com
+
+- Update vm-install:
+ + #259420: refresh available memory more often
+ + #259972: cannot enter autoyast url
+
+-------------------------------------------------------------------
+Mon Apr 2 08:46:03 MDT 2007 - ccoffing@novell.com
+
+- Update translations for RC2.
+
+-------------------------------------------------------------------
+Fri Mar 30 12:54:45 MDT 2007 - ccoffing@novell.com
+
+- Fix "cannot allocate memory" when starting VMs. (#229849, 258743)
+
+-------------------------------------------------------------------
+Thu Mar 29 10:16:54 MDT 2007 - ccoffing@novell.com
+
+- Fix quoting of args for child processes during VM install.
+ (#258376)
+- Fix retry logic in block hotplug script. (#257925)
+
+-------------------------------------------------------------------
+Wed Mar 28 11:31:48 MDT 2007 - ccoffing@novell.com
+
+- Updated vm-install's icon name.
+- Updated translations.
+
+-------------------------------------------------------------------
+Fri Mar 23 11:25:01 MDT 2007 - ccoffing@novell.com
+
+- Disable aspects of qemu's console that can affect domain 0.
+ (#256135)
+- Fix xmclone.sh to work with managed domains. (#253988)
+- Update to xen-unstable changeset 14535.
+
+-------------------------------------------------------------------
+Mon Mar 19 09:46:21 MDT 2007 - ccoffing@novell.com
+
+- Update to xen-unstable changeset 14444.
+- Include Ron Terry's network-multi_bridge
+
+-------------------------------------------------------------------
+Fri Mar 9 18:45:33 MST 2007 - jfehlig@novell.com
+
+- Added lame patch to handle showing suspended state via Xen API.
+ The patch only affects Xen API and is thus low risk.
+ Bug #237859
+
+-------------------------------------------------------------------
+Fri Mar 9 17:00:20 MST 2007 - carnold@novell.com
+
+- Added AMD support for Vista 64 installation and boot.
+
+-------------------------------------------------------------------
+Fri Mar 9 12:24:12 MST 2007 - ccoffing@novell.com
+
+- Make vm-install support NFS for SUSE (#241251).
+
+-------------------------------------------------------------------
+Fri Mar 9 10:07:05 MST 2007 - jfehlig@novell.com
+
+- Fixed bug #250522
+ + Upstream c/s 13557 stores model attribute of vif in xenstore.
+
+-------------------------------------------------------------------
+Thu Mar 8 12:35:18 MST 2007 - ccoffing@novell.com
+
+- Update vm-install:
+ + Better description on "Virtual Disk" drop-down (not "xvda")
+ + Proper separation of recording options versus calculating
+ defaults; fixes corner cases
+ + #247849, #253013, 253009: Multiple fixes related to how disks
+ are defined, centered around bug #247849 (handle partitioned
+ PV installation disk)
+ + #252437: Allow virtual CDROM to be added (via ISO) even if
+ physical CDROM doesn't exist
+
+-------------------------------------------------------------------
+Wed Mar 7 19:43:55 MST 2007 - jfehlig@novell.com
+
+- Fixed bug #252396
+ + Added upstream c/s 14021. Applies to Xen API c-bindings -
+ low risk.
+ + Added local patch to correctly set Xen API Console.protocol
+ property
+
+-------------------------------------------------------------------
+Wed Mar 7 14:28:41 MST 2007 - jfehlig@novell.com
+
+- Added upstream patch that fixes save/restore on 32pae guests.
+ Upstream c/s 14150. Bug #237859
+
+-------------------------------------------------------------------
+Tue Mar 6 15:48:13 MST 2007 - carnold@novell.com
+
+- Remove a debug message which is spamming the logs during live
+ migration.
+
+-------------------------------------------------------------------
+Mon Mar 5 17:51:17 MST 2007 - jfehlig@novell.com
+
+- Fixed handling of vbd type in Xen API <-> sexpr integration.
+ Bug #250351
+ + Updated an existing patch (xend_disk_decorate_rm.patch) and
+ then renamed patch to xend_vbd_type.patch to better reflect
+ purpose of patch.
+
+-------------------------------------------------------------------
+Mon Mar 5 09:38:36 MST 2007 - ccoffing@novell.com
+
+- Default apic=0 for SLES 8 and 9, for performance. (#228133)
+
+-------------------------------------------------------------------
+Fri Mar 2 16:58:06 MST 2007 - carnold@novell.com
+
+- Xen kernel crashes at domain creation time. Bug #248183.
+ Fix mouse for win2k hvm guest.
+
+-------------------------------------------------------------------
+Fri Mar 2 13:15:33 MST 2007 - jfehlig@novell.com
+
+- Incorrect values returned for actions_after_* in Xen API. Added
+ patch xend-actions-after.patch for fix. Patch submitted upstream
+ as well. Bug #250870.
+
+-------------------------------------------------------------------
+Fri Mar 2 12:08:55 MST 2007 - ccoffing@novell.com
+
+- Update vm-install:
+ + Fixed possible "tree path exception" when editing disk
+ + Fixed failure to properly refresh fields when editing disk
+ + #248356: allow specifying bridge
+
+-------------------------------------------------------------------
+Fri Mar 2 10:23:38 MST 2007 - jfehlig@novell.com
+
+- Add check for HVM domain in domain_save. The check is
+ performed in domain_suspend and should be included here as well.
+
+-------------------------------------------------------------------
+Thu Mar 1 18:13:20 MST 2007 - ccoffing@novell.com
+
+- Update vm-install:
+ + #250201: for linux PVFB, pass xencons=tty if graphics=none
+ + #250016: honor non-sparse flag
+
+-------------------------------------------------------------------
+Thu Mar 1 17:25:44 MST 2007 - jfehlig@novell.com
+
+- Fix exception caused by incorrect method name in xen-messages.diff.
+ This is one of perhaps several problems with save/restore,
+ bug #237859
+
+-------------------------------------------------------------------
+Thu Mar 1 15:43:00 MST 2007 - dpmerrill@novell.com
+
+- Add xen-ioemu-hvm-pv-support.diff
+ This patch allows for shutting down the IDE drive.
+
+-------------------------------------------------------------------
+Thu Mar 1 11:27:00 MST 2007 - jfehlig@novell.com
+
+- Fix bug #243667
+ + Updated domUloader to accept '--args' parameter. The args
+ provided as an option to --args are simply added to the sexpr
+ returned by domUloader. pygrub has similar behavior.
+
+-------------------------------------------------------------------
+Wed Feb 28 18:16:53 MST 2007 - ccoffing@novell.com
+
+- Update vm-install:
+ + #249013, #228113: default to realtek instead of pcnet
+ + #249124: write os-type to config files
+ + Updated translations
+ + Setting os_type should implicitly set full_virt; fixes NIC
+ model exceptions
+ + Add "Add" button to Operating System Installation page, based
+ on usability feedback
+
+-------------------------------------------------------------------
+Wed Feb 28 15:55:15 MST 2007 - jfehlig@novell.com
+
+- Added changeset 13786 and 14022 from xen-unstable. These
+ changesets affect the Xen API C bindings only and are low risk.
+ This is a continuation of support for FATE feature 110320. ECO
+ has been approved for late arrival of this feature.
+
+-------------------------------------------------------------------
+Mon Feb 26 10:39:06 MST 2007 - ccoffing@novell.com
+
+- Update vm-install:
+ + #244772: display error message in GUI if xen isn't running
+ + #246049: better error message when OS==SUSE but ISO looks wrong
+ + Fix printing of jobid when run with --background
+
+-------------------------------------------------------------------
+Wed Feb 21 15:54:51 MST 2007 - ccoffing@novell.com
+
+- Don't allow "xm create" of running VM. (#245253)
+- Update vm-install:
+ + Fix inability to use already-extracted SUSE kernel/initrds
+ + Fix accumulation of 0-byte tmp files
+ + #237063: close fds before running vncviewer
+ + default apic=0 for Windows, due to performance
+
+-------------------------------------------------------------------
+Tue Feb 20 13:53:22 MST 2007 - carnold@novell.com
+
+- Domain0 reboots after 2-6 hours of running guests. (#246160)
+
+-------------------------------------------------------------------
+Tue Feb 20 12:49:36 MST 2007 - ccoffing@novell.com
+
+- Fix typo in xendomains. (#246107)
+- Fix order in which vm-install processes command-line arguments.
+
+-------------------------------------------------------------------
+Fri Feb 16 18:07:09 MST 2007 - jfehlig@novell.com
+
+- Added changeset 13775 from xen-unstable. This patch fixes
+ the last known issue with the Xen API patchset backported
+ from xen-unstable.
+
+-------------------------------------------------------------------
+Fri Feb 16 11:31:15 MST 2007 - jfehlig@novell.com
+
+- Added c/s 13226 from xen-unstable. It affects Xen API only.
+- Added patch to remove ':disk' and 'tap:qcow' from stored domain
+ config. Fixes bug #237414 and helps with bug #242953.
+
+-------------------------------------------------------------------
+Thu Feb 15 19:03:13 MST 2007 - jfehlig@novell.com
+
+- Backported Xen API functionality from xen-unstable to support
+ hosting CIM providers. This functionality is required for
+ FATE feature 110320. ECO has been approved.
+ + Includes 19 changesets from xen-unstable. Most are
+ specific to Xen API.
+ + Includes 1 patch that relaxes parsing of xml response
+ in Xen API c-bindings.
+
+-------------------------------------------------------------------
+Thu Feb 15 12:52:24 MST 2007 - carnold@novell.com
+
+- Added x86-nmi-inject.patch for NW debuging. (#245942)
+
+-------------------------------------------------------------------
+Thu Feb 15 10:09:41 MST 2007 - carnold@novell.com
+
+- kernel panic in DomU while installing 32bit DomU on 64bit
+ Dom0. (#244055) Patches 13630-domctl.patch,
+ 13903-domctl.patch and 13908-domctl.patch
+- Updated patch pae-guest-linear-pgtable.patch
+
+-------------------------------------------------------------------
+Mon Feb 12 17:00:58 MST 2007 - ccoffing@novell.com
+
+- Load xenblk at dom0 start to support bootstrapping from
+ non-loopback devices. (#242963, #186696)
+- Update vm-install:
+ + Update translations
+ + Clean up exception error codes and sync man pages
+ + Honor ordering of arguments (as claimed in man page)
+ + #240984: properly detach vncviewer
+ + #240387: default to absolute coordinate mouse for Windows
+- Drop logging patch. (#245150)
+
+-------------------------------------------------------------------
+Mon Feb 12 01:50:34 CET 2007 - ro@suse.de
+
+- remove -fstack-protector from RPM_OPT_FLAGS for now
+
+-------------------------------------------------------------------
+Thu Feb 8 16:54:59 MST 2007 - ccoffing@novell.com
+
+- Update vm-install:
+ + Allow specifing disk (and disk size) vs. cdrom from CLI
+ + Add missing -M/--max-memory parameter to CLI to match GUI
+ + #241528: Display error if user selects FV OS but hw lacks VT
+ + Move all consistency checks out of Options class, since CLI
+ options may be processed in a "bad" order
+ + Fix infinite loops when info is missing from background jobs
+ + --background implies --no-auto-console
+ + Don't let user close progress window
+ + Fix bug in qemu slowness work-around, reported by Jan Albrecht
+ + Do disk.validate() when clicking "OK" on disks page
+ + #238959: Probe for removable media via /sys/block
+ + Output VNC info for backgrounded job
+ + Fix method of waiting for VM to exit when --no-autoconsole
+ + #239582: Use extracted kernel-xen/initrd-xen if present
+
+-------------------------------------------------------------------
+Tue Feb 6 12:02:47 MST 2007 - ro@suse.de
+
+- disable commented out buildreq for kernel for the moment
+ to workaround endless rebuild
+
+-------------------------------------------------------------------
+Tue Feb 6 10:30:33 MST 2007 - ccoffing@novell.com
+
+- xm-test should clean up xenstore better (#180138)
+
+-------------------------------------------------------------------
+Thu Feb 1 12:07:59 MST 2007 - ccoffing@novell.com
+
+- Implement better job support for CIM (#241197)
+- Temporary fix to allow PV VMs to reboot (#237414)
+- Delete PYTHONOPTIMIZE for good; callers don't set it.
+
+-------------------------------------------------------------------
+Wed Jan 31 08:51:05 MST 2007 - ccoffing@novell.com
+
+- Update xen-3.0.4 (changeset 13138); includes migration bugfix.
+
+-------------------------------------------------------------------
+Tue Jan 30 07:43:09 MST 2007 - ccoffing@novell.com
+
+- Enable building KMP.
+- Fix xendomains to work with managed domains. (#238781)
+
+-------------------------------------------------------------------
+Thu Jan 25 09:16:10 MST 2007 - ccoffing@novell.com
+
+- Various bug fixes of 32on64, from Jan and Keir.
+- Gerd's fix for domain builder with > 4 GB RAM (#233761)
+- Update xen-vm-install:
+ #234331, #239007: CD/DVDs should always be marked read-only
+ #238458: Work-around qemu slowness bug
+ #239196: Support SLED
+ #239275: Fix .desktop file
+ #240064: Clean up VMs better after failed install
+
+-------------------------------------------------------------------
+Tue Jan 23 09:11:29 MST 2007 - ccoffing@novell.com
+
+- Update xen-vm-install:
+ #237370: Can now install 32pae SLES 10 on x86_64 hypervisor
+ #237396: Be able to use an existing disk, bypass OS installation
+ Fix handling of user's extra_args
+- Patch from Jan to enable building PV drivers KMP for FV SUSE.
+ Currently conditionalized.
+- Drop unused patches xen-io-register-context.diff and
+ xen-console.diff
+
+-------------------------------------------------------------------
+Sat Jan 20 09:44:00 MST 2007 - brogers@novell.com
+
+- Fix handling of localtime config file parameter for PV guests
+ (#234376)
+
+-------------------------------------------------------------------
+Fri Jan 19 14:40:01 MST 2007 - ccoffing@novell.com
+
+- Update xen-vm-install (NIC UI work; do not require tcp port bz
+ #236517; integrate with virt-manager)
+
+-------------------------------------------------------------------
+Wed Jan 17 14:14:17 MST 2007 - ccoffing@novell.com
+
+- Update xen-vm-install (more disk UI work; support NetWare
+ response files and licenses)
+
+-------------------------------------------------------------------
+Tue Jan 16 16:36:14 MST 2007 - ccoffing@novell.com
+
+- Major fixes to xen-vm-install (adding disks in the UI now works,
+ and fixed several CLI exceptions)
+- Microcode does not need to be exactly 2048 bytes (changeset
+ 13079; Kurt)
+
+-------------------------------------------------------------------
+Fri Jan 12 17:09:56 MST 2007 - ccoffing@novell.com
+
+- Include script to clone SLES 10 domU, from coolsolutions (fate
+ #301742)
+- Updated patches from Gerd and Jan, including PAE > 4 gig fix,
+ updated VGA console patch.
+- Updated xen-vm-install with finalized strings and desktop file.
+
+-------------------------------------------------------------------
+Thu Jan 11 08:40:18 MST 2007 - ccoffing@novell.com
+
+- Include xen-unstable patches for HVM save/restore and 32-on-64
+ HVM.
+- Update to xen-3.0.4-1 (changeset 13132).
+
+-------------------------------------------------------------------
+Wed Jan 10 16:27:50 MST 2007 - ccoffing@novell.com
+
+- Update xen-vm-install and domUloader to support NetWare.
+- Include AMD's nested page table patches.
+
+-------------------------------------------------------------------
+Mon Jan 8 09:36:40 MST 2007 - ccoffing@novell.com
+
+- Update to xen-3.0.4 (changeset 13129).
+- Fix from upstream for mis-emulation of x86-64 pop.
+
+-------------------------------------------------------------------
+Fri Jan 5 10:58:48 MST 2007 - carnold@novell.com
+
+- Many patches from Jan Beulich and Gerd Hoffmann in support of
+ 32 on 64 pv guests. These patches apply to both the hypervisor
+ and the tools.
+
+-------------------------------------------------------------------
+Fri Dec 22 10:40:06 MST 2006 - ccoffing@novell.com
+
+- Do not require authentication on XenAPI socket, since CIMOM does
+ not support authentication. Socket is only accessible to root.
+
+-------------------------------------------------------------------
+Wed Dec 20 09:07:41 MST 2006 - ccoffing@novell.com
+
+- Update to xen-3.0.4 (changeset 13100).
+- Update xen-vm-install tools.
+- Include Jim's 2 xen-tools patches for CIM provider issues.
+
+-------------------------------------------------------------------
+Mon Dec 18 14:59:01 MST 2006 - ccoffing@novell.com
+
+- Update to xen-3.0.4-rc3 (changeset 13087).
+- Fix line terminators in block-iscsi (#228864)
+- Make domUloader work with blktap support in xend.
+
+-------------------------------------------------------------------
+Fri Dec 15 10:22:29 MST 2006 - ccoffing@novell.com
+
+- Update to xen-3.0.4-rc2 (changeset 13067).
+
+-------------------------------------------------------------------
+Thu Dec 14 14:54:19 MST 2006 - ccoffing@novell.com
+
+- Update to xen-3.0.4-rc1 (changeset 12901).
+
+-------------------------------------------------------------------
+Wed Dec 13 12:53:00 MST 2006 - brogers@novell.com
+
+- Patch for loading bimodal PAE kernel to suuport NetWare
+
+-------------------------------------------------------------------
+Thu Dec 7 10:33:58 MST 2006 - ccoffing@novell.com
+
+- Update to xen-unstable (changeset 12757).
+- Enable LIBXENAPI_BINDINGS and XENFB_TOOLS.
+- Enable unix domain socket for xend; needed by tools.
+
+-------------------------------------------------------------------
+Tue Dec 5 15:12:12 MST 2006 - ccoffing@novell.com
+
+- Update to xen-unstable (changeset 12734; feature freeze for
+ 3.0.4)
+- Make /etc/xen mode 0700 to protect vnc passwords.
+
+-------------------------------------------------------------------
+Mon Nov 27 18:07:41 MST 2006 - ccoffing@novell.com
+
+- Fix how bootloader is called by the xend during restarts.
+ (#223850)
+
+-------------------------------------------------------------------
+Wed Nov 22 11:26:06 MST 2006 - ccoffing@novell.com
+
+- Series of patches from Jan to address selectors with non-zero-
+ bases and other related issues in HVM. (#214568)
+- Default pae=1, otherwise 64 bit HVM does not work at all.
+ (#217160)
+
+-------------------------------------------------------------------
+Fri Nov 17 11:30:16 MST 2006 - ccoffing@novell.com
+
+- Backport several HVM fixes. (#176171?)
+
+-------------------------------------------------------------------
+Thu Nov 16 13:16:09 MST 2006 - ccoffing@novell.com
+
+- Fix some problems in the xen-hvm-default-bridge patch. (#219092)
+- xmlrpc isn't 64-bit clean, causing xend to get exceptions when
+ PFN is > 2 GB. (#220418)
+
+-------------------------------------------------------------------
+Mon Nov 13 20:40:09 MST 2006 - kallan@novell.com
+
+- Backport changesets 11847, 11888, 1189[6-9], 119[00-18], 11974,
+ 1203[0-2], and 12205 from xen-unstable so that the PV drivers
+ can compile on older kernels such as sles9 and rhel4
+- Fix netfront.c to fail the probe if it is called for an ioemu
+ type device. This allows both PV and FV drivers to exist at
+ same time in the FV guest.
+
+-------------------------------------------------------------------
+Thu Nov 9 10:10:09 MST 2006 - ccoffing@novell.com
+
+- Add xen-vm-install.
+- Default bridge correctly for HVM guests. (#219092)
+
+-------------------------------------------------------------------
+Wed Nov 8 11:26:02 CET 2006 - aj@suse.de
+
+- Set correct permissions on man files.
+
+-------------------------------------------------------------------
+Tue Nov 7 08:43:01 MST 2006 - ccoffing@novell.com
+
+- Update name of blktap.ko in xend init script. (#215384)
+- Remove some extraneous bad chars in xm manpage. (#218440)
+- Update logrotate.conf.
+- Update spec file.
+
+-------------------------------------------------------------------
+Wed Nov 01 11:16:05 MST 2006 - kallan@novell.com
+
+- Backport xen-unstable changesets 12040 to address spurious
+ interrupts with PV drivers in HVM guests.
+
+-------------------------------------------------------------------
+Tue Oct 31 13:56:04 MST 2006 - ccoffing@novell.com
+
+- Backport xen-unstable changesets 1184[1-3] to address SVM
+ interrupt injection issues. Replaces earlier (broken) patches.
+
+-------------------------------------------------------------------
+Mon Oct 30 15:19:02 MST 2006 - ccoffing@novell.com
+
+- /var/lib/xen/images should not be world readable. (#214638)
+- Update to xen-3.0.3-0 (changeset 11774; no code changes).
+
+-------------------------------------------------------------------
+Mon Oct 16 12:58:46 MDT 2006 - ccoffing@novell.com
+
+- Update to xen-3.0.3-testing changeset 11772 (rc5).
+- Fix several possible type errors when running domUloader.
+- Remove pygrub. Was broken on reiserfs and never had ext2
+ support, so it is useless. (#173384)
+- First attempt at moving domUloader to blktap. Still disabled
+ due to block-detach failing.
+
+-------------------------------------------------------------------
+Fri Oct 13 10:29:18 MDT 2006 - ccoffing@novell.com
+
+- Update to xen-3.0.3-testing changeset 11760 (rc4).
+
+-------------------------------------------------------------------
+Tue Oct 10 10:42:51 MDT 2006 - ccoffing@novell.com
+
+- Update to xen-3.0.3-testing changeset 11740 (rc3).
+- Fix crash on PAE when specifying dom0_mem=4096M. (#211399)
+- Make xend.balloon aware of kernel's memory floor, to fix
+ "Privileged domain did not balloon" errors. (#184727)
+
+-------------------------------------------------------------------
+Mon Oct 9 09:20:46 MDT 2006 - ccoffing@novell.com
+
+- Include AMD's interrupt injection fix.
+
+-------------------------------------------------------------------
+Wed Oct 4 13:00:09 MDT 2006 - ccoffing@novell.com
+
+- Imported keymap patch. (#203758)
+- Account for minimum memory required by dom0 kernel. (#184727)
+- Package /usr/include/xen/hvm/*.h
+
+-------------------------------------------------------------------
+Tue Oct 3 11:51:34 MDT 2006 - ccoffing@novell.com
+
+- Update to xen-3.0.3-testing changeset 11686.
+
+-------------------------------------------------------------------
+Tue Oct 3 10:36 MDT 2006 - kallan@novell.com
+
+- Updated README.SuSE to reflect the current method of handling
+ Xen network-bridging when using SuSEfirewall2. (#205092)
+
+-------------------------------------------------------------------
+Sat Sep 30 10:21:42 CEST 2006 - aj@suse.de
+
+- Cleanup BuildRequires.
+
+-------------------------------------------------------------------
+Thu Sep 28 11:18:17 MDT 2006 - ccoffing@novell.com
+
+- Only "eval" disks once in domUloader, to match current Xen.
+
+-------------------------------------------------------------------
+Wed Sep 27 10:47:16 MDT 2006 - ccoffing@novell.com
+
+- Switch to xen-3.0.3-testing tree; changeset 11633.
+- Update (but disable) paravirtualized framebuffer patches.
+
+-------------------------------------------------------------------
+Tue Sep 26 09:07:41 MDT 2006 - ccoffing@novell.com
+
+- Update to xen-unstable changeset 11623.
+- Fix domUloader typo introduced in last update.
+- Build debug version of xen-pae.
+
+-------------------------------------------------------------------
+Mon Sep 25 10:11:31 MDT 2006 - ccoffing@novell.com
+
+- Update to xen-unstable changeset 11616.
+
+-------------------------------------------------------------------
+Tue Sep 12 16:14:51 MDT 2006 - ccoffing@novell.com
+
+- Update check_python script to identify Python 2.5 RCs as valid.
+
+-------------------------------------------------------------------
+Mon Sep 11 12:04:23 MDT 2006 - ccoffing@novell.com
+
+- Update to xen-unstable changeset 11440.
+- xen-tools conflicts with qemu. Do not package qemu.1 manpage.
+ (#204758)
+- Include Jan's updated patch for #192150 (to preserve register
+ context when doing IO).
+
+-------------------------------------------------------------------
+Tue Sep 5 15:27:57 MDT 2006 - ccoffing@novell.com
+
+- Update block-nbd and xmexample.nbd, and add block-iscsi and
+ xmexample.iscsi (from Kurt).
+
+-------------------------------------------------------------------
+Thu Aug 31 09:45:11 MDT 2006 - ccoffing@novell.com
+
+- Automatically create/destroy virtual frame buffer viewer. Add
+ "sdl=1" to config file of a paravirtualized VM to get the viewer.
+- Log files have moved to /var/log/xen.
+
+-------------------------------------------------------------------
+Tue Aug 29 15:34:38 MDT 2006 - ccoffing@novell.com
+
+- xendomains does not actually save domains. (#201349)
+- Update to xen-unstable changeset 11299.
+
+-------------------------------------------------------------------
+Tue Aug 29 01:04:22 CEST 2006 - ccoffing@novell.com
+
+- Fix incorrect path on x86_64 for vncfb and sdlfb.
+
+-------------------------------------------------------------------
+Thu Aug 17 09:09:48 MDT 2006 - ccoffing@novell.com
+
+- Improve xendomains init script, to handle unset sysconfig vars.
+- Import virtual framebuffer patches.
+- Drop reboot patch; resync patches.
+
+-------------------------------------------------------------------
+Wed Aug 16 09:20:15 MDT 2006 - ccoffing@novell.com
+
+- Update to xen-unstable changeset 11134.
+- Drop xen-reverse-10064.diff now that kernel is updated.
+
+-------------------------------------------------------------------
+Tue Aug 8 15:44:08 MDT 2006 - ccoffing@novell.com
+
+- Re-enabled patch for #184175.
+- Update to xen-unstable changeset 10986.
+- Include Jan's patch to preserve register context when doing
+ IO. (#192150)
+
+-------------------------------------------------------------------
+Fri Jul 28 14:36:59 MDT 2006 - ccoffing@novell.com
+
+- Add support to domUloader for "xm create --dry-run". Based on
+ patch from HP.
+
+-------------------------------------------------------------------
+Thu Jul 27 10:30:26 MDT 2006 - ccoffing@novell.com
+
+- Add link for qemu-dm that is invariant across architectures, so
+ that VM config files can be simple key/value pairs parsable by
+ yast, and still be movable to another arch. (#193854)
+- Add loop.ko to rescue image created by mk-xen-rescue-img, and
+ remove usbfs from image's /etc/fstab since USB isn't yet
+ supported, to avoid errors during boot. (#191627)
+
+-------------------------------------------------------------------
+Mon Jul 17 11:40:01 MDT 2006 - ccoffing@novell.com
+
+- Update to xen-unstable changeset 10712.
+- Update domUloader and rcxend to work with blktap.
+
+-------------------------------------------------------------------
+Fri Jul 14 09:02:50 MDT 2006 - ccoffing@novell.com
+
+- When waiting for domains to shut down, must also wait for
+ loopback devices to be torn down, otherwise higher-level tools
+ may migrate a VM before the disk image is flushed. (#185557)
+- More updates to the README.
+
+-------------------------------------------------------------------
+Wed Jul 13 13:06:14 MDT 2006 - kallan@novell.com
+
+- Added for loop to retry the losetup -d in /etc/xen/scripts/block.
+ It is possible for the losetup -d to fail if another process is
+ examining the loopback devices e.g. losetup -a. (#151105)
+
+-------------------------------------------------------------------
+Wed Jul 12 16:11:10 MDT 2006 - ccoffing@novell.com
+
+- Corrected and updated README.
+
+-------------------------------------------------------------------
+Mon Jul 10 10:27:09 MDT 2006 - ccoffing@novell.com
+
+- Add Jeff Mahoney's block-sync.diff, to give control of
+ "losetup -y" to the user (and potentially yast). Defaults to
+ old async behavior. (#190869)
+
+-------------------------------------------------------------------
+Thu Jul 6 15:48:35 MDT 2006 - ccoffing@novell.com
+
+- Update to xen-unstable tree. Revert changeset 10064, to maintain
+ backwards compatibility with SLES 10.
+
+-------------------------------------------------------------------
+Wed Jul 5 12:10:04 MDT 2006 - ccoffing@novell.com
+
+- Do not open migration port by default. (#190170)
+- Update patch for migration oops, to latest version in bug
+ #162865.
+
+-------------------------------------------------------------------
+Mon Jul 3 19:58:01 CEST 2006 - okir@suse.de
+
+- xen-losetup-sync.diff: use the new "losetup -y" option to force
+ the loop device to use synchronous I/O (#189051)
+
+-------------------------------------------------------------------
+Fri Jun 30 12:38:24 MDT 2006 - ccoffing@novell.com
+
+- Increase balloon timeout value. (#189815)
+- Update to xen-3.0-testing tree, changeset 9762.
+
+-------------------------------------------------------------------
+Thu Jun 29 12:42:25 MDT 2006 - ccoffing@novell.com
+
+- Fix some loopback races in domUloader. (#151105)
+
+-------------------------------------------------------------------
+Tue Jun 27 13:47:32 MDT 2006 - ccoffing@novell.com
+
+- Add "max_para_memory" and "max_hvm_memory" to output of "xm info"
+ for bug #184727.
+- Include Jan's patches for bug #184175. Improves PAE guest
+ support on HVM.
+
+-------------------------------------------------------------------
+Mon Jun 26 11:21:49 MDT 2006 - ccoffing@novell.com
+
+- Include patch from HP to fix a domU migration failure ("Kernel
+ BUG at mm/mmap.c:1961"). Force L1/L2 page tables to be updated
+ at the end, to avoid them from being dirtied and not transferred.
+ (#162865)
+
+-------------------------------------------------------------------
+Thu Jun 23 09:23:19 MDT 2006 - kallan@novell.com
+
+- Updated xen-bonding.diff to enable bonding again after the latest
+ patches to network-bridge etc. (#161888)
+
+-------------------------------------------------------------------
+Wed Jun 21 15:16:47 MDT 2006 - ccoffing@novell.com
+
+- Clean up the useless "Nothing to flush" messages, from 'ip addr
+ flush', in /var/log/xen-hotplug.log
+- Fix race condition in domUloader.py, when another process did
+ losetup -d while domUloader was running. This would result in
+ the mount failing, and so the VM would fail to start.
+
+-------------------------------------------------------------------
+Tue Jun 20 14:42:28 MDT 2006 - ccoffing@novell.com
+
+- Revamp balloon.py to account for pages currently being
+ scrubbed. (#185135)
+
+-------------------------------------------------------------------
+Mon Jun 19 09:55:04 MDT 2006 - ccoffing@novell.com
+
+- Update to xen-3.0-testing tree, changeset 9749.
+- DomUs are getting starved for CPU (up to 40 seconds was seen)
+ when dom0 has a load. This can cause pathological behavior, and
+ can cause OCFS2 to fence (panic) the domain. (#179368, #178884)
+- Import Gerd's fix to network-bridge script for bug #161888.
+
+-------------------------------------------------------------------
+Wed Jun 14 13:24:25 MDT 2006 - ccoffing@novell.com
+
+- Pull out accidentally-included debugging code.
+- Drop xenvers patch; this was for backwards compatibility for
+ some early internal builds.
+- Update from Jan on the console patch. Not all graphics cards /
+ drivers properly reflect the state in the register being tested.
+ Improved the check, to prevent screen corruption. (#161541)
+
+-------------------------------------------------------------------
+Tue Jun 13 10:28:36 MDT 2006 - ccoffing@novell.com
+
+- Resync with new tarball from xen-3.0-testing; changeset 9738.
+
+-------------------------------------------------------------------
+Mon Jun 12 10:23:35 MDT 2006 - ccoffing@novell.com
+
+- Drop BUILD_BUG_ON and pirq-shared patches. Last week's pirq
+ sharing patch from upstream (for bug #152892) makes these patches
+ redundant. Dropping these makes our shared_info structure match
+ upstream again, which is needed for compatibility with other
+ paravirtualized guests.
+- Import changeset 9734 from xen-3.0-testing. This fixes a hyper-
+ call (used by the pcifront driver) to work on MP guests. Without
+ this, the pciback driver can hang on MP. (#181467)
+- Import changeset 9733 from xen-3.0-testing. This patch is
+ required to match the Linux kernel, since Linux always calls
+ this operation from VCPU0 during secondary VCPU bringup.
+ Without this, process run-time accounting on secondary CPUs is
+ completely wrong.
+- Updated README: Documented work-around for bug #180058.
+
+-------------------------------------------------------------------
+Fri Jun 9 09:23:04 MDT 2006 - ccoffing@novell.com
+
+- Include Jan's patch: "IOPL is ignored for VM86 mode port
+ accesses. Fix Xen emulation to match native behaivour." Fixes
+ some X lockup issues. (#179045)
+- Include Keir's patch to allow reading from port 0x61, to avoid
+ an X server lockup. (#171087)
+- Include xen-3.0-testing changeset 9726, which is needed to
+ support the latest kernel-xen. With this support, Linux will
+ only trigger unhandled IRQ path if IRQ is not shared across
+ multiple guests (another guest may have handled the interrupt).
+ This is more upstream work that goes with bug #152892.
+- Add versioning to the Requires lines, to guard against mixing
+ binary incompatible versions. (#183292)
+- I accidentially dropped part of Clyde's fix for bug #162244.
+ SMP support in HVM is working in xen-unstable, so upstream
+ dropped the HT CPUID masking code, which we then inheirited.
+ Re-add HT CPUID masking. (#162244)
+- Updated README: VNC installations, known issues.
+
+-------------------------------------------------------------------
+Thu Jun 8 11:38:34 MDT 2006 - ccoffing@novell.com
+
+- Drop our XCHG patch for the equivalent upstream patch, to fix
+ patch application order. No code change.
+
+-------------------------------------------------------------------
+Wed Jun 7 12:19:16 MDT 2006 - ccoffing@novell.com
+
+- Updated README: HVM issues/tips, CDROM tips, known issues.
+- Add patch from Intel to decode LODS/STOS instructions to fix
+ Windows installation. Only affects HVM. Xen changeset #9725
+ consolidates this patch and xen-hvm-decode.diff; drop our 2 in
+ favor of the consolidated upstream patch. (#176717)
+
+-------------------------------------------------------------------
+Tue Jun 6 10:08:19 MDT 2006 - ccoffing@novell.com
+
+- Drop xen-8-way-bios patch, because it breaks Windows HVM
+ installation. The patch was only necessary when running SMP HVM
+ with "acpi=0" on the kernel command line. (#181974)
+- Include two patches from xen-3.0-testing that change the
+ interface between Xen and guests. Including these now to help
+ forward-compatibility:
+ + 9709: Changes interface for accessing %cr3 so that extra bits
+ (>4GB) for PAE pgdirs are placed in low-order bits of %cr3.
+ Kernels without support for this will still run fine.
+ + 9721: Use explicitly-sized types in the dom0_ops and privcmd
+ structures.
+- Fix ability to change ISOs images for HVM guest. (#181895)
+- Removed pointless whitespace changes from xen-removable.diff, for
+ better maintainability. Cut the patch size in half; no code
+ changes.
+
+-------------------------------------------------------------------
+Mon Jun 5 10:19:27 MDT 2006 - ccoffing@novell.com
+
+- Include select patches from xen-3.0-testing:
+ + 9698: Official fix for bug #159001. Dropped our patch.
+ + 9702: Fix MMU_NORMAL_PT_UPDATE when passed a page that is no
+ longer of type page-table.
+ + 9703: Modification to fix for bug #159001; ignore empty PTEs.
+ + 9704: Fix for obvious typo in map_pages_to_xen: When replacing
+ a pte, free the page table pointed to by the old entry, not the
+ new entry.
+ + 9705: Jan's previous signed-ness patch (c/s 9695) was changed
+ when accepted upstream, which broke it; this changeset
+ attempts to fix the breakage.
+ + 9708: HVM: Fix a hang when doing an "xm destroy" of Windows VM.
+ + 9717: HVM: Interrupts must be kept disabled when entering Xen
+ for external interrupt processing.
+
+-------------------------------------------------------------------
+Fri Jun 2 11:08:07 MDT 2006 - ccoffing@novell.com
+
+- Include xen-3.0-testing changeset 9693. This scales the
+ ballooning timeout with the amount of memory being requested
+ (necessary for large memory machines). This is a more proper fix
+ for Novell bug #175805, and addresses XenSource bug #650.
+
+-------------------------------------------------------------------
+Thu Jun 1 14:40:23 MDT 2006 - ccoffing@novell.com
+
+- Update the README, regarding how to make the mouse work properly
+ with VNC in HVM.
+- Update help text in mk-xen-rescue-img.
+
+-------------------------------------------------------------------
+Wed May 31 14:53:43 MDT 2006 - ccoffing@novell.com
+
+- Jan's backport of xen-unstable changesets 9517, 9518, and 9529.
+ This allows Xen to boot on 4-node configurations without
+ crashing. (#150114)
+- Include patch from Jun Nakajima at Intel to fix inability to
+ start XWindows after creating HVM guest. (#159001)
+- Include select patches from xen-3.0-testing:
+ + 9697: Fix infinite recursion loop in get_page_type() error path
+- Include xen-unstable changeset 9967, to improve Summagraphics
+ tablet emulation, to help mouse tracking in HVM. (#167187)
+- Include 3 patches from AMD to fix SMP support in HVM. (#176171)
+- Add CPUID masking patches from AMD and Intel for HVM. This
+ prevents the OS from seeing (and trying to use) various hardware
+ features that are not supported within the VM. (#180879)
+
+-------------------------------------------------------------------
+Fri May 26 11:48:08 MDT 2006 - ccoffing@novell.com
+
+- Fix deadlock between xm and qemu. Qemu should not call xm;
+ issue xc commands directly. This deadlock was exposed when
+ making qemu exit nicely and clean up. (#176400)
+- Include Gerd's update to his previous REP MOVS fix. Calculating
+ high_addr and low_addr is more complicated than previously
+ thought, and the count was wrong. (#165448).
+- Drop previous patch that forcefully turns off Xen's console
+ logging to avoid video corruption; instead use Jan's patch which
+ only turns logging off when in graphical mode. (#161541)
+- Include Jan's patch to call machine_halt rather than inline
+ assembly "hlt" when Xen crashes to sync display, disable watchdog
+ timers, etc.
+- Tweak the auto-ballooning patch to limit the VM itself to the
+ requested amount of memory, don't include the overhead, as
+ suggested by Intel. Separate calls exist elsewhere to increase
+ the max as needed. (#149179)
+- Include select patches from xen-3.0-testing:
+ + 9688, 9696: These remove some broken assembly string
+ functions. This is prep work from Jan for bug #160066.
+ + 9695: Updates in the hypervisor to EDI and ESI could be
+ incorrect, due to sign not being handled correctly.
+
+-------------------------------------------------------------------
+Fri May 19 11:01:29 MDT 2006 - ccoffing@novell.com
+
+- Update from Intel to previous patch to fix installation of HVM
+ W2k. Adds decoding for two more instructions. (#176717)
+- Updated the README.
+- Included updated version of KY's patch to reserve some lowmem
+ for PAE, to avoid kernel BUG() during boot. The amounts of
+ memory reserved at various physical memory sizes have been
+ adjusted. (#175124)
+- Include Intel's patch for unchecked allocations in shadow*.c.
+ (#149179)
+
+-------------------------------------------------------------------
+Thu May 18 09:50:11 MDT 2006 - ccoffing@novell.com
+
+- Include Intel's patch to fix installation of HVM W2k. This patch
+ adds decoding for 'xor' and 'and' instructions. Without this,
+ the VM crashes when W2k attempts to install network components.
+ (#176717)
+- While tidying xen-hvm-memory-check.diff for submission upstream,
+ I noticed an error in the patch (such that low-memory while
+ starting the HVM domain could still crash the physical machine.)
+ Now all uses of iopm are protected by the check. (#149179)
+- Xen must always relinquish control of the VGA console once dom0
+ has started. Otherwise, it could be over-writing dom0's memory,
+ causing screen or other memory corruption. Admin can use
+ "xm dmesg" to view Xen's log instead. (#161541)
+- First send a SIGTERM, rather than SIGKILL, to qemu to give it a
+ chance to clean up. This fixes both mouse and CD-ROM issues
+ for fully virtualized VMs. This is a work-around; Ross is
+ still working on the proper fix. (#176400, #171258, #176157)
+- Include select patches from xen-3.0-testing:
+ + 9682,9683: These patches only affect full virtualization on
+ AMD. Fixes register corruption, cleans up event injection,
+ cleans up IO handling.
+ + 9685,9686: This patch only affects full virtualization on
+ Intel. Fixes VM's segment base address, to avoid vmentry
+ failure. Also remove 32/64 differences in vmx reg store/load.
+
+-------------------------------------------------------------------
+Wed May 17 14:45:46 MDT 2006 - ccoffing@novell.com
+
+- When auto-ballooning domain 0's memory for a new HVM domain,
+ all memory (including memory intended for overhead) was given
+ to the VM itself. So increasing the memory size calculations
+ did not actually free up any more memory. Now, treat the amount
+ to balloon and the amount to give to the VM as separate values.
+ (#149179)
+
+-------------------------------------------------------------------
+Tue May 16 11:11:12 MDT 2006 - ccoffing@novell.com
+
+- Include Gerd's fix for HVM emulation of REP MOVS when the copy
+ spans a page. If the direction flag was set, the emulation code
+ broke. This caused the VM to freeze when configuring firewall
+ (#165448).
+- Include KY's fix to default to reserving 16M of lowmem for PAE,
+ to avoid hitting kernel BUG() during boot (#175124).
+- Don Dugger's (Intel) fix for HVM screen corruption (#164573).
+- Increase maximum time auto-ballooning will wait for domain 0 to
+ respond, otherwise large VMs will fail to start from yast
+ (#175805).
+
+-------------------------------------------------------------------
+Mon May 15 13:18:14 MDT 2006 - ccoffing@novell.com
+
+- Update memory size calculations when auto-ballooning for HVM
+ to make more stable (#149179).
+
+-------------------------------------------------------------------
+Fri May 12 10:42:37 MDT 2006 - ccoffing@novell.com
+
+- Include select patches from xen-3.0-testing:
+ + 9674: xc_ptrace: Fix reversed conditional, which broke single-
+ stepping.
+ + 9675: xc_ptrace: Fix out-of-bounds memory-access for FPU state.
+ + 9678: Fix the performance issues of 2-level paging HVM guests
+ on the PAE Xen.
+- Update man pages.
+
+-------------------------------------------------------------------
+Wed May 10 12:38:14 MDT 2006 - brogers@novell.com
+
+- Fix loading of binary images which either require PAE or
+ dynamically support running on both PAE hypervisor and non-PAE
+ hypervisors. (#174080)
+
+-------------------------------------------------------------------
+Wed May 10 12:36:23 MDT 2006 - carnold@novell.com
+
+- Handle memory failure when staring fully virtualized
+ guests to prevent reboot of the box (AMD) or
+ hanging the box (VT) (#149179).
+
+-------------------------------------------------------------------
+Tue May 9 16:40:59 MDT 2006 - ccoffing@novell.com
+
+- Include select patches from xen-3.0-testing:
+ + 9665: Fix pciif parsing for compatibility variable.
+ + 9666: Fix HVM hang; was broken due to previous "hda lost
+ interrupt" patch. (#169146)
+ + 9667: Do not set GP fault in VMCS for VMX (no bug#; from Intel)
+
+-------------------------------------------------------------------
+Thu May 4 20:53:21 MDT 2006 - cgriffin@novell.com
+
+- Update xen-3.0-testing tree, changeset 9664:
+ + Changesets 9663 and 9664 fix AMD fully virtualized
+ guests causing the system to reboot when
+ first starting up. (#169855)
+
+-------------------------------------------------------------------
+Thu May 4 20:16:06 MDT 2006 - cgriffin@novell.com
+
+- With a Xen domain set up with a loop-mountable file as rootfs,
+ the "xm start " invocation fails. The cause is a bug
+ domUloader.py (#172586)
+
+-------------------------------------------------------------------
+Thu May 4 12:52:32 MDT 2006 - rmaxfiel@novell.com
+
+- Added the ability to 'attach' and 'detach' removable media
+ devices to hvm guests. Also made cdrom eject when the eject
+ request comes from the hvm guest. (#159907)
+- Fixed the loss of mouse when a SDL session ends with 'grab'
+ in effect. (#159001)
+
+-------------------------------------------------------------------
+Thu May 4 10:42:32 MDT 2006 - cgriffin@novell.com
+
+- Update xen-3.0-testing tree, changeset 9661:
+ + Drop patches merged upstream
+ + Took Kier's official patches for dropped patches most
+ notably spurious interrupts (#152892)
+- Took Intel's patch to fix screen corruption when
+ resizing the screen of windows hvm guests (#164573)
+
+-------------------------------------------------------------------
+Wed May 03 11:14:40 MDT 2006 - kallan@novell.com
+
+- Added configuring network interfaces when using Xen bridging instructions
+ to the README.SuSE file as requested by bug #171533.
+
+-------------------------------------------------------------------
+Mon May 01 09:42:25 MDT 2006 - tthomas@novell.com
+
+- Added message to xm save to indicate that save is not currently
+ supported for fully virtualized guests. (#161661)
+
+-------------------------------------------------------------------
+Fri Apr 28 09:42:25 MDT 2006 - ccoffing@novell.com
+
+- Close fds before exec-ing vncviewer, so yast2-vm doesn't hang
+ when viewing fully-virtualized console (#168392).
+
+-------------------------------------------------------------------
+Thu Apr 27 08:14:18 MDT 2006 - ccoffing@novell.com
+
+- Update xen-3.0-testing tree, changeset 9656:
+ + Drop patches merged upstream.
+ + Fix reboot on large SMP machines (IBM, no bug #).
+- Integrate Jan's patches:
+ + Spurious interrupt roundup (#152892).
+
+-------------------------------------------------------------------
+Mon Apr 24 15:32:32 MDT 2006 - ccoffing@novell.com
+
+- Integrate Jan's patches:
+ + FXSR patch (#135677).
+ + APIC option patch (work-around #150114).
+ + Protect against hypervisor crash (#169143).
+- Update xen-3.0-testing tree, changeset 9649:
+ + Avoid spurious timer activations in hypervisor.
+ + Fix xen command line parsing (lapic / nolapic parsing).
+ + Fix inverted BUG_ON w.r.t. SiS APIC bug.
+
+-------------------------------------------------------------------
+Fri Apr 21 08:56:29 MDT 2006 - ccoffing@novell.com
+
+- Update to 3.0.2-2 (xen-3.0-testing tree, changeset 9640):
+ + Fix for "hda lost interrupt" for PAE VMX.
+ + Increase L2 PDE to 1 GB; allows x86_64 to boot larger dom0.
+ + Fix for SVM booting 32pae-on-32pae.
+- Drop upstream patches (SiS APIC bug, HTT, HVM interrupt race)
+- Add Jan's port of spurious interrupt patch (#152892).
+- Add /etc/xen/images link for convenience (#168070).
+- Updated README.
+
+-------------------------------------------------------------------
+Thu Apr 20 10:29:44 MDT 2006 - ccoffing@novell.com
+
+- SiS APIC bug patch (Jan Beulich, #116485).
+
+-------------------------------------------------------------------
+Wed Apr 19 12:22:53 MDT 2006 - ccoffing@novell.com
+
+- Don't kill xenstored and xenconsoled when stopping xend.
+ (#158562, #156261)
+
+-------------------------------------------------------------------
+Wed Apr 19 10:46:32 MDT 2006 - ccoffing@novell.com
+
+- Update to 3.0.2-2 (xen-3.0-testing tree, changeset 9629):
+ + Fix for SMP IA32 VMX guest booting.
+ + KY's SETMAXMEM fix.
+
+-------------------------------------------------------------------
+Wed Apr 19 10:23:57 MDT 2006 - cgriffin@novell.com
+
+- Removed HTT bit from cpuid and set logical processor count to 1.
+ Also fixed logic problem in svm code where apic=0 was not
+ handled (#162244).
+
+-------------------------------------------------------------------
+Wed Apr 19 16:41:32 CEST 2006 - agruen@suse.de
+
+- Create /boot symlinks in the %install section instead of in
+ %post so that they will end up in the package file list.
+
+-------------------------------------------------------------------
+Tue Apr 18 15:40:41 MDT 2006 - ccoffing@novell.com
+
+- Add /etc/xen/vm to vm config file search path (#167208).
+
+-------------------------------------------------------------------
+Fri Apr 14 11:05:40 MDT 2006 - kallan@novell.com
+
+- Add support for bonding in network-bridge. (#161678).
+
+-------------------------------------------------------------------
+Fri Apr 14 09:27:40 MDT 2006 - ccoffing@novell.com
+
+- Update to 3.0.2-2 (xen-3.0-testing tree, changeset 9620):
+ + Fixes stack corruption in libxs (XenSource #411).
+
+-------------------------------------------------------------------
+Thu Apr 13 09:55:02 MDT 2006 - rmaxfiel@novell.com
+
+- Fixed a problem in ioemu which exited when the cdrom line was
+ found in the guest def file but the cd device contained no media.
+ (#161210)
+
+-------------------------------------------------------------------
+Wed Apr 12 12:57:23 MDT 2006 - ccoffing@novell.com
+
+- Auto-balloon domain 0 for HVM domains (#149179).
+- Update to 3.0.2-1 (xen-3.0-testing tree, changeset 9612):
+ + Fixes xmlrpc issues.
+ + Fixes several emulated instructions for HVM.
+ + Fixes for x86_64 inline assembly.
+
+-------------------------------------------------------------------
+Tue Apr 11 16:45:48 MDT 2006 - ccoffing@novell.com
+
+- Fix "jitter" and race in dom0's memory target calculation, which
+ could cause auto-ballooning to fail (#164714).
+
+-------------------------------------------------------------------
+Tue Apr 11 05:03:34 MDT 2006 - brogers@novell.com
+
+- Fix problem where localtime=1 results in zombie domains after
+ they shutdown (#164960)
+
+-------------------------------------------------------------------
+Mon Apr 10 09:54:49 MDT 2006 - ccoffing@novell.com
+
+- Update to hg 9598 (xen-3.0-testing tree; 3.0.2-rc). Discounting
+ Linux changes and patches we already carry, this update contains:
+ + Saner error handling in iret hypercall (x86/64).
+ + Make root page table sanity check on restore more generic.
+ + Additional sanity / compatability checks during guest build.
+ + IO-APIC update hypercall fixes.
+
+-------------------------------------------------------------------
+Fri Apr 7 11:45:56 MDT 2006 - ccoffing@novell.com
+
+- Don't throw an exception if 'xm top' is run by non-root; print
+ error message instead (#164224).
+- Change localtime patch to account for daylight savings time
+ (Bruce Rogers).
+- Re-add patch to make tightvnc work. It was accidentally dropped
+ recently (#149556).
+
+-------------------------------------------------------------------
+Thu Apr 6 09:59:03 MDT 2006 - ccoffing@novell.com
+
+- Update to hg 9590 (xen-3.0-testing tree; 3.0.2-rc).
+- Fix type error in localtime patch for para (Bruce Rogers).
+- Fix default localtime for full (Bruce Rogers).
+- Fix path in mk-xen-resue-img.sh (#163622).
+- Update README (pathnames, yast2-vm descriptions, terminology).
+
+-------------------------------------------------------------------
+Tue Apr 4 01:24:01 CEST 2006 - garloff@suse.de
+
+- init script: Test for control_d in capabilities to determine dom0
+ rather than privcmd.
+- init script: Try loading netloop and backend modules.
+- mk-xen-rescue-img.sh: Copy frontend drivers, remove stale files.
+- example config files: provide commented out domUloader exmaples.
+
+-------------------------------------------------------------------
+Mon Apr 3 10:13:38 MDT 2006 - ccoffing@novell.com
+
+- Update to hg 9514 (xen-unstable tree; 3.0.2-rc).
+- Fix for rebooting (Jan Beulich; #160064).
+
+-------------------------------------------------------------------
+Fri Mar 31 13:00:22 MST 2006 - ccoffing@novell.com
+
+- Update to hg 9502 (xen-unstable tree; 3.0.2-rc).
+- Update man page (#162402).
+- xen-tools requires python-xml (#161712).
+- Include localtime patch to support NetWare (Bruce Rogers).
+
+-------------------------------------------------------------------
+Thu Mar 30 08:56:52 MST 2006 - ccoffing@novell.com
+
+- Update to hg 9481 (xen-unstable tree; 3.0.2-rc).
+- Correctly default XAUTHORITY if it is not set. This allows the
+ GUI to come up for fully virtualized guests (was especially
+ problematic when VM was started from YaST). (#142472)
+
+-------------------------------------------------------------------
+Wed Mar 29 15:23:51 MST 2006 - ccoffing@novell.com
+
+- Fixed reversed "Do I have enough memory?" test when creating
+ new VMs (#156448).
+
+-------------------------------------------------------------------
+Tue Mar 28 11:37:34 MST 2006 - ccoffing@novell.com
+
+- Pick up two critical fixes for AMD to fix full virtualization:
+ c/s 9453 & c/s 9456.
+
+-------------------------------------------------------------------
+Thu Mar 23 14:23:32 MST 2006 - ccoffing@novell.com
+
+- Update to hg 9434 (xen-unstable tree; 3.0.2-rc).
+- Fix /etc/xen/scripts/block to properly check if devices can be
+ shared.
+- Default XENDOMAINS_AUTO_ONLY to true; previous setting
+ contradicts yast2-vm's claim that only VM's marked auto will be
+ auto-started.
+
+-------------------------------------------------------------------
+Mon Mar 20 08:48:31 MST 2006 - ccoffing@novell.com
+
+- Update to hg 9329 (xen-unstable tree).
+
+-------------------------------------------------------------------
+Wed Mar 15 12:20:38 MST 2006 - ccoffing@novell.com
+
+- Update to hg 9251 (xen-unstable tree).
+- Update to latest versions of Intel's VNC patches:
+ patch-vga-sse2-0314.l, patch-vnc_loop-0314.l,
+ patch-vncmouse-0315.l
+- Gather example files in /etc/xen/examples.
+
+-------------------------------------------------------------------
+Tue Mar 14 11:00:00 MST 2006 - rmaxfiel@novell.com
+
+- Removed the intermediate sym-link between xen.gz and
+ xen-<version>-<release>.gz. Grub 0.97 XFS can not handle a
+ double indirect to a file. (#151792)
+
+-------------------------------------------------------------------
+Tue Mar 14 00:29:28 CET 2006 - garloff@suse.de
+
+- Update README.SuSE: Document limits (mem, cpu hotplug, max_loop),
+ more network troubleshooting, update security info.
+- Be more tolerant against errors in ifdown/ifup to better coexist
+ with non-std network setups (e.g. ifplugd/NetworkManager).
+
+-------------------------------------------------------------------
+Tue Mar 7 10:56:36 MST 2006 - ccoffing@novell.com
+
+- Update to hg 9172 (xen-unstable tree).
+- Create new xen-libs package, split from xen-tools (#154473).
+- Update mk-xen-rescume-img and xmexample.rescue to work with
+ current rescue image on CD (#152971).
+- Include Kurt's patch to domUloader, to pass command line args.
+- xendomains shouldn't try to migrate or save HVM domains, as this
+ isn't supported and will stall the shutdown (#155265).
+- Create empty /etc/xen/vm directory for YaST to place config files
+ in, to avoid name collisions (#156322).
+- Update and re-enable vga patch from Intel (Don Dugger). VGA
+ emul is faster and not corrupted.
+- ifup is run to ensure IPs are assigned before rearranging for
+ xen, but this can fail with ifplugd; this should not kill the
+ whole script (Kirk Allan) (#154115).
+- Make network-bridge script more robust, by checking /sys instead
+ of grep-ing.
+
+-------------------------------------------------------------------
+Mon Mar 6 12:27:19 MST 2006 - ccoffing@novell.com
+
+- Update to hg 9148 (xen-unstable tree). Drop patches merged
+ upstream.
+- More README improvements (#154134).
+- Fix "vncviewer=1" to bring up vncviewer (#149556).
+
+-------------------------------------------------------------------
+Mon Mar 6 09:58:24 MST 2006 - ccoffing@novell.com
+
+- Fix build of hvmloader and vmxassist by removing external
+ CFLAGS (XS changeset #9110).
+- Fix build by forcing --prefix during installation of *.py.
+
+-------------------------------------------------------------------
+Wed Mar 1 17:45:52 MST 2006 - ccoffing@novell.com
+
+- Update to hg 9029 (xen-unstable tree). Adds support for HVM on
+ 64 bit hardware.
+- Update vncmouse diff to 20060301 from Intel; compensates for lack
+ of eager events in our LibVNCServer.
+- Fix many bugs in lomount.
+- Cap maximum value of "xm mem-set" for domain 0, based on size of
+ dom0's page tables (#152667).
+
+-------------------------------------------------------------------
+Mon Feb 27 09:37:38 MST 2006 - ccoffing@novell.com
+
+- Update to hg 9015 (xen-unstable tree). More bug fixes.
+- Update patch to better honor RPM_OPT_FLAGS.
+- Updated README (#154134).
+- Disable xen-vga-0213 patch; it speeds VGA updates but was
+ corrupting the display.
+- Change max mouse polling time from 1ms to 10ms to reduce CPU
+ load (from Intel).
+
+-------------------------------------------------------------------
+Thu Feb 23 13:26:07 MST 2006 - ccoffing@novell.com
+
+- Update to hg 8954 (xen-unstable tree). More bug fixes.
+- Don't use a dummy IP of 1.2.3.4 for NFS server when booting domU
+ with DHCP. Seems to hang x86_64 Linux.
+- Remove unnecessary x86_64 patch.
+- Fix auto-ballooning of dom0 memory for HVM domUs (XenSource bug
+ 521).
+
+-------------------------------------------------------------------
+Tue Feb 21 15:07:43 MST 2006 - ccoffing@novell.com
+
+- Update to hg 8920 (xen-unstable tree). Fixes instruction decode
+ for fully virtualized guests, fixing booting from CDs.
+- Integrate 3 patches from Intel, to improve VNC performance.
+
+-------------------------------------------------------------------
+Tue Feb 21 08:42:37 MST 2006 - ccoffing@novell.com
+
+- Update to hg 8910 (xen-unstable tree).
+ fixes 32 on 32, 32 pae on 32pae, 64 on 64, 32 on 64.
+ critical HVM fixes, for fully virtualized guests.
+
+-------------------------------------------------------------------
+Fri Feb 17 08:27:11 MST 2006 - ccoffing@novell.com
+
+- Update to hg 8870 (xen-unstable tree). More HVM fixes.
+- Remove duplicate balloon.free call.
+- Add patch from Intel to fix dom0 crash on 64 bit SMP HVM.
+
+-------------------------------------------------------------------
+Thu Feb 16 16:16:11 MST 2006 - carnold@novell.com
+
+- Update to hg 8858 (xen-unstable tree).
+
+-------------------------------------------------------------------
+Wed Feb 15 08:31:19 MST 2006 - ccoffing@novell.com
+
+- Update to hg 8857 (xen-unstable tree). Syncs hypervisor core
+ with Linux 2.6.16, which may fix some ACPI issues. Fixes HVM.
+- Fix uninitialized variable in xc_load_bin (from Bruce Rogers).
+- Auto-balloon dom0 for fully virtualized domains (#149179).
+- xen-doc-html was missing image files.
+
+-------------------------------------------------------------------
+Mon Feb 13 12:20:03 MST 2006 - ccoffing@novell.com
+
+- Update to hg 8830 (xen-unstable tree).
+- Restore cs 8783/8792 to match kernel.
+
+-------------------------------------------------------------------
+Wed Feb 8 11:58:40 MST 2006 - ccoffing@novell.com
+
+- Update to hg 8800 (xen-unstable tree).
+- Update BuildRequires.
+- Add "max-free-memory" to "xm info", to support yast2-vm (#147612)
+- Insserv xendomains, to support yast2-vm.
+- Fix exit code of "xend stop".
+- Revert cs 8783/8792 to allow xenstore to start (until kernel
+ catches up).
+- Ensure eth0 aka veth0 really comes up in network-bridge.
+
+-------------------------------------------------------------------
+Sat Feb 4 18:47:41 CET 2006 - mls@suse.de
+
+- converted neededforbuild to BuildRequires
+
+-------------------------------------------------------------------
+Fri Jan 27 11:24:37 MST 2006 - ccoffing@novell.com
+
+- Update to hg 8728 (xen-unstable tree).
+- Improve network-bridge:
+ + Ensure netdev really is up, to fix STARTMODE="manual".
+ + Stop ifplugd when doing ifdown, to fix STARTMODE="ifplugd".
+ + Improve check for whether bridge already exists.
+ + Improve defaults for netdev.
+- Fix log rotate so xend moves to new log.
+- xen-tools "Requires" python, et.al.; xen proper doesn't.
+- Revamp mk-xen-rescue-img.sh (#118566).
+- Revamp rcxendomains: improved output, error checking, return
+ values (#143754, #105677).
+
+-------------------------------------------------------------------
+Tue Jan 24 14:49:09 MST 2006 - ccoffing@novell.com
+
+- Update to hg 8659 (xen-unstable tree).
+
+-------------------------------------------------------------------
+Mon Jan 23 14:46:54 MST 2006 - ccoffing@novell.com
+
+- Correct return values and improve messages of init scripts.
+
+-------------------------------------------------------------------
+Fri Jan 20 14:10:40 MST 2006 - ccoffing@novell.com
+
+- Use domUloader instead of pygrub.
+
+-------------------------------------------------------------------
+Thu Jan 19 15:24:28 MST 2006 - carnold@novell.com
+
+- Build based on the xen-unstable.hg 8628
+
+-------------------------------------------------------------------
+Wed Jan 18 11:45:50 MST 2006 - carnold@novell.com
+
+- Update to hg 8646 xen-unstable-hvm.hg tree.
+
+-------------------------------------------------------------------
+Fri Jan 13 11:05:06 MST 2006 - ccoffing@novell.com
+
+- Allow version string "XEN_VER=3.0" instead of just
+ "XEN_VER=xen-3.0" for backwards compatibility.
+- Correctly set changeset in compile.h.
+
+-------------------------------------------------------------------
+Thu Jan 12 15:39:00 MST 2006 - carnold@novell.com
+
+- Added two patches from AMD that apply to the 8513 changeset.
+
+-------------------------------------------------------------------
+Thu Jan 12 11:39:17 CET 2006 - kukuk@suse.de
+
+- Add libreiserfs-devel to nfb.
+
+-------------------------------------------------------------------
+Wed Jan 11 11:14:20 MST 2006 - carnold@novell.com
+
+- Update to hg 8513 xen-unstable-hvm.hg tree.
+
+-------------------------------------------------------------------
+Tue Jan 10 13:13:24 MST 2006 - ccoffing@novell.com
+
+- Update to hg 8269 (xen-3.0-testing).
+- Support try-restart in init scripts.
+- Clean up installation of udev rules.
+
+-------------------------------------------------------------------
+Wed Dec 14 13:05:07 MST 2005 - ccoffing@novell.com
+
+- Update to hg 8257 (xen-3.0-testing).
+- Update documentation.
+- Fix gcc 4.1 warnings.
+
+-------------------------------------------------------------------
+Wed Dec 7 13:39:00 MST 2005 - ccoffing@novell.com
+
+- Update to hg 8241 (xen-3.0-testing).
+
+-------------------------------------------------------------------
+Mon Nov 28 16:30:02 MST 2005 - ccoffing@novell.com
+
+- Update to hg 8073.
+- Rationalize command names (eg, setsize -> xentrace-setsize).
+- Fix gcc 4.1 warnings.
+
+-------------------------------------------------------------------
+Wed Nov 16 13:40:03 MST 2005 - ccoffing@novell.com
+
+- Update to hg 7782.
+- Honor RPM_OPT_FLAGS better.
+- Include a few simple, obvious fixes from upstream.
+- Build xm-test package.
+- Update udev scripts.
+
+-------------------------------------------------------------------
+Mon Nov 14 16:43:10 MST 2005 - ccoffing@novell.com
+
+- Includes upstream fixes to fix i586 save/restore.
+
+-------------------------------------------------------------------
+Thu Nov 10 13:23:13 MST 2005 - ccoffing@novell.com
+
+- Include a few simple, obvious fixes: 7609, 7618, 7636, 7689,
+ 7690, 7692, 7696
+
+-------------------------------------------------------------------
+Thu Nov 3 10:26:32 MST 2005 - ccoffing@novell.com
+
+- Update to hg 7608.
+- Fix warn_unused_result warnings.
+- Drop some patches (merged upstream)
+- Tidy README.SuSE.
+
+-------------------------------------------------------------------
+Tue Nov 1 13:08:06 MST 2005 - ccoffing@novell.com
+
+- Update to hg 7583.
+
+-------------------------------------------------------------------
+Thu Oct 20 21:16:07 CEST 2005 - ccoffing@novell.com
+
+- Don't mention unwritten man pages.
+- Update xmexample* to match SUSE paths.
+- Update xs-include patch.
+
+-------------------------------------------------------------------
+Wed Oct 19 12:11:35 CEST 2005 - garloff@suse.de
+
+- Avoid race in watchdog functionality.
+- Improve network-bridge script.
+
+-------------------------------------------------------------------
+Tue Oct 18 22:34:41 CEST 2005 - garloff@suse.de
+
+- Ignore zombies in the xendomains shutdown procedure and have a
+ configurable timeout for the commands. Make xendomains status
+ report something useful.
+- Make xendomains script comaptible to non-SUSE distros.
+
+-------------------------------------------------------------------
+Mon Oct 17 23:38:58 CEST 2005 - garloff@suse.de
+
+- Update to hg 7398.
+
+-------------------------------------------------------------------
+Mon Oct 17 15:41:07 CEST 2005 - garloff@suse.de
+
+- Create useful xendomains init script and sysconfig file.
+
+-------------------------------------------------------------------
+Mon Oct 17 10:44:11 CEST 2005 - garloff@suse.de
+
+- Create symlinks also for -pae and -dbg hypervisor.
+- Build doxygen documentation.
+- Include block-nbd script and xen-nbd example config.
+- Include patchset info.
+
+-------------------------------------------------------------------
+Wed Oct 12 13:31:06 CEST 2005 - garloff@suse.de
+
+- Update docu.
+- Enable xen-dbg hypervisor for gdbserver domU debugging.
+
+-------------------------------------------------------------------
+Tue Oct 11 20:40:58 CEST 2005 - garloff@suse.de
+
+- Update docu.
+- Update to hg 7313.
+- Move libxenstore.so to xen-tools.
+
+-------------------------------------------------------------------
+Tue Oct 11 12:09:24 CEST 2005 - garloff@suse.de
+
+- Fix buglet in /sbin/xen-vbd.
+
+-------------------------------------------------------------------
+Mon Oct 10 13:18:20 CEST 2005 - garloff@suse.de
+
+- Downgrade to hg 7267.
+- Add troubleshooting section to README.SUSE.
+
+-------------------------------------------------------------------
+Mon Oct 10 11:14:43 CEST 2005 - garloff@suse.de
+
+- Fix typo in SrvDomain for mem-set operation.
+- Workaround: write directly to balloon in dom0 setMemoryTarget.
+- Kill xenconsoled and xenstored in rcxend stop.
+
+-------------------------------------------------------------------
+Sun Oct 9 21:25:22 CEST 2005 - garloff@suse.de
+
+- Update to hg 7278.
+- Provide udev rules to setup vifs and vbds in dom0 when domUs
+ boot (kraxel).
+- Change default FS size for rescue images to 80MB.
+
+-------------------------------------------------------------------
+Sat Sep 10 12:23:11 CEST 2005 - garloff@suse.de
+
+- Update to hg 6715.
+- Fix network-bridge down.
+
+-------------------------------------------------------------------
+Thu Sep 8 01:37:40 CEST 2005 - garloff@suse.de
+
+- Build PAE version along non-PAE version of Hypervisor.
+
+-------------------------------------------------------------------
+Tue Sep 6 23:07:54 CEST 2005 - garloff@suse.de
+
+- Try to fix network bridge down issue.
+- Document netowrking and firewalling caveats in README.SUSE.
+- Enable PAE.
+
+-------------------------------------------------------------------
+Tue Sep 6 22:53:08 CEST 2005 - garloff@suse.de
+
+- Update to hg 6644.
+
+-------------------------------------------------------------------
+Sun Sep 4 23:03:12 CEST 2005 - garloff@suse.de
+
+- Update to hg 6610.
+- Rename default name of xen-br0 to xenbr0.
+- Fix pygrub installation.
+- Use libreiserfs to support pygrub on reiser.
+
+-------------------------------------------------------------------
+Mon Aug 29 21:39:58 CEST 2005 - ccoffing@novell.com
+
+- xen-bridge-net.diff: do not destroy domain 0's network setup
+ when starting xend.
+
+-------------------------------------------------------------------
+Mon Aug 29 15:31:57 CEST 2005 - garloff@suse.de
+
+- Update to hg 6458.
+- Drop privileged port check -- we use Unix dom sockets anyway
+ (#105178).
+- init.xend: Fix linebreaks in PID list.
+- Correctly assign insserv to xen-tools subpackage.
+
+-------------------------------------------------------------------
+Thu Aug 25 18:10:15 CEST 2005 - garloff@suse.de
+
+- Add dirs /var/run/xenstored and /var/lib/xenstored.
+
+-------------------------------------------------------------------
+Thu Aug 25 13:45:17 CEST 2005 - garloff@suse.de
+
+- Update to hg 6393.
+
+-------------------------------------------------------------------
+Mon Aug 22 14:23:00 CEST 2005 - garloff@suse.de
+
+- Update to hg 6315.
+- Include linux-public headers in xen-devel package.
+
+-------------------------------------------------------------------
+Sun Aug 21 22:55:06 CEST 2005 - garloff@suse.de
+
+- Update to hg 6305.
+
+-------------------------------------------------------------------
+Sun Aug 21 03:33:31 CEST 2005 - garloff@suse.de
+
+- Update to hg 6299.
+- Enable VNC support (depending on LibVNCServer).
+
+-------------------------------------------------------------------
+Sun Aug 21 02:41:34 CEST 2005 - garloff@suse.de
+
+- Split off xen-tools-ioemu for supporting unmodified guests.
+
+-------------------------------------------------------------------
+Sat Aug 20 03:21:32 CEST 2005 - garloff@suse.de
+
+- Enable pygrub (at the cost of depending on e2fsprogs-devel)
+- Enable VMX ioemu SDL support (at the cost of many dependencies)
+
+-------------------------------------------------------------------
+Fri Aug 19 20:46:22 CEST 2005 - garloff@suse.de
+
+- Update to mercurial changeset 6223.
+- Move /usr/libexec/xen/ to /usr/lib[64]/xen/bin/.
+- Split off -tools package.
+
+-------------------------------------------------------------------
+Mon Aug 15 15:24:05 CEST 2005 - garloff@suse.de
+
+- Create symlinks in %post.
+- Update README.SUSE.
+- Mark /etc/xen/ as %config(noreplace).
+- Fix x86-64 build (movl -> mov, lib vs. lib64 inst dirs).
+- Remove PYTHONOPTIMIZE.
+
+-------------------------------------------------------------------
+Tue Aug 2 17:59:06 CEST 2005 - ccoffing@novell.com
+
+- Fix warn_unused_result warnings
+
+-------------------------------------------------------------------
+Thu Jul 28 17:37:19 CEST 2005 - ccoffing@novell.com
+
+- Update to latest 3.0-unstable snapshot.
+
+-------------------------------------------------------------------
+Wed Jul 13 20:41:06 CEST 2005 - ccoffing@novell.com
+
+- Fixed bug in glibc24 patch that caused erroneous "out of memory"
+ errors
+
+-------------------------------------------------------------------
+Fri Jun 24 20:18:02 CEST 2005 - ccoffing@novell.com
+
+- Fix gcc4 patch that caused a panic in Xen at boot.
+
+-------------------------------------------------------------------
+Fri Jun 24 16:11:20 CEST 2005 - ccoffing@novell.com
+
+- Fix xen-syms link.
+
+-------------------------------------------------------------------
+Fri Jun 17 20:35:09 CEST 2005 - ccoffing@novell.com
+
+- Fix version-check in NetWare loader (0x336ec577 -> 0x326ec578).
+
+-------------------------------------------------------------------
+Fri Jun 17 18:38:51 CEST 2005 - ccoffing@novell.com
+
+- Backport NetWare-friendly loader from Xen 3.0.
+
+-------------------------------------------------------------------
+Thu Jun 16 23:18:30 CEST 2005 - ccoffing@novell.com
+
+- Destroy domains that failed to be fully created.
+
+-------------------------------------------------------------------
+Fri Jun 10 15:42:00 CEST 2005 - garloff@suse.de
+
+- Update to latest 2.0-testing snapshot.
+- Use RPM version and release no as xen version.
+
+-------------------------------------------------------------------
+Wed Jun 8 02:13:40 CEST 2005 - garloff@suse.de
+
+- Update mk-xen-rescue-img.sh script: Handle SLES9 better.
+- Export PYTHONOPTIMIZE in xend start script.
+
+-------------------------------------------------------------------
+Tue Jun 7 00:59:47 CEST 2005 - garloff@suse.de
+
+- Merge _perform_err fixes.
+
+-------------------------------------------------------------------
+Mon May 23 21:49:00 CEST 2005 - ccoffing@novell.com
+
+- update to 2.0.6
+
+-------------------------------------------------------------------
+Wed Apr 13 22:15:45 CEST 2005 - garloff@suse.de
+
+- More gcc4 and binutils related fixes.
+
+-------------------------------------------------------------------
+Wed Apr 13 16:28:37 CEST 2005 - garloff@suse.de
+
+- Build fixes for gcc4.
+
+-------------------------------------------------------------------
+Sun Apr 3 23:52:08 CEST 2005 - garloff@suse.de
+
+- Update xen: Various fixes (scheduling, memset, domain crash
+ handling) and enhancements (bg page scrubbing).
+
+-------------------------------------------------------------------
+Thu Mar 24 15:36:39 CET 2005 - garloff@suse.de
+
+- xen-bridge-net.diff: Make sure bridge netdev is up after adding
+ addresses to it.
+
+-------------------------------------------------------------------
+Wed Mar 23 15:59:27 CET 2005 - garloff@suse.de
+
+- xen-secure.diff: Check for privileged port before allowing
+ certain control operations.
+- README.SUSE: Document this change.
+
+-------------------------------------------------------------------
+Wed Mar 23 13:29:19 CET 2005 - garloff@suse.de
+
+- Require ports < 1024 to allow controlling VMs.
+
+-------------------------------------------------------------------
+Mon Mar 21 19:54:38 CET 2005 - garloff@suse.de
+
+- Update xen.
+
+-------------------------------------------------------------------
+Wed Mar 16 23:53:27 CET 2005 - garloff@suse.de
+
+- Update xen.
+- Add /var/lib/xen/xen-db/ subdirs.
+
+-------------------------------------------------------------------
+Sun Mar 13 12:24:14 CET 2005 - garloff@suse.de
+
+- Update to post-2.0.5
+- Make /usr/sbin/xm root:trusted 0750
+- Drop some patches (merged upstream)
+
+-------------------------------------------------------------------
+Tue Mar 8 11:58:32 CET 2005 - garloff@suse.de
+
+- Update README with security notes.
+- Update mk-xen-rescue-image.sh script allowing to specify the
+ kernel version to be used.
+- Rather than busy-looping, exit console on a domain that has
+ shutdown.
+
+-------------------------------------------------------------------
+Mon Mar 7 17:26:38 CET 2005 - garloff@suse.de
+
+- Update xen to latest snapshot.
+- tgif not needed any more.
+
+-------------------------------------------------------------------
+Tue Mar 1 20:32:39 CET 2005 - garloff@suse.de
+
+- Include serial-split from Charles Coffing.
+
+-------------------------------------------------------------------
+Tue Mar 1 07:21:11 CET 2005 - garloff@suse.de
+
+- Update xen to latest snapshot.
+
+-------------------------------------------------------------------
+Mon Feb 21 13:50:35 CET 2005 - garloff@suse.de
+
+- Update README.SuSE.
+- Update xen to latest snapshot.
+
+-------------------------------------------------------------------
+Sun Feb 13 17:09:03 CET 2005 - garloff@suse.de
+
+- Add init header to xendomains init script.
+- Add bridge-utils dependency.
+- Update config file and README.
+- Activate xend init script on installation.
+
+-------------------------------------------------------------------
+Thu Feb 10 02:31:27 CET 2005 - ro@suse.de
+
+- remove te_etex and te_pdf from neededforbuild.
+
+-------------------------------------------------------------------
+Thu Feb 10 02:24:46 CET 2005 - garloff@suse.de
+
+- Update README about IDE dma.
+- Default to dhcp.
+
+-------------------------------------------------------------------
+Wed Feb 9 22:05:39 CET 2005 - garloff@suse.de
+
+- Update to xen post-2.0.4.
+- Little bugfix for xen rescue install script.
+- Update README.SUSE: Better explanation of root FS creation.
+
+-------------------------------------------------------------------
+Mon Jan 24 03:09:50 CET 2005 - garloff@suse.de
+
+- Change some defaults to be more secure (xend only binds to
+ localhost, ip spoof protection on).
+- Avoid ipv6 issue with xend network script.
+- Extensive docu in README.SUSE now.
+- mk-xen-rescue-img.sh creates a xen root fs image from the std
+ SUSE rescue image.
+- Put boot.local script in root img to parse ip boot par.
+
+-------------------------------------------------------------------
+Thu Jan 20 14:48:29 CET 2005 - garloff@suse.de
+
+- Update to newer snapshot.
+
+-------------------------------------------------------------------
+Thu Jan 20 03:05:11 CET 2005 - garloff@suse.de
+
+- Update to xen-2.0-unstable (post 2.0.3).
+
+-------------------------------------------------------------------
+Thu Dec 9 10:57:17 CET 2004 - garloff@suse.de
+
+- Initial creation of package xen, xen-doc-*.
+- i686 only for now.
+
diff --git a/xen.libxl.dmmd.patch b/xen.libxl.dmmd.patch
new file mode 100644
index 0000000..fef056a
--- /dev/null
+++ b/xen.libxl.dmmd.patch
@@ -0,0 +1,135 @@
+References: bsc#954872
+
+---
+ tools/libxl/libxl.c | 4 ++++
+ tools/libxl/libxl_device.c | 3 ++-
+ tools/libxl/libxl_dm.c | 34 +++++++++++++++++++++++++++++-----
+ tools/libxl/libxlu_disk_l.l | 2 ++
+ 4 files changed, 37 insertions(+), 6 deletions(-)
+
+Index: xen-4.13.0-testing/tools/libxl/libxl_disk.c
+===================================================================
+--- xen-4.13.0-testing.orig/tools/libxl/libxl_disk.c
++++ xen-4.13.0-testing/tools/libxl/libxl_disk.c
+@@ -178,7 +178,7 @@ static int libxl__device_disk_setdefault
+ return rc;
+ }
+
+-static int libxl__device_from_disk(libxl__gc *gc, uint32_t domid,
++int libxl__device_from_disk(libxl__gc *gc, uint32_t domid,
+ const libxl_device_disk *disk,
+ libxl__device *device)
+ {
+@@ -336,6 +336,10 @@ static void device_disk_add(libxl__egc *
+ rc = ERROR_FAIL;
+ goto out;
+ case LIBXL_DISK_BACKEND_QDISK:
++ if (disk->script) {
++ script = libxl__abs_path(gc, disk->script, libxl__xen_script_dir_path());
++ flexarray_append_pair(back, "script", script);
++ }
+ flexarray_append(back, "params");
+ flexarray_append(back, GCSPRINTF("%s:%s",
+ libxl__device_disk_string_of_format(disk->format),
+Index: xen-4.13.0-testing/tools/libxl/libxl_device.c
+===================================================================
+--- xen-4.13.0-testing.orig/tools/libxl/libxl_device.c
++++ xen-4.13.0-testing/tools/libxl/libxl_device.c
+@@ -326,7 +326,8 @@ static int disk_try_backend(disk_try_bac
+ return 0;
+
+ case LIBXL_DISK_BACKEND_QDISK:
+- if (a->disk->script) goto bad_script;
++ LOG(DEBUG, "Disk vdev=%s, uses script=%s on %s backend",
++ a->disk->vdev, a->disk->script, libxl_disk_backend_to_string(backend));
+ return backend;
+
+ default:
+@@ -343,11 +344,6 @@ static int disk_try_backend(disk_try_bac
+ libxl_disk_format_to_string(a->disk->format));
+ return 0;
+
+- bad_script:
+- LOG(DEBUG, "Disk vdev=%s, backend %s not compatible with script=...",
+- a->disk->vdev, libxl_disk_backend_to_string(backend));
+- return 0;
+-
+ bad_colo:
+ LOG(DEBUG, "Disk vdev=%s, backend %s not compatible with colo",
+ a->disk->vdev, libxl_disk_backend_to_string(backend));
+Index: xen-4.13.0-testing/tools/libxl/libxl_dm.c
+===================================================================
+--- xen-4.13.0-testing.orig/tools/libxl/libxl_dm.c
++++ xen-4.13.0-testing/tools/libxl/libxl_dm.c
+@@ -1162,6 +1162,30 @@ out:
+ return rc;
+ }
+
++static void libxl__suse_node_to_path(libxl__gc *gc, int domid, const libxl_device_disk *dp, const char **pdev_path)
++{
++ libxl_ctx *ctx = libxl__gc_owner(gc);
++ char *be_path, *node;
++ libxl__device device;
++ libxl_device_disk disk;
++ int rc;
++
++ disk = *dp;
++ rc = libxl__device_from_disk(gc, domid, &disk, &device);
++ if (rc) {
++ LIBXL__LOG(ctx, LIBXL__LOG_WARNING, "libxl__device_from_disk failed %d", rc);
++ return;
++ }
++ be_path = libxl__device_backend_path(gc, &device);
++
++ node = libxl__xs_read(gc, XBT_NULL, libxl__sprintf(gc, "%s/node", be_path));
++ if (!node)
++ return;
++
++ LIBXL__LOG(ctx, LIBXL__LOG_WARNING, "replacing '%s' with '%s' from %s/node, just for qemu-xen", *pdev_path, node, be_path);
++ *pdev_path = node;
++}
++
+ static int libxl__build_device_model_args_new(libxl__gc *gc,
+ const char *dm, int guest_domid,
+ const libxl_domain_config *guest_config,
+@@ -1795,9 +1819,11 @@ static int libxl__build_device_model_arg
+ libxl__device_disk_dev_number(disks[i].vdev, &disk, &part);
+ const char *format;
+ char *drive;
+- const char *target_path = NULL;
++ const char *target_path = disks[i].pdev_path;
+ int colo_mode;
+
++ libxl__suse_node_to_path(gc, guest_domid, disks + i, &target_path);
++
+ if (dev_number == -1) {
+ LOGD(WARN, guest_domid, "unable to determine"" disk number for %s",
+ disks[i].vdev);
+Index: xen-4.13.0-testing/tools/libxl/libxlu_disk_l.l
+===================================================================
+--- xen-4.13.0-testing.orig/tools/libxl/libxlu_disk_l.l
++++ xen-4.13.0-testing/tools/libxl/libxlu_disk_l.l
+@@ -230,6 +230,8 @@ target=.* { STRIP(','); SAVESTRING("targ
+ free(newscript);
+ }
+
++dmmd:/.* { DPC->had_depr_prefix=1; DEPRECATE(0); }
++npiv:/.* { DPC->had_depr_prefix=1; DEPRECATE(0); }
+ tapdisk:/.* { DPC->had_depr_prefix=1; DEPRECATE(0); }
+ tap2?:/.* { DPC->had_depr_prefix=1; DEPRECATE(0); }
+ aio:/.* { DPC->had_depr_prefix=1; DEPRECATE(0); }
+Index: xen-4.13.0-testing/tools/libxl/libxl_internal.h
+===================================================================
+--- xen-4.13.0-testing.orig/tools/libxl/libxl_internal.h
++++ xen-4.13.0-testing/tools/libxl/libxl_internal.h
+@@ -2042,6 +2042,10 @@ struct libxl__cpuid_policy {
+ char *policy[4];
+ };
+
++_hidden int libxl__device_from_disk(libxl__gc *gc, uint32_t domid,
++ const libxl_device_disk *disk,
++ libxl__device *device);
++
+ /* Calls poll() again - useful to check whether a signaled condition
+ * is still true. Cannot fail. Returns currently-true revents. */
+ _hidden short libxl__fd_poll_recheck(libxl__egc *egc, int fd, short events);
diff --git a/xen.spec b/xen.spec
new file mode 100644
index 0000000..c4ee979
--- /dev/null
+++ b/xen.spec
@@ -0,0 +1,9860 @@
+#
+# spec file for package xen
+#
+# Copyright (c) 2020 SUSE LLC
+#
+# All modifications and additions to the file contributed by third parties
+# remain the property of their copyright owners, unless otherwise agreed
+# upon. The license for this file, and modifications and additions to the
+# file, is the same license as for the pristine package itself (unless the
+# license for the pristine package is not an Open Source License, in which
+# case the license is the MIT License). An "Open Source License" is a
+# license that conforms to the Open Source Definition (Version 1.9)
+# published by the Open Source Initiative.
+
+# Please submit bugfixes or comments via https://bugs.opensuse.org/
+#
+# needssslcertforbuild
+
+
+#Compat macro for new _fillupdir macro introduced in Nov 2017
+%if ! %{defined _fillupdir}
+ %define _fillupdir /var/adm/fillup-templates
+%endif
+
+Name: xen
+ExclusiveArch: %ix86 x86_64 aarch64
+%define changeset 40162
+%define xen_build_dir xen-4.13.1-testing
+#
+%define with_gdbsx 0
+%define with_dom0_support 0
+%bcond_with xen_oxenstored
+%ifarch x86_64
+%bcond_without xen_debug
+%bcond_without xen_stubdom
+%else
+%bcond_with xen_debug
+%bcond_with xen_stubdom
+%endif
+#
+%ifarch x86_64
+%define with_gdbsx 1
+%define with_dom0_support 1
+%endif
+#
+%ifarch %arm aarch64
+%define with_dom0_support 1
+%endif
+#
+%define xen_install_suffix %{nil}
+%ifarch x86_64
+%define xen_install_suffix .gz
+%endif
+# EFI requires gcc 4.6 or newer
+# gcc46 is available in 12.1 or sles11sp2
+# gcc47 is available in sles11sp3
+# gcc48 is available in sles11sp4
+# 12.2+ have gcc 4.7 as default compiler
+%define with_gcc47 0
+%define with_gcc48 0
+%define _fwdefdir /etc/sysconfig/SuSEfirewall2.d/services
+
+BuildRequires: pkgconfig(libsystemd)
+%define with_systemd_modules_load %{_prefix}/lib/modules-load.d
+
+%ifarch %arm aarch64
+%if 0%{?suse_version} > 1320 || ( 0%{?suse_version} == 1315 && 0%{?sle_version} > 120200 )
+BuildRequires: libfdt-devel
+%else
+BuildRequires: libfdt1-devel
+%endif
+%endif
+BuildRequires: bison
+BuildRequires: fdupes
+%if 0%{?suse_version} > 1315
+BuildRequires: figlet
+%endif
+BuildRequires: flex
+BuildRequires: glib2-devel
+BuildRequires: libaio-devel
+BuildRequires: libbz2-devel
+BuildRequires: libnl3-devel
+BuildRequires: libpixman-1-0-devel
+BuildRequires: libuuid-devel
+BuildRequires: libxml2-devel
+BuildRequires: libyajl-devel
+%if %{with xen_stubdom}
+%if 0%{?suse_version} < 1230
+BuildRequires: texinfo
+%else
+BuildRequires: makeinfo
+%endif
+%endif
+BuildRequires: ncurses-devel
+%if %{?with_dom0_support}0
+%if %{with xen_oxenstored}
+BuildRequires: ocaml
+BuildRequires: ocaml-compiler-libs
+BuildRequires: ocaml-findlib
+BuildRequires: ocaml-ocamldoc
+BuildRequires: ocaml-runtime
+%endif
+%endif
+BuildRequires: acpica
+BuildRequires: openssl-devel
+BuildRequires: python3-devel
+BuildRequires: xz-devel
+BuildRequires: pkgconfig(systemd)
+%ifarch x86_64
+BuildRequires: gcc-32bit
+BuildRequires: gcc-c++
+%if %{?with_gcc47}0
+BuildRequires: gcc47
+%endif
+%if %{?with_gcc48}0
+BuildRequires: gcc48
+%endif
+BuildRequires: glibc-32bit
+BuildRequires: glibc-devel-32bit
+BuildRequires: makeinfo
+%endif
+%ifarch x86_64
+BuildRequires: pesign-obs-integration
+%endif
+
+Version: 4.13.1_10
+Release: lp152.2.12.1
+Summary: Xen Virtualization: Hypervisor (aka VMM aka Microkernel)
+License: GPL-2.0-only
+Group: System/Kernel
+Source0: xen-4.13.1-testing-src.tar.bz2
+Source1: stubdom.tar.bz2
+Source5: ipxe.tar.bz2
+Source6: mini-os.tar.bz2
+Source9: xen.changes
+Source10: README.SUSE
+Source11: boot.xen
+Source12: boot.local.xenU
+Source13: xen-supportconfig
+Source15: logrotate.conf
+Source21: block-npiv-common.sh
+Source22: block-npiv
+Source23: block-npiv-vport
+Source26: init.xen_loop
+Source29: block-dmmd
+# Xen API remote authentication sources
+Source30: etc_pam.d_xen-api
+Source31: xenapiusers
+# Init script and sysconf file for pciback
+Source34: init.pciback
+Source35: sysconfig.pciback
+Source36: xnloader.py
+Source37: xen2libvirt.py
+# Systemd service files
+Source41: xencommons.service
+Source42: xen-dom0-modules.service
+Source57: xen-utils-0.1.tar.bz2
+Source10172: xendomains-wait-disks.sh
+Source10173: xendomains-wait-disks.LICENSE
+Source10174: xendomains-wait-disks.README.md
+Source10183: xen_maskcalc.py
+# For xen-libs
+Source99: baselibs.conf
+# Upstream patches
+Patch1: 5eb51be6-cpupool-fix-removing-cpu-from-pool.patch
+Patch2: 5eb51caa-sched-vcpu-pause-flags-atomic.patch
+Patch3: 5ec2a760-x86-determine-MXCSR-mask-always.patch
+Patch4: 5ec50b05-x86-idle-rework-C6-EOI-workaround.patch
+Patch5: 5ec7dcaa-x86-dont-enter-C6-with-in-service-intr.patch
+Patch6: 5ec7dcf6-x86-dont-enter-C3-C6-with-errata.patch
+Patch7: 5ec82237-x86-extend-ISR-C6-workaround-to-Haswell.patch
+Patch8: 5ece1b91-x86-clear-RDRAND-CPUID-bit-on-AMD-fam-15-16.patch
+Patch9: 5ece8ac4-x86-load_system_tables-NMI-MC-safe.patch
+Patch10: 5ed69804-x86-ucode-fix-start-end-update.patch
+Patch11: 5eda60cb-SVM-split-recalc-NPT-fault-handling.patch
+Patch12: 5edf6ad8-ioreq-pending-emulation-server-destruction-race.patch
+Patch13: 5edfbbea-x86-spec-ctrl-CPUID-MSR-defs-for-SRBDS.patch
+Patch14: 5edfbbea-x86-spec-ctrl-mitigate-SRBDS.patch
+Patch15: 5ee24d0e-x86-spec-ctrl-document-SRBDS-workaround.patch
+Patch16: 5ef44e0d-x86-PMTMR-use-FADT-flags.patch
+Patch17: 5ef6156a-x86-disallow-access-to-PT-MSRs.patch
+Patch18: 5efcb354-x86-protect-CALL-JMP-straight-line-speculation.patch
+Patch19: 5f046c18-evtchn-dont-ignore-error-in-get_free_port.patch
+Patch20: 5f046c48-x86-shadow-dirty-VRAM-inverted-conditional.patch
+Patch21: 5f046c64-EPT-set_middle_entry-adjustments.patch
+Patch22: 5f046c78-EPT-atomically-modify-ents-in-ept_next_level.patch
+Patch23: 5f046c9a-VT-d-improve-IOMMU-TLB-flush.patch
+Patch24: 5f046cb5-VT-d-prune-rename-cache-flush-funcs.patch
+Patch25: 5f046cca-x86-IOMMU-introduce-cache-sync-hook.patch
+Patch26: 5f046ce9-VT-d-sync_cache-misaligned-addresses.patch
+Patch27: 5f046cfd-x86-introduce-alternative_2.patch
+Patch28: 5f046d1a-VT-d-optimize-CPU-cache-sync.patch
+Patch29: 5f046d2b-EPT-flush-cache-when-modifying-PTEs.patch
+Patch30: 5f046d5c-check-VCPUOP_register_vcpu_info-alignment.patch
+Patch31: 5f1a9916-x86-S3-put-data-sregs-into-known-state.patch
+Patch32: 5f21b9fd-x86-cpuid-APIC-bit-clearing.patch
+Patch33: 5f479d9e-x86-begin-to-support-MSR_ARCH_CAPS.patch
+Patch34: 5f4cf06e-x86-Dom0-expose-MSR_ARCH_CAPS.patch
+Patch35: 5f4cf96a-x86-PV-fix-SEGBASE_GS_USER_SEL.patch
+Patch36: 5f560c42-x86-PV-64bit-segbase-consistency.patch
+Patch333: xsa333.patch
+Patch334: xsa334.patch
+Patch336: xsa336.patch
+Patch33701: xsa337-1.patch
+Patch33702: xsa337-2.patch
+Patch338: xsa338.patch
+Patch339: xsa339.patch
+Patch340: xsa340.patch
+Patch342: xsa342.patch
+Patch34301: xsa343-1.patch
+Patch34302: xsa343-2.patch
+Patch34303: xsa343-3.patch
+Patch34401: xsa344-1.patch
+Patch34402: xsa344-2.patch
+Patch28601: xsa286-1.patch
+Patch28602: xsa286-2.patch
+Patch28603: xsa286-3.patch
+Patch28604: xsa286-4.patch
+Patch28605: xsa286-5.patch
+Patch28606: xsa286-6.patch
+Patch34501: xsa345-1.patch
+Patch34502: xsa345-2.patch
+Patch34503: xsa345-3.patch
+Patch34601: xsa346-1.patch
+Patch34602: xsa346-2.patch
+Patch34701: xsa347-1.patch
+Patch34702: xsa347-2.patch
+Patch34703: xsa347-3.patch
+# Our platform specific patches
+Patch400: xen-destdir.patch
+Patch401: vif-bridge-no-iptables.patch
+Patch402: vif-bridge-tap-fix.patch
+Patch403: xl-conf-default-bridge.patch
+Patch404: xl-conf-disable-autoballoon.patch
+Patch405: xen-arch-kconfig-nr_cpus.patch
+Patch406: suse-xendomains-service.patch
+Patch407: replace-obsolete-network-configuration-commands-in-s.patch
+Patch408: disable-building-pv-shim.patch
+Patch409: xenstore-launch.patch
+Patch410: ignore-ip-command-script-errors.patch
+# Needs to go upstream
+Patch420: suspend_evtchn_lock.patch
+Patch422: stubdom-have-iovec.patch
+Patch423: vif-route.patch
+Patch424: gcc10-fixes.patch
+# Other bug fixes or features
+Patch451: xenconsole-no-multiple-connections.patch
+Patch452: hibernate.patch
+Patch453: stdvga-cache.patch
+Patch454: ipxe-enable-nics.patch
+Patch455: pygrub-netware-xnloader.patch
+Patch456: pygrub-boot-legacy-sles.patch
+Patch457: pygrub-handle-one-line-menu-entries.patch
+Patch458: aarch64-rename-PSR_MODE_ELxx-to-match-linux-headers.patch
+Patch459: aarch64-maybe-uninitialized.patch
+Patch461: libxl.max_event_channels.patch
+Patch462: libxc.sr.superpage.patch
+Patch463: libxl.add-option-to-disable-disk-cache-flushes-in-qdisk.patch
+Patch464: libxl.pvscsi.patch
+Patch465: xen.libxl.dmmd.patch
+Patch466: libxl.set-migration-constraints-from-cmdline.patch
+Patch467: xenstore-run-in-studomain.patch
+Patch468: libxl.libxl__domain_pvcontrol.patch
+Patch469: libxl.helper_done-crash.patch
+Patch470: libxl.LIBXL_HOTPLUG_TIMEOUT.patch
+Patch471: libxc.migrate_tracking.patch
+# python3 conversion patches
+Patch500: build-python3-conversion.patch
+Patch501: migration-python3-conversion.patch
+Patch502: bin-python3-conversion.patch
+# Hypervisor and PV driver Patches
+Patch600: xen.bug1026236.suse_vtsc_tolerance.patch
+Patch601: x86-ioapic-ack-default.patch
+Patch602: x86-cpufreq-report.patch
+Patch621: xen.build-compare.doc_html.patch
+Patch623: ipxe-no-error-logical-not-parentheses.patch
+Patch624: ipxe-use-rpm-opt-flags.patch
+# Build patches
+Patch99996: xen.stubdom.newlib.patch
+Patch99998: tmp_build.patch
+Patch99999: reproducible.patch
+Url: http://www.cl.cam.ac.uk/Research/SRG/netos/xen/
+BuildRoot: %{_tmppath}/%{name}-%{version}-build
+%define pyver %(python3 -c "import sys; print(sys.version[:3])")
+
+%description
+Xen is a virtual machine monitor for x86 that supports execution of
+multiple guest operating systems with unprecedented levels of
+performance and resource isolation.
+
+This package contains the Xen Hypervisor. (tm)
+
+[Hypervisor is a trademark of IBM]
+
+%package libs
+Summary: Xen Virtualization: Libraries
+License: GPL-2.0-only
+Group: System/Kernel
+
+%description libs
+Xen is a virtual machine monitor for x86 that supports execution of
+multiple guest operating systems with unprecedented levels of
+performance and resource isolation.
+
+This package contains the libraries used to interact with the Xen
+virtual machine monitor.
+
+In addition to this package you need to install kernel-xen, xen and
+xen-tools to use Xen.
+
+
+Authors:
+--------
+ Ian Pratt <ian.pratt@cl.cam.ac.uk>
+
+
+%if %{?with_dom0_support}0
+
+%package tools
+Summary: Xen Virtualization: Control tools for domain 0
+License: GPL-2.0-only
+Group: System/Kernel
+%ifarch x86_64
+%if 0%{?suse_version} >= 1315
+Requires: grub2-x86_64-xen
+%endif
+Recommends: qemu-ovmf-x86_64
+Requires: qemu-x86
+%endif
+%ifarch %arm aarch64
+Requires: qemu-arm
+%endif
+Requires: %{name} = %{version}-%{release}
+Requires: %{name}-libs = %{version}-%{release}
+Recommends: multipath-tools
+Requires: python3
+Requires: python3-curses
+%ifarch %{ix86} x86_64
+Requires: qemu-seabios
+%endif
+# subpackage existed in 10.3
+Provides: xen-tools-ioemu = %{version}
+Obsoletes: xen-tools-ioemu < %{version}
+Conflicts: libvirt < 1.0.5
+
+%description tools
+Xen is a virtual machine monitor for x86 that supports execution of
+multiple guest operating systems with unprecedented levels of
+performance and resource isolation.
+
+This package contains the control tools that allow you to start, stop,
+migrate, and manage virtual machines.
+
+In addition to this package you need to install kernel-xen, xen and
+xen-libs to use Xen.
+
+
+Authors:
+--------
+ Ian Pratt <ian.pratt@cl.cam.ac.uk>
+
+
+%ifarch x86_64
+%package tools-xendomains-wait-disk
+Summary: Adds a new xendomains-wait-disks.service
+License: GPL-3.0+
+Group: System/Kernel
+Requires: %{name}-tools = %{version}-%{release}
+Requires: coreutils
+Requires: sed
+Requires: vim
+BuildArch: noarch
+
+%description tools-xendomains-wait-disk
+This package adds a new service named xendomains-wait-disks.service,
+that simply calls xendomains-wait-disks. xendomains-wait-disks script
+loops checking for the presence of every disk used by domU that
+xendomains.service will try to launch. The script returns when
+all disks become available or xendomains-wait-disks.service expires.
+
+xendomains-wait-disks.service has the same dependencies as
+xendomains.service, but it adds itself as a Wanted service for xendomains.
+If xendomains-wait-disks.service fails, xendomains.service is launched anyway.
+
+https://github.com/luizluca/xen-tools-xendomains-wait-disk
+%endif
+
+%endif
+
+%package tools-domU
+Summary: Xen Virtualization: Control tools for domain U
+License: GPL-2.0-only
+Group: System/Kernel
+Conflicts: %{name}-tools
+Requires: %{name}-libs = %{version}-%{release}
+
+%description tools-domU
+Xen is a virtual machine monitor for x86 that supports execution of
+multiple guest operating systems with unprecedented levels of
+performance and resource isolation.
+
+This package contains tools that allow unprivileged domains to query
+the virtualized environment.
+
+
+
+Authors:
+--------
+ Ian Pratt <ian.pratt@cl.cam.ac.uk>
+
+%package devel
+Summary: Xen Virtualization: Headers and libraries for development
+License: GPL-2.0-only
+Group: System/Kernel
+Requires: %{name}-libs = %{version}
+Requires: libuuid-devel
+
+%description devel
+Xen is a virtual machine monitor for x86 that supports execution of
+multiple guest operating systems with unprecedented levels of
+performance and resource isolation.
+
+This package contains the libraries and header files needed to create
+tools to control virtual machines.
+
+
+
+Authors:
+--------
+ Ian Pratt <ian.pratt@cl.cam.ac.uk>
+
+%if %{?with_dom0_support}0
+
+%package doc-html
+Summary: Xen Virtualization: HTML documentation
+License: GPL-2.0-only
+Group: Documentation/HTML
+
+%description doc-html
+Xen is a virtual machine monitor for x86 that supports execution of
+multiple guest operating systems with unprecedented levels of
+performance and resource isolation.
+
+xen-doc-html contains the online documentation in HTML format. Point
+your browser at file:/usr/share/doc/packages/xen/html/
+
+
+
+Authors:
+--------
+ Ian Pratt <ian.pratt@cl.cam.ac.uk>
+%endif
+
+%prep
+%setup -q -n %xen_build_dir -a 1 -a 5 -a 6 -a 57
+# Upstream patches
+%patch1 -p1
+%patch2 -p1
+%patch3 -p1
+%patch4 -p1
+%patch5 -p1
+%patch6 -p1
+%patch7 -p1
+%patch8 -p1
+%patch9 -p1
+%patch10 -p1
+%patch11 -p1
+%patch12 -p1
+%patch13 -p1
+%patch14 -p1
+%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
+%patch333 -p1
+%patch334 -p1
+%patch336 -p1
+%patch33701 -p1
+%patch33702 -p1
+%patch338 -p1
+%patch339 -p1
+%patch340 -p1
+%patch342 -p1
+%patch34301 -p1
+%patch34302 -p1
+%patch34303 -p1
+%patch34401 -p1
+%patch34402 -p1
+%patch28601 -p1
+%patch28602 -p1
+%patch28603 -p1
+%patch28604 -p1
+%patch28605 -p1
+%patch28606 -p1
+%patch34501 -p1
+%patch34502 -p1
+%patch34503 -p1
+%patch34601 -p1
+%patch34602 -p1
+%patch34701 -p1
+%patch34702 -p1
+%patch34703 -p1
+# Our platform specific patches
+%patch400 -p1
+%patch401 -p1
+%patch402 -p1
+%patch403 -p1
+%patch404 -p1
+%patch405 -p1
+%patch406 -p1
+%patch407 -p1
+%patch408 -p1
+%patch409 -p1
+%patch410 -p1
+# Needs to go upstream
+%patch420 -p1
+%patch422 -p1
+%patch423 -p1
+%patch424 -p1
+# Other bug fixes or features
+%patch451 -p1
+%patch452 -p1
+%patch453 -p1
+%patch454 -p1
+%patch455 -p1
+%patch456 -p1
+%patch457 -p1
+%patch458 -p1
+%patch459 -p1
+%patch461 -p1
+%patch462 -p1
+%patch463 -p1
+%patch464 -p1
+%patch465 -p1
+%patch466 -p1
+%patch467 -p1
+%patch468 -p1
+%patch469 -p1
+%patch470 -p1
+%patch471 -p1
+# python3 conversion patches
+%patch500 -p1
+%patch501 -p1
+%patch502 -p1
+# Hypervisor and PV driver Patches
+%patch600 -p1
+%patch601 -p1
+%patch602 -p1
+%patch621 -p1
+%patch623 -p1
+%patch624 -p1
+# Build patches
+%patch99996 -p1
+%patch99998 -p1
+%patch99999 -p1
+
+%build
+%define _lto_cflags %{nil}
+
+# we control the version info of this package
+# to gain control of filename of xen.gz
+XEN_VERSION=%{version}
+XEN_VERSION=${XEN_VERSION%%%%.*}
+XEN_SUBVERSION=%{version}
+XEN_SUBVERSION=${XEN_SUBVERSION#*.}
+XEN_SUBVERSION=${XEN_SUBVERSION%%%%.*}
+XEN_EXTRAVERSION="%version-%release"
+XEN_EXTRAVERSION="${XEN_EXTRAVERSION#*.}"
+XEN_EXTRAVERSION="${XEN_EXTRAVERSION#*.}"
+# remove trailing B_CNT to reduce build-compare noise
+XEN_EXTRAVERSION="${XEN_EXTRAVERSION%%.*}"
+XEN_FULLVERSION="$XEN_VERSION.$XEN_SUBVERSION.$XEN_EXTRAVERSION"
+XEN_BUILD_DATE="`date -u -d '1970-01-01'`"
+XEN_BUILD_TIME="`date -u -d '1970-01-01' +%%T`"
+SMBIOS_REL_DATE="`date -u -d '1970-01-01' +%%m/%%d/%%Y`"
+RELDATE="`date -u -d '1970-01-01' '+%%d %%b %%Y'`"
+if test -r %{S:9}
+then
+ XEN_BUILD_DATE="` date -u -d \"$(sed -n '/@/{s/ - .*$//p;q}' %{S:9})\" `"
+ XEN_BUILD_TIME="` date -u -d \"$(sed -n '/@/{s/ - .*$//p;q}' %{S:9})\" +%%T`"
+ SMBIOS_REL_DATE="` date -u -d \"$(sed -n '/@/{s/ - .*$//p;q}' %{S:9})\" +%%m/%%d/%%Y`"
+ RELDATE="` date -u -d \"$(sed -n '/@/{s/ - .*$//p;q}' %{S:9})\" '+%%d %%b %%Y'`"
+fi
+cat > .our_xenversion <<_EOV_
+export WGET=$(type -P false)
+export FTP=$(type -P false)
+export GIT=$(type -P false)
+export EXTRA_CFLAGS_XEN_TOOLS="%{optflags}"
+export EXTRA_CFLAGS_QEMU_TRADITIONAL="%{optflags}"
+export SMBIOS_REL_DATE="$SMBIOS_REL_DATE"
+export RELDATE="$RELDATE"
+XEN_VERSION=$XEN_VERSION
+XEN_SUBVERSION=$XEN_SUBVERSION
+XEN_EXTRAVERSION=$XEN_EXTRAVERSION
+XEN_FULLVERSION=$XEN_FULLVERSION
+_EOV_
+source ./.our_xenversion
+echo "%{changeset}" > xen/.scmversion
+sed -i~ "
+s/XEN_VERSION[[:blank:]]*=.*/XEN_VERSION = $XEN_VERSION/
+s/XEN_SUBVERSION[[:blank:]]*=.*/XEN_SUBVERSION = $XEN_SUBVERSION/
+s/XEN_EXTRAVERSION[[:blank:]]*?=.*/XEN_EXTRAVERSION = .$XEN_EXTRAVERSION/
+s/XEN_FULLVERSION[[:blank:]]*=.*/XEN_FULLVERSION = $XEN_FULLVERSION/
+s/XEN_BUILD_DATE[[:blank:]]*?=.*/XEN_BUILD_DATE = $XEN_BUILD_DATE/
+s/XEN_BUILD_TIME[[:blank:]]*?=.*/XEN_BUILD_TIME = $XEN_BUILD_TIME/
+s/XEN_BUILD_HOST[[:blank:]]*?=.*/XEN_BUILD_HOST = buildhost/
+s/XEN_DOMAIN[[:blank:]]*?=.*/XEN_DOMAIN = suse.de/
+" xen/Makefile
+if diff -u xen/Makefile~ xen/Makefile
+then
+ : no changes?
+fi
+configure_flags=
+%if %{with xen_stubdom}
+configure_flags=--enable-stubdom
+%else
+# change the/our default to daemon due to lack of stubdom
+sed -i~ 's/ XENSTORETYPE=domain$/ XENSTORETYPE=daemon/' tools/hotplug/Linux/launch-xenstore.in
+configure_flags=--disable-stubdom
+%endif
+export PYTHON="/usr/bin/python3"
+configure_flags="${configure_flags} --disable-qemu-traditional"
+./configure \
+ --disable-xen \
+ --enable-tools \
+ --enable-docs \
+ --prefix=/usr \
+ --exec_prefix=/usr \
+ --bindir=%{_bindir} \
+ --sbindir=%{_sbindir} \
+ --libdir=%{_libdir} \
+ --libexecdir=%{_libexecdir} \
+ --datadir=%{_datadir} \
+ --mandir=%{_mandir} \
+ --includedir=%{_includedir} \
+ --docdir=%{_defaultdocdir}/xen \
+ --with-initddir=%{_initddir} \
+%if %{?with_dom0_support}0
+%if %{with xen_oxenstored}
+ --with-xenstored=oxenstored \
+%endif
+%endif
+ --enable-systemd \
+ --with-systemd=%{_unitdir} \
+ --with-systemd-modules-load=%{with_systemd_modules_load} \
+ --with-system-ovmf=%{_datadir}/qemu/ovmf-x86_64-ms.bin \
+ --with-system-seabios=%{_datadir}/qemu/bios-256k.bin \
+ --with-system-qemu=%{_bindir}/qemu-system-i386 \
+ ${configure_flags}
+make -C tools/include/xen-foreign %{?_smp_mflags}
+make %{?_smp_mflags}
+%if %{?with_dom0_support}0
+make -C tools/xen-utils-0.1 XEN_INTREE_BUILD=yes XEN_ROOT=$PWD
+%endif
+#
+
+%install
+source ./.our_xenversion
+# tools
+make \
+ DESTDIR=%{buildroot} \
+ SYSCONFIG_DIR=%{_fillupdir} \
+ PKG_INSTALLDIR=%{_libdir}/pkgconfig \
+ %{?_smp_mflags} \
+ install
+find %{buildroot} -ls
+for i in %{buildroot}/%{_fillupdir}/*
+do
+ mv -v $i ${i%%/*}/sysconfig.${i##*/}
+done
+
+#
+udev_rulesdir=%{buildroot}/%{_udevrulesdir}
+tools_domU_dir=%{buildroot}/%{_libexecdir}/%{name}-tools-domU
+mkdir -p ${udev_rulesdir}
+mkdir -p ${tools_domU_dir}
+#
+tee ${udev_rulesdir}/80-%{name}-tools-domU.rules <<'_EOR_'
+# XenSource, Inc. Xen Platform Device
+SUBSYSTEM=="pci", ATTR{modalias}=="pci:v00005853d00000001sv00005853sd00000001bcFFsc80i00", TAG+="systemd", ENV{SYSTEMD_WANTS}+="%{name}-vcpu-watch.service"
+_EOR_
+#
+tee %{buildroot}/%{_unitdir}/%{name}-vcpu-watch.service <<'_EOS_'
+[Unit]
+Description=Listen to CPU online/offline events from dom0 toolstack
+
+[Service]
+Type=simple
+ExecStart=%{_libexecdir}/%{name}-tools-domU/%{name}-vcpu-watch.sh
+Restart=always
+RestartSec=2
+_EOS_
+#
+tee %{buildroot}/%{_libexecdir}/%{name}-tools-domU/%{name}-vcpu-watch.sh <<'_EOS_'
+#!/bin/bash
+unset LANG
+unset ${!LC_*}
+echo "$0 starting" >&2
+xenstore-watch cpu | while read
+do
+ : xenstore event: ${REPLY}
+ case "${REPLY}" in
+ cpu)
+ : just started
+ ;;
+ cpu/[0-9]/availability|cpu/[0-9][0-9]/availability)
+ vcpu="${REPLY%%/*}"
+ vcpu="${vcpu#*/}"
+ sysfs="/sys/devices/system/cpu/cpu${vcpu}/online"
+ if test -f "${sysfs}"
+ then
+ availability="`xenstore-read \"${REPLY}\"`"
+ case "${availability}" in
+ online|offline)
+ if test "${availability}" = "online"
+ then
+ new_sysfs_state=1
+ else
+ new_sysfs_state=0
+ fi
+ read cur_sysfs_state rest < "${sysfs}"
+ if test "${cur_sysfs_state}" = "${new_sysfs_state}"
+ then
+ : the vcpu "${vcpu}" already has state "${availability}" via "${sysfs}"
+ else
+ : setting vcpu "${vcpu}" to "${availability}" via "${sysfs}"
+ echo "setting vcpu ${vcpu} to ${availability}" >&2
+ echo "${new_sysfs_state}" > "${sysfs}"
+ fi
+ ;;
+ esac
+ fi
+ ;;
+ *)
+ : unhandled
+ ;;
+ esac
+done
+exit 1
+_EOS_
+chmod 755 %{buildroot}/%{_libexecdir}/%{name}-tools-domU/%{name}-vcpu-watch.sh
+#
+tee ${udev_rulesdir}/60-persistent-xvd.rules <<'_EOR_'
+ACTION=="remove", GOTO="xvd_aliases_end"
+SUBSYSTEM!="block", GOTO="xvd_aliases_end"
+KERNEL=="xvd*[!0-9]", IMPORT{program}=="%{name}-tools-domU.sh --devpath %%p --devtype $env{DEVTYPE}"
+KERNEL=="xvd*[0-9]", IMPORT{program}=="%{name}-tools-domU.sh --devpath %%p --devtype $env{DEVTYPE}"
+KERNEL=="xvd*[!0-9]", ENV{VBD_HD_SYMLINK}=="hd[a-d]", SYMLINK+="$env{VBD_HD_SYMLINK}"
+KERNEL=="xvd*[0-9]", ENV{VBD_HD_SYMLINK}=="hd[a-d]", SYMLINK+="$env{VBD_HD_SYMLINK}%%n"
+LABEL="xvd_aliases_end"
+_EOR_
+#
+tee ${udev_rulesdir}/80-%{name}-channel-setup.rules <<'_EOF_'
+SUBSYSTEM=="xen", DEVPATH=="/devices/console-[0-9]", IMPORT{program}=="xen-channel-setup.sh $attr{nodename} %%n"
+
+SUBSYSTEM=="xen", DEVPATH=="/devices/console-[0-9]", ENV{XEN_CHANNEL_NAME}=="org.qemu.guest_agent.0", TAG+="systemd", ENV{SYSTEMD_WANTS}+="qemu-ga@hvc%%n.service"
+_EOF_
+#
+dracut_moduledir=%{buildroot}/usr/lib/dracut/modules.d/50%{name}-tools-domU
+mkdir -p ${dracut_moduledir}
+tee ${dracut_moduledir}/module-setup.sh <<'_EOS_'
+#!/bin/bash
+check() {
+ require_binaries xenstore-read || return 1
+ return 0
+}
+
+depends() {
+ return 0
+}
+install() {
+ inst_multiple xenstore-read
+ inst_multiple ${udevdir}/%{name}-tools-domU.sh
+ inst_rules 60-persistent-xvd.rules
+}
+_EOS_
+chmod 755 ${dracut_moduledir}/module-setup.sh
+#
+udev_programdir=%{buildroot}/usr/lib/udev
+mkdir -p ${udev_programdir}
+tee ${udev_programdir}/%{name}-tools-domU.sh <<'_EOS_'
+#!/bin/bash
+set -e
+devpath=
+devtype=
+dev=
+while test "$#" -gt 0
+do
+ : "$1"
+ case "$1" in
+ --devpath) devpath=$2 ; shift ;;
+ --devtype) devtype=$2 ; shift ;;
+ *) echo "$0: Unknown option $1" >&2 ; exit 1 ;;
+ esac
+ shift
+done
+test -n "${devpath}" || exit 1
+test -n "${devtype}" || exit 1
+cd "/sys/${devpath}"
+case "${devtype}" in
+ partition) cd .. ;;
+esac
+cd -P device
+d="${PWD##*/}"
+d="${d/-/\/}"
+backend="`xenstore-read device/${d}/backend`"
+dev="`xenstore-read \"${backend}\"/dev`"
+test -n "${dev}" && echo "VBD_HD_SYMLINK=${dev}"
+_EOS_
+#
+tee ${udev_programdir}/%{name}-channel-setup.sh <<'_EOF_'
+#!/bin/bash
+
+if test "$#" -ne 2; then
+ exit 1
+fi
+
+channel_path="$1"
+channel_num="$2"
+
+name="`xenstore-read \"$channel_path\"/name`"
+test -z "$name" && exit 1
+
+if test $name != "org.qemu.guest_agent.0"; then
+ exit 1
+fi
+
+mkdir -p /dev/xenchannel
+devname=/dev/xenchannel/$name
+# Xen's console devices are used for channels. See xen-pv-channel(7)
+# for more details
+ln -sfn /dev/hvc$channel_num $devname
+
+echo "XEN_CHANNEL_NAME=$name"
+_EOF_
+chmod 755 ${udev_programdir}/*.sh
+
+# EFI
+%if %{?with_dom0_support}0
+arch=`uname -m`
+install_xen()
+{
+ local ext=""
+ find %{buildroot}/boot -ls
+ if [ -n "$1" ]; then
+ ext="-$1"
+ mv %{buildroot}/boot/xen-syms-${XEN_FULLVERSION} \
+ %{buildroot}/boot/xen-syms${ext}-${XEN_FULLVERSION}
+ mv %{buildroot}/boot/xen-${XEN_FULLVERSION}%{xen_install_suffix} \
+ %{buildroot}/boot/xen${ext}-${XEN_FULLVERSION}%{xen_install_suffix}
+ if test -d %{buildroot}/%{_libdir}/efi; then
+ mv %{buildroot}/%{_libdir}/efi/xen-${XEN_FULLVERSION}.efi %{buildroot}/%{_libdir}/efi/xen${ext}-${XEN_FULLVERSION}.efi
+ ln -sf xen${ext}-${XEN_FULLVERSION}.efi %{buildroot}/%{_libdir}/efi/xen${ext}-$XEN_VERSION.$XEN_SUBVERSION.efi
+ ln -sf xen${ext}-${XEN_FULLVERSION}.efi %{buildroot}/%{_libdir}/efi/xen${ext}-$XEN_VERSION.efi
+ ln -sf xen${ext}-${XEN_FULLVERSION}.efi %{buildroot}/%{_libdir}/efi/xen${ext}.efi
+ fi
+ elif test -d %{buildroot}/%{_libdir}/efi; then
+ # Move the efi files to /usr/share/efi/<arch> (fate#326960)
+ mkdir -p %{buildroot}/%{_datadir}/efi/$arch
+ mv %{buildroot}/%{_libdir}/efi/xen*.efi %{buildroot}/%{_datadir}/efi/$arch/
+ ln -s %{_datadir}/efi/$arch/xen-${XEN_FULLVERSION}.efi %{buildroot}/%{_libdir}/efi/xen.efi
+ fi
+ rm %{buildroot}/boot/xen-$XEN_VERSION.$XEN_SUBVERSION%{xen_install_suffix}
+ rm %{buildroot}/boot/xen-$XEN_VERSION%{xen_install_suffix}
+ rm %{buildroot}/boot/xen%{xen_install_suffix}
+ # Do not link to links; grub cannot follow.
+ ln -s xen${ext}-${XEN_FULLVERSION}%{xen_install_suffix} %{buildroot}/boot/xen${ext}-$XEN_VERSION.$XEN_SUBVERSION%{xen_install_suffix}
+ ln -s xen${ext}-${XEN_FULLVERSION}%{xen_install_suffix} %{buildroot}/boot/xen${ext}-$XEN_VERSION%{xen_install_suffix}
+ ln -s xen${ext}-${XEN_FULLVERSION}%{xen_install_suffix} %{buildroot}/boot/xen${ext}%{xen_install_suffix}
+ if test -f xen-syms${ext}-${XEN_FULLVERSION}; then
+ ln -sf xen-syms${ext}-${XEN_FULLVERSION} %{buildroot}/boot/xen-syms${ext}
+ fi
+ find %{buildroot}/boot -ls
+}
+export BRP_PESIGN_FILES="*.efi /lib/firmware"
+CC=gcc
+%if %{?with_gcc47}0
+CC=gcc-4.7
+%endif
+%if %{?with_gcc48}0
+CC=gcc-4.8
+%endif
+rm -fv xen/.config
+%if %{with xen_debug}
+echo CONFIG_DEBUG=y > xen/.config
+echo "CONFIG_DOM0_MEM=\"1G+10%%,max:64G\"" >> xen/.config
+yes '' | make -C xen oldconfig
+make -C xen install DEBUG_DIR=/boot DESTDIR=%{buildroot} CC=$CC %{?_smp_mflags}
+install_xen dbg
+make -C xen clean
+%endif
+echo CONFIG_DEBUG=n > xen/.config
+echo "CONFIG_DOM0_MEM=\"1G+10%%,max:64G\"" >> xen/.config
+yes '' | make -C xen oldconfig
+make -C xen install DEBUG_DIR=/boot DESTDIR=%{buildroot} CC=$CC %{?_smp_mflags}
+install_xen
+make -C xen clean
+%endif
+
+# On x86_64, qemu-xen was installed as /usr/lib/xen/bin/qemu-system-i386
+# and advertised as the <emulator> in libvirt capabilities. Tool such as
+# virt-install include <emulator> in domXML they produce, so we need to
+# preserve the path. For x86_64, create a simple wrapper that invokes
+# /usr/bin/qemu-system-i386
+# Using qemu-system-x86_64 will result in an incompatible VM
+%ifarch x86_64
+cat > %{buildroot}%{_libexecdir}/xen/bin/qemu-system-i386 << 'EOF'
+#!/bin/sh
+
+exec %{_bindir}/qemu-system-i386 "$@"
+EOF
+chmod 0755 %{buildroot}%{_libexecdir}/xen/bin/qemu-system-i386
+#
+unit='%{_libexecdir}/%{name}/bin/xendomains-wait-disks'
+mkdir -vp '%{buildroot}%{_libexecdir}/%{name}/bin'
+cp -avL '%{SOURCE10172}' "%{buildroot}${unit}"
+mkdir xendomains-wait-disk
+cp -avL '%{SOURCE10173}' xendomains-wait-disk/LICENSE
+cp -avL '%{SOURCE10174}' xendomains-wait-disk/README.md
+tee %{buildroot}%{_unitdir}/xendomains-wait-disks.service <<'_EOS_'
+[Unit]
+Description=Xendomains - for those machines that will start, wait for their disks to apear
+Requires=proc-xen.mount xenstored.service
+After=proc-xen.mount xenstored.service xenconsoled.service xen-init-dom0.service
+After=network-online.target
+After=remote-fs.target
+Before=xendomains.service
+ConditionPathExists=/proc/xen/capabilities
+
+[Service]
+Type=oneshot
+ExecStart=${unit}
+TimeoutSec=5min
+
+[Install]
+WantedBy=xendomains.service
+_EOS_
+#
+%endif
+
+# Stubdom
+%if %{?with_dom0_support}0
+# Docs
+mkdir -p %{buildroot}/%{_defaultdocdir}/xen/misc
+for name in COPYING %SOURCE10 %SOURCE11 %SOURCE12; do
+ install -m 644 $name %{buildroot}/%{_defaultdocdir}/xen/
+done
+for name in vtpm-platforms.txt crashdb.txt xenpaging.txt \
+ xen-command-line.pandoc xenstore-paths.pandoc; do
+ install -m 644 docs/misc/$name %{buildroot}/%{_defaultdocdir}/xen/misc/
+done
+
+mkdir -p %{buildroot}/etc/modprobe.d
+install -m644 %SOURCE26 %{buildroot}/etc/modprobe.d/xen_loop.conf
+
+# xen-utils
+make -C tools/xen-utils-0.1 install DESTDIR=%{buildroot} XEN_INTREE_BUILD=yes XEN_ROOT=$PWD
+install -m755 %SOURCE37 %{buildroot}/usr/sbin/xen2libvirt
+install -m755 %SOURCE10183 %{buildroot}/usr/sbin/xen_maskcalc
+
+rm -f %{buildroot}/etc/xen/README*
+# Example config
+mkdir -p %{buildroot}/etc/xen/{vm,examples,scripts}
+mv %{buildroot}/etc/xen/xlexample* %{buildroot}/etc/xen/examples
+rm -f %{buildroot}/etc/xen/examples/*nbd
+install -m644 tools/xentrace/formats %{buildroot}/etc/xen/examples/xentrace_formats.txt
+
+# Scripts
+rm -f %{buildroot}/etc/xen/scripts/block-*nbd
+install -m755 %SOURCE21 %SOURCE22 %SOURCE23 %SOURCE29 %{buildroot}/etc/xen/scripts/
+mkdir -p %{buildroot}/usr/lib/supportconfig/plugins
+install -m 755 %SOURCE13 %{buildroot}/usr/lib/supportconfig/plugins/xen
+
+# Xen API remote authentication files
+install -d %{buildroot}/etc/pam.d
+install -m644 %SOURCE30 %{buildroot}/etc/pam.d/xen-api
+install -m644 %SOURCE31 %{buildroot}/etc/xen/
+
+# Logrotate
+install -m644 -D %SOURCE15 %{buildroot}/etc/logrotate.d/xen
+
+# Directories
+mkdir -p %{buildroot}/var/lib/xenstored
+mkdir -p %{buildroot}/var/lib/xen/images
+mkdir -p %{buildroot}/var/lib/xen/jobs
+mkdir -p %{buildroot}/var/lib/xen/save
+mkdir -p %{buildroot}/var/lib/xen/dump
+mkdir -p %{buildroot}/var/log/xen
+mkdir -p %{buildroot}/var/log/xen/console
+
+# Bootloader
+install -m644 %SOURCE36 %{buildroot}/%{_libdir}/python%{pyver}/site-packages
+
+# Systemd
+cp -bavL %{S:41} %{buildroot}/%{_unitdir}
+bn=`basename %{S:42}`
+cp -bavL %{S:42} %{buildroot}/%{_unitdir}/${bn}
+mods="`
+for conf in $(ls %{buildroot}/%{with_systemd_modules_load}/*.conf)
+do
+ grep -v ^# $conf
+ echo -n > $conf
+done
+`"
+for mod in $mods
+do
+ echo "ExecStart=-/bin/sh -c 'modprobe $mod || :'" >> %{buildroot}/%{_unitdir}/${bn}
+done
+rm -rfv %{buildroot}/%{_initddir}
+install -m644 %SOURCE35 %{buildroot}/%{_fillupdir}/sysconfig.pciback
+
+# Clean up unpackaged files
+find %{buildroot} \( \
+ -name .deps -o \
+ -name README.blktap -o \
+ -name README.xenmon -o \
+ -name target-x86_64.conf -o \
+ -name xen-mfndump -o \
+ -name qcow-create -o \
+ -name img2qcow -o \
+ -name qcow2raw -o \
+ -name qemu-bridge-helper -o \
+ -name qemu-img-xen -o \
+ -name qemu-nbd-xen -o \
+ -name palcode-clipper -o \
+ -name xen-shim-syms -o \
+ -name "*.dtb" -o \
+ -name "openbios-*" -o \
+ -name "petalogix*" -o \
+ -name "ppc*" -o \
+ -name "*.pyc" -o \
+ -name "s390*" -o \
+ -name "slof*" -o \
+ -name "spapr*" -o \
+ -name "*.egg-info" \) \
+ -print -delete
+# Wipe empty directories
+if find %{buildroot}/usr -type d -print0 | xargs -0n1 rmdir -p 2>/dev/null
+then
+ :
+fi
+
+# "xl devd" has to be called manually in a driver domain
+find %{buildroot} -name xendriverdomain.service -print -delete
+
+# Create hardlinks for 3 .txt files and 1 .py
+%fdupes %{buildroot}/%{_prefix}
+find %{buildroot} -type f -size 0 -delete -print
+
+%else
+# !with_dom0_support
+
+# 32 bit hypervisor no longer supported. Remove dom0 tools.
+rm -rf %{buildroot}/%{_datadir}/doc
+rm -rf %{buildroot}/%{_datadir}/man
+rm -rf %{buildroot}/%{_libexecdir}/xen
+rm -rf %{buildroot}/%{_libdir}/python*
+rm -rf %{buildroot}/%{_libdir}/ocaml*
+rm -rf %{buildroot}/%{_unitdir}
+rm -rf %{buildroot}/%{_fillupdir}
+rm -rf %{buildroot}/%{with_systemd_modules_load}
+rm -rf %{buildroot}/usr/sbin
+rm -rf %{buildroot}/etc/xen
+rm -rf %{buildroot}/var
+rm -f %{buildroot}/%{_sysconfdir}/bash_completion.d/xl.sh
+rm -f %{buildroot}/%{_sysconfdir}/init.d/xen*
+rm -f %{buildroot}/%{_bindir}/*trace*
+rm -f %{buildroot}/%{_bindir}/xenalyze*
+rm -f %{buildroot}/%{_bindir}/xenco*
+rm -f %{buildroot}/%{_bindir}/xen-cpuid
+rm -f %{buildroot}/%{_bindir}/xenstore*
+rm -f %{buildroot}/%{_bindir}/pygrub
+rm -f %{buildroot}/%{_bindir}/remus
+rm -f %{buildroot}/usr/etc/qemu/target-x86_64.conf
+rm -f %{buildroot}/usr/libexec/qemu-bridge-helper
+%endif
+
+%if %{?with_dom0_support}0
+
+%files
+%defattr(-,root,root)
+/boot/*
+%{_libdir}/efi
+%{_datadir}/efi
+
+%endif
+
+%files libs
+%defattr(-,root,root)
+%{_libdir}/xenfsimage/
+%{_libdir}/*.so.*
+
+%if %{?with_dom0_support}0
+
+%files tools
+%defattr(-,root,root)
+/usr/bin/xenalyze
+/usr/bin/xencons
+/usr/bin/xenstore*
+/usr/bin/pygrub
+/usr/bin/xencov_split
+/usr/bin/xentrace_format
+%ifarch x86_64
+/usr/bin/xen-cpuid
+/usr/sbin/xen-ucode
+%endif
+/usr/sbin/xenbaked
+/usr/sbin/xenconsoled
+/usr/sbin/xencov
+/usr/sbin/xenlockprof
+/usr/sbin/xenmon
+/usr/sbin/xenperf
+/usr/sbin/xenpm
+/usr/sbin/xenpmd
+/usr/sbin/xenstored
+/usr/sbin/xentop
+/usr/sbin/xentrace
+/usr/sbin/xentrace_setsize
+/usr/sbin/xentrace_setmask
+/usr/sbin/xenwatchdogd
+/usr/sbin/flask-get-bool
+/usr/sbin/flask-getenforce
+/usr/sbin/flask-label-pci
+/usr/sbin/flask-loadpolicy
+/usr/sbin/flask-set-bool
+/usr/sbin/flask-setenforce
+%if %{?with_gdbsx}0
+/usr/sbin/gdbsx
+%endif
+/usr/sbin/xl
+/usr/sbin/xen2libvirt
+/usr/sbin/xen_maskcalc
+%ifarch %ix86 x86_64
+/usr/sbin/xen-hptool
+/usr/sbin/xen-hvmcrash
+/usr/sbin/xen-hvmctx
+/usr/sbin/xen-lowmemd
+/usr/sbin/xen-kdd
+%endif
+/usr/sbin/xen-list
+/usr/sbin/xen-destroy
+/usr/sbin/xen-livepatch
+/usr/sbin/xen-diag
+%dir %attr(700,root,root) /etc/xen
+%dir /etc/xen/scripts
+/etc/xen/scripts/block*
+/etc/xen/scripts/external-device-migrate
+/etc/xen/scripts/hotplugpath.sh
+/etc/xen/scripts/launch-xenstore
+/etc/xen/scripts/locking.sh
+/etc/xen/scripts/logging.sh
+/etc/xen/scripts/vif2
+/etc/xen/scripts/vif-*
+/etc/xen/scripts/vscsi
+/etc/xen/scripts/xen-hotplug-*
+/etc/xen/scripts/xen-network-common.sh
+/etc/xen/scripts/xen-script-common.sh
+/etc/xen/scripts/colo-proxy-setup
+/etc/xen/scripts/remus-netbuf-setup
+%dir /usr/lib/supportconfig
+%dir /usr/lib/supportconfig/plugins
+/usr/lib/supportconfig/plugins/xen
+%{_libexecdir}/xen
+%exclude %{_libexecdir}/%{name}-tools-domU
+%ifarch x86_64
+%exclude %{_libexecdir}/%{name}/bin/xendomains-wait-disks
+%endif
+%{_fillupdir}/sysconfig.pciback
+%{_fillupdir}/sysconfig.xencommons
+%{_fillupdir}/sysconfig.xendomains
+%dir /var/lib/xen
+%dir %attr(700,root,root) /var/lib/xen/images
+%dir %attr(700,root,root) /var/lib/xen/save
+%dir %attr(700,root,root) /var/lib/xen/dump
+%ifarch %ix86 x86_64
+%dir %attr(700,root,root) /var/lib/xen/xenpaging
+%endif
+%dir /var/lib/xenstored
+%dir /var/log/xen
+%dir /var/log/xen/console
+%config /etc/logrotate.d/xen
+/etc/xen/auto
+%config /etc/xen/examples
+%config /etc/xen/cpupool
+%config /etc/xen/vm
+%config(noreplace) /etc/xen/xenapiusers
+%config(noreplace) /etc/xen/xl.conf
+%config /etc/pam.d/xen-api
+%config /etc/modprobe.d/xen_loop.conf
+%config %{_unitdir}
+%exclude %{_unitdir}/%{name}-vcpu-watch.service
+%exclude %{_unitdir}/xendomains-wait-disks.service
+%config %{with_systemd_modules_load}
+%dir /etc/modprobe.d
+/etc/bash_completion.d/xl.sh
+%dir %{_libdir}/python%{pyver}/site-packages/grub
+%dir %{_libdir}/python%{pyver}/site-packages/xen
+%dir %{_libdir}/python%{pyver}/site-packages/xen/lowlevel
+%dir %{_libdir}/python%{pyver}/site-packages/xen/migration
+%{_libdir}/python%{pyver}/site-packages/grub/*
+%{_libdir}/python%{pyver}/site-packages/xen/__init__*
+%{_libdir}/python%{pyver}/site-packages/xen/lowlevel/*
+%{_libdir}/python%{pyver}/site-packages/xen/migration/*
+%{_libdir}/python%{pyver}/site-packages/*.so
+%{_libdir}/python%{pyver}/site-packages/xnloader.py
+%dir %{_defaultdocdir}/xen
+%{_defaultdocdir}/xen/COPYING
+%{_defaultdocdir}/xen/README.SUSE
+%{_defaultdocdir}/xen/boot.local.xenU
+%{_defaultdocdir}/xen/boot.xen
+%{_mandir}/man*/*
+
+%if %{with xen_oxenstored}
+/usr/sbin/oxenstored
+/etc/xen/oxenstored.conf
+%dir %{_libdir}/ocaml
+%dir %{_libdir}/ocaml/xenbus
+%dir %{_libdir}/ocaml/xenctrl
+%dir %{_libdir}/ocaml/xeneventchn
+%dir %{_libdir}/ocaml/xenlight
+%dir %{_libdir}/ocaml/xenmmap
+%dir %{_libdir}/ocaml/xenstore
+%dir %{_libdir}/ocaml/xentoollog
+%{_libdir}/ocaml/xenbus/META
+%{_libdir}/ocaml/xenbus/*.so
+%{_libdir}/ocaml/xenbus/*.cma
+%{_libdir}/ocaml/xenbus/*.cmi
+%{_libdir}/ocaml/xenbus/*.cmo
+%{_libdir}/ocaml/xenctrl/META
+%{_libdir}/ocaml/xenctrl/*.so
+%{_libdir}/ocaml/xenctrl/*.cma
+%{_libdir}/ocaml/xenctrl/*.cmi
+%{_libdir}/ocaml/xeneventchn/META
+%{_libdir}/ocaml/xeneventchn/*.so
+%{_libdir}/ocaml/xeneventchn/*.cma
+%{_libdir}/ocaml/xeneventchn/*.cmi
+%{_libdir}/ocaml/xenlight/META
+%{_libdir}/ocaml/xenlight/*.so
+%{_libdir}/ocaml/xenlight/*.cma
+%{_libdir}/ocaml/xenlight/*.cmi
+%{_libdir}/ocaml/xenmmap/META
+%{_libdir}/ocaml/xenmmap/*.so
+%{_libdir}/ocaml/xenmmap/*.cma
+%{_libdir}/ocaml/xenmmap/*.cmi
+%{_libdir}/ocaml/xenstore/META
+%{_libdir}/ocaml/xenstore/*.cma
+%{_libdir}/ocaml/xenstore/*.cmi
+%{_libdir}/ocaml/xenstore/*.cmo
+%{_libdir}/ocaml/xentoollog/META
+%{_libdir}/ocaml/xentoollog/*.so
+%{_libdir}/ocaml/xentoollog/*.cma
+%{_libdir}/ocaml/xentoollog/*.cmi
+%endif
+
+%ifarch x86_64
+%files tools-xendomains-wait-disk
+%license xendomains-wait-disk/LICENSE
+%doc xendomains-wait-disk/README.md
+%config %{_unitdir}/xendomains-wait-disks.service
+%config %attr(0755,root,root) %{_libexecdir}/%{name}/bin/xendomains-wait-disks
+%endif
+# with_dom0_support
+%endif
+
+%posttrans -n %{name}-tools-domU
+%{?regenerate_initrd_posttrans}
+
+%files tools-domU
+%defattr(-,root,root)
+%ifarch %ix86 x86_64
+/usr/bin/xen-detect
+%endif
+/bin/domu-xenstore*
+/bin/xenstore-*
+%if %{?with_dom0_support}0
+%config %{_unitdir}/%{name}-vcpu-watch.service
+%endif
+%{_libexecdir}/%{name}-tools-domU
+/usr/lib/udev
+/usr/lib/dracut
+
+%files devel
+%defattr(-,root,root)
+%{_libdir}/*.a
+%{_libdir}/*.so
+%if %{?with_dom0_support}0
+%if %{with xen_oxenstored}
+%{_libdir}/ocaml/xenbus/*.a
+%{_libdir}/ocaml/xenbus/*.cmx*
+%{_libdir}/ocaml/xenctrl/*.a
+%{_libdir}/ocaml/xenctrl/*.cmx*
+%{_libdir}/ocaml/xeneventchn/*.a
+%{_libdir}/ocaml/xeneventchn/*.cmx*
+%{_libdir}/ocaml/xenlight/*.a
+%{_libdir}/ocaml/xenlight/*.cmx*
+%{_libdir}/ocaml/xenmmap/*.a
+%{_libdir}/ocaml/xenmmap/*.cmx*
+%{_libdir}/ocaml/xenstore/*.a
+%{_libdir}/ocaml/xenstore/*.cmx*
+%{_libdir}/ocaml/xentoollog/*.a
+%{_libdir}/ocaml/xentoollog/*.cmx*
+%endif
+%endif
+/usr/include/*
+%{_libdir}/pkgconfig/xenlight.pc
+%{_libdir}/pkgconfig/xlutil.pc
+%{_libdir}/pkgconfig/xencall.pc
+%{_libdir}/pkgconfig/xencontrol.pc
+%{_libdir}/pkgconfig/xendevicemodel.pc
+%{_libdir}/pkgconfig/xenevtchn.pc
+%{_libdir}/pkgconfig/xenforeignmemory.pc
+%{_libdir}/pkgconfig/xengnttab.pc
+%{_libdir}/pkgconfig/xenguest.pc
+%{_libdir}/pkgconfig/xenstat.pc
+%{_libdir}/pkgconfig/xenstore.pc
+%{_libdir}/pkgconfig/xentoolcore.pc
+%{_libdir}/pkgconfig/xentoollog.pc
+%{_libdir}/pkgconfig/xenvchan.pc
+
+%if %{?with_dom0_support}0
+
+%files doc-html
+%defattr(-,root,root)
+%dir %{_defaultdocdir}/xen
+%{_defaultdocdir}/xen/misc
+%{_defaultdocdir}/xen/html
+
+%post
+if [ -x /sbin/update-bootloader ]; then
+ /sbin/update-bootloader --refresh; exit 0
+fi
+
+%pre tools
+%service_add_pre xencommons.service
+%service_add_pre xendomains.service
+%service_add_pre xen-watchdog.service
+%service_add_pre xenstored.service
+%service_add_pre xen-dom0-modules.service
+%service_add_pre xenconsoled.service
+%service_add_pre xen-init-dom0.service
+%service_add_pre xen-qemu-dom0-disk-backend.service
+
+%post tools
+xen_tools_first_arg=$1
+%{fillup_only -n xencommons xencommons}
+%{fillup_only -n xendomains xendomains}
+%service_add_post xencommons.service
+%service_add_post xendomains.service
+%service_add_post xen-watchdog.service
+%service_add_post xenstored.service
+%service_add_post xen-dom0-modules.service
+%service_add_post xenconsoled.service
+%service_add_post xen-init-dom0.service
+%service_add_post xen-qemu-dom0-disk-backend.service
+
+if [ -f /usr/bin/qemu-img ]; then
+ if [ -f /usr/bin/qemu-img-xen ]; then
+ rm /usr/bin/qemu-img-xen
+ fi
+ rm -f %{_libexecdir}/xen/bin/qemu-img-xen
+ ln -s /usr/bin/qemu-img %{_libexecdir}/xen/bin/qemu-img-xen
+fi
+if [ -f /usr/bin/qemu-nbd ]; then
+ if [ -f /usr/bin/qemu-nbd-xen ]; then
+ rm /usr/bin/qemu-nbd-xen
+ fi
+ rm -f %{_libexecdir}/xen/bin/qemu-nbd-xen
+ ln -s /usr/bin/qemu-nbd %{_libexecdir}/xen/bin/qemu-nbd-xen
+fi
+if [ -f /usr/bin/qemu-io ]; then
+ rm -f %{_libexecdir}/xen/bin/qemu-io-xen
+ ln -s /usr/bin/qemu-io %{_libexecdir}/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 [ -f /usr/lib/grub2/x86_64-xen/grub.xen -a ! -f /usr/lib/xen/boot/pvgrub64.bin ]; then
+ ln -s /usr/lib/grub2/x86_64-xen/grub.xen /usr/lib/xen/boot/pvgrub64.bin
+fi
+
+%preun tools
+%service_del_preun xencommons.service
+%service_del_preun xendomains.service
+%service_del_preun xen-watchdog.service
+%service_del_preun xenstored.service
+%service_del_preun xen-dom0-modules.service
+%service_del_preun xenconsoled.service
+%service_del_preun xen-init-dom0.service
+%service_del_preun xen-qemu-dom0-disk-backend.service
+
+%postun tools
+export DISABLE_RESTART_ON_UPDATE=yes
+%service_del_postun xencommons.service
+%service_del_postun xendomains.service
+%service_del_postun xen-watchdog.service
+%service_del_postun xenstored.service
+%service_del_postun xen-dom0-modules.service
+%service_del_postun xenconsoled.service
+%service_del_postun xen-init-dom0.service
+%service_del_postun xen-qemu-dom0-disk-backend.service
+
+%endif
+
+%post libs -p /sbin/ldconfig
+
+%postun libs -p /sbin/ldconfig
+
+%changelog
+* Tue Oct 13 2020 carnold@suse.com
+- bsc#1177409 - VUL-0: xen: x86 PV guest INVLPG-like flushes may
+ leave stale TLB entries (XSA-286)
+ xsa286-1.patch
+ xsa286-2.patch
+ xsa286-3.patch
+ xsa286-4.patch
+ xsa286-5.patch
+ xsa286-6.patch
+- bsc#1177412 - VUL-0: xen: Race condition in Xen mapping code
+ (XSA-345)
+ xsa345-1.patch
+ xsa345-2.patch
+ xsa345-3.patch
+- bsc#1177413 - VUL-0: xen: undue deferral of IOMMU TLB flushes
+ (XSA-346)
+ xsa346-1.patch
+ xsa346-2.patch
+- bsc#1177414 - VUL-0: xen: unsafe AMD IOMMU page table updates
+ (XSA-347)
+ xsa347-1.patch
+ xsa347-2.patch
+ xsa347-3.patch
+* Fri Sep 11 2020 ohering@suse.de
+- Escape some %% chars in xen.spec, they have to appear verbatim
+* Wed Sep 9 2020 ohering@suse.de
+- Enhance libxc.migrate_tracking.patch
+ Print number of allocated pages on sending side, this is more
+ accurate than p2m_size.
+* Tue Sep 8 2020 carnold@suse.com
+- bsc#1176339 - VUL-0: CVE-2020-25602: xen: x86 pv: Crash when
+ handling guest access to MSR_MISC_ENABLE (XSA-333)
+ xsa333.patch
+- bsc#1176341 - VUL-0: CVE-2020-25598: xen: Missing unlock in
+ XENMEM_acquire_resource error path (XSA-334)
+ xsa334.patch
+- bsc#1176343 - VUL-0: CVE-2020-25604: xen: race when migrating
+ timers between x86 HVM vCPU-s (XSA-336)
+ xsa336.patch
+- bsc#1176344 - VUL-0: CVE-2020-25595: xen: PCI passthrough code
+ reading back hardware registers (XSA-337)
+ xsa337-1.patch
+ xsa337-2.patch
+- bsc#1176346 - VUL-0: CVE-2020-25597: xen: once valid event
+ channels may not turn invalid (XSA-338)
+ xsa338.patch
+- bsc#1176345 - VUL-0: CVE-2020-25596: xen: x86 pv guest kernel
+ DoS via SYSENTER (XSA-339)
+ xsa339.patch
+- bsc#1176347 - VUL-0: CVE-2020-25603: xen: Missing barrier
+ barriers when accessing/allocating an event channel (XSA-340)
+ xsa340.patch
+- bsc#1176348 - VUL-0: CVE-2020-25600: xen: out of bounds event
+ channels available to 32-bit x86 domains (XSA-342)
+ xsa342.patch
+- bsc#1176349 - VUL-0: CVE-2020-25599: xen: races with
+ evtchn_reset() (XSA-343)
+ xsa343-1.patch
+ xsa343-2.patch
+ xsa343-3.patch
+- bsc#1176350 - VUL-0: CVE-2020-25601: xen: lack of preemption in
+ evtchn_reset() / evtchn_destroy() (XSA-344)
+ xsa344-1.patch
+ xsa344-2.patch
+- Upstream bug fixes (bsc#1027519)
+ 5f479d9e-x86-begin-to-support-MSR_ARCH_CAPS.patch
+ 5f4cf06e-x86-Dom0-expose-MSR_ARCH_CAPS.patch
+ 5f4cf96a-x86-PV-fix-SEGBASE_GS_USER_SEL.patch
+ 5f560c42-x86-PV-64bit-segbase-consistency.patch
+* Mon Aug 3 2020 carnold@suse.com
+- Upstream bug fixes (bsc#1027519)
+ 5ef44e0d-x86-PMTMR-use-FADT-flags.patch
+ 5ef6156a-x86-disallow-access-to-PT-MSRs.patch
+ 5efcb354-x86-protect-CALL-JMP-straight-line-speculation.patch
+ 5f046c18-evtchn-dont-ignore-error-in-get_free_port.patch (Replaces xsa317.patch)
+ 5f046c48-x86-shadow-dirty-VRAM-inverted-conditional.patch (Replaces xsa319.patch)
+ 5f046c64-EPT-set_middle_entry-adjustments.patch (Replaces xsa328-1.patch)
+ 5f046c78-EPT-atomically-modify-ents-in-ept_next_level.patch (Replaces xsa328-2.patch)
+ 5f046c9a-VT-d-improve-IOMMU-TLB-flush.patch (Replaces xsa321-1.patch)
+ 5f046cb5-VT-d-prune-rename-cache-flush-funcs.patch (Replaces xsa321-2.patch)
+ 5f046cca-x86-IOMMU-introduce-cache-sync-hook.patch (Replaces xsa321-3.patch)
+ 5f046ce9-VT-d-sync_cache-misaligned-addresses.patch (Replaces xsa32141.patch)
+ 5f046cfd-x86-introduce-alternative_2.patch (Replaces xsa321-5.patch)
+ 5f046d1a-VT-d-optimize-CPU-cache-sync.patch (Replaces xsa321-6.patch)
+ 5f046d2b-EPT-flush-cache-when-modifying-PTEs.patch (Replaces xsa321-7.patch)
+ 5f046d5c-check-VCPUOP_register_vcpu_info-alignment.patch (Replaces xsa327.patch)
+ 5f1a9916-x86-S3-put-data-sregs-into-known-state.patch
+ 5f21b9fd-x86-cpuid-APIC-bit-clearing.patch
+* Thu Jul 23 2020 carnold@suse.com
+- bsc#1172356 - Not able to hot-plug NIC via virt-manager, asks to
+ attach on next reboot while it should be live attached
+ ignore-ip-command-script-errors.patch
+* Fri Jul 17 2020 ohering@suse.de
+- Enhance libxc.migrate_tracking.patch
+ After transfer of domU memory, the target host has to assemble
+ the backend devices. Track the time prior xc_domain_unpause.
+* Tue Jun 30 2020 ohering@suse.de
+- Add libxc.migrate_tracking.patch to track live migrations
+ unconditionally in logfiles, especially in libvirt.
+ This will track how long a domU was suspended during transit.
+* Mon Jun 29 2020 carnold@suse.com
+- bsc#1173376 - VUL-0: CVE-2020-15566: xen: XSA-317 - Incorrect
+ error handling in event channel port allocation
+ xsa317.patch
+- bsc#1173377 - VUL-0: CVE-2020-15563: xen: XSA-319 - inverted code
+ paths in x86 dirty VRAM tracking
+ xsa319.patch
+- bsc#1173378 - VUL-0: CVE-2020-15565: xen: XSA-321 - insufficient
+ cache write- back under VT-d
+ xsa321-1.patch
+ xsa321-2.patch
+ xsa321-3.patch
+ xsa321-4.patch
+ xsa321-5.patch
+ xsa321-6.patch
+ xsa321-7.patch
+- bsc#1173380 - VUL-0: CVE-2020-15567: xen: XSA-328 - non-atomic
+ modification of live EPT PTE
+ xsa328-1.patch
+ xsa328-2.patch
+* Mon Jun 22 2020 carnold@suse.com
+- bsc#1172205 - VUL-0: CVE-2020-0543: xen: Special Register Buffer
+ Data Sampling (SRBDS) aka "CrossTalk" (XSA-320)
+ 5ee24d0e-x86-spec-ctrl-document-SRBDS-workaround.patch
+ 5edfbbea-x86-spec-ctrl-CPUID-MSR-defs-for-SRBDS.patch (Replaces xsa320-1.patch)
+ 5edfbbea-x86-spec-ctrl-mitigate-SRBDS.patch (Replaces xsa320-2.patch)
+- Upstream bug fixes (bsc#1027519)
+ 5ec50b05-x86-idle-rework-C6-EOI-workaround.patch
+ 5ec7dcaa-x86-dont-enter-C6-with-in-service-intr.patch
+ 5ec7dcf6-x86-dont-enter-C3-C6-with-errata.patch
+ 5ec82237-x86-extend-ISR-C6-workaround-to-Haswell.patch
+ 5ece1b91-x86-clear-RDRAND-CPUID-bit-on-AMD-fam-15-16.patch
+ 5ece8ac4-x86-load_system_tables-NMI-MC-safe.patch
+ 5ed69804-x86-ucode-fix-start-end-update.patch
+ 5eda60cb-SVM-split-recalc-NPT-fault-handling.patch
+ 5edf6ad8-ioreq-pending-emulation-server-destruction-race.patch
+* Fri Jun 5 2020 Callum Farmer <callumjfarmer13@gmail.com>
+- Fixes for %%_libexecdir changing to /usr/libexec
+* Thu May 28 2020 carnold@suse.com
+- bsc#1172205 - VUL-0: CVE-2020-0543: xen: Special Register Buffer
+ Data Sampling (SRBDS) aka "CrossTalk" (XSA-320)
+ xsa320-1.patch
+ xsa320-2.patch
+* Mon May 18 2020 carnold@suse.com
+- Update to Xen 4.13.1 bug fix release (bsc#1027519)
+ xen-4.13.1-testing-src.tar.bz2
+ 5eb51be6-cpupool-fix-removing-cpu-from-pool.patch
+ 5eb51caa-sched-vcpu-pause-flags-atomic.patch
+ 5ec2a760-x86-determine-MXCSR-mask-always.patch
+- Drop patches contained in new tarball
+ 5de65f84-gnttab-map-always-do-IOMMU-part.patch
+ 5de65fc4-x86-avoid-HPET-use-on-certain-Intel.patch
+ 5e15e03d-sched-fix-S3-resume-with-smt=0.patch
+ 5e16fb6a-x86-clear-per-cpu-stub-page-info.patch
+ 5e1da013-IRQ-u16-is-too-narrow-for-evtchn.patch
+ 5e1dcedd-Arm-place-speculation-barrier-after-ERET.patch
+ 5e21ce98-x86-time-update-TSC-stamp-after-deep-C-state.patch
+ 5e286cce-VT-d-dont-pass-bridges-to-domain_context_mapping_one.patch
+ 5e318cd4-x86-apic-fix-disabling-LVT0.patch
+ 5e344c11-x86-HVM-relinquish-resources-from-domain_destroy.patch
+ 5e3bd385-EFI-recheck-variable-name-strings.patch
+ 5e3bd3d1-EFI-dont-leak-heap-VIA-XEN_EFI_get_next_variable_name.patch
+ 5e3bd3f8-xmalloc-guard-against-overflow.patch
+ 5e46e090-x86-smp-reset-x2apic_enabled-in-smp_send_stop.patch
+ 5e4c00ef-VT-d-check-full-RMRR-for-E820-reserved.patch
+ 5e4d4f5b-sched-fix-get_cpu_idle_time-with-core-sched.patch
+ 5e4e614d-x86-spec-ctrl-no-xen-also-disables-branch-hardening.patch
+ 5e4ec20e-x86-virtualise-MSR_PLATFORM_ID-properly.patch
+ 5e5e7188-fix-error-path-in-cpupool_unassign_cpu_start.patch
+ 5e6f53dd-AMD-IOMMU-fix-off-by-one-get_paging_mode.patch
+ 5e7a371c-sched-fix-cpu-onlining-with-core-sched.patch
+ 5e7c90cf-sched-fix-cpu-offlining-with-core-sched.patch
+ 5e7cfb29-x86-ucode-AMD-fix-assert-in-compare_patch.patch
+ 5e7cfb29-x86-ucode-fix-error-paths-in-apply_microcode.patch
+ 5e7dd83b-libx86-CPUID-fix-not-just-leaf-7.patch
+ 5e7dfbf6-x86-ucode-AMD-potential-buffer-overrun-equiv-tab.patch
+ 5e846cce-x86-HVM-fix-AMD-ECS-handling-for-Fam10.patch
+ 5e84905c-x86-ucode-AMD-fix-more-potential-buffer-overruns.patch
+ 5e86f7b7-credit2-avoid-vCPUs-with-lower-creds-than-idle.patch
+ 5e86f7fd-credit2-fix-credit-too-few-resets.patch
+ 5e876b0f-tools-xenstore-fix-use-after-free-in-xenstored.patch
+ 5e95ad61-xenoprof-clear-buffer-intended-to-be-shared-with-guests.patch
+ 5e95ad8f-xenoprof-limit-consumption-of-shared-buffer-data.patch
+ 5e95ae77-Add-missing-memory-barrier-in-the-unlock-path-of-rwlock.patch
+ 5e95af5e-xen-gnttab-Fix-error-path-in-map_grant_ref.patch
+ 5e95afb8-gnttab-fix-GNTTABOP_copy-continuation-handling.patch
+* Wed May 13 2020 James Fehlig <jfehlig@suse.com>
+- spec: Remove invocation of autogen.sh
+- spec: Recommend qemu-ovmf-x86_64 to provide UEFI firmwares
+* Wed May 13 2020 carnold@suse.com
+- bsc#1170968 - GCC 10: xen build fails on i586
+ gcc10-fixes.patch
+* Tue Apr 14 2020 carnold@suse.com
+- bsc#1169392 - VUL-0: CVE-2020-11742: xen: Bad continuation
+ handling in GNTTABOP_copy (XSA-318)
+ 5e95afb8-gnttab-fix-GNTTABOP_copy-continuation-handling.patch
+* Mon Apr 6 2020 carnold@suse.com
+- bsc#1168140 - VUL-0: CVE-2020-11740, CVE-2020-11741: xen: XSA-313
+ multiple xenoprof issues
+ 5e95ad61-xenoprof-clear-buffer-intended-to-be-shared-with-guests.patch
+ 5e95ad8f-xenoprof-limit-consumption-of-shared-buffer-data.patch
+- bsc#1168142 - VUL-0: CVE-2020-11739: xen: XSA-314 - Missing
+ memory barriers in read-write unlock paths
+ 5e95ae77-Add-missing-memory-barrier-in-the-unlock-path-of-rwlock.patch
+- bsc#1168143 - VUL-0: CVE-2020-11743: xen: XSA-316 - Bad error
+ path in GNTTABOP_map_grant
+ 5e95af5e-xen-gnttab-Fix-error-path-in-map_grant_ref.patch
+- bsc#1167152 - L3: Xenstored Crashed during VM install Need Core
+ analyzed
+ 5e876b0f-tools-xenstore-fix-use-after-free-in-xenstored.patch
+- bsc#1165206 - Xen 4.12 DomU hang / freeze / stall / NMI watchdog
+ bug soft lockup CPU #0 stuck under high load / upstream with
+ workaround. See also bsc#1134506
+ 5e86f7b7-credit2-avoid-vCPUs-with-lower-creds-than-idle.patch
+ 5e86f7fd-credit2-fix-credit-too-few-resets.patch
+- Drop for upstream solution (bsc#1165206)
+ 01-xen-credit2-avoid-vcpus-to.patch
+ default-to-credit1-scheduler.patch
+- Upstream bug fixes (bsc#1027519)
+ 5e4ec20e-x86-virtualise-MSR_PLATFORM_ID-properly.patch
+ 5e5e7188-fix-error-path-in-cpupool_unassign_cpu_start.patch
+ 5e6f53dd-AMD-IOMMU-fix-off-by-one-get_paging_mode.patch
+ 5e7a371c-sched-fix-cpu-onlining-with-core-sched.patch
+ 5e7c90cf-sched-fix-cpu-offlining-with-core-sched.patch
+ 5e7cfb29-x86-ucode-AMD-fix-assert-in-compare_patch.patch
+ 5e7cfb29-x86-ucode-fix-error-paths-in-apply_microcode.patch
+ 5e7dd83b-libx86-CPUID-fix-not-just-leaf-7.patch
+ 5e7dfbf6-x86-ucode-AMD-potential-buffer-overrun-equiv-tab.patch
+ 5e846cce-x86-HVM-fix-AMD-ECS-handling-for-Fam10.patch
+ 5e84905c-x86-ucode-AMD-fix-more-potential-buffer-overruns.patch
+* Wed Mar 25 2020 ohering@suse.de
+- bsc#1167608 - unbound limit for max_event_channels
+ domUs with many vcpus and/or resources fail to start
+ libxl.max_event_channels.patch
+* Wed Mar 18 2020 ohering@suse.de
+- bsc#1161480 - Fix xl shutdown for HVM without PV drivers
+ add libxl.libxl__domain_pvcontrol.patch
+* Thu Mar 12 2020 carnold@suse.com
+- bsc#1165206 - Xen 4.12 DomU hang / freeze / stall / NMI watchdog
+ bug soft lockup CPU #0 stuck under high load / upstream with
+ workaround. See also bsc#1134506
+ 01-xen-credit2-avoid-vcpus-to.patch
+* Tue Mar 10 2020 carnold@suse.com
+- bsc#1158414 - GCC 10: xen build fails
+ gcc10-fixes.patch
+* Wed Mar 4 2020 carnold@suse.com
+- bsc#1165206 - Xen 4.12 DomU hang / freeze / stall / NMI watchdog
+ bug soft lockup CPU #0 stuck under high load / upstream with
+ workaround. See also bsc#1134506
+ default-to-credit1-scheduler.patch
+* Thu Feb 20 2020 carnold@suse.com
+- bsc#1160932 - VUL-0: xen: XSA-312 v1: arm: a CPU may speculate
+ past the ERET instruction
+ 5e1dcedd-Arm-place-speculation-barrier-after-ERET.patch
+- bsc#1164425 - x86: "spec-ctrl=no-xen" should also disable branch
+ hardening
+ 5e4e614d-x86-spec-ctrl-no-xen-also-disables-branch-hardening.patch
+- Upstream bug fixes (bsc#1027519)
+ 5e21ce98-x86-time-update-TSC-stamp-after-deep-C-state.patch
+ 5e286cce-VT-d-dont-pass-bridges-to-domain_context_mapping_one.patch
+ 5e318cd4-x86-apic-fix-disabling-LVT0.patch
+ 5e344c11-x86-HVM-relinquish-resources-from-domain_destroy.patch
+ 5e3bd385-EFI-recheck-variable-name-strings.patch
+ 5e3bd3d1-EFI-dont-leak-heap-VIA-XEN_EFI_get_next_variable_name.patch
+ 5e3bd3f8-xmalloc-guard-against-overflow.patch
+ 5e46e090-x86-smp-reset-x2apic_enabled-in-smp_send_stop.patch
+ 5e4c00ef-VT-d-check-full-RMRR-for-E820-reserved.patch
+ 5e4d4f5b-sched-fix-get_cpu_idle_time-with-core-sched.patch
+* Tue Feb 18 2020 ohering@suse.de
+- bsc#1159755 - use fixed qemu-3.1 machine type for HVM
+ This must be done in qemu to preserve PCI layout
+ remove libxl.lock-qemu-machine-for-hvm.patch
+* Fri Feb 7 2020 ohering@suse.de
+- jsc#SLE-10183 - script to calculate cpuid= mask
+ add helper script from https://github.com/twizted/xen_maskcalc
+ domUs may be migrated between different cpus from the same vendor
+ if their visible cpuid value has incompatible feature bits masked.
+* Wed Feb 5 2020 ohering@suse.de
+- jsc#SLE-10172, bsc#1055731 - handle degraded raid for xendomains
+ add helper script and systemd service from
+ https://github.com/luizluca/xen-tools-xendomains-wait-disk
+ in new sub package xen-tools-xendomains-wait-disk
+ See included README for usage instructions
+ xendomains-wait-disks.LICENSE
+ xendomains-wait-disks.README.md
+ xendomains-wait-disks.sh
+* Tue Jan 28 2020 ohering@suse.de
+- bsc#1159755 - use fixed qemu-3.1 machine type for HVM
+ qemu4 introduced incompatible changes in pc-i440fx, which revealed
+ a design bug in 'xenfv'. Live migration from domUs started with
+ qemu versions prior qemu4 can not be received with qemu4+.
+ libxl.lock-qemu-machine-for-hvm.patch
+* Tue Jan 14 2020 carnold@suse.com
+- Upstream bug fixes (bsc#1027519)
+ 5de65f84-gnttab-map-always-do-IOMMU-part.patch
+ 5de65fc4-x86-avoid-HPET-use-on-certain-Intel.patch
+ 5e15e03d-sched-fix-S3-resume-with-smt=0.patch
+ 5e16fb6a-x86-clear-per-cpu-stub-page-info.patch
+ 5e1da013-IRQ-u16-is-too-narrow-for-evtchn.patch
+* Wed Jan 8 2020 Dominique Leuenberger <dimstar@opensuse.org>
+- BuildRequire pkgconfig(libsystemd) instead of systemd-devel:
+ Allow OBS to shortcut through the -mini flavors.
+* Wed Dec 18 2019 carnold@suse.com
+- bsc#1159320 - Xen logrotate file needs updated
+ logrotate.conf
+* Wed Dec 18 2019 carnold@suse.com
+- Update to Xen 4.13.0 FCS release
+ xen-4.13.0-testing-src.tar.bz2
+ * Core Scheduling (contributed by SUSE)
+ * Branch hardening to mitigate against Spectre v1 (contributed by Citrix)
+ * Late uCode loading (contributed by Intel)
+ * Improved live-patching build tools (contributed by AWS)
+ * OP-TEE support (contributed by EPAM)
+ * Renesas R-CAR IPMMU-VMSA driver (contributed by EPAM)
+ * Dom0-less passthrough and ImageBuilder (contributed by XILINX)
+ * Support for new Hardware
+* Tue Dec 3 2019 carnold@suse.com
+- Update to Xen 4.13.0 RC4 release
+ xen-4.13.0-testing-src.tar.bz2
+- Rebase libxl.pvscsi.patch
+* Mon Nov 25 2019 carnold@suse.com
+- Update to Xen 4.13.0 RC3 release
+ xen-4.13.0-testing-src.tar.bz2
+- Drop python38-build.patch
+* Tue Nov 12 2019 carnold@suse.com
+- Update to Xen 4.13.0 RC2 release
+ xen-4.13.0-testing-src.tar.bz2
+* Tue Oct 29 2019 Matej Cepl <mcepl@suse.com>
+- Add python38-build.patch fixing build with Python 3.8 (add
+ - -embed to python-config call)
+* Mon Oct 14 2019 carnold@suse.com
+- Update to Xen 4.13.0 RC1 release
+ xen-4.13.0-testing-src.tar.bz2
+- Drop patches contained in new tarball or invalid
+ 5ca7660f-x86-entry-drop-unused-includes.patch
+ 5cab2a6b-x86-ACPI-also-parse-AMD-tables-early.patch
+ 5cab2ab7-x86-IOMMU-introduce-init-ops.patch
+ 5cab2ae8-x86-IOMMU-abstract-iommu_supports_eim.patch
+ 5cab2b4e-x86-IOMMU-abstract-iommu_enable_x2apic_IR.patch
+ 5cab2b95-x86-IOMMU-initialize-iommu_ops-in.patch
+ 5cac9a4b-x86-IOMMU-abstract-adjust_vtd_irq_affinities.patch
+ 5cdeac7f-AMD-IOMMU-adjust-IOMMU-list-head-init.patch
+ 5cf8da09-adjust-sysdom-creation-call-earlier-on-x86.patch
+ 5d0cf4e4-AMD-IOMMU-initialize-IRQ-tasklet-once.patch
+ 5d149bb0-AMD-IOMMU-dont-add-IOMMUs.patch
+ 5d1b3fab-AMD-IOMMU-restrict-feature-logging.patch
+ 5d358508-x86-IRQ-desc-affinity-represents-request.patch
+ 5d358534-x86-IRQ-consolidate-arch-cpu_mask-use.patch
+ 5d358a67-AMD-IOMMU-pass-IOMMU-to-iterate_ivrs_entries-cb.patch
+ 5d358a92-AMD-IOMMU-pass-IOMMU-to-amd_iommu_alloc_intremap_table.patch
+ 5d39811c-x86-IOMMU-dont-restrict-IRQ-affinities.patch
+ 5d417813-AMD-IOMMU-bitfield-extended-features.patch
+ 5d417838-AMD-IOMMU-bitfield-control-reg.patch
+ 5d41785b-AMD-IOMMU-bitfield-IRTE.patch
+ 5d41787e-AMD-IOMMU-pass-IOMMU-to-gfu-intremap-entry.patch
+ 5d4178ad-AMD-IOMMU-128bit-non-guest-APIC-IRTE.patch
+ 5d4178fc-AMD-IOMMU-split-amd_iommu_init_one.patch
+ 5d41793f-AMD-IOMMU-allow-enabling-without-IRQ.patch
+ 5d417a16-AMD-IOMMU-adjust-IRQ-setup-for-x2APIC.patch
+ 5d417ab6-AMD-IOMMU-enable-x2APIC-mode.patch
+ 5d417b38-AMD-IOMMU-correct-IRTE-updating.patch
+ 5d417b6a-AMD-IOMMU-dont-needlessly-log-headers.patch
+ 5d419d49-x86-spec-ctrl-report-proper-status.patch
+ 5d43253c-x86-ucode-always-collect_cpu_info-at-boot.patch
+ 5d4a9d25-AMD-IOMMU-drop-not-found-message.patch
+ 5d4aa36f-x86-apic-enable-x2APIC-mode-earlier.patch
+ 5d4afa7a-credit2-fix-memory-leak.patch
+ 5d4d850a-introduce-bss-percpu-page-aligned.patch
+ 5d516531-x86-xpti-dont-leak-TSS-adjacent-data.patch
+ 5d5bf475-x86-PV-fix-handling-of-iommu-mappings.patch
+ 5d6524ca-x86-mm-correctly-init-M2P-entries.patch
+ 5d67ceaf-x86-properly-gate-PKU-clearing.patch
+ 5d70bfba-x86-shadow-dont-enable-with-too-small-allocation.patch
+ 5d779811-x86-fix-CPUID7-0-eax-levelling-MSR.patch
+ 5d77b40f-fix-hvm_all_ioreq_servers_add_vcpu-cleanup.patch
+ 5d80e7c0-AMD-IOMMU-free-shared-IRT-once.patch
+ 5d80e80d-AMD-IOMMU-valid-flag-for-IVRS-mappings.patch
+ 5d80e82e-AMD-IOMMU-alloc_intremap_table-callers-handle-errors.patch
+ 5d80e857-x86-PCI-read-MSI-X-table-entry-count-early.patch
+ 5d80ea13-vpci-honor-read-only-devices.patch
+ 5d89d8d9-libxc-x86-avoid-overflow-in-CPUID-APIC-ID.patch
+ 5d8b715f-ACPI-cpuidle-bump-max-num-of-states.patch
+ 5d8b72e5-AMD-IOMMU-dont-blindly-alloc-intremap-tables.patch
+ 5d8b730e-AMD-IOMMU-phantom-funcs-share-intremap-tables.patch
+ 5d8b733b-x86-PCI-read-max-MSI-vector-count-early.patch
+ 5d8b736d-AMD-IOMMU-replace-INTREMAP_ENTRIES.patch
+ 5d8b7393-AMD-IOMMU-restrict-intremap-table-sizes.patch
+ 5d9ee2a8-AMD-IOMMU-alloc-1-devtab-per-PCI-seg.patch
+ 5d9ee2f0-AMD-IOMMU-allocate_buffer-avoid-memset.patch
+ 5d9ee312-AMD-IOMMU-prefill-all-DTEs.patch
+ CVE-2014-0222-blktap-qcow1-validate-l2-table-size.patch
+ blktap2-no-uninit.patch
+ libxl.prepare-environment-for-domcreate_stream_done.patch
+ pygrub-python3-conversion.patch
+ fix-xenpvnetboot.patch
+* Thu Oct 10 2019 carnold@suse.com
+- bsc#1135799 - Partner-L3: Xen crashes on AMD ROME based machines
+ 5d9ee2a8-AMD-IOMMU-alloc-1-devtab-per-PCI-seg.patch
+ 5d9ee2f0-AMD-IOMMU-allocate_buffer-avoid-memset.patch
+ 5d9ee312-AMD-IOMMU-prefill-all-DTEs.patch
+* Wed Oct 2 2019 ohering@suse.de
+- bsc#1120095 - add code to change LIBXL_HOTPLUG_TIMEOUT at runtime
+ The included README has details about the impact of this change
+ libxl.LIBXL_HOTPLUG_TIMEOUT.patch
+* Mon Sep 30 2019 carnold@suse.com
+- bsc#1135799 - Partner-L3: Xen crashes on AMD ROME based machines
+ 5ca7660f-x86-entry-drop-unused-includes.patch
+ 5cf8da09-adjust-sysdom-creation-call-earlier-on-x86.patch
+ 5cab2a6b-x86-ACPI-also-parse-AMD-tables-early.patch
+ 5cab2ab7-x86-IOMMU-introduce-init-ops.patch
+ 5cab2ae8-x86-IOMMU-abstract-iommu_supports_eim.patch
+ 5cab2b4e-x86-IOMMU-abstract-iommu_enable_x2apic_IR.patch
+ 5cab2b95-x86-IOMMU-initialize-iommu_ops-in.patch
+ 5cac9a4b-x86-IOMMU-abstract-adjust_vtd_irq_affinities.patch
+ 5cdeac7f-AMD-IOMMU-adjust-IOMMU-list-head-init.patch
+ 5d0cf4e4-AMD-IOMMU-initialize-IRQ-tasklet-once.patch
+ 5d149bb0-AMD-IOMMU-dont-add-IOMMUs.patch
+ 5d1b3fab-AMD-IOMMU-restrict-feature-logging.patch
+ 5d358508-x86-IRQ-desc-affinity-represents-request.patch
+ 5d358534-x86-IRQ-consolidate-arch-cpu_mask-use.patch
+ 5d358a67-AMD-IOMMU-pass-IOMMU-to-iterate_ivrs_entries-cb.patch
+ 5d358a92-AMD-IOMMU-pass-IOMMU-to-amd_iommu_alloc_intremap_table.patch
+ 5d39811c-x86-IOMMU-dont-restrict-IRQ-affinities.patch
+ 5d417813-AMD-IOMMU-bitfield-extended-features.patch
+ 5d417838-AMD-IOMMU-bitfield-control-reg.patch
+ 5d41785b-AMD-IOMMU-bitfield-IRTE.patch
+ 5d41787e-AMD-IOMMU-pass-IOMMU-to-gfu-intremap-entry.patch
+ 5d4178ad-AMD-IOMMU-128bit-non-guest-APIC-IRTE.patch
+ 5d4178fc-AMD-IOMMU-split-amd_iommu_init_one.patch
+ 5d41793f-AMD-IOMMU-allow-enabling-without-IRQ.patch
+ 5d417a16-AMD-IOMMU-adjust-IRQ-setup-for-x2APIC.patch
+ 5d417ab6-AMD-IOMMU-enable-x2APIC-mode.patch
+ 5d417b38-AMD-IOMMU-correct-IRTE-updating.patch
+ 5d417b6a-AMD-IOMMU-dont-needlessly-log-headers.patch
+ 5d4a9d25-AMD-IOMMU-drop-not-found-message.patch
+ 5d80e7c0-AMD-IOMMU-free-shared-IRT-once.patch
+ 5d80e80d-AMD-IOMMU-valid-flag-for-IVRS-mappings.patch
+ 5d80e82e-AMD-IOMMU-alloc_intremap_table-callers-handle-errors.patch
+ 5d80e857-x86-PCI-read-MSI-X-table-entry-count-early.patch
+ 5d8b72e5-AMD-IOMMU-dont-blindly-alloc-intremap-tables.patch
+ 5d8b730e-AMD-IOMMU-phantom-funcs-share-intremap-tables.patch
+ 5d8b733b-x86-PCI-read-max-MSI-vector-count-early.patch
+ 5d8b736d-AMD-IOMMU-replace-INTREMAP_ENTRIES.patch
+ 5d8b7393-AMD-IOMMU-restrict-intremap-table-sizes.patch
+- bsc#1145240 - [Migration]Can't pre-allocate 1 shadow pages
+ 5d70bfba-x86-shadow-dont-enable-with-too-small-allocation.patch
+- bsc#1137717 - [HPS Bug] Unable to install Windows Server 2016
+ with 2 CPUs setting (or above) under SLES12 SP4 Xen Server on AMD
+ ROME platform
+ 5d89d8d9-libxc-x86-avoid-overflow-in-CPUID-APIC-ID.patch
+- Upstream bug fixes (bsc#1027519)
+ 5d67ceaf-x86-properly-gate-PKU-clearing.patch
+ 5d779811-x86-fix-CPUID7-0-eax-levelling-MSR.patch
+ 5d77b40f-fix-hvm_all_ioreq_servers_add_vcpu-cleanup.patch
+ 5d80ea13-vpci-honor-read-only-devices.patch
+ 5d8b715f-ACPI-cpuidle-bump-max-num-of-states.patch
+* Fri Sep 27 2019 ohering@suse.de
+- bsc#1145774 - Libivrtd segfaults when trying to live migrate a VM
+ Fix crash in an error path of libxl_domain_suspend with
+ libxl.helper_done-crash.patch
+* Wed Aug 28 2019 carnold@suse.com
+- Upstream bug fixes (bsc#1027519)
+ 5d419d49-x86-spec-ctrl-report-proper-status.patch
+ 5d43253c-x86-ucode-always-collect_cpu_info-at-boot.patch
+ 5d4aa36f-x86-apic-enable-x2APIC-mode-earlier.patch
+ 5d4afa7a-credit2-fix-memory-leak.patch
+ 5d4d850a-introduce-bss-percpu-page-aligned.patch
+ 5d516531-x86-xpti-dont-leak-TSS-adjacent-data.patch
+ 5d5bf475-x86-PV-fix-handling-of-iommu-mappings.patch
+ 5d6524ca-x86-mm-correctly-init-M2P-entries.patch
+- Drop 5d419d49-x86-spec-ctrl-facilities-report-wrong-status.patch
+* Wed Aug 28 2019 ohering@suse.de
+- Preserve modified files which used to be marked as %%config,
+ rename file.rpmsave to file
+* Fri Aug 9 2019 carnold@suse.com
+- Update to Xen 4.12.1 bug fix release (bsc#1027519)
+ xen-4.12.1-testing-src.tar.bz2
+- Drop patches contained in new tarball
+ 5c87b644-IOMMU-leave-enabled-for-kexec-crash.patch
+ 5c87b6a2-x86-HVM-dont-crash-guest-in-find_mmio_cache.patch
+ 5c87b6c8-drop-arch_evtchn_inject.patch
+ 5c87b6e8-avoid-atomic-rmw-accesses-in-map_vcpu_info.patch
+ 5c87e6d1-x86-TSX-controls-for-RTM-force-abort-mode.patch
+ 5c8f752c-x86-e820-build-with-gcc9.patch
+ 5c8fb92d-x86-HVM-split-linear-reads-and-writes.patch
+ 5c8fb951-x86-HVM-finish-IOREQs-correctly-on-completion.patch
+ 5c8fc6c0-x86-MSR-shorten-ARCH_CAPABILITIES.patch
+ 5c8fc6c0-x86-SC-retpoline-safety-calculations-for-eIBRS.patch
+ 5c9e63c5-credit2-SMT-idle-handling.patch
+ 5ca46b68-x86emul-no-GPR-update-upon-AVX-gather-failures.patch
+ 5ca773d1-x86emul-dont-read-mask-reg-without-AVX512F.patch
+ 5cab1f66-timers-fix-memory-leak-with-cpu-plug.patch
+ 5cac6cba-vmx-Fixup-removals-of-MSR-load-save-list-entries.patch
+ 5cd921fb-trace-fix-build-with-gcc9.patch
+ 5cd9224b-AMD-IOMMU-disable-upon-init-fail.patch
+ 5cd922c5-x86-MTRR-recalc-p2mt-when-iocaps.patch
+ 5cd9230f-VMX-correctly-get-GS_SHADOW-for-current.patch
+ 5cd926d0-bitmap_fill-zero-sized.patch
+ 5cd92724-drivers-video-drop-constraints.patch
+ 5cd93a69-x86-MSR_INTEL_CORE_THREAD_COUNT.patch
+ 5cd93a69-x86-boot-detect-Intel-SMT-correctly.patch
+ 5cd93a69-x86-spec-ctrl-reposition-XPTI-parsing.patch
+ 5cd981ff-x86-IRQ-tracing-avoid-UB-or-worse.patch
+ 5cdad090-x86-spec-ctrl-CPUID-MSR-definitions-for-MDS.patch
+ 5cdad090-x86-spec-ctrl-infrastructure-for-VERW-flush.patch
+ 5cdad090-x86-spec-ctrl-misc-non-functional-cleanup.patch
+ 5cdad090-x86-spec-ctrl-opts-to-control-VERW-flush.patch
+ 5cdeb9fd-sched-fix-csched2_deinit_pdata.patch
+ 5ce7a92f-x86-IO-APIC-fix-build-with-gcc9.patch
+ 5cf0f6a4-x86-vhpet-resume-avoid-small-diff.patch
+ 5cf16e51-x86-spec-ctrl-Knights-retpoline-safe.patch
+ 5d03a0c4-1-Arm-add-an-isb-before-reading-CNTPCT_EL0.patch
+ 5d03a0c4-2-gnttab-rework-prototype-of-set_status.patch
+ 5d03a0c4-3-Arm64-rewrite-bitops-in-C.patch
+ 5d03a0c4-4-Arm32-rewrite-bitops-in-C.patch
+ 5d03a0c4-5-Arm-bitops-consolidate-prototypes.patch
+ 5d03a0c4-6-Arm64-cmpxchg-simplify.patch
+ 5d03a0c4-7-Arm32-cmpxchg-simplify.patch
+ 5d03a0c4-8-Arm-bitops-helpers-with-timeout.patch
+ 5d03a0c4-9-Arm-cmpxchg-helper-with-timeout.patch
+ 5d03a0c4-A-Arm-turn-on-SILO-mode-by-default.patch
+ 5d03a0c4-B-bitops-guest-helpers.patch
+ 5d03a0c4-C-cmpxchg-guest-helpers.patch
+ 5d03a0c4-D-use-guest-atomics-helpers.patch
+ 5d03a0c4-E-Arm-add-perf-counters-in-guest-atomic-helpers.patch
+ 5d03a0c4-F-Arm-protect-gnttab_clear_flag.patch
+- Refreshed patches
+ libxl.pvscsi.patch
+* Thu Aug 1 2019 carnold@suse.com
+- bsc#1143563 - Speculative mitigation facilities report wrong status
+ 5d419d49-x86-spec-ctrl-facilities-report-wrong-status.patch
+* Wed Jul 17 2019 ohering@suse.de
+- Update xen-dom0-modules.service (bsc#1137251)
+ Map backend module names from pvops and xenlinux kernels to a
+ module alias. This avoids errors from modprobe about unknown
+ modules. Ignore a few xenlinux modules that lack aliases.
+* Mon Jul 15 2019 carnold@suse.com
+- Gcc9 warnings seem to be cleared up with upstream fixes.
+ Drop gcc9-ignore-warnings.patch
+* Tue Jun 25 2019 carnold@suse.com
+- bsc#1138563 - L3: xenpvnetboot improperly ported to Python 3
+ fix-xenpvnetboot.patch
+* Mon Jun 24 2019 ohering@suse.de
+- Move /etc/modprobe.d/xen_loop.conf to /lib/modprobe.d/xen_loop.conf
+* Mon Jun 24 2019 ohering@suse.de
+- Remove /etc/xen/xenapiusers and /etc/pam.d/xen-api
+* Fri Jun 21 2019 ohering@suse.de
+- Remove all upstream provided files in /etc/xen
+ They are not required at runtime. The host admin is now
+ responsible if he really needs anything in this subdirectory.
+* Fri Jun 21 2019 ohering@suse.de
+- In our effort to make /etc fully admin controlled, move /etc/xen/scripts
+ to libexec/xen/scripts with xen-tools.etc_pollution.patch
+* Wed Jun 19 2019 ohering@suse.de
+- Move /etc/bash_completion.d/xl.sh to %%{_datadir}/bash-completion/completions
+* Mon Jun 17 2019 carnold@suse.com
+- bsc#1138294 - VUL-0: CVE-2019-17349: XSA-295: Unlimited Arm
+ Atomics Operations
+ 5d03a0c4-1-Arm-add-an-isb-before-reading-CNTPCT_EL0.patch
+ 5d03a0c4-2-gnttab-rework-prototype-of-set_status.patch
+ 5d03a0c4-3-Arm64-rewrite-bitops-in-C.patch
+ 5d03a0c4-4-Arm32-rewrite-bitops-in-C.patch
+ 5d03a0c4-5-Arm-bitops-consolidate-prototypes.patch
+ 5d03a0c4-6-Arm64-cmpxchg-simplify.patch
+ 5d03a0c4-7-Arm32-cmpxchg-simplify.patch
+ 5d03a0c4-8-Arm-bitops-helpers-with-timeout.patch
+ 5d03a0c4-9-Arm-cmpxchg-helper-with-timeout.patch
+ 5d03a0c4-A-Arm-turn-on-SILO-mode-by-default.patch
+ 5d03a0c4-B-bitops-guest-helpers.patch
+ 5d03a0c4-C-cmpxchg-guest-helpers.patch
+ 5d03a0c4-D-use-guest-atomics-helpers.patch
+ 5d03a0c4-E-Arm-add-perf-counters-in-guest-atomic-helpers.patch
+ 5d03a0c4-F-Arm-protect-gnttab_clear_flag.patch
+- Upstream bug fixes (bsc#1027519)
+ 5c87b6c8-drop-arch_evtchn_inject.patch
+ 5c87b6e8-avoid-atomic-rmw-accesses-in-map_vcpu_info.patch
+ 5cd921fb-trace-fix-build-with-gcc9.patch
+ 5cd9224b-AMD-IOMMU-disable-upon-init-fail.patch
+ 5cd922c5-x86-MTRR-recalc-p2mt-when-iocaps.patch
+ 5cd9230f-VMX-correctly-get-GS_SHADOW-for-current.patch
+ 5cd926d0-bitmap_fill-zero-sized.patch
+ 5cd92724-drivers-video-drop-constraints.patch
+ 5cd93a69-x86-spec-ctrl-reposition-XPTI-parsing.patch (Replaces xsa297-0a.patch)
+ 5cd93a69-x86-MSR_INTEL_CORE_THREAD_COUNT.patch (Replaces xsa297-0b.patch)
+ 5cd93a69-x86-boot-detect-Intel-SMT-correctly.patch (Replaces xsa297-0c.patch)
+ 5cdad090-x86-spec-ctrl-misc-non-functional-cleanup.patch (Replaces xsa297-0d.patch)
+ 5cdad090-x86-spec-ctrl-CPUID-MSR-definitions-for-MDS.patch (Replaces xsa297-1.patch)
+ 5cdad090-x86-spec-ctrl-infrastructure-for-VERW-flush.patch (Replaces xsa297-2.patch)
+ 5cdad090-x86-spec-ctrl-opts-to-control-VERW-flush.patch (Replaces xsa297-3.patch)
+ 5cd981ff-x86-IRQ-tracing-avoid-UB-or-worse.patch
+ 5cdeb9fd-sched-fix-csched2_deinit_pdata.patch
+ 5ce7a92f-x86-IO-APIC-fix-build-with-gcc9.patch
+ 5cf0f6a4-x86-vhpet-resume-avoid-small-diff.patch
+ 5cf16e51-x86-spec-ctrl-Knights-retpoline-safe.patch
+* Fri Jun 14 2019 carnold@suse.com
+- Fix some outdated information in the readme
+ README.SUSE
+* Tue Jun 11 2019 Jim Fehlig <jfehlig@suse.com>
+- spec: xen-tools: require matching version of xen package
+ bsc#1137471
+* Fri May 17 2019 ohering@suse.de
+- Remove two stale patches
+ xen.build-compare.man.patch
+ xenpaging.doc.patch
+* Tue May 14 2019 Martin Liška <mliska@suse.cz>
+- Disable LTO (boo#1133296).
+* Mon May 13 2019 ohering@suse.de
+- Remove arm32 from ExclusiveArch to fix build
+* Mon Apr 29 2019 carnold@suse.com
+- bsc#1111331 - VUL-0: CPU issues Q2 2019 aka "Group 4".
+ CVE-2018-12126, CVE-2018-12127, CVE-2018-12130, CVE-2019-11091
+ xsa297-0a.patch
+ xsa297-0b.patch
+ xsa297-0c.patch
+ xsa297-0d.patch
+ xsa297-1.patch
+ xsa297-2.patch
+ xsa297-3.patch
+- Update 5cab1f66-timers-fix-memory-leak-with-cpu-plug.patch and
+ drop 5cac6219-xen-cpu-Fix-ARM-build-following-cs-597fbb8.patch
+ Refresh 5cac6cba-vmx-Fixup-removals-of-MSR-load-save-list-entries.patch
+* Wed Apr 17 2019 carnold@suse.com
+- bsc#1131811 - [XEN] internal error: libxenlight failed to create
+ new domain. This patch is a workaround for a systemd issue. See
+ patch header for additional comments.
+ xenstore-launch.patch
+* Thu Apr 11 2019 carnold@suse.com
+- bsc#1125378 - [xen][pygrub] Can not restore sle11sp4 pv guest
+ after upgrading host from sle11sp4 to sle15sp1
+ pygrub-python3-conversion.patch
+- Fix "TypeError: virDomainDefineXML() argument 2 must be str or
+ None, not bytes" when converting VMs from using the xm/xend
+ toolstack to the libxl/libvirt toolstack. (bsc#1123378)
+ xen2libvirt.py
+* Mon Apr 8 2019 carnold@suse.com
+- bsc#1124560 - Fully virtualized guests crash on boot
+ 5cac6cba-vmx-Fixup-removals-of-MSR-load-save-list-entries.patch
+- bsc#1121391 - GCC 9: xen build fails
+ 5c8f752c-x86-e820-build-with-gcc9.patch
+- Upstream bug fixes (bsc#1027519)
+ 5c87b644-IOMMU-leave-enabled-for-kexec-crash.patch
+ 5c87b6a2-x86-HVM-dont-crash-guest-in-find_mmio_cache.patch
+ 5c87e6d1-x86-TSX-controls-for-RTM-force-abort-mode.patch
+ 5c8fb92d-x86-HVM-split-linear-reads-and-writes.patch
+ 5c8fb951-x86-HVM-finish-IOREQs-correctly-on-completion.patch
+ 5c8fc6c0-x86-MSR-shorten-ARCH_CAPABILITIES.patch
+ 5c8fc6c0-x86-SC-retpoline-safety-calculations-for-eIBRS.patch
+ 5c9e63c5-credit2-SMT-idle-handling.patch
+ 5ca46b68-x86emul-no-GPR-update-upon-AVX-gather-failures.patch
+ 5ca773d1-x86emul-dont-read-mask-reg-without-AVX512F.patch
+ 5cab1f66-timers-fix-memory-leak-with-cpu-plug.patch
+ 5cac6219-xen-cpu-Fix-ARM-build-following-cs-597fbb8.patch
+* Thu Apr 4 2019 ohering@suse.de
+- Install pkgconfig files into libdir instead of datadir
+* Tue Apr 2 2019 carnold@suse.com
+- Update to Xen 4.12.0 FCS release (fate#325107, fate#323901)
+ xen-4.12.0-testing-src.tar.bz2
+ * HVM/PVH and PV only Hypervisor: The Xen 4.12 release separates
+ the HVM/PVH and PV code paths in Xen and provides KCONFIG
+ options to build a PV only or HVM/PVH only hypervisor.
+ * QEMU Deprivilege (DM_RESTRICT): In Xen 4.12, this feature has
+ been vastly improved.
+ * Argo - Hypervisor-Mediated data eXchange: Argo is a new inter-
+ domain communication mechanism.
+ * Improvements to Virtual Machine Introspection: The VMI subsystem
+ which allows detection of 0-day vulnerabilities has seen many
+ functional and performance improvements.
+ * Credit 2 Scheduler: The Credit2 scheduler is now the Xen Project
+ default scheduler.
+ * PVH Support: Grub2 boot support has been added to Xen and Grub2.
+ * PVH Dom0: PVH Dom0 support has now been upgraded from experimental
+ to tech preview.
+ * The Xen 4.12 upgrade also includes improved IOMMU mapping code,
+ which is designed to significantly improve the startup times of
+ AMD EPYC based systems.
+ * The upgrade also features Automatic Dom0 Sizing which allows the
+ setting of Dom0 memory size as a percentage of host memory (e.g.
+ 10%%) or with an offset (e.g. 1G+10%%).
+* Tue Mar 26 2019 carnold@suse.com
+- bsc#1130485 - Please drop Requires on multipath-tools in
+ xen-tools. Now using Recommends multipath-tools.
+ xen.spec
+* Mon Mar 25 2019 carnold@suse.com
+- Update to Xen 4.12.0 RC7 release (fate#325107, fate#323901)
+ xen-4.12.0-testing-src.tar.bz2
+* Wed Mar 20 2019 carnold@suse.com
+- Update to Xen 4.12.0 RC6 release (fate#325107, fate#323901)
+ xen-4.12.0-testing-src.tar.bz2
+* Fri Mar 15 2019 ohering@suse.de
+- bsc#1026236 - add Xen cmdline option "suse_vtsc_tolerance" to
+ avoid TSC emulation for HVM domUs if their expected frequency
+ does not match exactly the frequency of the receiving host
+ xen.bug1026236.suse_vtsc_tolerance.patch
+* Mon Mar 11 2019 carnold@suse.com
+- Update to Xen 4.12.0 RC5 release (fate#325107, fate#323901)
+ xen-4.12.0-testing-src.tar.bz2
+* Mon Mar 11 2019 carnold@suse.com
+- jsc#SLE-3059 - Disable Xen auto-ballooning
+- Add CONFIG_DOM0_MEM to the spec file for managing dom0 memory.
+ xen.spec
+- Disable autoballooning in xl.con
+ xl-conf-disable-autoballoon.patch
+* Thu Mar 7 2019 ohering@suse.de
+- Update gcc9-ignore-warnings.patch to fix build in SLE12
+* Thu Mar 7 2019 ohering@suse.de
+- bsc#1126325 - fix crash in libxl in error path
+ Setup of grant_tables and other variables may fail
+ libxl.prepare-environment-for-domcreate_stream_done.patch
+* Wed Mar 6 2019 carnold@suse.com
+- bsc#1127620 - Documentation for the xl configuration file allows
+ for firmware=pvgrub64 but we don't ship pvgrub64.
+ Create a link from grub.xen to pvgrub64
+ xen.spec
+* Mon Mar 4 2019 carnold@suse.com
+- Update to Xen 4.12.0 RC4 release (fate#325107, fate#323901)
+ xen-4.12.0-testing-src.tar.bz2
+- Tarball also contains additional post RC4 security fixes for
+ Xen Security Advisories 287, 288, and 290 through 294.
+* Tue Feb 19 2019 carnold@suse.com
+- Update to Xen 4.12.0 RC3 release (fate#325107, fate#323901)
+ xen-4.12.0-testing-src.tar.bz2
+* Mon Feb 4 2019 carnold@suse.com
+- Update to Xen 4.12.0 RC2 release (fate#325107, fate#323901)
+ xen-4.12.0-testing-src.tar.bz2
+* Fri Jan 25 2019 carnold@suse.com
+- bsc#1121391 - GCC 9: xen build fails
+ gcc9-ignore-warnings.patch
+* Thu Jan 24 2019 carnold@suse.com
+- bsc#1122563 - Virtualization/xen: Bug no Xen on boot, missing
+ /proc/xen, after 4.11 -> 4.12 upgrade on X86_64/efi.
+ Keep xen.efi in /usr/lib64/efi for booting older distros.
+ xen.spec
+* Fri Jan 18 2019 carnold@suse.com
+- fate#326960: Package grub2 as noarch.
+ As part of the effort to have a unified bootloader across
+ architectures, modify the xen.spec file to move the Xen efi files
+ to /usr/share/efi/$(uname -m) from /usr/lib64/efi.
+* Wed Jan 16 2019 carnold@suse.com
+- Update to Xen 4.12.0 RC1 release (fate#325107, fate#323901)
+ xen-4.12.0-testing-src.tar.bz2
+- Drop
+ 5b505d59-tools-xentop-replace-use-of-deprecated-vwprintw.patch
+ 5b76ec82-libxl-arm-Fix-build-on-arm64-acpi-w-gcc-8.2.patch
+ 5b8fae26-tools-libxl-correct-vcpu-affinity-output-with-sparse-physical-cpu-map.patch
+ 5b8fae26-xen-fill-topology-info-for-all-present-cpus.patch
+ 5b8fb5af-tools-xl-refuse-to-set-number-of-vcpus-to-0-via-xl-vcpu-set.patch
+ 5b9784ad-x86-HVM-drop-hvm_fetch_from_guest_linear.patch
+ 5b9784d2-x86-HVM-add-known_gla-helper.patch
+ 5b9784f2-x86-HVM-split-page-straddling-accesses.patch
+ 5bdc31d5-VMX-fix-vmx_handle_eoi.patch
+ gcc8-fix-array-warning-on-i586.patch
+ gcc8-fix-format-warning-on-i586.patch
+ gcc8-inlining-failed.patch
+ xen.bug1079730.patch
+* Tue Jan 15 2019 carnold@suse.com
+- bsc#1121960 - xen: sync with Factory
+ xen.spec
+ xen.changes
+* Sat Jan 12 2019 Jan Engelhardt <jengelh@inai.de>
+- Replace old $RPM_* shell vars.
+- Run fdupes for all architectures, and not crossing
+ subvolume boundaries.
+* Thu Jan 10 2019 Guillaume GARDET <guillaume.gardet@opensuse.org>
+- Do not run %%fdupes on aarch64 to avoid the hardlink-across-partition
+ rpmlint error
+* Tue Jan 8 2019 Guillaume GARDET <guillaume.gardet@opensuse.org>
+- Require qemu-seabios only on x86* as it is not available on non-x86
+ systems
+* Thu Dec 27 2018 Bernhard Wiedemann <bwiedemann@suse.com>
+- Avoid creating dangling symlinks (bsc#1116524)
+ This reverts the revert of tmp_build.patch
+* Tue Dec 4 2018 carnold@suse.com
+- Update to Xen 4.11.1 bug fix release (bsc#1027519)
+ xen-4.11.1-testing-src.tar.bz2
+- 5b505d59-tools-xentop-replace-use-of-deprecated-vwprintw.patch
+ replaces xen.2b50cdbc444c637575580dcfa6c9525a84d5cc62.patch
+- 5b76ec82-libxl-arm-Fix-build-on-arm64-acpi-w-gcc-8.2.patch
+ replaces xen.b8f33431f3dd23fb43a879f4bdb4283fdc9465ad.patch
+- Drop the following patches contained in the new tarball
+ 5b34b8fe-VMX-defer-vmx_vmcs_exit-as-long-as-possible.patch
+ 5b3cab8e-1-VMX-MSR_DEBUGCTL-handling.patch
+ 5b3cab8e-2-VMX-improve-MSR-load-save-API.patch
+ 5b3cab8e-3-VMX-cleanup-MSR-load-save-infra.patch
+ 5b3cab8f-1-VMX-factor-out-locate_msr_entry.patch
+ 5b3cab8f-2-VMX-remote-access-to-MSR-lists.patch
+ 5b3cab8f-3-VMX-improve-LBR-MSR-handling.patch
+ 5b3cab8f-4-VMX-pass-MSR-value-into-vmx_msr_add.patch
+ 5b3cab8f-5-VMX-load-only-guest-MSR-entries.patch
+ 5b3f8fa5-port-array_index_nospec-from-Linux.patch
+ 5b4321f6-x86-correctly-set-nonlazy_xstate_used-when-loading-full-state.patch
+ 5b4488e7-x86-spec-ctrl-cmdline-handling.patch
+ 5b471517-page_alloc-correct-first_dirty-calc-in-block-merging.patch
+ 5b4c9a60-allow-cpu_down-to-be-called-earlier.patch
+ 5b4db308-SVM-fix-cleanup-svm_inject_event.patch
+ 5b5040c3-cpupools-fix-state-when-downing-a-CPU-failed.patch
+ 5b5040f2-x86-AMD-distinguish-CU-from-HT.patch
+ 5b505fe5-VMX-fix-find-msr-build.patch
+ 5b508775-1-x86-distinguish-CPU-offlining-and-removal.patch
+ 5b508775-2-x86-possibly-bring-up-all-CPUs.patch
+ 5b508775-3-x86-cmdline-opt-to-avoid-use-of-secondary-HTs.patch
+ 5b508ce8-VMX-dont-clobber-dr6-while-debug-state-is-lazy.patch
+ 5b50df16-1-x86-xstate-use-guest-CPUID-policy.patch
+ 5b50df16-2-x86-make-xstate-calculation-errors-more-obvious.patch
+ 5b56feb1-hvm-Disallow-unknown-MSR_EFER-bits.patch
+ 5b56feb2-spec-ctrl-Fix-the-parsing-of-xpti--on-fixed-Intel-hardware.patch
+ 5b62ca93-VMX-avoid-hitting-BUG_ON.patch
+ 5b6d84ac-x86-fix-improve-vlapic-read-write.patch
+ 5b6d8ce2-x86-XPTI-parsing.patch
+ 5b72fbbe-ARM-disable-grant-table-v2.patch
+ 5b72fbbe-oxenstored-eval-order.patch
+ 5b72fbbe-vtx-Fix-the-checking-for-unknown-invalid-MSR_DEBUGCTL-bits.patch
+ 5b72fbbf-1-spec-ctrl-Calculate-safe-PTE-addresses-for-L1TF-mitigations.patch
+ 5b72fbbf-2-spec-ctrl-Introduce-an-option-to-control-L1TF-mitigation-for-PV-guests.patch
+ 5b72fbbf-3-shadow-Infrastructure-to-force-a-PV-guest-into-shadow-mode.patch
+ 5b72fbbf-4-mm-Plumbing-to-allow-any-PTE-update-to-fail-with--ERESTART.patch
+ 5b72fbbf-5-pv-Force-a-guest-into-shadow-mode-when-it-writes-an-L1TF-vulnerable-PTE.patch
+ 5b72fbbf-6-spec-ctrl-CPUID-MSR-definitions-for-L1D_FLUSH.patch
+ 5b72fbbf-7-msr-Virtualise-MSR_FLUSH_CMD-for-guests.patch
+ 5b72fbbf-8-spec-ctrl-Introduce-an-option-to-control-L1D_FLUSH-for-HVM-HAP-guests.patch
+ 5b72fbbf-x86-Make-spec-ctrl-no-a-global-disable-of-all-mitigations.patch
+ 5b72fbbf-xl.conf-Add-global-affinity-masks.patch
+ 5b74190e-x86-hvm-ioreq-MMIO-range-check-honor-DF.patch
+ 5b752762-x86-hvm-emul-rep-IO-should-not-cross-GFN-boundaries.patch
+ 5b75afef-x86-setup-avoid-OoB-E820-lookup.patch
+ 5b76b780-rangeset-inquiry-functions-tolerate-NULL.patch
+ 5b83c654-VT-d-dmar-iommu-mem-leak-fix.patch
+ 5b8d5832-x86-assorted-array_index_nospec-insertions.patch
+ 5ba11ed4-credit2-fix-moving-CPUs-between-cpupools.patch
+ 5bacae4b-x86-boot-allocate-extra-module-slot.patch
+ 5bae44ce-x86-silence-false-log-messages.patch
+ 5bb60c12-x86-split-opt_xpti.patch
+ 5bb60c4f-x86-split-opt_pv_l1tf.patch
+ 5bb60c74-x86-fix-xpti-and-pv-l1tf.patch
+ 5bcf0722-x86-boot-enable-NMIs.patch
+ 5bd076e9-dombuilder-init-vcpu-debug-regs-correctly.patch
+ 5bd076e9-x86-boot-init-debug-regs-correctly.patch
+ 5bd076e9-x86-init-vcpu-debug-regs-correctly.patch
+ 5bd0e0cf-vvmx-Disallow-the-use-of-VT-x-instructions-when-nested-virt-is-disabled.patch
+ 5bd0e11b-x86-disallow-VT-x-insns-without-nested-virt.patch
+ 5bd85bfd-x86-fix-crash-on-xl-set-parameter-pcid.patch
+ 5be2a308-x86-extend-get_platform_badpages.patch
+ 5be2a354-x86-work-around-HLE-host-lockup-erratum.patch
+ xsa275-1.patch
+ xsa275-2.patch
+ xsa276-1.patch
+ xsa276-2.patch
+ xsa277.patch
+ xsa279.patch
+ xsa280-1.patch
+ xsa280-2.patch
+* Wed Nov 21 2018 carnold@suse.com
+- bsc#1116524 - Package xen-tools-4.11.0_09-2.1.x86_64 broken:
+ Missing /bin/domu-xenstore. This was broken because "make
+ package build reproducible" change. (boo#1047218, boo#1062303)
+ This fix reverses the change to this patch.
+ tmp_build.patch
+* Mon Nov 12 2018 carnold@suse.com
+- bsc#1115040 - VUL-0: CVE-2018-19961 CVE-2018-19962: xen:
+ insufficient TLB flushing / improper large page mappings with AMD
+ IOMMUs (XSA-275)
+ xsa275-1.patch
+ xsa275-2.patch
+- bsc#1115043 - VUL-0: CVE-2018-19963: xen: resource accounting
+ issues in x86 IOREQ server handling (XSA-276)
+ xsa276-1.patch
+ xsa276-2.patch
+- bsc#1115044 - VUL-0: CVE-2018-19964: xen: x86: incorrect error
+ handling for guest p2m page removals (XSA-277)
+ xsa277.patch
+- bsc#1114405 - VUL-0: CVE-2018-18883: xen: Nested VT-x usable even
+ when disabled (XSA-278)
+ 5bd0e11b-x86-disallow-VT-x-insns-without-nested-virt.patch
+- bsc#1115045 - VUL-0: xen: CVE-2018-19965: x86: DoS from attempting
+ to use INVPCID with a non-canonical addresses (XSA-279)
+ xsa279.patch
+- bsc#1115047 - VUL-0: CVE-2018-19966: xen: Fix for XSA-240
+ conflicts with shadow paging (XSA-280)
+ xsa280-1.patch
+ xsa280-2.patch
+- bsc#1114988 - VUL-0: CVE-2018-19967: xen: guest use of HLE
+ constructs may lock up host (XSA-282)
+ 5be2a308-x86-extend-get_platform_badpages.patch
+ 5be2a354-x86-work-around-HLE-host-lockup-erratum.patch
+- bsc#1108940 - L3: XEN SLE12-SP1 domU hang on SLE12-SP3 HV
+ 5bdc31d5-VMX-fix-vmx_handle_eoi.patch
+- Upstream bug fixes (bsc#1027519)
+ 5b752762-x86-hvm-emul-rep-IO-should-not-cross-GFN-boundaries.patch
+ 5ba11ed4-credit2-fix-moving-CPUs-between-cpupools.patch
+ 5bacae4b-x86-boot-allocate-extra-module-slot.patch
+ 5bae44ce-x86-silence-false-log-messages.patch
+ 5bb60c12-x86-split-opt_xpti.patch
+ 5bb60c4f-x86-split-opt_pv_l1tf.patch
+ 5bb60c74-x86-fix-xpti-and-pv-l1tf.patch
+ 5bcf0722-x86-boot-enable-NMIs.patch
+ 5bd076e9-dombuilder-init-vcpu-debug-regs-correctly.patch
+ 5bd076e9-x86-boot-init-debug-regs-correctly.patch
+ 5bd076e9-x86-init-vcpu-debug-regs-correctly.patch
+ 5bd85bfd-x86-fix-crash-on-xl-set-parameter-pcid.patch
+* Tue Nov 6 2018 carnold@suse.com
+- bsc#1114405 - VUL-0: CVE-2018-18883: xen: Nested VT-x usable even
+ when disabled (XSA-278)
+ 5bd0e0cf-vvmx-Disallow-the-use-of-VT-x-instructions-when-nested-virt-is-disabled.patch
+* Wed Oct 24 2018 ohering@suse.de
+- Use SMBIOS_REL_DATE instead of SMBIOS_DATE for reproducible binaries
+* Wed Oct 24 2018 Bernhard Wiedemann <bwiedemann@suse.com>
+- make package build reproducible (boo#1047218, boo#1062303)
+ * Set SMBIOS_REL_DATE
+ * Update tmp_build.patch to use SHA instead of random build-id
+ * Add reproducible.patch to use --no-insert-timestamp
+* Mon Oct 15 2018 ohering@suse.de
+- Building with ncurses 6.1 will fail without
+ xen.2b50cdbc444c637575580dcfa6c9525a84d5cc62.patch
+- Building libxl acpi support on aarch64 with gcc 8.2 will fail without
+ xen.b8f33431f3dd23fb43a879f4bdb4283fdc9465ad.patch
+* Tue Sep 11 2018 carnold@suse.com
+- bsc#1106263 - L3: The affinity reporting via 'xl vcpu-list' is
+ apparently broken
+ 5b8fae26-tools-libxl-correct-vcpu-affinity-output-with-sparse-physical-cpu-map.patch
+ 5b8fae26-xen-fill-topology-info-for-all-present-cpus.patch
+ 5b8fb5af-tools-xl-refuse-to-set-number-of-vcpus-to-0-via-xl-vcpu-set.patch
+* Tue Sep 11 2018 carnold@suse.com
+- bsc#1094508 - L3: Kernel oops in fs/dcache.c called by
+ d_materialise_unique()
+ 5b9784ad-x86-HVM-drop-hvm_fetch_from_guest_linear.patch
+ 5b9784d2-x86-HVM-add-known_gla-helper.patch
+ 5b9784f2-x86-HVM-split-page-straddling-accesses.patch
+- bsc#1103279 - (CVE-2018-15470) VUL-0: CVE-2018-15470: xen:
+ oxenstored does not apply quota-maxentity (XSA-272)
+ 5b72fbbe-oxenstored-eval-order.patch
+- bsc#1103275 - (CVE-2018-15469) VUL-0: CVE-2018-15469: xen: Use of
+ v2 grant tables may cause crash on ARM (XSA-268)
+ 5b72fbbe-ARM-disable-grant-table-v2.patch
+- Upstream patches from Jan (bsc#1027519)
+ 5b6d84ac-x86-fix-improve-vlapic-read-write.patch
+ 5b74190e-x86-hvm-ioreq-MMIO-range-check-honor-DF.patch
+ 5b75afef-x86-setup-avoid-OoB-E820-lookup.patch
+ 5b76b780-rangeset-inquiry-functions-tolerate-NULL.patch
+ 5b83c654-VT-d-dmar-iommu-mem-leak-fix.patch
+ 5b8d5832-x86-assorted-array_index_nospec-insertions.patch
+- Drop 5b741962-x86-write-to-correct-variable-in-parse_pv_l1tf.patch
+* Tue Aug 28 2018 carnold@suse.com
+- bsc#1078292 - rpmbuild -ba SPECS/xen.spec with xen-4.9.1 failed
+ xen.spec
+* Fri Aug 17 2018 carnold@suse.com
+- bsc#1091107 - VUL-0: CVE-2018-3646: xen: L1 Terminal Fault -VMM
+ (XSA-273)
+ 5b72fbbf-1-spec-ctrl-Calculate-safe-PTE-addresses-for-L1TF-mitigations.patch
+ 5b72fbbf-2-spec-ctrl-Introduce-an-option-to-control-L1TF-mitigation-for-PV-guests.patch
+ 5b72fbbf-3-shadow-Infrastructure-to-force-a-PV-guest-into-shadow-mode.patch
+ 5b72fbbf-4-mm-Plumbing-to-allow-any-PTE-update-to-fail-with--ERESTART.patch
+ 5b72fbbf-5-pv-Force-a-guest-into-shadow-mode-when-it-writes-an-L1TF-vulnerable-PTE.patch
+ 5b72fbbf-6-spec-ctrl-CPUID-MSR-definitions-for-L1D_FLUSH.patch
+ 5b72fbbf-7-msr-Virtualise-MSR_FLUSH_CMD-for-guests.patch
+ 5b72fbbf-8-spec-ctrl-Introduce-an-option-to-control-L1D_FLUSH-for-HVM-HAP-guests.patch
+- bsc#1103276 - VUL-0: CVE-2018-15468: xen: x86: Incorrect
+ MSR_DEBUGCTL handling lets guests enable BTS (XSA-269)
+ 5b72fbbe-vtx-Fix-the-checking-for-unknown-invalid-MSR_DEBUGCTL-bits.patch
+- Upstream prereq patches for XSA-273 and other upstream fixes
+ (bsc#1027519)
+ 5b34b8fe-VMX-defer-vmx_vmcs_exit-as-long-as-possible.patch
+ 5b3cab8e-1-VMX-MSR_DEBUGCTL-handling.patch
+ 5b3cab8e-2-VMX-improve-MSR-load-save-API.patch
+ 5b3cab8e-3-VMX-cleanup-MSR-load-save-infra.patch
+ 5b3cab8f-1-VMX-factor-out-locate_msr_entry.patch
+ 5b3cab8f-2-VMX-remote-access-to-MSR-lists.patch
+ 5b3cab8f-3-VMX-improve-LBR-MSR-handling.patch
+ 5b3cab8f-4-VMX-pass-MSR-value-into-vmx_msr_add.patch
+ 5b3cab8f-5-VMX-load-only-guest-MSR-entries.patch
+ 5b4321f6-x86-correctly-set-nonlazy_xstate_used-when-loading-full-state.patch
+ 5b505fe5-VMX-fix-find-msr-build.patch
+ 5b56feb1-hvm-Disallow-unknown-MSR_EFER-bits.patch
+ 5b56feb2-spec-ctrl-Fix-the-parsing-of-xpti--on-fixed-Intel-hardware.patch
+ 5b62ca93-VMX-avoid-hitting-BUG_ON.patch
+ 5b6d8ce2-x86-XPTI-parsing.patch
+ 5b72fbbf-x86-Make-spec-ctrl-no-a-global-disable-of-all-mitigations.patch
+ 5b72fbbf-xl.conf-Add-global-affinity-masks.patch
+ 5b741962-x86-write-to-correct-variable-in-parse_pv_l1tf.patch
+* Tue Jul 24 2018 carnold@suse.com
+- Upstream patches from Jan (bsc#1027519)
+ 5b3f8fa5-port-array_index_nospec-from-Linux.patch
+ 5b4488e7-x86-spec-ctrl-cmdline-handling.patch
+ 5b471517-page_alloc-correct-first_dirty-calc-in-block-merging.patch
+ 5b4c9a60-allow-cpu_down-to-be-called-earlier.patch
+ 5b4db308-SVM-fix-cleanup-svm_inject_event.patch
+ 5b5040c3-cpupools-fix-state-when-downing-a-CPU-failed.patch
+ 5b5040f2-x86-AMD-distinguish-CU-from-HT.patch
+ 5b508775-1-x86-distinguish-CPU-offlining-and-removal.patch
+ 5b508775-2-x86-possibly-bring-up-all-CPUs.patch
+ 5b508775-3-x86-cmdline-opt-to-avoid-use-of-secondary-HTs.patch
+ 5b508ce8-VMX-dont-clobber-dr6-while-debug-state-is-lazy.patch
+ 5b50df16-1-x86-xstate-use-guest-CPUID-policy.patch
+ 5b50df16-2-x86-make-xstate-calculation-errors-more-obvious.patch
+ gcc8-fix-format-warning-on-i586.patch
+ gcc8-fix-array-warning-on-i586.patch
+- Drop xen.fuzz-_FORTIFY_SOURCE.patch
+ gcc8-fix-warning-on-i586.patch
+* Mon Jul 9 2018 carnold@suse.com
+- Update to Xen 4.11.0 FCS (fate#325202, fate#325123)
+ xen-4.11.0-testing-src.tar.bz2
+ disable-building-pv-shim.patch
+- Dropped patches
+ 5a33a12f-domctl-improve-locking-during-domain-destruction.patch
+ 5a6703cb-x86-move-invocations-of-hvm_flush_guest_tlbs.patch
+ 5a79d7ed-libxc-packed-initrd-dont-fail-domain-creation.patch
+ 5a9985bd-x86-invpcid-support.patch
+ 5ac72a48-gcc8.patch
+ 5ac72a5f-gcc8.patch
+ 5ac72a64-gcc8.patch
+ 5ac72a69-gcc8.patch
+ 5ac72a6e-gcc8.patch
+ 5ac72a74-gcc8.patch
+ 5ac72a7b-gcc8.patch
+ 5ad4923e-x86-correct-S3-resume-ordering.patch
+ 5ad49293-x86-suppress-BTI-mitigations-around-S3.patch
+ 5ad600d4-x86-pv-introduce-x86emul_read_dr.patch
+ 5ad600d4-x86-pv-introduce-x86emul_write_dr.patch
+ 5ad8c3a7-x86-spec_ctrl-update-retpoline-decision-making.patch
+ 5adda097-x86-HPET-fix-race-triggering-ASSERT.patch
+ 5adda0d5-x86-HVM-never-retain-emulated-insn-cache.patch
+ 5adde9ed-xpti-fix-double-fault-handling.patch
+ 5ae06fad-SVM-fix-intercepts-for-SYS-CALL-ENTER-MSRs.patch
+ 5ae31917-x86-cpuidle-init-stats-lock-once.patch
+ 5aeaeae4-introduce-vcpu_sleep_nosync_locked.patch
+ 5aeaeaf0-sched-fix-races-in-vcpu-migration.patch
+ 5aeb2c57-x86-retval-checks-of-set-guest-trapbounce.patch
+ 5aec7393-1-x86-xpti-avoid-copy.patch
+ 5aec7393-2-x86-xpti-write-cr3.patch
+ 5aec744a-3-x86-xpti-per-domain-flag.patch
+ 5aec744a-4-x86-xpti-use-invpcid.patch
+ 5aec744a-5-x86-xpti-no-global-pages.patch
+ 5aec744a-6-x86-xpti-cr3-valid-flag.patch
+ 5aec744a-7-x86-xpti-pv_guest_cr4_to_real_cr4.patch
+ 5aec744b-8-x86-xpti-cr3-helpers.patch
+ 5aec74a8-9-x86-xpti-use-pcid.patch
+ 5af1daa9-1-x86-traps-fix-dr6-handing-in-DB-handler.patch
+ 5af1daa9-2-x86-pv-move-exception-injection-into-test_all_events.patch
+ 5af1daa9-3-x86-traps-use-IST-for-DB.patch
+ 5af1daa9-4-x86-traps-fix-handling-of-DB-in-hypervisor-context.patch
+ 5af1daa9-x86-HVM-guard-against-bogus-emulator-ioreq-state.patch
+ 5af1daa9-x86-vpt-support-IO-APIC-routed-intr.patch
+ 5af97999-viridian-cpuid-leaf-40000003.patch
+ 5afc13ae-1-x86-read-MSR_ARCH_CAPABILITIES-once.patch
+ 5afc13ae-2-x86-express-Xen-SPEC_CTRL-choice-as-variable.patch
+ 5afc13ae-3-x86-merge-bti_ist_info-use_shadow_spec_ctrl.patch
+ 5afc13ae-4-x86-fold-XEN_IBRS-ALTERNATIVES.patch
+ 5afc13ae-5-x86-rename-bits-of-spec_ctrl-infrastructure.patch
+ 5afc13ae-6-x86-elide-MSR_SPEC_CTRL-handling-in-idle.patch
+ 5afc13ae-7-x86-split-X86_FEATURE_SC_MSR.patch
+ 5afc13ae-8-x86-explicitly-set-Xen-default-SPEC_CTRL.patch
+ 5afc13ae-9-x86-cpuid-improve-guest-policies-for-speculative.patch
+ 5afc13ae-A-x86-introduce-spec-ctrl-cmdline-opt.patch
+ 5b02c786-x86-AMD-mitigations-for-GPZ-SP4.patch
+ 5b02c786-x86-Intel-mitigations-for-GPZ-SP4.patch
+ 5b02c786-x86-msr-virtualise-SPEC_CTRL-SSBD.patch
+ 5b0bc9da-x86-XPTI-fix-S3-resume.patch
+ 5b0d2286-libxc-x86-PV-dont-hand-through-CPUID-leaf-0x80000008.patch
+ 5b0d2d91-x86-suppress-sync-when-XPTI-off.patch
+ 5b0d2dbc-x86-correct-default_xen_spec_ctrl.patch
+ 5b0d2ddc-x86-CPUID-dont-override-tool-stack-hidden-STIBP.patch
+ 5b150ef9-x86-fix-error-handling-of-pv-dr7-shadow.patch
+ 5b21825d-1-x86-support-fully-eager-FPU-context-switching.patch
+ 5b21825d-2-x86-spec-ctrl-mitigations-for-LazyFPU.patch
+ 5b238b92-x86-HVM-account-for-fully-eager-FPU.patch
+ 5b2b7172-x86-EFI-fix-FPU-state-handling-around-runtime-calls.patch
+ 5b31e004-x86-HVM-emul-attempts-FPU-set-fpu_initialised.patch
+ 5b323e3c-x86-EFI-fix-FPU-state-handling-around-runtime-calls.patch
+ 5b34882d-x86-mm-dont-bypass-preemption-checks.patch
+ 5b348874-x86-refine-checks-in-DB-handler.patch
+ 5b348897-libxl-qemu_disk_scsi_drive_string-break-out-common.patch
+ 5b3488a2-libxl-restore-passing-ro-to-qemu-for-SCSI-disks.patch
+ 5b34891a-x86-HVM-dont-cause-NM-to-be-raised.patch
+ 5b348954-x86-guard-against-NM.patch
+ libxl.Add-a-version-check-of-QEMU-for-QMP-commands.patch
+ libxl.LIBXL_DESTROY_TIMEOUT.patch
+ libxl.qmp-Tell-QEMU-about-live-migration-or-snapshot.patch
+ xen_fix_build_with_acpica_20180427_and_new_packages.patch
+* Wed Jul 4 2018 trenn@suse.de
+- Submit upstream patch libacpi: fixes for iasl >= 20180427
+ git commit 858dbaaeda33b05c1ac80aea0ba9a03924e09005
+ xen_fix_build_with_acpica_20180427_and_new_packages.patch
+ This is needed for acpica package to get updated in our build service
+* Fri Jun 29 2018 carnold@suse.com
+- Upstream patches from Jan (bsc#1027519)
+ 5b02c786-x86-AMD-mitigations-for-GPZ-SP4.patch (Replaces Spectre-v4-1.patch)
+ 5b02c786-x86-Intel-mitigations-for-GPZ-SP4.patch (Replaces Spectre-v4-2.patch)
+ 5b02c786-x86-msr-virtualise-SPEC_CTRL-SSBD.patch (Replaces Spectre-v4-3.patch)
+ 5b0bc9da-x86-XPTI-fix-S3-resume.patch
+ 5b0d2286-libxc-x86-PV-dont-hand-through-CPUID-leaf-0x80000008.patch
+ 5b0d2d91-x86-suppress-sync-when-XPTI-off.patch
+ 5b0d2dbc-x86-correct-default_xen_spec_ctrl.patch
+ 5b0d2ddc-x86-CPUID-dont-override-tool-stack-hidden-STIBP.patch
+ 5b150ef9-x86-fix-error-handling-of-pv-dr7-shadow.patch
+ 5b21825d-1-x86-support-fully-eager-FPU-context-switching.patch (Replaces xsa267-1.patch)
+ 5b21825d-2-x86-spec-ctrl-mitigations-for-LazyFPU.patch (Replaces xsa267-2.patch)
+ 5b238b92-x86-HVM-account-for-fully-eager-FPU.patch
+ 5b2b7172-x86-EFI-fix-FPU-state-handling-around-runtime-calls.patch
+ 5b31e004-x86-HVM-emul-attempts-FPU-set-fpu_initialised.patch
+ 5b323e3c-x86-EFI-fix-FPU-state-handling-around-runtime-calls.patch
+ 5b34882d-x86-mm-dont-bypass-preemption-checks.patch (Replaces xsa264.patch)
+ 5b348874-x86-refine-checks-in-DB-handler.patch (Replaces xsa265.patch)
+ 5b348897-libxl-qemu_disk_scsi_drive_string-break-out-common.patch (Replaces xsa266-1-<>.patch)
+ 5b3488a2-libxl-restore-passing-ro-to-qemu-for-SCSI-disks.patch (Replaces xsa266-2-<>.patch)
+ 5b34891a-x86-HVM-dont-cause-NM-to-be-raised.patch
+ 5b348954-x86-guard-against-NM.patch
+* Mon Jun 25 2018 ohering@suse.de
+- Fix more build gcc8 related failures with xen.fuzz-_FORTIFY_SOURCE.patch
+* Mon Jun 25 2018 ohering@suse.de
+- bsc#1098403 - fix regression introduced by changes for bsc#1079730
+ a PV domU without qcow2 and/or vfb has no qemu attached.
+ Ignore QMP errors for PV domUs to handle PV domUs with and without
+ an attached qemu-xen.
+ xen.bug1079730.patch
+* Mon Jun 18 2018 carnold@suse.com
+- bsc#1097521 - VUL-0: CVE-2018-12891: xen: preemption checks
+ bypassed in x86 PV MM handling (XSA-264)
+ xsa264.patch
+- bsc#1097522 - VUL-0: CVE-2018-12893: xen: x86: #DB exception
+ safety check can be triggered by a guest (XSA-265)
+ xsa265.patch
+- bsc#1097523 - VUL-0: CVE-2018-12892: xen: libxl fails to honour
+ readonly flag on HVM emulated SCSI disks (XSA-266)
+ xsa266-1-libxl-qemu_disk_scsi_drive_string-Break-out-common-p.patch
+ xsa266-2-libxl-restore-passing-readonly-to-qemu-for-SCSI-disk.patch
+* Wed Jun 13 2018 carnold@suse.com
+- bsc#1095242 - VUL-0: CVE-2018-3665: xen: Lazy FP Save/Restore
+ (XSA-267)
+ xsa267-1.patch
+ xsa267-2.patch
+* Fri Jun 1 2018 carnold@suse.com
+- bsc#1092543 - GCC 8: xen build fails
+ gcc8-fix-warning-on-i586.patch
+* Fri May 18 2018 carnold@suse.com
+- bsc#1092631 - VUL-0: CVE-2018-3639: xen: V4 – Speculative Store
+ Bypass aka "Memory Disambiguation" (XSA-263)
+ 5ad4923e-x86-correct-S3-resume-ordering.patch
+ 5ad49293-x86-suppress-BTI-mitigations-around-S3.patch
+ 5afc13ae-1-x86-read-MSR_ARCH_CAPABILITIES-once.patch
+ 5afc13ae-2-x86-express-Xen-SPEC_CTRL-choice-as-variable.patch
+ 5afc13ae-3-x86-merge-bti_ist_info-use_shadow_spec_ctrl.patch
+ 5afc13ae-4-x86-fold-XEN_IBRS-ALTERNATIVES.patch
+ 5afc13ae-5-x86-rename-bits-of-spec_ctrl-infrastructure.patch
+ 5afc13ae-6-x86-elide-MSR_SPEC_CTRL-handling-in-idle.patch
+ 5afc13ae-7-x86-split-X86_FEATURE_SC_MSR.patch
+ 5afc13ae-8-x86-explicitly-set-Xen-default-SPEC_CTRL.patch
+ 5afc13ae-9-x86-cpuid-improve-guest-policies-for-speculative.patch
+ 5afc13ae-A-x86-introduce-spec-ctrl-cmdline-opt.patch
+ Spectre-v4-1.patch
+ Spectre-v4-2.patch
+ Spectre-v4-3.patch
+* Thu May 17 2018 ohering@suse.de
+- Always call qemus xen-save-devices-state in suspend/resume to
+ fix migration with qcow2 images (bsc#1079730)
+ libxl.Add-a-version-check-of-QEMU-for-QMP-commands.patch
+ libxl.qmp-Tell-QEMU-about-live-migration-or-snapshot.patch
+ xen.bug1079730.patch
+* Wed May 16 2018 carnold@suse.com
+- bsc#1087289 - L3: Xen BUG at sched_credit.c:1663
+ 5aeaeae4-introduce-vcpu_sleep_nosync_locked.patch
+ 5aeaeaf0-sched-fix-races-in-vcpu-migration.patch
+- Upstream patches from Jan (bsc#1027519)
+ 5ad600d4-x86-pv-introduce-x86emul_read_dr.patch
+ 5ad600d4-x86-pv-introduce-x86emul_write_dr.patch
+ 5ad8c3a7-x86-spec_ctrl-update-retpoline-decision-making.patch
+ 5adda097-x86-HPET-fix-race-triggering-ASSERT.patch
+ 5adda0d5-x86-HVM-never-retain-emulated-insn-cache.patch
+ 5ae06fad-SVM-fix-intercepts-for-SYS-CALL-ENTER-MSRs.patch
+ 5ae31917-x86-cpuidle-init-stats-lock-once.patch
+ 5aeb2c57-x86-retval-checks-of-set-guest-trapbounce.patch
+ 5af1daa9-1-x86-traps-fix-dr6-handing-in-DB-handler.patch (Replaces xsa260-1.patch)
+ 5af1daa9-2-x86-pv-move-exception-injection-into-test_all_events.patch (Replaces xsa260-2.patch)
+ 5af1daa9-3-x86-traps-use-IST-for-DB.patch (Replaces xsa260-3.patch)
+ 5af1daa9-4-x86-traps-fix-handling-of-DB-in-hypervisor-context.patch (Replaces xsa260-4.patch)
+ 5af1daa9-x86-HVM-guard-against-bogus-emulator-ioreq-state.patch (Replaces xsa262.patch)
+ 5af1daa9-x86-vpt-support-IO-APIC-routed-intr.patch (Replaces xsa261.patch)
+ 5af97999-viridian-cpuid-leaf-40000003.patch
+* Fri May 11 2018 carnold@suse.com
+- Fixes related to Page Table Isolation (XPTI). bsc#1074562 XSA-254
+ 5a6703cb-x86-move-invocations-of-hvm_flush_guest_tlbs.patch
+ 5a9985bd-x86-invpcid-support.patch
+ 5adde9ed-xpti-fix-double-fault-handling.patch
+ 5aec7393-1-x86-xpti-avoid-copy.patch
+ 5aec7393-2-x86-xpti-write-cr3.patch
+ 5aec744a-3-x86-xpti-per-domain-flag.patch
+ 5aec744a-4-x86-xpti-use-invpcid.patch
+ 5aec744a-5-x86-xpti-no-global-pages.patch
+ 5aec744a-6-x86-xpti-cr3-valid-flag.patch
+ 5aec744a-7-x86-xpti-pv_guest_cr4_to_real_cr4.patch
+ 5aec744b-8-x86-xpti-cr3-helpers.patch
+ 5aec74a8-9-x86-xpti-use-pcid.patch
+* Wed May 9 2018 carnold@suse.com
+- bsc#1092543 - GCC 8: xen build fails
+ 5ac72a48-gcc8.patch
+ 5ac72a5f-gcc8.patch
+ 5ac72a64-gcc8.patch
+ 5ac72a69-gcc8.patch
+ 5ac72a6e-gcc8.patch
+ 5ac72a74-gcc8.patch
+ 5ac72a7b-gcc8.patch
+ gcc8-inlining-failed.patch
+* Tue May 8 2018 carnold@suse.com
+- Update to Xen 4.10.1 bug fix release (bsc#1027519)
+ xen-4.10.1-testing-src.tar.bz2
+ disable-building-pv-shim.patch
+- Drop the following patches contained in the new tarball
+ 5a21a77e-x86-pv-construct-d0v0s-GDT-properly.patch
+ 5a2fda0d-x86-mb2-avoid-Xen-when-looking-for-module-crashkernel-pos.patch
+ 5a2ffc1f-x86-mm-drop-bogus-paging-mode-assertion.patch
+ 5a313972-x86-microcode-add-support-for-AMD-Fam17.patch
+ 5a32bd79-x86-vmx-dont-use-hvm_inject_hw_exception-in-.patch
+ 5a4caa5e-x86-IRQ-conditionally-preserve-access-perm.patch
+ 5a4caa8c-x86-E820-don-t-overrun-array.patch
+ 5a4e2bca-x86-free-msr_vcpu_policy-during-destruction.patch
+ 5a4e2c2c-x86-upcall-inject-spurious-event-after-setting-vector.patch
+ 5a4fd893-1-x86-break-out-alternative-asm-into-separate-header.patch
+ 5a4fd893-2-x86-introduce-ALTERNATIVE_2-macros.patch
+ 5a4fd893-3-x86-hvm-rename-update_guest_vendor-to-cpuid_policy_changed.patch
+ 5a4fd893-4-x86-introduce-cpuid_policy_updated.patch
+ 5a4fd893-5-x86-entry-remove-partial-cpu_user_regs.patch
+ 5a4fd894-1-x86-rearrange-RESTORE_ALL-to-restore-in-stack-order.patch
+ 5a4fd894-2-x86-hvm-use-SAVE_ALL-after-VMExit.patch
+ 5a4fd894-3-x86-erase-guest-GPRs-on-entry-to-Xen.patch
+ 5a4fd894-4-clarifications-to-wait-infrastructure.patch
+ 5a534c78-x86-dont-use-incorrect-CPUID-values-for-topology.patch
+ 5a5cb24c-x86-mm-always-set-_PAGE_ACCESSED-on-L4-updates.patch
+ 5a5e2cff-x86-Meltdown-band-aid.patch
+ 5a5e2d73-x86-Meltdown-band-aid-conditional.patch
+ 5a5e3a4e-1-x86-support-compiling-with-indirect-branch-thunks.patch
+ 5a5e3a4e-2-x86-support-indirect-thunks-from-asm.patch
+ 5a5e3a4e-3-x86-report-speculative-mitigation-details.patch
+ 5a5e3a4e-4-x86-AMD-set-lfence-as-Dispatch-Serialising.patch
+ 5a5e3a4e-5-x86-introduce-alternative-indirect-thunks.patch
+ 5a5e3a4e-6-x86-definitions-for-Indirect-Branch-Controls.patch
+ 5a5e3a4e-7-x86-cmdline-opt-to-disable-IBRS-IBPB-STIBP.patch
+ 5a5e459c-1-x86-SVM-offer-CPUID-faulting-to-AMD-HVM-guests.patch
+ 5a5e459c-2-x86-report-domain-id-on-CPUID.patch
+ 5a68bc16-x86-acpi-process-softirqs-logging-Cx.patch
+ 5a69c0b9-x86-fix-GET_STACK_END.patch
+ 5a6b36cd-1-x86-cpuid-handling-of-IBRS-IBPB-STIBP-and-IBRS-for-guests.patch
+ 5a6b36cd-2-x86-msr-emulation-of-SPEC_CTRL-PRED_CMD.patch
+ 5a6b36cd-3-x86-migrate-MSR_SPEC_CTRL.patch
+ 5a6b36cd-4-x86-hvm-permit-direct-access-to-SPEC_CTRL-PRED_CMD.patch
+ 5a6b36cd-5-x86-use-SPEC_CTRL-on-entry.patch
+ 5a6b36cd-6-x86-clobber-RSB-RAS-on-entry.patch
+ 5a6b36cd-7-x86-no-alternatives-in-NMI-MC-paths.patch
+ 5a6b36cd-8-x86-boot-calculate-best-BTI-mitigation.patch
+ 5a6b36cd-9-x86-issue-speculation-barrier.patch
+ 5a6b36cd-A-x86-offer-Indirect-Branch-Controls-to-guests.patch
+ 5a6b36cd-B-x86-clear-SPEC_CTRL-while-idle.patch
+ 5a7b1bdd-x86-reduce-Meltdown-band-aid-IPI-overhead.patch
+ 5a843807-x86-spec_ctrl-fix-bugs-in-SPEC_CTRL_ENTRY_FROM_INTR_IST.patch
+ 5a856a2b-x86-emul-fix-64bit-decoding-of-segment-overrides.patch
+ 5a856a2b-x86-use-32bit-xors-for-clearing-GPRs.patch
+ 5a856a2b-x86-xpti-hide-almost-all-of-Xen-image-mappings.patch
+ 5a8be788-x86-nmi-start-NMI-watchdog-on-CPU0-after-SMP.patch
+ 5a95373b-x86-PV-avoid-leaking-other-guests-MSR_TSC_AUX.patch
+ 5a95571f-memory-dont-implicitly-unpin-in-decrease-res.patch
+ 5a95576c-gnttab-ARM-dont-corrupt-shared-GFN-array.patch
+ 5a955800-gnttab-dont-free-status-pages-on-ver-change.patch
+ 5a955854-x86-disallow-HVM-creation-without-LAPIC-emul.patch
+ 5a956747-x86-HVM-dont-give-wrong-impression-of-WRMSR-success.patch
+ 5a9eb7f1-x86-xpti-dont-map-stack-guard-pages.patch
+ 5a9eb85c-x86-slightly-reduce-XPTI-overhead.patch
+ 5a9eb890-x86-remove-CR-reads-from-exit-to-guest-path.patch
+ 5aa2b6b9-cpufreq-ondemand-CPU-offlining-race.patch
+ 5aaa9878-x86-vlapic-clear-TMR-bit-for-edge-triggered-intr.patch
+ xsa258.patch
+ xsa259.patch
+* Wed Apr 25 2018 carnold@suse.com
+- bsc#1090820 - VUL-0: CVE-2018-8897: xen: x86: mishandling of
+ debug exceptions (XSA-260)
+ xsa260-1.patch
+ xsa260-2.patch
+ xsa260-3.patch
+ xsa260-4.patch
+- bsc#1090822 - VUL-0: CVE-2018-10982: xen: x86 vHPET interrupt
+ injection errors (XSA-261)
+ xsa261.patch
+- bsc#1090823 - VUL-0: CVE-2018-10981: xen: qemu may drive Xen into
+ unbounded loop (XSA-262)
+ xsa262.patch
+* Mon Apr 16 2018 carnold@suse.com
+- bsc#1089152 - VUL-0: CVE-2018-10472: xen: Information leak via
+ crafted user-supplied CDROM (XSA-258)
+ xsa258.patch
+- bsc#1089635 - VUL-0: CVE-2018-10471: xen: x86: PV guest may crash
+ Xen with XPTI (XSA-259)
+ xsa259.patch
+* Wed Mar 28 2018 ohering@suse.de
+- Preserve xen-syms from xen-dbg.gz to allow processing vmcores
+ with crash(1) (bsc#1087251)
+* Mon Mar 26 2018 carnold@suse.com
+- Upstream patches from Jan (bsc#1027519) and fixes related to
+ Page Table Isolation (XPTI). See also bsc#1074562 XSA-254
+ 5a856a2b-x86-xpti-hide-almost-all-of-Xen-image-mappings.patch
+ 5a9eb7f1-x86-xpti-dont-map-stack-guard-pages.patch
+ 5a9eb85c-x86-slightly-reduce-XPTI-overhead.patch
+ 5a9eb890-x86-remove-CR-reads-from-exit-to-guest-path.patch
+ 5aa2b6b9-cpufreq-ondemand-CPU-offlining-race.patch
+ 5aaa9878-x86-vlapic-clear-TMR-bit-for-edge-triggered-intr.patch
+* Thu Mar 1 2018 carnold@suse.com
+- bsc#1072834 - Xen HVM: unchecked MSR access error: RDMSR from
+ 0xc90 at rIP: 0xffffffff93061456 (native_read_msr+0x6/0x30)
+ 5a956747-x86-HVM-dont-give-wrong-impression-of-WRMSR-success.patch
+- Upstream patches from Jan (bsc#1027519)
+ 5a79d7ed-libxc-packed-initrd-dont-fail-domain-creation.patch
+ 5a7b1bdd-x86-reduce-Meltdown-band-aid-IPI-overhead.patch
+ 5a843807-x86-spec_ctrl-fix-bugs-in-SPEC_CTRL_ENTRY_FROM_INTR_IST.patch
+ 5a856a2b-x86-emul-fix-64bit-decoding-of-segment-overrides.patch
+ 5a856a2b-x86-use-32bit-xors-for-clearing-GPRs.patch
+ 5a8be788-x86-nmi-start-NMI-watchdog-on-CPU0-after-SMP.patch
+ 5a95373b-x86-PV-avoid-leaking-other-guests-MSR_TSC_AUX.patch
+ 5a95571f-memory-dont-implicitly-unpin-in-decrease-res.patch (Replaces xsa252.patch)
+ 5a95576c-gnttab-ARM-dont-corrupt-shared-GFN-array.patch (Replaces xsa255-1.patch)
+ 5a955800-gnttab-dont-free-status-pages-on-ver-change.patch (Replaces xsa255-2.patch)
+ 5a955854-x86-disallow-HVM-creation-without-LAPIC-emul.patch (Replaces xsa256.patch)
+- Drop
+ xsa252.patch
+ xsa255-1.patch
+ xsa255-2.patch
+ xsa256.patch
+* Mon Feb 12 2018 carnold@suse.com
+- bsc#1080635 - VUL-0: CVE-2018-7540: xen: DoS via non-preemptable
+ L3/L4 pagetable freeing (XSA-252)
+ xsa252.patch
+- bsc#1080662 - VUL-0: CVE-2018-7541: xen: grant table v2 -> v1
+ transition may crash Xen (XSA-255)
+ xsa255-1.patch
+ xsa255-2.patch
+- bsc#1080634 - VUL-0: CVE-2018-7542: xen: x86 PVH guest without
+ LAPIC may DoS the host (XSA-256)
+ xsa256.patch
+* Fri Feb 9 2018 ohering@suse.de
+- Remove stale systemd presets code for 13.2 and older
+* Fri Feb 9 2018 ohering@suse.de
+- fate#324965 - add script, udev rule and systemd service to watch
+ for vcpu online/offline events in a HVM domU
+ They are triggered via xl vcpu-set domU N
+* Fri Feb 9 2018 ohering@suse.de
+- Replace hardcoded xen with Name tag when refering to subpkgs
+* Fri Feb 9 2018 ohering@suse.de
+- Make sure tools and tools-domU require libs from the very same build
+* Wed Feb 7 2018 jfehlig@suse.com
+- tools-domU: Add support for qemu guest agent. New files
+ 80-xen-channel-setup.rules and xen-channel-setup.sh configure a
+ xen-pv-channel for use by the guest agent
+ FATE#324963
+* Wed Feb 7 2018 ohering@suse.de
+- Remove outdated /etc/xen/README*
+* Mon Jan 29 2018 carnold@suse.com
+- bsc#1073961 - VUL-0: CVE-2018-5244: xen: x86: memory leak with
+ MSR emulation (XSA-253)
+ 5a4e2bca-x86-free-msr_vcpu_policy-during-destruction.patch
+- bsc#1074562 - VUL-0: CVE-2017-5753,CVE-2017-5715,CVE-2017-5754
+ xen: Information leak via side effects of speculative execution
+ (XSA-254). Includes Spectre v2 mitigation.
+ 5a4caa5e-x86-IRQ-conditionally-preserve-access-perm.patch
+ 5a4caa8c-x86-E820-don-t-overrun-array.patch
+ 5a4e2c2c-x86-upcall-inject-spurious-event-after-setting-vector.patch
+ 5a4fd893-1-x86-break-out-alternative-asm-into-separate-header.patch
+ 5a4fd893-2-x86-introduce-ALTERNATIVE_2-macros.patch
+ 5a4fd893-3-x86-hvm-rename-update_guest_vendor-to-cpuid_policy_changed.patch
+ 5a4fd893-4-x86-introduce-cpuid_policy_updated.patch
+ 5a4fd893-5-x86-entry-remove-partial-cpu_user_regs.patch
+ 5a4fd894-1-x86-rearrange-RESTORE_ALL-to-restore-in-stack-order.patch
+ 5a4fd894-2-x86-hvm-use-SAVE_ALL-after-VMExit.patch
+ 5a4fd894-3-x86-erase-guest-GPRs-on-entry-to-Xen.patch
+ 5a4fd894-4-clarifications-to-wait-infrastructure.patch
+ 5a534c78-x86-dont-use-incorrect-CPUID-values-for-topology.patch
+ 5a5cb24c-x86-mm-always-set-_PAGE_ACCESSED-on-L4-updates.patch
+ 5a5e2cff-x86-Meltdown-band-aid.patch
+ 5a5e2d73-x86-Meltdown-band-aid-conditional.patch
+ 5a5e3a4e-1-x86-support-compiling-with-indirect-branch-thunks.patch
+ 5a5e3a4e-2-x86-support-indirect-thunks-from-asm.patch
+ 5a5e3a4e-3-x86-report-speculative-mitigation-details.patch
+ 5a5e3a4e-4-x86-AMD-set-lfence-as-Dispatch-Serialising.patch
+ 5a5e3a4e-5-x86-introduce-alternative-indirect-thunks.patch
+ 5a5e3a4e-6-x86-definitions-for-Indirect-Branch-Controls.patch
+ 5a5e3a4e-7-x86-cmdline-opt-to-disable-IBRS-IBPB-STIBP.patch
+ 5a5e459c-1-x86-SVM-offer-CPUID-faulting-to-AMD-HVM-guests.patch
+ 5a5e459c-2-x86-report-domain-id-on-CPUID.patch
+ 5a68bc16-x86-acpi-process-softirqs-logging-Cx.patch
+ 5a69c0b9-x86-fix-GET_STACK_END.patch
+ 5a6b36cd-1-x86-cpuid-handling-of-IBRS-IBPB-STIBP-and-IBRS-for-guests.patch
+ 5a6b36cd-2-x86-msr-emulation-of-SPEC_CTRL-PRED_CMD.patch
+ 5a6b36cd-3-x86-migrate-MSR_SPEC_CTRL.patch
+ 5a6b36cd-4-x86-hvm-permit-direct-access-to-SPEC_CTRL-PRED_CMD.patch
+ 5a6b36cd-5-x86-use-SPEC_CTRL-on-entry.patch
+ 5a6b36cd-6-x86-clobber-RSB-RAS-on-entry.patch
+ 5a6b36cd-7-x86-no-alternatives-in-NMI-MC-paths.patch
+ 5a6b36cd-8-x86-boot-calculate-best-BTI-mitigation.patch
+ 5a6b36cd-9-x86-issue-speculation-barrier.patch
+ 5a6b36cd-A-x86-offer-Indirect-Branch-Controls-to-guests.patch
+ 5a6b36cd-B-x86-clear-SPEC_CTRL-while-idle.patch
+* Fri Jan 26 2018 carnold@suse.com
+- Fix python3 deprecated atoi call (bsc#1067224)
+ pygrub-python3-conversion.patch
+- Drop xenmon-python3-conversion.patch
+* Wed Jan 10 2018 ohering@suse.de
+- bsc#1067317 - pass cache=writeback|unsafe|directsync to qemu,
+ depending on the libxl disk settings
+ libxl.add-option-to-disable-disk-cache-flushes-in-qdisk.patch
+* Mon Jan 8 2018 ohering@suse.de
+- Remove libxl.LIBXL_DESTROY_TIMEOUT.debug.patch
+* Fri Jan 5 2018 carnold@suse.com
+- bsc#1067224 - xen-tools have hard dependency on Python 2
+ build-python3-conversion.patch
+ bin-python3-conversion.patch
+* Wed Dec 20 2017 carnold@suse.com
+- bsc#1070165 - xen crashes after aborted localhost migration
+ 5a2ffc1f-x86-mm-drop-bogus-paging-mode-assertion.patch
+- bsc#1035442 - L3: libxl: error: libxl.c:1676:devices_destroy_cb:
+ libxl__devices_destroy failed
+ 5a33a12f-domctl-improve-locking-during-domain-destruction.patch
+- Upstream patches from Jan (bsc#1027519)
+ 5a21a77e-x86-pv-construct-d0v0s-GDT-properly.patch
+ 5a2fda0d-x86-mb2-avoid-Xen-when-looking-for-module-crashkernel-pos.patch
+ 5a313972-x86-microcode-add-support-for-AMD-Fam17.patch
+ 5a32bd79-x86-vmx-dont-use-hvm_inject_hw_exception-in-.patch
+* Wed Dec 13 2017 carnold@suse.com
+- Update to Xen 4.10.0 FCS (fate#321394, fate#322686)
+ xen-4.10.0-testing-src.tar.bz2
+* Mon Dec 11 2017 ohering@suse.de
+- Rebuild initrd if xen-tools-domU is updated
+* Tue Dec 5 2017 carnold@suse.com
+- Update to Xen 4.10.0-rc8 (fate#321394, fate#322686)
+ xen-4.10.0-testing-src.tar.bz2
+* Tue Nov 28 2017 ohering@suse.de
+- Increase the value of LIBXL_DESTROY_TIMEOUT from 10 to 100 seconds
+ If many domUs shutdown in parallel the backends can not keep up
+ Add some debug output to track how long backend shutdown takes (bsc#1035442)
+ libxl.LIBXL_DESTROY_TIMEOUT.patch
+ libxl.LIBXL_DESTROY_TIMEOUT.debug.patch
+* Tue Nov 28 2017 ohering@suse.de
+- Adjust xenstore-run-in-studomain.patch to change the defaults
+ in the code instead of changing the sysconfig template, to also
+ cover the upgrade case
+* Fri Nov 24 2017 carnold@suse.com
+- Update to Xen 4.10.0-rc6 (fate#321394, fate#322686)
+ xen-4.10.0-testing-src.tar.bz2
+* Fri Nov 24 2017 ohering@suse.de
+- Since xen switched to Kconfig, building a debug hypervisor
+ was done by default. Adjust make logic to build a non-debug
+ hypervisor by default, and continue to provide one as xen-dbg.gz
+* Fri Nov 24 2017 ohering@suse.de
+- fate#316614: set migration constraints from cmdline
+ fix libxl.set-migration-constraints-from-cmdline.patch for xen-4.10
+* Thu Nov 23 2017 ohering@suse.de
+- Document the suse-diskcache-disable-flush option in
+ xl-disk-configuration(5) (bsc#879425,bsc#1067317)
+* Thu Nov 23 2017 rbrown@suse.com
+- Replace references to /var/adm/fillup-templates with new
+ %%_fillupdir macro (boo#1069468)
+* Thu Nov 16 2017 carnold@suse.com
+- Update to Xen 4.10.0-rc5 (fate#321394, fate#322686)
+ xen-4.10.0-testing-src.tar.bz2
+- fate#323663 - Run Xenstore in stubdomain
+ xenstore-run-in-studomain.patch
+* Thu Nov 9 2017 carnold@suse.com
+- bsc#1067224 - xen-tools have hard dependency on Python 2
+ pygrub-python3-conversion.patch
+ xenmon-python3-conversion.patch
+ migration-python3-conversion.patch
+ xnloader.py
+ xen2libvirt.py
+* Wed Nov 8 2017 ohering@suse.de
+- Remove xendriverdomain.service (bsc#1065185)
+ Driver domains must be configured manually with custom .service file
+* Thu Nov 2 2017 carnold@suse.com
+- Update to Xen 4.10.0-rc3 (fate#321394, fate#322686)
+ xen-4.10.0-testing-src.tar.bz2
+- Drop 59f31268-libxc-remove-stale-error-check-for-domain-size.patch
+* Thu Nov 2 2017 ohering@suse.de
+- Adjust xen-dom0-modules.service to ignore errors (bsc#1065187)
+* Fri Oct 27 2017 carnold@suse.com
+- fate#324052 Support migration of Xen HVM domains larger than 1TB
+ 59f31268-libxc-remove-stale-error-check-for-domain-size.patch
+* Wed Oct 25 2017 carnold@suse.com
+- Update to Xen 4.10.0-rc2 (fate#321394, fate#322686)
+ xen-4.10.0-testing-src.tar.bz2
+* Mon Oct 16 2017 carnold@suse.com
+- Update to Xen 4.10.0-rc1 (fate#321394, fate#322686)
+ xen-4.10.0-testing-src.tar.bz2
+- Drop patches included in new tarball
+ 592fd5f0-stop_machine-fill-result-only-in-case-of-error.patch
+ 596f257e-x86-fix-hvmemul_insn_fetch.patch
+ 5982fd99-VT-d-don-t-panic-warn-on-iommu-no-igfx.patch
+ 598c3630-VT-d-PI-disable-when-CPU-side-PI-is-off.patch
+ 598c3706-cpufreq-only-stop-ondemand-governor-if-started.patch
+ 5992f1e5-x86-grant-disallow-misaligned-PTEs.patch
+ 5992f20d-gnttab-split-maptrack-lock-to-make-it-useful-again.patch
+ 5992f233-gnttab-correct-pin-status-fixup-for-copy.patch
+ 59958e76-gnttab-dont-use-possibly-unbounded-tail-calls.patch
+ 59958ebf-gnttab-fix-transitive-grant-handling.patch
+ 59958edd-gnttab-avoid-spurious-maptrack-handle-alloc-failures.patch
+ 599da329-arm-mm-release-grant-lock-on-xatp1-error-paths.patch
+ 59a01223-x86-check-for-alloc-errors-in-modify_xen_mappings.patch
+ 59a0130c-x86-efi-dont-write-relocs-in-efi_arch_relocate_image-1st-pass.patch
+ 59a9221f-VT-d-use-correct-BDF-for-VF-to-search-VT-d-unit.patch
+ 59ae9177-x86-emul-fix-handling-of-unimplemented-Grp7-insns.patch
+ 59aec335-x86emul-correct-VEX-W-handling-for-VPINSRD.patch
+ 59aec375-x86emul-correct-VEX-L-handling-for-VCVTx2SI.patch
+ 59afcea0-x86-introduce-and-use-setup_force_cpu_cap.patch
+ 59b2a7f2-x86-HVM-correct-repeat-count-update-linear-phys.patch
+ 59b7d664-mm-make-sure-node-is-less-than-MAX_NUMNODES.patch
+ 59b7d69b-grant_table-fix-GNTTABOP_cache_flush-handling.patch
+ 59b7d6c8-xenstore-dont-unlink-connection-object-twice.patch
+ 59b7d6d9-gnttab-also-validate-PTE-perms-upon-destroy-replace.patch
+ gcc7-arm.patch
+ gcc7-mini-os.patch
+* Tue Oct 3 2017 carnold@suse.com
+- bsc#1061084 - VUL-0: xen: page type reference leak on x86
+ (XSA-242)
+ xsa242.patch
+- bsc#1061086 - VUL-0: xen: x86: Incorrect handling of self-linear
+ shadow mappings with translated guests (XSA-243)
+ xsa243.patch
+- bsc#1061087 - VUL-0: xen: x86: Incorrect handling of IST settings
+ during CPU hotplug (XSA-244)
+ xsa244.patch
+* Mon Oct 2 2017 carnold@suse.com
+- bsc#1061077 - VUL-0: xen: DMOP map/unmap missing argument checks
+ (XSA-238)
+ xsa238.patch
+- bsc#1061080 - VUL-0: xen: hypervisor stack leak in x86 I/O
+ intercept code (XSA-239)
+ xsa239.patch
+- bsc#1061081 - VUL-0: xen: Unlimited recursion in linear pagetable
+ de-typing (XSA-240)
+ xsa240-1.patch
+ xsa240-2.patch
+- bsc#1061082 - VUL-0: xen: Stale TLB entry due to page type
+ release race (XSA-241)
+ xsa241.patch
+* Fri Sep 29 2017 carnold@suse.com
+- bsc#1061075 - VUL-0: xen: pin count / page reference race in
+ grant table code (XSA-236)
+ xsa236.patch
+- bsc#1061076 - VUL-0: xen: multiple MSI mapping issues on x86
+ (XSA-237)
+ xsa237-1.patch
+ xsa237-2.patch
+ xsa237-3.patch
+ xsa237-4.patch
+ xsa237-5.patch
+* Tue Sep 26 2017 carnold@suse.com
+- bsc#1056278 - VUL-0: xen: Missing NUMA node parameter
+ verification (XSA-231)
+ 59b7d664-mm-make-sure-node-is-less-than-MAX_NUMNODES.patch
+- bsc#1056280 - VUL-0: xen: Missing check for grant table (XSA-232)
+ 59b7d69b-grant_table-fix-GNTTABOP_cache_flush-handling.patch
+- bsc#1056281 - VUL-0: xen: cxenstored: Race in domain cleanup
+ (XSA-233)
+ 59b7d6c8-xenstore-dont-unlink-connection-object-twice.patch
+- bsc#1056282 - VUL-0: xen: insufficient grant unmapping checks for
+ x86 PV guests (XSA-234)
+ 59b7d6d9-gnttab-also-validate-PTE-perms-upon-destroy-replace.patch
+- bsc#1055321 - VUL-0: xen: add-to-physmap error paths fail to
+ release lock on ARM (XSA-235)
+ 599da329-arm-mm-release-grant-lock-on-xatp1-error-paths.patch
+- Upstream patches from Jan (bsc#1027519)
+ 59a01223-x86-check-for-alloc-errors-in-modify_xen_mappings.patch
+ 59a0130c-x86-efi-dont-write-relocs-in-efi_arch_relocate_image-1st-pass.patch
+ 59a9221f-VT-d-use-correct-BDF-for-VF-to-search-VT-d-unit.patch
+ 59ae9177-x86-emul-fix-handling-of-unimplemented-Grp7-insns.patch
+ 59aec335-x86emul-correct-VEX-W-handling-for-VPINSRD.patch
+ 59aec375-x86emul-correct-VEX-L-handling-for-VCVTx2SI.patch
+ 59afcea0-x86-introduce-and-use-setup_force_cpu_cap.patch
+ 59b2a7f2-x86-HVM-correct-repeat-count-update-linear-phys.patch
+- Dropped gcc7-xen.patch
+* Thu Sep 7 2017 carnold@suse.com
+- bsc#1057358 - Cannot Boot into SLES12.3 with Xen hypervisor when
+ Secure Boot is Enabled
+ xen.spec
+* Tue Sep 5 2017 ohering@suse.de
+- bsc#1055695 - XEN: 11SP4 and 12SP3 HVM guests can not be restored
+ update from v6 to v9 to cover more cases for ballooned domUs
+ libxc.sr.superpage.patch
+* Mon Aug 28 2017 ohering@suse.de
+- bsc#1026236 - remove suse_vtsc_tolerance= cmdline option for Xen
+ drop the patch because it is not upstream acceptable
+ remove xen.suse_vtsc_tolerance.patch
+* Sat Aug 26 2017 ohering@suse.de
+- bsc#1055695 - XEN: 11SP4 and 12SP3 HVM guests can not be restored
+ after the save using xl stack
+ libxc.sr.superpage.patch
+* Tue Aug 22 2017 ohering@suse.de
+- Unignore gcc-PIE
+ the toolstack disables PIE for firmware builds as needed
+* Mon Aug 21 2017 carnold@suse.com
+- Upstream patches from Jan (bsc#1027519)
+ 592fd5f0-stop_machine-fill-result-only-in-case-of-error.patch
+ 596f257e-x86-fix-hvmemul_insn_fetch.patch
+ 5982fd99-VT-d-don-t-panic-warn-on-iommu-no-igfx.patch
+ 598c3630-VT-d-PI-disable-when-CPU-side-PI-is-off.patch
+ 598c3706-cpufreq-only-stop-ondemand-governor-if-started.patch
+ 5992f1e5-x86-grant-disallow-misaligned-PTEs.patch (Replaces xsa227.patch)
+ 5992f20d-gnttab-split-maptrack-lock-to-make-it-useful-again.patch (Replaces xsa228.patch)
+ 5992f233-gnttab-correct-pin-status-fixup-for-copy.patch (Replaces xsa230.patch)
+ 59958e76-gnttab-dont-use-possibly-unbounded-tail-calls.patch (Replaces xsa226-1.patch)
+ 59958ebf-gnttab-fix-transitive-grant-handling.patch (Replaces xsa226-2.patch)
+ 59958edd-gnttab-avoid-spurious-maptrack-handle-alloc-failures.patch
+* Wed Aug 16 2017 carnold@suse.com
+- bsc#1044974 - xen-tools require python-pam
+ xen.spec
+* Fri Aug 11 2017 carnold@suse.com
+- Clean up spec file errors and a few warnings. (bsc#1027519)
+- Removed conditional 'with_systemd' and some old deprecated
+ 'sles_version' checks.
+ xen.spec
+* Thu Aug 10 2017 jfehlig@suse.com
+- Remove use of brctl utiltiy from supportconfig plugin
+ FATE#323639
+* Thu Aug 10 2017 ohering@suse.de
+- Use upstream variant of mini-os __udivmoddi4 change
+ gcc7-mini-os.patch
+* Wed Aug 9 2017 carnold@suse.com
+- fate#323639 Move bridge-utils to legacy
+ replace-obsolete-network-configuration-commands-in-s.patch
+* Tue Aug 8 2017 carnold@suse.com
+- bsc#1052686 - VUL-0: xen: grant_table: possibly premature
+ clearing of GTF_writing / GTF_reading (XSA-230)
+ xsa230.patch
+* Mon Aug 7 2017 ohering@suse.de
+- bsc#1035231 - migration of HVM domU does not use superpages
+ on destination dom0
+ libxc.sr.superpage.patch
+* Thu Aug 3 2017 carnold@suse.com
+- bsc#1051787 - VUL-0: CVE-2017-12135: xen: possibly unbounded
+ recursion in grant table code (XSA-226)
+ xsa226-1.patch
+ xsa226-2.patch
+- bsc#1051788 - VUL-0: CVE-2017-12137: xen: x86: PV privilege
+ escalation via map_grant_ref (XSA-227)
+ xsa227.patch
+- bsc#1051789 - VUL-0: CVE-2017-12136: xen: grant_table: Race
+ conditions with maptrack free list handling (XSA-228)
+ xsa228.patch
+* Tue Aug 1 2017 jfehlig@suse.com
+- Add a supportconfig plugin
+ xen-supportconfig
+ FATE#323661
+* Tue Jul 25 2017 ohering@suse.de
+- bsc#1026236 - add suse_vtsc_tolerance= cmdline option for Xen
+ To avoid emulation of TSC access from a domU after live migration
+ add a global tolerance for the measured host kHz
+ xen.suse_vtsc_tolerance.patch
+* Thu Jul 20 2017 carnold@suse.com
+- fate#323662 Drop qemu-dm from xen-tools package
+ The following tarball and patches have been removed
+ qemu-xen-traditional-dir-remote.tar.bz2
+ VNC-Support-for-ExtendedKeyEvent-client-message.patch
+ 0001-net-move-the-tap-buffer-into-TAPState.patch
+ 0002-net-increase-tap-buffer-size.patch
+ 0003-e1000-fix-access-4-bytes-beyond-buffer-end.patch
+ 0004-e1000-secrc-support.patch
+ 0005-e1000-multi-buffer-packet-support.patch
+ 0006-e1000-clear-EOP-for-multi-buffer-descriptors.patch
+ 0007-e1000-verify-we-have-buffers-upfront.patch
+ 0008-e1000-check-buffer-availability.patch
+ CVE-2013-4533-qemut-pxa2xx-buffer-overrun-on-incoming-migration.patch
+ CVE-2013-4534-qemut-openpic-buffer-overrun-on-incoming-migration.patch
+ CVE-2013-4537-qemut-ssi-sd-fix-buffer-overrun-on-invalid-state-load.patch
+ CVE-2013-4538-qemut-ssd0323-fix-buffer-overun-on-invalid-state.patch
+ CVE-2013-4539-qemut-tsc210x-fix-buffer-overrun-on-invalid-state-load.patch
+ CVE-2014-0222-qemut-qcow1-validate-l2-table-size.patch
+ CVE-2014-3640-qemut-slirp-NULL-pointer-deref-in-sosendto.patch
+ CVE-2015-4037-qemut-smb-config-dir-name.patch
+ CVE-2015-5154-qemut-fix-START-STOP-UNIT-command-completion.patch
+ CVE-2015-5278-qemut-Infinite-loop-in-ne2000_receive-function.patch
+ CVE-2015-6815-qemut-e1000-fix-infinite-loop.patch
+ CVE-2015-7512-qemut-net-pcnet-buffer-overflow-in-non-loopback-mode.patch
+ CVE-2015-8345-qemut-eepro100-infinite-loop-fix.patch
+ CVE-2015-8504-qemut-vnc-avoid-floating-point-exception.patch
+ CVE-2016-1714-qemut-fw_cfg-add-check-to-validate-current-entry-value.patch
+ CVE-2016-1981-qemut-e1000-eliminate-infinite-loops-on-out-of-bounds-transfer.patch
+ CVE-2016-2391-qemut-usb-null-pointer-dereference-in-ohci-module.patch
+ CVE-2016-2841-qemut-ne2000-infinite-loop-in-ne2000_receive.patch
+ CVE-2016-4439-qemut-scsi-esp-OOB-write-while-writing-to-cmdbuf-in-esp_reg_write.patch
+ CVE-2016-4441-qemut-scsi-esp-OOB-write-while-writing-to-cmdbuf-in-get_cmd.patch
+ CVE-2016-5238-qemut-scsi-esp-OOB-write-when-using-non-DMA-mode-in-get_cmd.patch
+ CVE-2016-5338-qemut-scsi-esp-OOB-rw-access-while-processing-ESP_FIFO.patch
+ CVE-2016-6351-qemut-scsi-esp-make-cmdbuf-big-enough-for-maximum-CDB-size.patch
+ CVE-2016-7908-qemut-net-Infinite-loop-in-mcf_fec_do_tx.patch
+ CVE-2016-7909-qemut-net-pcnet-infinite-loop-in-pcnet_rdra_addr.patch
+ CVE-2016-8667-qemut-dma-rc4030-divide-by-zero-error-in-set_next_tick.patch
+ CVE-2016-8669-qemut-char-divide-by-zero-error-in-serial_update_parameters.patch
+ CVE-2016-8910-qemut-net-rtl8139-infinite-loop-while-transmit-in-Cplus-mode.patch
+ CVE-2016-9921-qemut-display-cirrus_vga-divide-by-zero-in-cirrus_do_copy.patch
+ CVE-2017-6505-qemut-usb-an-infinite-loop-issue-in-ohci_service_ed_list.patch
+ CVE-2017-8309-qemut-audio-host-memory-leakage-via-capture-buffer.patch
+ CVE-2017-9330-qemut-usb-ohci-infinite-loop-due-to-incorrect-return-value.patch
+ blktap.patch
+ cdrom-removable.patch
+ xen-qemu-iscsi-fix.patch
+ qemu-security-etch1.patch
+ xen-disable-qemu-monitor.patch
+ xen-hvm-default-bridge.patch
+ qemu-ifup-set-mtu.patch
+ ioemu-vnc-resize.patch
+ capslock_enable.patch
+ altgr_2.patch
+ log-guest-console.patch
+ bdrv_open2_fix_flags.patch
+ bdrv_open2_flags_2.patch
+ ioemu-7615-qcow2-fix-alloc_cluster_link_l2.patch
+ qemu-dm-segfault.patch
+ bdrv_default_rwflag.patch
+ kernel-boot-hvm.patch
+ ioemu-watchdog-support.patch
+ ioemu-watchdog-linkage.patch
+ ioemu-watchdog-ib700-timer.patch
+ ioemu-hvm-pv-support.patch
+ pvdrv_emulation_control.patch
+ ioemu-disable-scsi.patch
+ ioemu-disable-emulated-ide-if-pv.patch
+ xenpaging.qemu.flush-cache.patch
+ ioemu-devicemodel-include.patch
+- Cleanup spec file and remove unused KMP patches
+ kmp_filelist
+ supported_module.patch
+ xen_pvonhvm.xen_emul_unplug.patch
+* Mon Jul 17 2017 carnold@suse.com
+- bsc#1002573 - Optimize LVM functions in block-dmmd
+ block-dmmd
+* Fri Jul 14 2017 ohering@suse.de
+- Record initial Xen dmesg in /var/log/xen/xen-boot.log for
+ supportconfig. Keep previous log in /var/log/xen/xen-boot.prev.log
+* Fri Jul 14 2017 ohering@suse.de
+- Remove storytelling from description in xen.rpm
+* Wed Jun 28 2017 carnold@suse.com
+- Update to Xen 4.9.0 FCS (fate#321394, fate#323108)
+ xen-4.9.0-testing-src.tar.bz2
+* Wed Jun 21 2017 carnold@suse.com
+- Update block-dmmd script (bsc#1002573)
+ block-dmmd
+* Tue Jun 20 2017 carnold@suse.com
+- Update to Xen 4.9.0-rc8+ (fate#321394, fate#323108)
+ xen-4.9.0-testing-src.tar.bz2
+ gcc7-arm.patch
+- Drop gcc7-error-xenpmd.patch
+* Mon Jun 5 2017 carnold@suse.com
+- Update to Xen 4.9.0-rc8 (fate#321394, fate#323108)
+ xen-4.9.0-testing-src.tar.bz2
+* Thu Jun 1 2017 carnold@suse.com
+- bsc#1042160 - VUL-1: CVE-2017-9330: xen: usb: ohci: infinite loop
+ due to incorrect return value
+ CVE-2017-9330-qemut-usb-ohci-infinite-loop-due-to-incorrect-return-value.patch
+* Tue May 30 2017 carnold@suse.com
+- bsc#1037243 - VUL-1: CVE-2017-8309: xen: audio: host memory
+ leakage via capture buffer
+ CVE-2017-8309-qemut-audio-host-memory-leakage-via-capture-buffer.patch
+* Fri May 26 2017 carnold@suse.com
+- Update to Xen 4.9.0-rc7 (fate#321394, fate#323108)
+ xen-4.9.0-testing-src.tar.bz2
+* Mon May 22 2017 carnold@suse.com
+- Update to Xen 4.9.0-rc6 (fate#321394, fate#323108)
+ xen-4.9.0-testing-src.tar.bz2
+* Thu May 18 2017 carnold@suse.com
+- bsc#1031343 - xen fails to build with GCC 7
+ gcc7-mini-os.patch
+ gcc7-xen.patch
+* Wed May 17 2017 carnold@suse.com
+- bsc#1031343 - xen fails to build with GCC 7
+ gcc7-error-xenpmd.patch
+* Tue May 16 2017 carnold@suse.com
+- Update to Xen 4.9.0-rc5 (fate#321394, fate#323108)
+ xen-4.9.0-testing-src.tar.bz2
+- Drop xen-tools-pkgconfig-xenlight.patch
+* Wed May 10 2017 carnold@suse.com
+- bsc#1037779 - xen breaks kexec-tools build
+ xen-tools-pkgconfig-xenlight.patch
+* Tue May 9 2017 carnold@suse.com
+- Update to Xen 4.9.0-rc4 (fate#321394, fate#323108)
+ xen-4.9.0-testing-src.tar.bz2
+* Tue May 2 2017 carnold@suse.com
+- bsc#1036146 - sles12sp2 xen VM dumps core to wrong path
+ xen.spec
+* Fri Apr 28 2017 carnold@suse.com
+- Update to Xen 4.9.0-rc3 (fate#321394, fate#323108)
+ xen-4.9.0-testing-src.tar.bz2
+ aarch64-maybe-uninitialized.patch
+* Fri Apr 21 2017 carnold@suse.com
+- Update to Xen 4.9.0-rc2 (fate#321394, fate#323108)
+ xen-4.9.0-testing-src.tar.bz2
+* Wed Apr 19 2017 carnold@suse.com
+- Update to Xen 4.9.0-rc1 (fate#321394, fate#323108)
+ xen-4.9.0-testing-src.tar.bz2
+ ioemu-devicemodel-include.patch
+- Dropped patches contained in new tarball
+ xen-4.8.0-testing-src.tar.bz2
+ 0001-xenstore-let-write_node-and-some-callers-return-errn.patch
+ 0002-xenstore-undo-function-rename.patch
+ 0003-xenstore-rework-of-transaction-handling.patch
+ 584806ce-x86emul-correct-PUSHF-POPF.patch
+ 584fc649-fix-determining-when-domain-creation-is-complete.patch
+ 58510c06-x86emul-CMPXCHGnB-ignore-prefixes.patch
+ 58510cac-x86emul-MOVNTI-no-REP-prefixes.patch
+ 58526ccc-x86emul-64bit-ignore-most-segment-bases-in-align-check.patch
+ 5853ed37-VT-d-correct-dma_msi_set_affinity.patch
+ 5853ee07-x86emul-CMPXCHG16B-aligned-operand.patch
+ 58580060-x86-emul-correct-SYSCALL-eflags-handling.patch
+ 585aa3c5-x86-force-EFLAGS-IF-on-upon-exit-to-PV.patch
+ 585aa407-x86-HVM-NULL-check-before-using-VMFUNC-hook.patch
+ 585bd5fe-x86-emul-correct-VMFUNC-return-value-handling.patch
+ 586ba81c-x86-cpu-dont-update-this_cpu-for-guest-get_cpu_vendor.patch
+ 587d04d6-x86-xstate-fix-array-overrun-with-LWP.patch
+ 587de4a9-x86emul-VEX-B-ignored-in-compat-mode.patch
+ 5882129d-x86emul-LOCK-check-adjustments.patch
+ 58821300-x86-segment-attribute-handling.patch
+ 58873c1f-x86emul-correct-FPU-stub-asm-constraints.patch
+ 58873c80-x86-hvm-do-not-set-msr_tsc_adjust-on-.patch
+ 5887888f-credit2-fix-shutdown-suspend-with-cpupools.patch
+ 5887888f-credit2-never-consider-CPUs-outside-of-pool.patch
+ 5887888f-credit2-use-the-correct-scratch-cpumask.patch
+ 5888b1b3-x86-emulate-dont-assume-addr_size-32-implies-protmode.patch
+ 5899cbd9-EPT-allow-wrcomb-MMIO-mappings-again.patch
+ 589b3272-libxl-dont-segfault-when-creating-domain-with-invalid-pvusb-device.patch
+ 58a44771-IOMMU-always-call-teardown-callback.patch
+ 58a48ccc-x86-fix-p2m_flush_table-for-non-nested.patch
+ 58a59f4b-libxl-correct-xenstore-entry-for-empty-cdrom.patch
+ 58a70d94-VMX-fix-VMCS-race-on-cswitch-paths.patch
+ 58ac1f3f-VMX-dont-leak-host-syscall-MSRs.patch
+ 58b5a2de-x86-correct-Xens-idea-of-its-memory-layout.patch
+ 58b6fd42-credit2-always-mark-a-tickled-pCPU-as-tickled.patch
+ 58b6fd42-credit2-dont-miss-accounting-during-credit-reset.patch
+ 58cbf682-x86-EFI-avoid-overrunning-mb_modules.patch
+ 58cf9200-x86-EFI-avoid-IOMMU-faults-on-tail-gap.patch
+ 58cf9260-x86-EFI-avoid-Xen-when-looking-for-mod-kexec-pos.patch
+ 58cf9277-x86-time-dont-use-vTSC-if-host-guest-freqs-match.patch
+ 58d25ea2-xenstore-add-missing-checks-for-allocation-failure.patch
+ 58d91365-sched-dont-call-wrong-hook-via-VCPU2OP.patch
+ CVE-2017-2615-qemut-display-cirrus-oob-access-while-doing-bitblt-copy-backward-mode.patch
+ CVE-2017-2620-xsa209-qemut-cirrus_bitblt_cputovideo-does-not-check-if-memory-region-safe.patch
+ glibc-2.25-compatibility-fix.patch
+ xs-09-add_change_node-params.patch
+ xs-10-call-add_change_node.patch
+ xs-11-tdb-record-header.patch
+ xs-12-node-gen-count.patch
+ xs-13-read-directory-part-support.patch
+ xs-14-command-array.patch
+ xs-15-command-return-val.patch
+ xs-16-function-static.patch
+ xs-17-arg-parsing.patch
+ xs-18-default-buffer.patch
+ xs-19-handle-alloc-failures.patch
+ xs-20-tdb-version.patch
+ xs-21-empty-tdb-database.patch
+ xs-22-reopen_log-fix.patch
+ xs-23-XS_DEBUG-rename.patch
+ xs-24-xenstored_control.patch
+ xs-25-control-enhance.patch
+ xs-26-log-control.patch
+ xs-27-memory-report.patch
+ xs-28-remove-talloc-report.patch
+ xs-29-define-off_t.patch
+ xsa206-0001-xenstored-apply-a-write-transaction-rate-limit.patch
+ xsa206-0002-xenstored-Log-when-the-write-transaction-rate-limit.patch
+* Wed Apr 5 2017 carnold@suse.com
+- bsc#1022703 - Xen HVM guest with OVMF hangs with unattached CDRom
+ 58a59f4b-libxl-correct-xenstore-entry-for-empty-cdrom.patch
+* Wed Mar 29 2017 jfehlig@suse.com
+- bsc#1015348 - L3: libvirtd does not start during boot
+ suse-xendomains-service.patch
+* Wed Mar 22 2017 carnold@suse.com
+- bsc#1014136 - Partner-L3: kdump can't dump a kernel on SLES12-SP2
+ with Xen hypervisor.
+ 58cf9260-x86-EFI-avoid-Xen-when-looking-for-mod-kexec-pos.patch
+- bsc#1026236 - L3: Paravirtualized vs. fully virtualized migration
+ - latter one much faster
+ 58cf9277-x86-time-dont-use-vTSC-if-host-guest-freqs-match.patch
+- Upstream patch from Jan
+ 58cbf682-x86-EFI-avoid-overrunning-mb_modules.patch
+ 58cf9200-x86-EFI-avoid-IOMMU-faults-on-tail-gap.patch
+ 58d91365-sched-dont-call-wrong-hook-via-VCPU2OP.patch
+* Mon Mar 20 2017 carnold@suse.com
+- bsc#1022555 - L3: Timeout in "execution of /etc/xen/scripts/block
+ add"
+ 58d25ea2-xenstore-add-missing-checks-for-allocation-failure.patch
+ 0001-xenstore-let-write_node-and-some-callers-return-errn.patch
+ 0002-xenstore-undo-function-rename.patch
+ 0003-xenstore-rework-of-transaction-handling.patch
+- bsc#1030144 - VUL-0: xen: xenstore denial of service via repeated
+ update (XSA-206)
+ xsa206-0001-xenstored-apply-a-write-transaction-rate-limit.patch
+ xsa206-0002-xenstored-Log-when-the-write-transaction-rate-limit.patch
+- bsc#1029827 - Forward port xenstored
+ xs-09-add_change_node-params.patch
+ xs-10-call-add_change_node.patch
+ xs-11-tdb-record-header.patch
+ xs-12-node-gen-count.patch
+ xs-13-read-directory-part-support.patch
+ xs-14-command-array.patch
+ xs-15-command-return-val.patch
+ xs-16-function-static.patch
+ xs-17-arg-parsing.patch
+ xs-18-default-buffer.patch
+ xs-19-handle-alloc-failures.patch
+ xs-20-tdb-version.patch
+ xs-21-empty-tdb-database.patch
+ xs-22-reopen_log-fix.patch
+ xs-23-XS_DEBUG-rename.patch
+ xs-24-xenstored_control.patch
+ xs-25-control-enhance.patch
+ xs-26-log-control.patch
+ xs-27-memory-report.patch
+ xs-28-remove-talloc-report.patch
+ xs-29-define-off_t.patch
+* Tue Mar 14 2017 ohering@suse.de
+- bsc#1029128 - fix make xen to really produce xen.efi with gcc48
+* Wed Mar 8 2017 carnold@suse.com
+- bsc#1028235 - VUL-0: CVE-2017-6505: xen: qemu: usb: an infinite
+ loop issue in ohci_service_ed_list
+ CVE-2017-6505-qemut-usb-an-infinite-loop-issue-in-ohci_service_ed_list.patch
+- Upstream patches from Jan (bsc#1027519)
+ 5887888f-credit2-fix-shutdown-suspend-with-cpupools.patch
+ 5887888f-credit2-use-the-correct-scratch-cpumask.patch
+ 5899cbd9-EPT-allow-wrcomb-MMIO-mappings-again.patch
+ 589b3272-libxl-dont-segfault-when-creating-domain-with-invalid-pvusb-device.patch
+ 58a44771-IOMMU-always-call-teardown-callback.patch
+ 58a48ccc-x86-fix-p2m_flush_table-for-non-nested.patch
+ 58a70d94-VMX-fix-VMCS-race-on-cswitch-paths.patch
+ 58ac1f3f-VMX-dont-leak-host-syscall-MSRs.patch
+ 58b5a2de-x86-correct-Xens-idea-of-its-memory-layout.patch
+ 58b6fd42-credit2-always-mark-a-tickled-pCPU-as-tickled.patch
+ 58b6fd42-credit2-dont-miss-accounting-during-credit-reset.patch
+* Thu Mar 2 2017 carnold@suse.com
+- bsc#1027654 - XEN fails to build against glibc 2.25
+ glibc-2.25-compatibility-fix.patch
+ libxl.pvscsi.patch
+* Thu Feb 16 2017 ohering@suse.de
+- fate#316613: Refresh and enable libxl.pvscsi.patch
+* Fri Feb 10 2017 carnold@suse.com
+- bsc#1024834 - VUL-0: CVE-2017-2620: xen: cirrus_bitblt_cputovideo
+ does not check if memory region is safe (XSA-209)
+ CVE-2017-2620-xsa209-qemut-cirrus_bitblt_cputovideo-does-not-check-if-memory-region-safe.patch
+* Wed Feb 8 2017 carnold@suse.com
+- bsc#1023948 - [pvusb][sles12sp3][openqa] Segmentation fault
+ happened when adding usbctrl devices via xl
+ 589b3272-libxl-dont-segfault-when-creating-domain-with-invalid-pvusb-device.patch
+* Thu Feb 2 2017 carnold@suse.com
+- Upstream patches from Jan (bsc#1027519)
+ 587d04d6-x86-xstate-fix-array-overrun-with-LWP.patch
+ 587de4a9-x86emul-VEX-B-ignored-in-compat-mode.patch
+ 5882129d-x86emul-LOCK-check-adjustments.patch
+ 58821300-x86-segment-attribute-handling.patch
+ 58873c1f-x86emul-correct-FPU-stub-asm-constraints.patch
+ 58873c80-x86-hvm-do-not-set-msr_tsc_adjust-on-.patch
+ 5887888f-credit2-use-the-correct-scratch-cpumask.patch
+ 5887888f-credit2-never-consider-CPUs-outside-of-pool.patch
+ 5887888f-credit2-fix-shutdown-suspend-with-cpupools.patch
+ 5888b1b3-x86-emulate-dont-assume-addr_size-32-implies-protmode.patch
+* Wed Feb 1 2017 carnold@suse.com
+- bsc#1023004 - VUL-0: CVE-2017-2615: qemu: display: cirrus: oob
+ access while doing bitblt copy backward mode
+ CVE-2017-2615-qemut-display-cirrus-oob-access-while-doing-bitblt-copy-backward-mode.patch
+* Thu Jan 26 2017 carnold@suse.com
+- fate#322313 and fate#322150 require the acpica package ported to
+ aarch64 which Xen 4.8 needs to build. Temporarily disable aarch64
+ until these fates are complete.
+ xen.spec
+* Wed Jan 25 2017 carnold@suse.com
+- bsc#1021952 - Virutalization/xen: Bug xen-tools missing
+ /usr/bin/domu-xenstore; guests fail to launch
+ tmp_build.patch
+ xen.spec
+* Wed Jan 18 2017 ohering@suse.de
+- No systemd presets for 42.3+ and SLE12SP3+ (bsc#1012842)
+* Thu Jan 12 2017 carnold@suse.com
+- bsc#1007224 - broken symlinks in /usr/share/doc/packages/xen/misc/
+ xen.spec
+* Mon Jan 9 2017 carnold@suse.com
+- 585aa3c5-x86-force-EFLAGS-IF-on-upon-exit-to-PV.patch
+ Replaces xsa202.patch (bsc#1014298)
+- 585aa407-x86-HVM-NULL-check-before-using-VMFUNC-hook.patch
+ Replaces xsa203.patch (bsc#1014300)
+- 58580060-x86-emul-correct-SYSCALL-eflags-handling.patch
+ Replaces xsa204.patch (bsc#1016340)
+- Upstream patches from Jan
+ 58526ccc-x86emul-64bit-ignore-most-segment-bases-in-align-check.patch
+ 5853ed37-VT-d-correct-dma_msi_set_affinity.patch
+ 5853ee07-x86emul-CMPXCHG16B-aligned-operand.patch
+ 585bd5fe-x86-emul-correct-VMFUNC-return-value-handling.patch
+ 586ba81c-x86-cpu-dont-update-this_cpu-for-guest-get_cpu_vendor.patch
+* Wed Jan 4 2017 carnold@suse.com
+- bsc#1015169 - VUL-0: CVE-2016-9921, CVE-2016-9922: xen: qemu:
+ display: cirrus_vga: a divide by zero in cirrus_do_copy
+ CVE-2016-9921-qemut-display-cirrus_vga-divide-by-zero-in-cirrus_do_copy.patch
+* Mon Dec 19 2016 carnold@suse.com
+- bsc#1016340 - VUL-0: CVE-2016-10013: xen: x86: Mishandling of
+ SYSCALL singlestep during emulation (XSA-204)
+ xsa204.patch
+* Thu Dec 15 2016 carnold@suse.com
+- bsc#1012651 - VUL-0: CVE-2016-9932: xen: x86 CMPXCHG8B emulation
+ fails to ignore operand size override (XSA-200)
+ 58510c06-x86emul-CMPXCHGnB-ignore-prefixes.patch
+* Wed Dec 14 2016 carnold@suse.com
+- bsc#1014298 - VUL-0: CVE-2016-10024: xen: x86 PV guests may be
+ able to mask interrupts (XSA-202)
+ xsa202.patch
+- bsc#1014300 - VUL-0: CVE-2016-10025: xen: x86: missing NULL
+ pointer check in VMFUNC emulation (XSA-203)
+ xsa203.patch
+- Upstream patches from Jan
+ 584806ce-x86emul-correct-PUSHF-POPF.patch
+ 584fc649-fix-determining-when-domain-creation-is-complete.patch
+ 58510c06-x86emul-CMPXCHGnB-ignore-prefixes.patch
+ 58510cac-x86emul-MOVNTI-no-REP-prefixes.patch
+* Mon Dec 5 2016 carnold@suse.com
+- Update to Xen 4.8 FCS
+ xen-4.8.0-testing-src.tar.bz2
+- Dropped
+ xen-4.7.1-testing-src.tar.bz2
+ 0001-libxc-Rework-extra-module-initialisation.patch
+ 0002-libxc-Prepare-a-start-info-structure-for-hvmloader.patch
+ 0003-configure-define-SEABIOS_PATH-and-OVMF_PATH.patch
+ 0004-firmware-makefile-install-BIOS-blob.patch
+ 0005-libxl-Load-guest-BIOS-from-file.patch
+ 0006-xen-Move-the-hvm_start_info-C-representation-from-li.patch
+ 0007-hvmloader-Grab-the-hvm_start_info-pointer.patch
+ 0008-hvmloader-Locate-the-BIOS-blob.patch
+ 0009-hvmloader-Check-modules-whereabouts-in-perform_tests.patch
+ 0010-hvmloader-Load-SeaBIOS-from-hvm_start_info-modules.patch
+ 0011-hvmloader-Load-OVMF-from-modules.patch
+ 0012-hvmloader-Specific-bios_load-function-required.patch
+ 0013-hvmloader-Always-build-in-SeaBIOS-and-OVMF-loader.patch
+ 0014-configure-do-not-depend-on-SEABIOS_PATH-or-OVMF_PATH.patch
+ 57580bbd-kexec-allow-relaxed-placement-via-cmdline.patch
+ 576001df-x86-time-use-local-stamp-in-TSC-calibration-fast-path.patch
+ 5769106e-x86-generate-assembler-equates-for-synthesized.patch
+ 57a1e603-x86-time-adjust-local-system-time-initialization.patch
+ 57a1e64c-x86-time-introduce-and-use-rdtsc_ordered.patch
+ 57a2f6ac-x86-time-calibrate-TSC-against-platform-timer.patch
+ 57a30261-x86-support-newer-Intel-CPU-models.patch
+ 5810a9cc-x86-emul-Correct-decoding-of-SReg3-operands.patch
+ 581b2c3b-x86-emul-reject-LGDT-LIDT-with-non-canonical-addresses.patch
+ 581b647a-x86emul-L-S-G-I-DT-ignore-opsz-overrides-in-64-bit-mode.patch
+ 58249392-x86-svm-dont-clobber-eax-edx-if-RDMSR-intercept-fails.patch
+ 582c35d6-x86-vmx-correct-long-mode-check-in-vmx_cpuid_intercept.patch
+ 582c35ee-x86-traps-dont-call-hvm_hypervisor_cpuid_leaf-for-PV.patch
+ 58343dc2-x86-hvm-Fix-the-handling-of-non-present-segments.patch
+ 58343df8-x86-HVM-dont-load-LDTR-with-VM86-mode-attrs-during-task-switch.patch
+ 58343e24-x86-PV-writes-of-fs-and-gs-base-MSRs-require-canonical-addresses.patch
+ 58343e9e-libelf-fix-stack-memory-leak-when-loading-32-bit-symbol-tables.patch
+ 58343ec2-x86emul-fix-huge-bit-offset-handling.patch
+ 58343f29-x86-emul-correct-the-IDT-entry-calculation-in-inject_swint.patch
+ 58343f44-x86-svm-fix-injection-of-software-interrupts.patch
+ 58343f79-pygrub-Properly-quote-results-when-returning-them-to-the-caller.patch
+ CVE-2016-9381-xsa197-qemut.patch
+ CVE-2016-9637-xsa199-qemut.patch
+* Tue Nov 22 2016 carnold@suse.com
+- bsc#1011652 - VUL-0: xen: qemu ioport array overflow
+ CVE-2016-9637-xsa199-qemut.patch
+* Fri Nov 18 2016 carnold@suse.com
+- bsc#1009100 - VUL-0: CVE-2016-9386: XSA-191: xen: x86 null
+ segments not always treated as unusable
+ 58343dc2-x86-hvm-Fix-the-handling-of-non-present-segments.patch
+- bsc#1009103 - VUL-0: CVE-2016-9382: XSA-192: xen: x86 task switch
+ to VM86 mode mis-handled
+ 58343df8-x86-HVM-dont-load-LDTR-with-VM86-mode-attrs-during-task-switch.patch
+- bsc#1009104 - VUL-0: CVE-2016-9385: XSA-193: xen: x86 segment base
+ write emulation lacking canonical address checks
+ 58343e24-x86-PV-writes-of-fs-and-gs-base-MSRs-require-canonical-addresses.patch
+- bsc#1009105 - VUL-0: CVE-2016-9384: XSA-194: xen: guest 32-bit
+ ELF symbol table load leaking host data
+ 58343e9e-libelf-fix-stack-memory-leak-when-loading-32-bit-symbol-tables.patch
+- bsc#1009107 - VUL-0: CVE-2016-9383: XSA-195: xen: x86 64-bit bit
+ test instruction emulation broken
+ 58343ec2-x86emul-fix-huge-bit-offset-handling.patch
+- bsc#1009108 - VUL-0: CVE-2016-9377,CVE-2016-9378: XSA-196: xen:
+ x86 software interrupt injection mis-handled
+ 58343f29-x86-emul-correct-the-IDT-entry-calculation-in-inject_swint.patch
+ 58343f44-x86-svm-fix-injection-of-software-interrupts.patch
+- bsc#1009109 - VUL-0: CVE-2016-9381: XSA-197: xen: qemu incautious
+ about shared ring processing
+ CVE-2016-9381-xsa197-qemut.patch
+- bsc#1009111 - VUL-0: CVE-2016-9379,CVE-2016-9380: XSA-198: xen:
+ delimiter injection vulnerabilities in pygrub
+ 58343f79-pygrub-Properly-quote-results-when-returning-them-to-the-caller.patch
+- Upstream patches from Jan
+ 581b2c3b-x86-emul-reject-LGDT-LIDT-with-non-canonical-addresses.patch
+ 581b647a-x86emul-L-S-G-I-DT-ignore-opsz-overrides-in-64-bit-mode.patch
+ 58249392-x86-svm-dont-clobber-eax-edx-if-RDMSR-intercept-fails.patch
+ 582c35d6-x86-vmx-correct-long-mode-check-in-vmx_cpuid_intercept.patch
+ 582c35ee-x86-traps-dont-call-hvm_hypervisor_cpuid_leaf-for-PV.patch
+* Tue Nov 15 2016 carnold@suse.com
+- Update to Xen Version 4.7.1
+ xen-4.7.1-testing-src.tar.bz2
+- Dropped patches contained in new tarball
+ xen-4.7.0-testing-src.tar.bz2
+ 575e9ca0-nested-vmx-Validate-host-VMX-MSRs-before-accessing-them.patch
+ 57640448-xen-sched-use-default-scheduler-upon-an-invalid-sched.patch
+ 57973099-have-schedulers-revise-initial-placement.patch
+ 579730e6-remove-buggy-initial-placement-algorithm.patch
+ 57976073-x86-remove-unsafe-bits-from-mod_lN_entry-fastpath.patch
+ 57976078-x86-avoid-SMAP-violation-in-compat_create_bounce_frame.patch
+ 57ac6316-don-t-restrict-DMA-heap-to-node-0.patch
+ 57b71fc5-x86-EFI-don-t-apply-relocations-to-l-2-3-_bootmap.patch
+ 57b7447b-dont-permit-guest-to-populate-PoD-pages-for-itself.patch
+ 57c4412b-x86-HVM-add-guarding-logic-for-VMX-specific-code.patch
+ 57c57f73-libxc-correct-max_pfn-calculation-for-saving-domain.patch
+ 57c805bf-x86-levelling-restrict-non-architectural-OSXSAVE-handling.patch
+ 57c805c1-x86-levelling-pass-vcpu-to-ctxt_switch_levelling.patch
+ 57c805c3-x86-levelling-provide-architectural-OSXSAVE-handling.patch
+ 57c82be2-x86-32on64-adjust-call-gate-emulation.patch
+ 57c93e52-fix-error-in-libxl_device_usbdev_list.patch
+ 57c96df3-credit1-fix-a-race-when-picking-initial-pCPU.patch
+ 57c96e2c-x86-correct-PT_NOTE-file-position.patch
+ 57cfed43-VMX-correct-feature-checks-for-MPX-and-XSAVES.patch
+ 57d1563d-x86-32on64-don-t-allow-recursive-page-tables-from-L3.patch
+ 57d15679-x86-emulate-Correct-boundary-interactions-of-emulated-insns.patch
+ 57d1569a-x86-shadow-Avoid-overflowing-sh_ctxt-seg_reg.patch
+ 57d18642-hvm-fep-Allow-test-insns-crossing-1-0-boundary.patch
+ 57d18642-x86-segment-Bounds-check-accesses-to-emulation-ctxt-seg_reg.patch
+ 57d7ca5f-x86-domctl-fix-TOCTOU-race-in-XEN_DOMCTL_getvcpuextstate.patch
+ 57d7ca64-x86-domctl-fix-migration-of-guests-not-using-xsave.patch
+ 57da8883-credit1-fix-mask-to-be-used-for-tickling.patch
+ 57da8883-credit2-properly-schedule-migration-of-running-vcpu.patch
+ 57dfb1c5-x86-Intel-hide-CPUID-faulting-capability-from-guests.patch
+ 57e93e1d-x86emul-correct-loading-of-ss.patch
+ 57e93e4a-x86emul-don-t-allow-null-selector-for-LTR.patch
+ 57e93e89-x86-AMD-apply-erratum-665-workaround.patch
+ 57ee6cbc-credit1-return-time-remaining-to-limit-as-next-timeslice.patch
+ 57f3a8ee-x86emul-honor-guest-CR0-TS-and-CR0-EM.patch
+ 57fb6a91-x86-defer-not-present-segment-checks.patch
+ 5800c51d-x86-hvm-Clobber-cs-L-when-LME-becomes-set.patch
+ 5800caec-x86emul-fix-pushing-of-selector-registers.patch
+ 5800cb06-x86-Viridian-don-t-depend-on-undefined-register-state.patch
+ 580e29f9-x86-MISALIGNSSE-feature-depends-on-SSE.patch
+ 57dfb2ff-x86-Intel-Broadwell-no-PKG_C8-10_RESIDENCY-MSRs.patch
+* Mon Nov 7 2016 carnold@suse.com
+- bsc#1004981 - Xen RPM doesn't contain debug hypervisor for EFI
+ systems
+ xen.spec
+* Thu Nov 3 2016 carnold@suse.com
+- bsc#1000106 - VUL-0: CVE-2016-7777: xen: CR0.TS and CR0.EM not
+ always honored for x86 HVM guests (XSA-190)
+ 57f3a8ee-x86emul-honor-guest-CR0-TS-and-CR0-EM.patch
+- bsc#996191 - [XEN][acpi]residency -n 88 -c will cause xen panic
+ on broadwell-ep
+ 57dfb2ff-x86-Intel-Broadwell-no-PKG_C8-10_RESIDENCY-MSRs.patch
+- Upstream patches from Jan
+ 57d7ca5f-x86-domctl-fix-TOCTOU-race-in-XEN_DOMCTL_getvcpuextstate.patch
+ 57d7ca64-x86-domctl-fix-migration-of-guests-not-using-xsave.patch
+ 57da8883-credit1-fix-mask-to-be-used-for-tickling.patch
+ 57da8883-credit2-properly-schedule-migration-of-running-vcpu.patch
+ 57dfb1c5-x86-Intel-hide-CPUID-faulting-capability-from-guests.patch
+ 57e93e1d-x86emul-correct-loading-of-ss.patch
+ 57e93e4a-x86emul-don-t-allow-null-selector-for-LTR.patch
+ 57e93e89-x86-AMD-apply-erratum-665-workaround.patch
+ 57ee6cbc-credit1-return-time-remaining-to-limit-as-next-timeslice.patch
+ 57fb6a91-x86-defer-not-present-segment-checks.patch
+ 5800c51d-x86-hvm-Clobber-cs-L-when-LME-becomes-set.patch
+ 5800caec-x86emul-fix-pushing-of-selector-registers.patch
+ 5800cb06-x86-Viridian-don-t-depend-on-undefined-register-state.patch
+ 580e29f9-x86-MISALIGNSSE-feature-depends-on-SSE.patch
+ 5810a9cc-x86-emul-Correct-decoding-of-SReg3-operands.patch
+* Wed Nov 2 2016 carnold@suse.com
+- bsc#1007941 - Xen tools limit the number of vcpus to 256 when the
+ system has 384
+ xen-arch-kconfig-nr_cpus.patch
+* Tue Nov 1 2016 carnold@suse.com
+- bsc#1007157 - VUL-0: CVE-2016-8910: xen: net: rtl8139: infinite
+ loop while transmit in C+ mode
+ CVE-2016-8910-qemut-net-rtl8139-infinite-loop-while-transmit-in-Cplus-mode.patch
+* Mon Oct 17 2016 carnold@suse.com
+- bsc#1005004 - CVE-2016-8667: xen: dma: rc4030 divide by zero
+ error in set_next_tick
+ CVE-2016-8667-qemut-dma-rc4030-divide-by-zero-error-in-set_next_tick.patch
+- bsc#1005005 - VUL-0: CVE-2016-8669: xen: char: divide by zero
+ error in serial_update_parameters
+ CVE-2016-8669-qemut-char-divide-by-zero-error-in-serial_update_parameters.patch
+* Wed Oct 5 2016 carnold@suse.com
+- bsc#1003030 - VUL-0: CVE-2016-7908: xen: net: Infinite loop in
+ mcf_fec_do_tx
+ CVE-2016-7908-qemut-net-Infinite-loop-in-mcf_fec_do_tx.patch
+- bsc#1003032 - VUL-0: CVE-2016-7909: xen: net: pcnet: infinite
+ loop in pcnet_rdra_addr
+ CVE-2016-7909-qemut-net-pcnet-infinite-loop-in-pcnet_rdra_addr.patch
+* Mon Sep 12 2016 carnold@suse.com
+- bsc#995785 - VUL-0: CVE-2016-7092: xen: x86: Disallow L3
+ recursive pagetable for 32-bit PV guests (XSA-185)
+ 57d1563d-x86-32on64-don-t-allow-recursive-page-tables-from-L3.patch
+- bsc#995789 - VUL-0: CVE-2016-7093: xen: x86: Mishandling of
+ instruction pointer truncation during emulation (XSA-186)
+ 57d15679-x86-emulate-Correct-boundary-interactions-of-emulated-insns.patch
+ 57d18642-hvm-fep-Allow-test-insns-crossing-1-0-boundary.patch
+- bsc#995792 - VUL-0: CVE-2016-7094: xen: x86 HVM: Overflow of
+ sh_ctxt->seg_reg[] (XSA-187)
+ 57d1569a-x86-shadow-Avoid-overflowing-sh_ctxt-seg_reg.patch
+ 57d18642-x86-segment-Bounds-check-accesses-to-emulation-ctxt-seg_reg.patch
+- bsc#991934 - xen hypervisor crash in csched_acct
+ 57c96df3-credit1-fix-a-race-when-picking-initial-pCPU.patch
+- Upstream patches from Jan
+ 57c4412b-x86-HVM-add-guarding-logic-for-VMX-specific-code.patch
+ 57c57f73-libxc-correct-max_pfn-calculation-for-saving-domain.patch
+ 57c805bf-x86-levelling-restrict-non-architectural-OSXSAVE-handling.patch
+ 57c805c1-x86-levelling-pass-vcpu-to-ctxt_switch_levelling.patch
+ 57c805c3-x86-levelling-provide-architectural-OSXSAVE-handling.patch
+ 57c82be2-x86-32on64-adjust-call-gate-emulation.patch
+ 57c96e2c-x86-correct-PT_NOTE-file-position.patch
+ 57cfed43-VMX-correct-feature-checks-for-MPX-and-XSAVES.patch
+* Mon Sep 12 2016 ohering@suse.de
+- bsc#979002 - add 60-persistent-xvd.rules and helper script
+ also to initrd, add the relevant dracut helper
+* Mon Sep 5 2016 ohering@suse.de
+- bnc#953518 - unplug also SCSI disks in qemu-xen-traditional for
+ upstream unplug protocol
+* Fri Sep 2 2016 carnold@suse.com
+- bsc#989679 - [pvusb feature] USB device not found when
+ 'virsh detach-device guest usb.xml'
+ 57c93e52-fix-error-in-libxl_device_usbdev_list.patch
+* Tue Aug 23 2016 carnold@suse.com
+- bsc#992224 - [HPS Bug] During boot of Xen Hypervisor, Failed to
+ get contiguous memory for DMA from Xen
+ 57ac6316-don-t-restrict-DMA-heap-to-node-0.patch
+- bsc#978755 - xen uefi systems fail to boot
+- bsc#983697 - SLES12 SP2 Xen UEFI mode cannot boot
+ 57b71fc5-x86-EFI-don-t-apply-relocations-to-l-2-3-_bootmap.patch
+- Upstream patch from Jan
+ 57b7447b-dont-permit-guest-to-populate-PoD-pages-for-itself.patch
+* Mon Aug 8 2016 jfehlig@suse.com
+- spec: to stay compatible with the in-tree qemu-xen binary, use
+ /usr/bin/qemu-system-i386 instead of /usr/bin/qemu-system-x86_64
+ bsc#986164
+* Thu Aug 4 2016 carnold@suse.com
+- bsc#970135 - new virtualization project clock test randomly fails
+ on Xen
+ 576001df-x86-time-use-local-stamp-in-TSC-calibration-fast-path.patch
+ 5769106e-x86-generate-assembler-equates-for-synthesized.patch
+ 57a1e603-x86-time-adjust-local-system-time-initialization.patch
+ 57a1e64c-x86-time-introduce-and-use-rdtsc_ordered.patch
+ 57a2f6ac-x86-time-calibrate-TSC-against-platform-timer.patch
+- bsc#991934 - xen hypervisor crash in csched_acct
+ 57973099-have-schedulers-revise-initial-placement.patch
+ 579730e6-remove-buggy-initial-placement-algorithm.patch
+- bsc#988675 - VUL-0: CVE-2016-6258: xen: x86: Privilege escalation
+ in PV guests (XSA-182)
+ 57976073-x86-remove-unsafe-bits-from-mod_lN_entry-fastpath.patch
+- bsc#988676 - VUL-0: CVE-2016-6259: xen: x86: Missing SMAP
+ whitelisting in 32-bit exception / event delivery (XSA-183)
+ 57976078-x86-avoid-SMAP-violation-in-compat_create_bounce_frame.patch
+- Upstream patches from Jan
+ 57a30261-x86-support-newer-Intel-CPU-models.patch
+* Mon Aug 1 2016 carnold@suse.com
+- bsc#985503 - vif-route broken
+ vif-route.patch
+* Thu Jul 28 2016 carnold@suse.com
+- bsc#978413 - PV guest upgrade from sles11sp4 to sles12sp2 alpha3
+ failed on sles11sp4 xen host.
+ pygrub-handle-one-line-menu-entries.patch
+* Wed Jul 27 2016 carnold@suse.com
+- bsc#990843 - VUL-1: CVE-2016-6351: xen: qemu: scsi: esp: OOB
+ write access in esp_do_dma
+ CVE-2016-6351-qemut-scsi-esp-make-cmdbuf-big-enough-for-maximum-CDB-size.patch
+* Thu Jun 23 2016 carnold@suse.com
+- bsc#900418 - Dump cannot be performed on SLES12 XEN
+ 57580bbd-kexec-allow-relaxed-placement-via-cmdline.patch
+- Upstream patches from Jan
+ 575e9ca0-nested-vmx-Validate-host-VMX-MSRs-before-accessing-them.patch
+ 57640448-xen-sched-use-default-scheduler-upon-an-invalid-sched.patch
+* Tue Jun 21 2016 carnold@suse.com
+- fate#319989 - Update to Xen 4.7 FCS
+ xen-4.7.0-testing-src.tar.bz2
+- Drop CVE-2014-3672-qemut-xsa180.patch
+* Thu Jun 16 2016 carnold@suse.com
+- bsc#954872 - script block-dmmd not working as expected - libxl:
+ error: libxl_dm.c (Additional fixes)
+ block-dmmd
+* Fri Jun 10 2016 ohering@suse.de
+- Convert with_stubdom into build_conditional to allow adjusting
+ via prjconf
+- Convert with_debug into build_conditional to allow adjusting
+ via prjconf
+* Fri Jun 10 2016 ohering@suse.de
+- bsc#979002 - add 60-persistent-xvd.rules and helper script to
+ xen-tools-domU to simplify transition to pvops based kernels
+* Fri Jun 10 2016 ohering@suse.de
+- Convert with_oxenstored into build_conditional to allow
+ adjusting via prjconf (fate#320836)
+* Thu Jun 9 2016 carnold@suse.com
+- bsc#983984 - VUL-0: CVE-2016-5338: xen: qemu: scsi: esp: OOB r/w
+ access while processing ESP_FIFO
+ CVE-2016-5338-qemut-scsi-esp-OOB-rw-access-while-processing-ESP_FIFO.patch
+- bsc#982960 - VUL-0: CVE-2016-5238: xen: qemu: scsi: esp: OOB
+ write when using non-DMA mode in get_cmd
+ CVE-2016-5238-qemut-scsi-esp-OOB-write-when-using-non-DMA-mode-in-get_cmd.patch
+* Tue Jun 7 2016 carnold@suse.com
+- fate#319989 - Update to Xen 4.7 RC5
+ xen-4.7.0-testing-src.tar.bz2
+* Wed May 25 2016 carnold@suse.com
+- fate#319989 - Update to Xen 4.7 RC4
+ xen-4.7.0-testing-src.tar.bz2
+- Dropped
+ xen.pkgconfig-4.7.patch
+ xsa164.patch
+* Mon May 23 2016 carnold@suse.com
+- bsc#981264 - VUL-0: CVE-2014-3672: xen: Unrestricted qemu logging
+ (XSA-180)
+ CVE-2014-3672-qemut-xsa180.patch
+* Thu May 19 2016 carnold@suse.com
+- bsc#980724 - VUL-0: CVE-2016-4441: Qemu: scsi: esp: OOB write
+ while writing to 's->cmdbuf' in get_cmd
+ CVE-2016-4441-qemut-scsi-esp-OOB-write-while-writing-to-cmdbuf-in-get_cmd.patch
+- bsc#980716 - VUL-0: CVE-2016-4439: xen: scsi: esp: OOB write
+ while writing to 's->cmdbuf' in esp_reg_write
+ CVE-2016-4439-qemut-scsi-esp-OOB-write-while-writing-to-cmdbuf-in-esp_reg_write.patch
+* Tue May 17 2016 carnold@suse.com
+- fate#319989 - Update to Xen 4.7 RC3
+ xen-4.7.0-testing-src.tar.bz2
+- Dropped
+ libxl-remove-cdrom-cachemode.patch
+ x86-PoD-only-reclaim-if-needed.patch
+ gcc6-warnings-as-errors.patch
+* Wed May 11 2016 carnold@suse.com
+- bsc#954872 - script block-dmmd not working as expected - libxl:
+ error: libxl_dm.c (another modification)
+ block-dmmd
+* Tue May 10 2016 carnold@suse.com
+- fate#319989 - Update to Xen 4.7 RC2
+ xen-4.7.0-testing-src.tar.bz2
+* Tue May 10 2016 carnold@suse.com
+- bsc#961600 - L3: poor performance when Xen HVM domU configured
+ with max memory > current memory
+ x86-PoD-only-reclaim-if-needed.patch
+* Fri May 6 2016 ohering@suse.de
+- Mark SONAMEs and pkgconfig as xen 4.7
+ xen.pkgconfig-4.7.patch
+* Tue May 3 2016 jfehlig@suse.com
+- bsc#977329 - Xen: Cannot boot HVM guests with empty cdrom
+ libxl-remove-cdrom-cachemode.patch
+* Tue May 3 2016 carnold@suse.com
+- fate#319989 - Update to Xen 4.7 RC1
+ xen-4.7.0-testing-src.tar.bz2
+* Tue May 3 2016 ohering@suse.de
+- fate#316614: set migration constraints from cmdline
+ restore libxl.set-migration-constraints-from-cmdline.patch
+* Tue May 3 2016 ohering@suse.de
+- Remove obsolete patch for xen-kmp
+ magic_ioport_compat.patch
+* Tue May 3 2016 ohering@suse.de
+- fate#316613: update to v12
+ libxl.pvscsi.patch
+* Fri Apr 29 2016 carnold@suse.com
+- Update to the latest Xen 4.7 pre-release c2994f86
+ Drop libxl.migrate-legacy-stream-read.patch
+* Fri Apr 15 2016 ohering@suse.de
+- bnc#972756 - Can't migrate HVM guest from SLES12SP1 Xen host
+ to SLES12SP2 Alpha 1 host using xl migrate
+ libxl.migrate-legacy-stream-read.patch
+* Fri Apr 1 2016 jfehlig@suse.com
+- Add patches from proposed upstream series to load BIOS's from
+ the toolstack instead of embedding in hvmloader
+ http://lists.xenproject.org/archives/html/xen-devel/2016-03/msg01626.html
+ 0001-libxc-Rework-extra-module-initialisation.patch,
+ 0002-libxc-Prepare-a-start-info-structure-for-hvmloader.patch,
+ 0003-configure-define-SEABIOS_PATH-and-OVMF_PATH.patch,
+ 0004-firmware-makefile-install-BIOS-blob.patch,
+ 0005-libxl-Load-guest-BIOS-from-file.patch,
+ 0006-xen-Move-the-hvm_start_info-C-representation-from-li.patch,
+ 0007-hvmloader-Grab-the-hvm_start_info-pointer.patch,
+ 0008-hvmloader-Locate-the-BIOS-blob.patch,
+ 0009-hvmloader-Check-modules-whereabouts-in-perform_tests.patch,
+ 0010-hvmloader-Load-SeaBIOS-from-hvm_start_info-modules.patch,
+ 0011-hvmloader-Load-OVMF-from-modules.patch,
+ 0012-hvmloader-Specific-bios_load-function-required.patch,
+ 0013-hvmloader-Always-build-in-SeaBIOS-and-OVMF-loader.patch,
+ 0014-configure-do-not-depend-on-SEABIOS_PATH-or-OVMF_PATH.patch
+- Enable support for UEFI on x86_64 using the ovmf-x86_64-ms.bin
+ firmware from qemu-ovmf-x86_64. The firmware is preloaded with
+ Microsoft keys to more closely resemble firmware on real hardware
+ FATE#320490
+* Fri Mar 25 2016 carnold@suse.com
+- fate#319989: Update to Xen 4.7 (pre-release)
+ xen-4.7.0-testing-src.tar.bz2
+- Dropped:
+ xen-4.6.1-testing-src.tar.bz2
+ 55f7f9d2-libxl-slightly-refine-pci-assignable-add-remove-handling.patch
+ 5628fc67-libxl-No-emulated-disk-driver-for-xvdX-disk.patch
+ 5644b756-x86-HVM-don-t-inject-DB-with-error-code.patch
+ 5649bcbe-libxl-relax-readonly-check-introduced-by-XSA-142-fix.patch
+ hotplug-Linux-block-performance-fix.patch
+ set-mtu-from-bridge-for-tap-interface.patch
+ xendomains-libvirtd-conflict.patch
+ xsa154.patch
+ xsa155-xen-0001-xen-Add-RING_COPY_REQUEST.patch
+ xsa155-xen-0002-blktap2-Use-RING_COPY_REQUEST.patch
+ xsa155-xen-0003-libvchan-Read-prod-cons-only-once.patch
+ xsa170.patch
+* Tue Mar 22 2016 jfehlig@suse.com
+- Use system SeaBIOS instead of building/installing another one
+ FATE#320638
+ Dropped files:
+ seabios-dir-remote.tar.bz2
+ xen-c99-fix.patch
+ xen.build-compare.seabios.patch
+* Wed Mar 16 2016 jfehlig@suse.com
+- spec: drop BuildRequires that were only needed for qemu-xen
+* Fri Mar 4 2016 carnold@suse.com
+- bsc#969377 - xen does not build with GCC 6
+ ipxe-use-rpm-opt-flags.patch
+ gcc6-warnings-as-errors.patch
+* Thu Mar 3 2016 carnold@suse.com
+- bsc#969351 - VUL-0: CVE-2016-2841: xen: net: ne2000: infinite
+ loop in ne2000_receive
+ CVE-2016-2841-qemut-ne2000-infinite-loop-in-ne2000_receive.patch
+- Drop xsa154-fix.patch
+* Wed Mar 2 2016 jfehlig@suse.com
+- Use system qemu instead of building/installing yet another qemu
+ FATE#320638
+- Dropped files
+ qemu-xen-dir-remote.tar.bz2
+ CVE-2014-0222-qemuu-qcow1-validate-l2-table-size.patch
+ CVE-2015-1779-qemuu-incrementally-decode-websocket-frames.patch
+ CVE-2015-1779-qemuu-limit-size-of-HTTP-headers-from-websockets-clients.patch
+ CVE-2015-4037-qemuu-smb-config-dir-name.patch
+ CVE-2015-7512-qemuu-net-pcnet-buffer-overflow-in-non-loopback-mode.patch
+ CVE-2015-7549-qemuu-pci-null-pointer-dereference-issue.patch
+ CVE-2015-8345-qemuu-eepro100-infinite-loop-fix.patch
+ CVE-2015-8504-qemuu-vnc-avoid-floating-point-exception.patch
+ CVE-2015-8558-qemuu-usb-infinite-loop-in-ehci_advance_state-results-in-DoS.patch
+ CVE-2015-8568-qemuu-net-vmxnet3-avoid-memory-leakage-in-activate_device.patch
+ CVE-2015-8613-qemuu-scsi-initialise-info-object-with-appropriate-size.patch
+ CVE-2015-8743-qemuu-ne2000-OOB-memory-access-in-ioport-rw-functions.patch
+ CVE-2015-8744-qemuu-net-vmxnet3-incorrect-l2-header-validation-leads-to-crash.patch
+ CVE-2015-8745-qemuu-net-vmxnet3-read-IMR-registers-instead-of-assert.patch
+ CVE-2016-1568-qemuu-ide-ahci-reset-ncq-object-to-unused-on-error.patch
+ CVE-2016-1714-qemuu-fw_cfg-add-check-to-validate-current-entry-value.patch
+ CVE-2014-7815-qemut-vnc-sanitize-bits_per_pixel-from-the-client.patch
+ CVE-2016-1981-qemuu-e1000-eliminate-infinite-loops-on-out-of-bounds-transfer.patch
+ CVE-2016-2538-qemuu-usb-integer-overflow-in-remote-NDIS-message-handling.patch
+ CVE-2015-8619-qemuu-stack-based-OOB-write-in-hmp_sendkey-routine.patch
+ qemu-xen-enable-spice-support.patch
+ qemu-xen-upstream-qdisk-cache-unsafe.patch
+ tigervnc-long-press.patch
+ xsa162-qemuu.patch
+* Mon Feb 29 2016 carnold@suse.com
+- bsc#962321 - VUL-0: CVE-2016-1922: xen: i386: null pointer
+ dereference in vapic_write()
+ CVE-2016-1922-qemuu-i386-null-pointer-dereference-in-vapic_write.patch
+* Wed Feb 24 2016 carnold@suse.com
+- bsc#968004 - VUL-0: CVE-2016-2538: xen: usb: integer overflow in
+ remote NDIS control message handling
+ CVE-2016-2538-qemuu-usb-integer-overflow-in-remote-NDIS-message-handling.patch
+* Thu Feb 18 2016 carnold@suse.com
+- bsc#954872 - L3: script block-dmmd not working as expected -
+ libxl: error: libxl_dm.c
+ block-dmmd
+- Update libxl to recognize dmmd and npiv prefix in disk spec
+ xen.libxl.dmmd.patch
+* Wed Feb 17 2016 carnold@suse.com
+- bsc#967101 - VUL-0: CVE-2016-2391: xen: usb: multiple eof_timers
+ in ohci module leads to null pointer dereference
+ CVE-2016-2391-qemuu-usb-null-pointer-dereference-in-ohci-module.patch
+ CVE-2016-2391-qemut-usb-null-pointer-dereference-in-ohci-module.patch
+- bsc#967090 - VUL-0: CVE-2016-2392: xen: usb: null pointer
+ dereference in remote NDIS control message handling
+ CVE-2016-2392-qemuu-usb-null-pointer-dereference-in-NDIS-message-handling.patch
+* Thu Feb 11 2016 carnold@suse.com
+- Update to Xen Version 4.6.1
+ xen-4.6.1-testing-src.tar.bz2
+- Dropped patches now contained in tarball or unnecessary
+ xen-4.6.0-testing-src.tar.bz2
+ 5604f239-x86-PV-properly-populate-descriptor-tables.patch
+ 561bbc8b-VT-d-don-t-suppress-invalidation-address-write-when-it-is-zero.patch
+ 561d2046-VT-d-use-proper-error-codes-in-iommu_enable_x2apic_IR.patch
+ 561d20a0-x86-hide-MWAITX-from-PV-domains.patch
+ 561e3283-x86-NUMA-fix-SRAT-table-processor-entry-parsing-and-consumption.patch
+ 5632118e-arm-Support-hypercall_create_continuation-for-multicall.patch
+ 56321222-arm-rate-limit-logging-from-unimplemented-PHYSDEVOP-and-HVMOP.patch
+ 56321249-arm-handle-races-between-relinquish_memory-and-free_domheap_pages.patch
+ 5632127b-x86-guard-against-undue-super-page-PTE-creation.patch
+ 5632129c-free-domain-s-vcpu-array.patch
+ 563212c9-x86-PoD-Eager-sweep-for-zeroed-pages.patch
+ 563212e4-xenoprof-free-domain-s-vcpu-array.patch
+ 563212ff-x86-rate-limit-logging-in-do_xen-oprof-pmu-_op.patch
+ 56323737-libxl-adjust-PoD-target-by-memory-fudge-too.patch
+ 56377442-x86-PoD-Make-p2m_pod_empty_cache-restartable.patch
+ 5641ceec-x86-HVM-always-intercept-AC-and-DB.patch
+ 56549f24-x86-vPMU-document-as-unsupported.patch
+ 5677f350-x86-make-debug-output-consistent-in-hvm_set_callback_via.patch
+ xsa155-qemut-qdisk-double-access.patch
+ xsa155-qemut-xenfb.patch
+ xsa155-qemuu-qdisk-double-access.patch
+ xsa155-qemuu-xenfb.patch
+ xsa159.patch
+ xsa160.patch
+ xsa162-qemut.patch
+ xsa165.patch
+ xsa166.patch
+ xsa167.patch
+ xsa168.patch
+* Fri Feb 5 2016 carnold@suse.com
+- bsc#965315 - VUL-0: CVE-2016-2270: xen: x86: inconsistent
+ cachability flags on guest mappings (XSA-154)
+ xsa154.patch
+- bsc#965317 - VUL-0: CVE-2016-2271: xen: VMX: guest user mode may
+ crash guest with non-canonical RIP (XSA-170)
+ xsa170.patch
+* Fri Feb 5 2016 carnold@suse.com
+- bsc#965269 - VUL-1: CVE-2015-8619: xen: stack based OOB write in
+ hmp_sendkey routine
+ CVE-2015-8619-qemuu-stack-based-OOB-write-in-hmp_sendkey-routine.patch
+* Thu Feb 4 2016 carnold@suse.com
+- bsc#965156 - VUL-0: CVE-2015-6855: xen: ide: divide by zero issue
+ CVE-2015-6855-qemuu-ide-divide-by-zero-issue.patch
+- bsc#965112 - VUL-0: CVE-2014-3640: xen: slirp: NULL pointer deref
+ in sosendto()
+ CVE-2014-3640-qemut-slirp-NULL-pointer-deref-in-sosendto.patch
+* Wed Feb 3 2016 carnold@suse.com
+- bsc#964947 - VUL-0: CVE-2015-5278: xen: Infinite loop in
+ ne2000_receive() function
+ CVE-2015-5278-qemut-Infinite-loop-in-ne2000_receive-function.patch
+- bsc#956832 - VUL-0: CVE-2015-8345: xen: qemu: net: eepro100:
+ infinite loop in processing command block list
+ CVE-2015-8345-qemuu-eepro100-infinite-loop-fix.patch
+ CVE-2015-8345-qemut-eepro100-infinite-loop-fix.patch
+* Tue Feb 2 2016 carnold@suse.com
+- bsc#964644 - VUL-0: CVE-2013-4533: xen pxa2xx: buffer overrun on
+ incoming migration
+ CVE-2013-4533-qemut-pxa2xx-buffer-overrun-on-incoming-migration.patch
+- bsc#964925 - VUL-0: CVE-2014-0222: xen: qcow1: validate L2 table
+ size to avoid integer overflows
+ CVE-2014-0222-blktap-qcow1-validate-l2-table-size.patch
+- Dropped CVE-2014-0222-qemuu-qcow1-validate-l2-table-size.patch
+* Mon Feb 1 2016 carnold@suse.com
+- bsc#964415 - VUL-1: CVE-2016-2198: xen: usb: ehci null pointer
+ dereference in ehci_caps_write
+ CVE-2016-2198-qemuu-usb-ehci-null-pointer-dereference-in-ehci_caps_write.patch
+- bsc#964452 - VUL-0: CVE-2013-4534: xen: openpic: buffer overrun
+ on incoming migration
+ CVE-2013-4534-qemut-openpic-buffer-overrun-on-incoming-migration.patch
+* Wed Jan 27 2016 carnold@suse.com
+- bsc#963783 - VUL-1: CVE-2016-1981: xen: net: e1000 infinite loop
+ in start_xmit and e1000_receive_iov routines
+ CVE-2016-1981-qemuu-e1000-eliminate-infinite-loops-on-out-of-bounds-transfer.patch
+ CVE-2016-1981-qemut-e1000-eliminate-infinite-loops-on-out-of-bounds-transfer.patch
+* Wed Jan 20 2016 carnold@suse.com
+- bsc#962758 - VUL-0: CVE-2013-4539: xen: tsc210x: buffer overrun
+ on invalid state load
+ CVE-2013-4539-qemut-tsc210x-fix-buffer-overrun-on-invalid-state-load.patch
+* Tue Jan 19 2016 carnold@suse.com
+- bsc#962632 - VUL-0: CVE-2015-1779: xen: vnc: insufficient
+ resource limiting in VNC websockets decoder
+ CVE-2015-1779-qemuu-limit-size-of-HTTP-headers-from-websockets-clients.patch
+ CVE-2015-1779-qemuu-incrementally-decode-websocket-frames.patch
+- bsc#962642 - VUL-0: CVE-2013-4537: xen: ssi-sd: buffer overrun on
+ invalid state load
+ CVE-2013-4537-qemut-ssi-sd-fix-buffer-overrun-on-invalid-state-load.patch
+- bsc#962627 - VUL-0: CVE-2014-7815: xen: vnc: insufficient
+ bits_per_pixel from the client sanitization
+ CVE-2014-7815-qemut-vnc-sanitize-bits_per_pixel-from-the-client.patch
+* Mon Jan 18 2016 carnold@suse.com
+- bsc#962335 - VUL-0: CVE-2013-4538: xen: ssd0323: fix buffer
+ overun on invalid state
+ CVE-2013-4538-qemut-ssd0323-fix-buffer-overun-on-invalid-state.patch
+- bsc#962360 - VUL-0: CVE-2015-7512: xen: net: pcnet: buffer
+ overflow in non-loopback mode
+ CVE-2015-7512-qemuu-net-pcnet-buffer-overflow-in-non-loopback-mode.patch
+ CVE-2015-7512-qemut-net-pcnet-buffer-overflow-in-non-loopback-mode.patch
+* Wed Jan 13 2016 carnold@suse.com
+- bsc#961692 - VUL-0: CVE-2016-1714: xen: nvram: OOB r/w access in
+ processing firmware configurations
+ CVE-2016-1714-qemuu-fw_cfg-add-check-to-validate-current-entry-value.patch
+ CVE-2016-1714-qemut-fw_cfg-add-check-to-validate-current-entry-value.patch
+* Mon Jan 11 2016 carnold@suse.com
+- bsc#961358 - VUL-0: CVE-2015-8613: xen: qemu: scsi: stack based
+ buffer overflow in megasas_ctrl_get_info
+ CVE-2015-8613-qemuu-scsi-initialise-info-object-with-appropriate-size.patch
+- bsc#961332 - VUL-0: CVE-2016-1568: xen: Qemu: ide: ahci
+ use-after-free vulnerability in aio port commands
+ CVE-2016-1568-qemuu-ide-ahci-reset-ncq-object-to-unused-on-error.patch
+* Thu Jan 7 2016 carnold@suse.com
+- bsc#959695 - missing docs for xen
+ xen.spec
+* Wed Jan 6 2016 carnold@suse.com
+- bsc#960862 - VUL-0: CVE-2016-1571: xen: VMX: intercept issue with
+ INVLPG on non-canonical address (XSA-168)
+ xsa168.patch
+- bsc#960861 - VUL-0: CVE-2016-1570: xen: PV superpage
+ functionality missing sanity checks (XSA-167)
+ xsa167.patch
+- bsc#960836 - VUL-0: CVE-2015-8744: xen: net: vmxnet3: incorrect
+ l2 header validation leads to a crash via assert(2) call
+ CVE-2015-8744-qemuu-net-vmxnet3-incorrect-l2-header-validation-leads-to-crash.patch
+* Tue Jan 5 2016 carnold@suse.com
+- bsc#960707 - VUL-0: CVE-2015-8745: xen: reading IMR registers
+ leads to a crash via assert(2) call
+ CVE-2015-8745-qemuu-net-vmxnet3-read-IMR-registers-instead-of-assert.patch
+- bsc#960726 - VUL-0: CVE-2015-8743: xen: ne2000: OOB memory access
+ in ioport r/w functions
+ CVE-2015-8743-qemuu-ne2000-OOB-memory-access-in-ioport-rw-functions.patch
+* Mon Jan 4 2016 carnold@suse.com
+- bsc#960093 - VUL-0: CVE-2015-8615: xen: x86: unintentional
+ logging upon guest changing callback method (XSA-169)
+ 5677f350-x86-make-debug-output-consistent-in-hvm_set_callback_via.patch
+* Mon Dec 21 2015 ohering@suse.de
+- Adjust xen-dom0-modules.service to run Before xenstored.service
+ instead of proc-xen.mount to workaround a bug in systemd "design"
+ (bnc#959845)
+* Wed Dec 16 2015 carnold@suse.com
+- bsc#959387 - VUL-0: CVE-2015-8568 CVE-2015-8567: xen: qemu: net:
+ vmxnet3: host memory leakage
+ CVE-2015-8568-qemuu-net-vmxnet3-avoid-memory-leakage-in-activate_device.patch
+* Mon Dec 14 2015 carnold@suse.com
+- bsc#957988 - VUL-0: CVE-2015-8550: xen: paravirtualized drivers
+ incautious about shared memory contents (XSA-155)
+ xsa155-xen-0001-xen-Add-RING_COPY_REQUEST.patch
+ xsa155-xen-0002-blktap2-Use-RING_COPY_REQUEST.patch
+ xsa155-xen-0003-libvchan-Read-prod-cons-only-once.patch
+ xsa155-qemuu-qdisk-double-access.patch
+ xsa155-qemut-qdisk-double-access.patch
+ xsa155-qemuu-xenfb.patch
+ xsa155-qemut-xenfb.patch
+- bsc#959006 - VUL-0: CVE-2015-8558: xen: qemu: usb: infinite loop
+ in ehci_advance_state results in DoS
+ CVE-2015-8558-qemuu-usb-infinite-loop-in-ehci_advance_state-results-in-DoS.patch
+- bsc#958918 - VUL-0: CVE-2015-7549: xen: qemu pci: null pointer
+ dereference issue
+ CVE-2015-7549-qemuu-pci-null-pointer-dereference-issue.patch
+- bsc#958493 - VUL-0: CVE-2015-8504: xen: qemu: ui: vnc: avoid
+ floating point exception
+ CVE-2015-8504-qemuu-vnc-avoid-floating-point-exception.patch
+ CVE-2015-8504-qemut-vnc-avoid-floating-point-exception.patch
+- bsc#958007 - VUL-0: CVE-2015-8554: xen: qemu-dm buffer overrun in
+ MSI-X handling (XSA-164)
+ xsa164.patch
+- bsc#958009 - VUL-0: CVE-2015-8555: xen: information leak in
+ legacy x86 FPU/XMM initialization (XSA-165)
+ xsa165.patch
+- bsc#958523 - VUL-0: xen: ioreq handling possibly susceptible to
+ multiple read issue (XSA-166)
+ xsa166.patch
+* Fri Nov 27 2015 carnold@suse.com
+- bsc#956832 - VUL-0: CVE-2015-8345: xen: qemu: net: eepro100:
+ infinite loop in processing command block list
+ CVE-2015-8345-qemuu-eepro100-infinite-loop-fix.patch
+ CVE-2015-8345-qemut-eepro100-infinite-loop-fix.patch
+- Upstream patches from Jan
+ 56377442-x86-PoD-Make-p2m_pod_empty_cache-restartable.patch
+ 5641ceec-x86-HVM-always-intercept-AC-and-DB.patch (Replaces CVE-2015-5307-xsa156.patch)
+ 5644b756-x86-HVM-don-t-inject-DB-with-error-code.patch
+ 56544a57-VMX-fix-adjust-trap-injection.patch
+ 56546ab2-sched-fix-insert_vcpu-locking.patch
+* Wed Nov 25 2015 carnold@suse.com
+- bsc#956592 - VUL-0: xen: virtual PMU is unsupported (XSA-163)
+ 56549f24-x86-vPMU-document-as-unsupported.patch
+- bsc#956408 - VUL-0: CVE-2015-8339, CVE-2015-8340: xen:
+ XENMEM_exchange error handling issues (XSA-159)
+ xsa159.patch
+- bsc#956409 - VUL-0: CVE-2015-8341: xen: libxl leak of pv kernel
+ and initrd on error (XSA-160)
+ xsa160.patch
+- bsc#956411 - VUL-0: CVE-2015-7504: xen: heap buffer overflow
+ vulnerability in pcnet emulator (XSA-162)
+ xsa162-qemuu.patch
+ xsa162-qemut.patch
+- bsc#947165 - VUL-0: CVE-2015-7311: xen: libxl fails to honour
+ readonly flag on disks with qemu-xen (xsa-142)
+ 5628fc67-libxl-No-emulated-disk-driver-for-xvdX-disk.patch
+ 5649bcbe-libxl-relax-readonly-check-introduced-by-XSA-142-fix.patch
+* Tue Nov 24 2015 carnold@suse.com
+- fate#315712: XEN: Use the PVOPS kernel
+ Turn off building the KMPs now that we are using the pvops kernel
+ xen.spec
+* Thu Nov 19 2015 carnold@suse.com
+- Upstream patches from Jan
+ 561bbc8b-VT-d-don-t-suppress-invalidation-address-write-when-it-is-zero.patch
+ 561d20a0-x86-hide-MWAITX-from-PV-domains.patch
+ 561e3283-x86-NUMA-fix-SRAT-table-processor-entry-parsing-and-consumption.patch
+ 5632118e-arm-Support-hypercall_create_continuation-for-multicall.patch
+ 56321222-arm-rate-limit-logging-from-unimplemented-PHYSDEVOP-and-HVMOP.patch
+ 56321249-arm-handle-races-between-relinquish_memory-and-free_domheap_pages.patch
+ 5632127b-x86-guard-against-undue-super-page-PTE-creation.patch
+ 5632129c-free-domain-s-vcpu-array.patch (Replaces CVE-2015-7969-xsa149.patch)
+ 563212c9-x86-PoD-Eager-sweep-for-zeroed-pages.patch
+ 563212e4-xenoprof-free-domain-s-vcpu-array.patch
+ 563212ff-x86-rate-limit-logging-in-do_xen-oprof-pmu-_op.patch
+ 56323737-libxl-adjust-PoD-target-by-memory-fudge-too.patch
+ 56377442-x86-PoD-Make-p2m_pod_empty_cache-restartable.patch
+ 5641ceec-x86-HVM-always-intercept-AC-and-DB.patch (Replaces CVE-2015-5307-xsa156.patch)
+ 5644b756-x86-HVM-don-t-inject-DB-with-error-code.patch
+- Dropped 55b0a2db-x86-MSI-track-guest-masking.patch
+* Thu Nov 19 2015 ohering@suse.de
+- Use upstream variants of block-iscsi and block-nbd
+* Thu Nov 19 2015 ohering@suse.de
+- Remove xenalyze.hg, its part of xen-4.6
+* Tue Nov 10 2015 carnold@suse.com
+- Update to Xen Version 4.6.0
+ xen-4.6.0-testing-src.tar.bz2
+ mini-os.tar.bz2
+ blktap2-no-uninit.patch
+ stubdom-have-iovec.patch
+- Renamed
+ xsa149.patch to CVE-2015-7969-xsa149.patch
+- Dropped patches now contained in tarball or unnecessary
+ xen-4.5.2-testing-src.tar.bz2
+ 54c2553c-grant-table-use-uint16_t-consistently-for-offset-and-length.patch
+ 54ca33bc-grant-table-refactor-grant-copy-to-reduce-duplicate-code.patch
+ 54ca340e-grant-table-defer-releasing-pages-acquired-in-a-grant-copy.patch
+ 54f4985f-libxl-fix-libvirtd-double-free.patch
+ 55103616-vm-assist-prepare-for-discontiguous-used-bit-numbers.patch
+ 551ac326-xentop-add-support-for-qdisk.patch
+ 552d0fd2-x86-hvm-don-t-include-asm-spinlock-h.patch
+ 552d0fe8-x86-mtrr-include-asm-atomic.h.patch
+ 552d293b-x86-vMSI-X-honor-all-mask-requests.patch
+ 552d2966-x86-vMSI-X-add-valid-bits-for-read-acceleration.patch
+ 5537a4d8-libxl-use-DEBUG-log-level-instead-of-INFO.patch
+ 5548e903-domctl-don-t-truncate-XEN_DOMCTL_max_mem-requests.patch
+ 5548e95d-x86-allow-to-suppress-M2P-user-mode-exposure.patch
+ 554c7aee-x86-provide-arch_fetch_and_add.patch
+ 554c7b00-arm-provide-arch_fetch_and_add.patch
+ 554cc211-libxl-add-qxl.patch 55534b0a-x86-provide-add_sized.patch
+ 55534b25-arm-provide-add_sized.patch
+ 5555a4f8-use-ticket-locks-for-spin-locks.patch
+ 5555a5b9-x86-arm-remove-asm-spinlock-h.patch
+ 5555a8ec-introduce-non-contiguous-allocation.patch
+ 556d973f-unmodified-drivers-tolerate-IRQF_DISABLED-being-undefined.patch
+ 5576f143-x86-adjust-PV-I-O-emulation-functions-types.patch
+ 55795a52-x86-vMSI-X-support-qword-MMIO-access.patch
+ 557eb55f-gnttab-per-active-entry-locking.patch
+ 557eb5b6-gnttab-introduce-maptrack-lock.patch
+ 557eb620-gnttab-make-the-grant-table-lock-a-read-write-lock.patch
+ 557ffab8-evtchn-factor-out-freeing-an-event-channel.patch
+ 5582bf43-evtchn-simplify-port_is_valid.patch
+ 5582bf81-evtchn-remove-the-locking-when-unmasking-an-event-channel.patch
+ 5583d9c5-x86-MSI-X-cleanup.patch
+ 5583da09-x86-MSI-track-host-and-guest-masking-separately.patch
+ 5583da64-gnttab-use-per-VCPU-maptrack-free-lists.patch
+ 5583da8c-gnttab-steal-maptrack-entries-from-other-VCPUs.patch
+ 5587d711-evtchn-clear-xen_consumer-when-clearing-state.patch
+ 5587d779-evtchn-defer-freeing-struct-evtchn-s-until-evtchn_destroy_final.patch
+ 5587d7b7-evtchn-use-a-per-event-channel-lock-for-sending-events.patch
+ 5587d7e2-evtchn-pad-struct-evtchn-to-64-bytes.patch
+ 55b0a218-x86-PCI-CFG-write-intercept.patch
+ 55b0a255-x86-MSI-X-maskall.patch 55b0a283-x86-MSI-X-teardown.patch
+ 55b0a2ab-x86-MSI-X-enable.patch blktapctrl-close-fifos.patch
+ blktapctrl-default-to-ioemu.patch blktapctrl-disable-debug-printf.patch
+ blktap-no-uninit.patch blktap-pv-cdrom.patch build-tapdisk-ioemu.patch
+ ioemu-bdrv-open-CACHE_WB.patch ioemu-blktap-barriers.patch
+ ioemu-blktap-fv-init.patch ioemu-blktap-image-format.patch
+ ioemu-blktap-zero-size.patch libxl.set-migration-constraints-from-cmdline.patch
+ local_attach_support_for_phy.patch pci-attach-fix.patch
+ qemu-xen-upstream-megasas-buildtime.patch tapdisk-ioemu-logfile.patch
+ tapdisk-ioemu-shutdown-fix.patch udev-rules.patch xen.build-compare.ipxe.patch
+ xen.build-compare.mini-os.patch xen.build-compare.smbiosdate.patch
+ xen.build-compare.vgabios.patch xen.build-compare.xen_compile_h.patch
+ xl-coredump-file-location.patch
+* Thu Nov 5 2015 carnold@suse.com
+- bsc#954405 - VUL-0: CVE-2015-8104: Xen: guest to host DoS by
+ triggering an infinite loop in microcode via #DB exception
+- bsc#954018 - VUL-0: CVE-2015-5307: xen: x86: CPU lockup during
+ fault delivery (XSA-156)
+ CVE-2015-5307-xsa156.patch
+* Wed Nov 4 2015 carnold@suse.com
+- Update to Xen 4.5.2
+ xen-4.5.2-testing-src.tar.bz2
+- Drop the following
+ xen-4.5.1-testing-src.tar.bz2
+ 552d0f49-x86-traps-identify-the-vcpu-in-context-when-dumping-regs.patch
+ 5576f178-kexec-add-more-pages-to-v1-environment.patch
+ 55780be1-x86-EFI-adjust-EFI_MEMORY_WP-handling-for-spec-version-2.5.patch
+ 558bfaa0-x86-traps-avoid-using-current-too-early.patch
+ 5592a116-nested-EPT-fix-the-handling-of-nested-EPT.patch
+ 559b9dd6-x86-p2m-ept-don-t-unmap-in-use-EPT-pagetable.patch
+ 559bc633-x86-cpupool-clear-proper-cpu_valid-bit-on-CPU-teardown.patch
+ 559bc64e-credit1-properly-deal-with-CPUs-not-in-any-pool.patch
+ 559bc87f-x86-hvmloader-avoid-data-corruption-with-xenstore-rw.patch
+ 559bdde5-pull-in-latest-linux-earlycpio.patch
+ 55a62eb0-xl-correct-handling-of-extra_config-in-main_cpupoolcreate.patch
+ 55a66a1e-make-rangeset_report_ranges-report-all-ranges.patch
+ 55a77e4f-dmar-device-scope-mem-leak-fix.patch
+ 55c1d83d-x86-gdt-Drop-write-only-xalloc-d-array.patch
+ 55c3232b-x86-mm-Make-hap-shadow-teardown-preemptible.patch
+ 55dc78e9-x86-amd_ucode-skip-updates-for-final-levels.patch
+ 55df2f76-IOMMU-skip-domains-without-page-tables-when-dumping.patch
+ 55e43fd8-x86-NUMA-fix-setup_node.patch
+ 55e43ff8-x86-NUMA-don-t-account-hotplug-regions.patch
+ 55e593f1-x86-NUMA-make-init_node_heap-respect-Xen-heap-limit.patch
+ 55f2e438-x86-hvm-fix-saved-pmtimer-and-hpet-values.patch
+ 55f9345b-x86-MSI-fail-if-no-hardware-support.patch
+ 5604f2e6-vt-d-fix-IM-bit-mask-and-unmask-of-FECTL_REG.patch
+ 560a4af9-x86-EPT-tighten-conditions-of-IOMMU-mapping-updates.patch
+ 560a7c36-x86-p2m-pt-delay-freeing-of-intermediate-page-tables.patch
+ 560a7c53-x86-p2m-pt-ignore-pt-share-flag-for-shadow-mode-guests.patch
+ 560bd926-credit1-fix-tickling-when-it-happens-from-a-remote-pCPU.patch
+ 560e6d34-x86-p2m-pt-tighten-conditions-of-IOMMU-mapping-updates.patch
+ 561bbc8b-VT-d-don-t-suppress-invalidation-address-write-when-0.patch
+ 561d20a0-x86-hide-MWAITX-from-PV-domains.patch
+ 561e3283-x86-NUMA-fix-SRAT-table-processor-entry-handling.patch
+ 563212c9-x86-PoD-Eager-sweep-for-zeroed-pages.patch
+ CVE-2015-4106-xsa131-9.patch CVE-2015-3259-xsa137.patch
+ CVE-2015-7311-xsa142.patch CVE-2015-7835-xsa148.patch
+ xsa139-qemuu.patch xsa140-qemuu-1.patch xsa140-qemuu-2.patch
+ xsa140-qemuu-3.patch xsa140-qemuu-4.patch xsa140-qemuu-5.patch
+ xsa140-qemuu-6.patch xsa140-qemuu-7.patch xsa140-qemut-1.patch
+ xsa140-qemut-2.patch xsa140-qemut-3.patch xsa140-qemut-4.patch
+ xsa140-qemut-5.patch xsa140-qemut-6.patch xsa140-qemut-7.patch
+ xsa151.patch xsa152.patch xsa153-libxl.patch
+ CVE-2015-5154-qemuu-check-array-bounds-before-writing-to-io_buffer.patch
+ CVE-2015-5154-qemuu-fix-START-STOP-UNIT-command-completion.patch
+ CVE-2015-5154-qemuu-clear-DRQ-after-handling-all-expected-accesses.patch
+ CVE-2015-5154-qemut-check-array-bounds-before-writing-to-io_buffer.patch
+ CVE-2015-5154-qemut-clear-DRQ-after-handling-all-expected-accesses.patch
+ CVE-2015-6815-qemuu-e1000-fix-infinite-loop.patch
+ CVE-2015-5239-qemuu-limit-client_cut_text-msg-payload-size.patch
+ CVE-2015-5239-qemut-limit-client_cut_text-msg-payload-size.patch"
+* Mon Nov 2 2015 carnold@suse.com
+- bsc#950704 - CVE-2015-7970 VUL-1: xen: x86: Long latency
+ populate-on-demand operation is not preemptible (XSA-150)
+ 563212c9-x86-PoD-Eager-sweep-for-zeroed-pages.patch
+* Wed Oct 28 2015 carnold@suse.com
+- Upstream patches from Jan
+ 5604f239-x86-PV-properly-populate-descriptor-tables.patch
+ 561bbc8b-VT-d-don-t-suppress-invalidation-address-write-when-0.patch
+ 561d2046-VT-d-use-proper-error-codes-in-iommu_enable_x2apic_IR.patch
+ 561d20a0-x86-hide-MWAITX-from-PV-domains.patch
+ 561e3283-x86-NUMA-fix-SRAT-table-processor-entry-handling.patch
+* Fri Oct 23 2015 carnold@suse.com
+- bsc#951845 - VUL-0: CVE-2015-7972: xen: x86: populate-on-demand
+ balloon size inaccuracy can crash guests (XSA-153)
+ xsa153-libxl.patch
+* Fri Oct 16 2015 carnold@suse.com
+- bsc#950703 - VUL-1: CVE-2015-7969: xen: leak of main per-domain
+ vcpu pointer array (DoS) (XSA-149)
+ xsa149.patch
+- bsc#950705 - VUL-1: CVE-2015-7969: xen: x86: leak of per-domain
+ profiling-related vcpu pointer array (DoS) (XSA-151)
+ xsa151.patch
+- bsc#950706 - VUL-0: CVE-2015-7971: xen: x86: some pmu and
+ profiling hypercalls log without rate limiting (XSA-152)
+ xsa152.patch
+- Dropped
+ 55dc7937-x86-IO-APIC-don-t-create-pIRQ-mapping-from-masked-RTE.patch
+ 5604f239-x86-PV-properly-populate-descriptor-tables.patch
+* Thu Oct 15 2015 carnold@suse.com
+- bsc#932267 - VUL-1: CVE-2015-4037: qemu,kvm,xen: insecure
+ temporary file use in /net/slirp.c
+ CVE-2015-4037-qemuu-smb-config-dir-name.patch
+ CVE-2015-4037-qemut-smb-config-dir-name.patch
+- bsc#877642 - VUL-0: CVE-2014-0222: qemu: qcow1: validate L2 table
+ size to avoid integer overflows
+ CVE-2014-0222-qemuu-qcow1-validate-l2-table-size.patch
+ CVE-2014-0222-qemut-qcow1-validate-l2-table-size.patch
+* Wed Oct 14 2015 carnold@suse.com
+- bsc#950367 - VUL-0: CVE-2015-7835: xen: x86: Uncontrolled
+ creation of large page mappings by PV guests (XSA-148)
+ CVE-2015-7835-xsa148.patch
+* Tue Oct 6 2015 jfehlig@suse.com
+- bsc#949138 - Setting vcpu affinity under Xen causes libvirtd
+ abort
+ 54f4985f-libxl-fix-libvirtd-double-free.patch
+* Tue Oct 6 2015 carnold@suse.com
+- bsc#949046 - Increase %%suse_version in SP1 to 1316
+ xen.spec
+- Update README.SUSE detailing dom0 ballooning recommendations
+* Mon Oct 5 2015 carnold@suse.com
+- bsc#945167 - Running command ’ xl pci-assignable-add 03:10.1’
+ secondly show errors
+ 55f7f9d2-libxl-slightly-refine-pci-assignable-add-remove-handling.patch
+- Upstream patches from Jan
+ 55f2e438-x86-hvm-fix-saved-pmtimer-and-hpet-values.patch
+ 55f9345b-x86-MSI-fail-if-no-hardware-support.patch
+ 5604f239-x86-PV-properly-populate-descriptor-tables.patch
+ 5604f2e6-vt-d-fix-IM-bit-mask-and-unmask-of-FECTL_REG.patch
+ 560a4af9-x86-EPT-tighten-conditions-of-IOMMU-mapping-updates.patch
+ 560a7c36-x86-p2m-pt-delay-freeing-of-intermediate-page-tables.patch
+ 560a7c53-x86-p2m-pt-ignore-pt-share-flag-for-shadow-mode-guests.patch
+ 560bd926-credit1-fix-tickling-when-it-happens-from-a-remote-pCPU.patch
+ 560e6d34-x86-p2m-pt-tighten-conditions-of-IOMMU-mapping-updates.patch
+* Fri Oct 2 2015 mlatimer@suse.com
+- bsc#941074 - VmError: Device 51728 (vbd) could not be connected.
+ Hotplug scripts not working.
+ hotplug-Linux-block-performance-fix.patch
+* Wed Sep 23 2015 carnold@suse.com
+- bsc#947165 - VUL-0: CVE-2015-7311: xen: libxl fails to honour
+ readonly flag on disks with qemu-xen (xsa-142)
+ CVE-2015-7311-xsa142.patch
+* Wed Sep 16 2015 cyliu@suse.com
+- bsc#945165 - Xl pci-attach show error with kernel of SLES 12 sp1
+ pci-attach-fix.patch
+* Tue Sep 15 2015 jfehlig@suse.com
+- bsc#945164 - Xl destroy show error with kernel of SLES 12 sp1
+ 5537a4d8-libxl-use-DEBUG-log-level-instead-of-INFO.patch
+* Wed Sep 9 2015 carnold@suse.com
+- Upstream patches from Jan
+ 55dc78e9-x86-amd_ucode-skip-updates-for-final-levels.patch
+ 55dc7937-x86-IO-APIC-don-t-create-pIRQ-mapping-from-masked-RTE.patch
+ 55df2f76-IOMMU-skip-domains-without-page-tables-when-dumping.patch
+ 55e43fd8-x86-NUMA-fix-setup_node.patch
+ 55e43ff8-x86-NUMA-don-t-account-hotplug-regions.patch
+ 55e593f1-x86-NUMA-make-init_node_heap-respect-Xen-heap-limit.patch
+ 54c2553c-grant-table-use-uint16_t-consistently-for-offset-and-length.patch
+ 54ca33bc-grant-table-refactor-grant-copy-to-reduce-duplicate-code.patch
+ 54ca340e-grant-table-defer-releasing-pages-acquired-in-a-grant-copy.patch
+* Tue Sep 8 2015 carnold@suse.com
+- bsc#944463 - VUL-0: CVE-2015-5239: qemu-kvm: Integer overflow in
+ vnc_client_read() and protocol_client_msg()
+ CVE-2015-5239-qemuu-limit-client_cut_text-msg-payload-size.patch
+ CVE-2015-5239-qemut-limit-client_cut_text-msg-payload-size.patch
+- bsc#944697 - VUL-1: CVE-2015-6815: qemu: net: e1000: infinite
+ loop issue
+ CVE-2015-6815-qemuu-e1000-fix-infinite-loop.patch
+ CVE-2015-6815-qemut-e1000-fix-infinite-loop.patch
+* Wed Aug 26 2015 carnold@suse.com
+- bnc#935634 - VUL-0: CVE-2015-3259: xen: XSA-137: xl command line
+ config handling stack overflow
+ 55a62eb0-xl-correct-handling-of-extra_config-in-main_cpupoolcreate.patch
+* Tue Aug 18 2015 carnold@suse.com
+- bsc#907514 - Bus fatal error & sles12 sudden reboot has been
+ observed
+- bsc#910258 - SLES12 Xen host crashes with FATAL NMI after
+ shutdown of guest with VT-d NIC
+- bsc#918984 - Bus fatal error & sles11-SP4 sudden reboot has been
+ observed
+- bsc#923967 - Partner-L3: Bus fatal error & sles11-SP3 sudden
+ reboot has been observed
+ 552d293b-x86-vMSI-X-honor-all-mask-requests.patch
+ 552d2966-x86-vMSI-X-add-valid-bits-for-read-acceleration.patch
+ 5576f143-x86-adjust-PV-I-O-emulation-functions-types.patch
+ 55795a52-x86-vMSI-X-support-qword-MMIO-access.patch
+ 5583d9c5-x86-MSI-X-cleanup.patch
+ 5583da09-x86-MSI-track-host-and-guest-masking-separately.patch
+ 55b0a218-x86-PCI-CFG-write-intercept.patch
+ 55b0a255-x86-MSI-X-maskall.patch
+ 55b0a283-x86-MSI-X-teardown.patch
+ 55b0a2ab-x86-MSI-X-enable.patch
+ 55b0a2db-x86-MSI-track-guest-masking.patch
+- Upstream patches from Jan
+ 552d0f49-x86-traps-identify-the-vcpu-in-context-when-dumping-regs.patch
+ 559bc633-x86-cpupool-clear-proper-cpu_valid-bit-on-CPU-teardown.patch
+ 559bc64e-credit1-properly-deal-with-CPUs-not-in-any-pool.patch
+ 559bc87f-x86-hvmloader-avoid-data-corruption-with-xenstore-rw.patch
+ 55a66a1e-make-rangeset_report_ranges-report-all-ranges.patch
+ 55a77e4f-dmar-device-scope-mem-leak-fix.patch
+ 55c1d83d-x86-gdt-Drop-write-only-xalloc-d-array.patch
+ 55c3232b-x86-mm-Make-hap-shadow-teardown-preemptible.patch
+- Dropped for upstream version
+ x86-MSI-mask.patch
+ x86-MSI-pv-unmask.patch
+ x86-MSI-X-enable.patch
+ x86-MSI-X-maskall.patch
+ x86-MSI-X-teardown.patch
+ x86-pci_cfg_okay.patch
+ x86-PCI-CFG-write-intercept.patch
+* Tue Jul 28 2015 carnold@suse.com
+- bsc#939712 - VUL-0: XSA-140: QEMU leak of uninitialized heap
+ memory in rtl8139 device model
+ xsa140-qemuu-1.patch
+ xsa140-qemuu-2.patch
+ xsa140-qemuu-3.patch
+ xsa140-qemuu-4.patch
+ xsa140-qemuu-5.patch
+ xsa140-qemuu-6.patch
+ xsa140-qemuu-7.patch
+ xsa140-qemut-1.patch
+ xsa140-qemut-2.patch
+ xsa140-qemut-3.patch
+ xsa140-qemut-4.patch
+ xsa140-qemut-5.patch
+ xsa140-qemut-6.patch
+ xsa140-qemut-7.patch
+- bsc#939709 - VUL-0: XSA-139: xen: Use after free in QEMU/Xen
+ block unplug protocol
+ xsa139-qemuu.patch
+* Tue Jul 21 2015 ohering@suse.de
+- bsc#937371 - xen vm's running after reboot
+ xendomains-libvirtd-conflict.patch
+* Thu Jul 16 2015 carnold@suse.com
+- bsc#938344 - VUL-0: CVE-2015-5154: qemu,kvm,xen: host code
+ execution via IDE subsystem CD-ROM
+ CVE-2015-5154-qemuu-check-array-bounds-before-writing-to-io_buffer.patch
+ CVE-2015-5154-qemut-check-array-bounds-before-writing-to-io_buffer.patch
+ CVE-2015-5154-qemuu-fix-START-STOP-UNIT-command-completion.patch
+ CVE-2015-5154-qemut-fix-START-STOP-UNIT-command-completion.patch
+ CVE-2015-5154-qemuu-clear-DRQ-after-handling-all-expected-accesses.patch
+ CVE-2015-5154-qemut-clear-DRQ-after-handling-all-expected-accesses.patch
+* Wed Jul 15 2015 ohering@suse.de
+- Remove xendomains.service from systemd preset file because it
+ conflicts with libvirt-guests.service (bnc#937371)
+ Its up to the admin to run systemctl enable xendomains.service
+* Wed Jul 8 2015 carnold@suse.com
+- bnc#935634 - VUL-0: CVE-2015-3259: xen: XSA-137: xl command line
+ config handling stack overflow
+ CVE-2015-3259-xsa137.patch
+- Upstream patches from Jan
+ 558bfaa0-x86-traps-avoid-using-current-too-early.patch
+ 5592a116-nested-EPT-fix-the-handling-of-nested-EPT.patch
+ 559b9dd6-x86-p2m-ept-don-t-unmap-in-use-EPT-pagetable.patch
+ 559bdde5-pull-in-latest-linux-earlycpio.patch
+- Upstream patches from Jan pending review
+ 552d0fd2-x86-hvm-don-t-include-asm-spinlock-h.patch
+ 552d0fe8-x86-mtrr-include-asm-atomic.h.patch
+ 552d293b-x86-vMSI-X-honor-all-mask-requests.patch
+ 552d2966-x86-vMSI-X-add-valid-bits-for-read-acceleration.patch
+ 554c7aee-x86-provide-arch_fetch_and_add.patch
+ 554c7b00-arm-provide-arch_fetch_and_add.patch
+ 55534b0a-x86-provide-add_sized.patch
+ 55534b25-arm-provide-add_sized.patch
+ 5555a4f8-use-ticket-locks-for-spin-locks.patch
+ 5555a5b9-x86-arm-remove-asm-spinlock-h.patch
+ 5555a8ec-introduce-non-contiguous-allocation.patch
+ 55795a52-x86-vMSI-X-support-qword-MMIO-access.patch
+ 557eb55f-gnttab-per-active-entry-locking.patch
+ 557eb5b6-gnttab-introduce-maptrack-lock.patch
+ 557eb620-gnttab-make-the-grant-table-lock-a-read-write-lock.patch
+ 557ffab8-evtchn-factor-out-freeing-an-event-channel.patch
+ 5582bf43-evtchn-simplify-port_is_valid.patch
+ 5582bf81-evtchn-remove-the-locking-when-unmasking-an-event-channel.patch
+ 5583d9c5-x86-MSI-X-cleanup.patch
+ 5583da09-x86-MSI-track-host-and-guest-masking-separately.patch
+ 5583da64-gnttab-use-per-VCPU-maptrack-free-lists.patch
+ 5583da8c-gnttab-steal-maptrack-entries-from-other-VCPUs.patch
+ 5587d711-evtchn-clear-xen_consumer-when-clearing-state.patch
+ 5587d779-evtchn-defer-freeing-struct-evtchn-s-until-evtchn_destroy_final.patch
+ 5587d7b7-evtchn-use-a-per-event-channel-lock-for-sending-events.patch
+ 5587d7e2-evtchn-pad-struct-evtchn-to-64-bytes.patch
+ x86-MSI-pv-unmask.patch
+ x86-pci_cfg_okay.patch
+ x86-PCI-CFG-write-intercept.patch
+ x86-MSI-X-maskall.patch
+ x86-MSI-X-teardown.patch
+ x86-MSI-X-enable.patch
+ x86-MSI-mask.patch
+* Tue Jul 7 2015 ohering@suse.de
+- Adjust more places to use br0 instead of xenbr0
+* Tue Jun 30 2015 carnold@suse.com
+- bnc#936516 - xen fails to build with kernel update(4.1.0 from
+ stable)
+ 556d973f-unmodified-drivers-tolerate-IRQF_DISABLED-being-undefined.patch
+* Fri Jun 26 2015 carnold@suse.com
+- Update to Xen Version 4.5.1 FCS (fate#315675)
+ xen-4.5.1-testing-src.tar.bz2
+- Dropped patches now contained in tarball
+ 556c2cf2-x86-don-t-crash-mapping-a-page-using-EFI-rt-page-tables.patch
+ 556d9718-efi-fix-allocation-problems-if-ExitBootServices-fails.patch
+ 556eabf7-x86-apic-Disable-the-LAPIC-later-in-smp_send_stop.patch
+ 556eac15-x86-crash-don-t-use-set_fixmap-in-the-crash-path.patch
+ 55780aaa-efi-avoid-calling-boot-services-after-ExitBootServices.patch
+ 55780aff-x86-EFI-fix-EFI_MEMORY_WP-handling.patch
+ 55780b43-EFI-early-add-mapbs-to-map-EfiBootServices-Code-Data.patch
+ 55780b97-EFI-support-default-attributes-to-map-Runtime-service-areas.patch
+ 5513b458-allow-reboot-overrides-when-running-under-EFI.patch
+ 5513b4d1-dont-apply-reboot-quirks-if-reboot-set-by-user.patch
+ 5576f178-kexec-add-more-pages-to-v1-environment.patch
+ 5535f633-dont-leak-hypervisor-stack-to-toolstacks.patch
+ CVE-2015-3456-xsa133-qemuu.patch
+ CVE-2015-3456-xsa133-qemut.patch
+ qemu-MSI-X-enable-maskall.patch
+ qemu-MSI-X-latch-writes.patch
+ x86-MSI-X-guest-mask.patch
+* Thu Jun 25 2015 jfehlig@suse.com
+- Replace 5124efbe-add-qxl-support.patch with the variant that
+ finally made it upstream, 554cc211-libxl-add-qxl.patch
+* Wed Jun 10 2015 carnold@suse.com
+- bsc#931627 - VUL-0: CVE-2015-4105: XSA-130: xen: Guest triggerable
+ qemu MSI-X pass-through error messages
+ qemu-MSI-X-latch-writes.patch
+- bsc#907514 - Bus fatal error & sles12 sudden reboot has been observed
+- bsc#910258 - SLES12 Xen host crashes with FATAL NMI after shutdown
+ of guest with VT-d NIC
+- bsc#918984 - Bus fatal error & sles11-SP4 sudden reboot has been
+ observed
+- bsc#923967 - Partner-L3: Bus fatal error & sles11-SP3 sudden reboot
+ has been observed
+ x86-MSI-X-teardown.patch
+ x86-MSI-X-enable.patch
+ x86-MSI-X-guest-mask.patch
+ x86-MSI-X-maskall.patch
+ qemu-MSI-X-enable-maskall.patch
+- Upstream patches from Jan
+ 55780aaa-efi-avoid-calling-boot-services-after-ExitBootServices.patch
+ 55780aff-x86-EFI-fix-EFI_MEMORY_WP-handling.patch
+ 55780b43-EFI-early-add-mapbs-to-map-EfiBootServices-Code-Data.patch
+ 55780b97-EFI-support-default-attributes-to-map-Runtime-service-areas.patch
+ 55780be1-x86-EFI-adjust-EFI_MEMORY_WP-handling-for-spec-version-2.5.patch
+ 55103616-vm-assist-prepare-for-discontiguous-used-bit-numbers.patch
+ 5548e95d-x86-allow-to-suppress-M2P-user-mode-exposure.patch
+- Dropped the following patches now contained in the tarball
+ xen-no-array-bounds.patch CVE-2015-4103-xsa128.patch
+ CVE-2015-4104-xsa129.patch CVE-2015-4105-xsa130.patch
+ CVE-2015-4106-xsa131-1.patch CVE-2015-4106-xsa131-2.patch
+ CVE-2015-4106-xsa131-3.patch CVE-2015-4106-xsa131-4.patch
+ CVE-2015-4106-xsa131-5.patch CVE-2015-4106-xsa131-6.patch
+ CVE-2015-4106-xsa131-7.patch CVE-2015-4106-xsa131-8.patch
+* Wed Jun 3 2015 carnold@suse.com
+- Update to Xen 4.5.1 RC2
+- bsc#931628 - VUL-0: CVE-2015-4106: XSA-131: xen: Unmediated PCI
+ register access in qemu
+ CVE-2015-4106-xsa131-1.patch
+ CVE-2015-4106-xsa131-2.patch
+ CVE-2015-4106-xsa131-3.patch
+ CVE-2015-4106-xsa131-4.patch
+ CVE-2015-4106-xsa131-5.patch
+ CVE-2015-4106-xsa131-6.patch
+ CVE-2015-4106-xsa131-7.patch
+ CVE-2015-4106-xsa131-8.patch
+ CVE-2015-4106-xsa131-9.patch
+- bsc#931627 - VUL-0: CVE-2015-4105: XSA-130: xen: Guest triggerable
+ qemu MSI-X pass-through error messages
+ CVE-2015-4105-xsa130.patch
+- bsc#931626 - VUL-0: CVE-2015-4104: XSA-129: xen: PCI MSI mask
+ bits inadvertently exposed to guests
+ CVE-2015-4104-xsa129.patch
+- bsc#931625 - VUL-0: CVE-2015-4103: XSA-128: xen: Potential
+ unintended writes to host MSI message data field via qemu
+ CVE-2015-4103-xsa128.patch
+- Upstream patches from Jan
+ 5548e903-domctl-don-t-truncate-XEN_DOMCTL_max_mem-requests.patch
+ 556c2cf2-x86-don-t-crash-mapping-a-page-using-EFI-rt-page-tables.patch
+ 556d9718-efi-fix-allocation-problems-if-ExitBootServices-fails.patch
+ 556d973f-unmodified-drivers-tolerate-IRQF_DISABLED-being-undefined.patch
+ 556eabf7-x86-apic-Disable-the-LAPIC-later-in-smp_send_stop.patch
+ 556eac15-x86-crash-don-t-use-set_fixmap-in-the-crash-path.patch
+* Wed May 20 2015 ohering@suse.de
+- Add DefaultDependencies=no to xen-dom0-modules.service because
+ it has to run before proc-xen.mount
+* Tue May 19 2015 carnold@suse.com
+- Update to Xen 4.5.1 RC1
+* Fri May 15 2015 ohering@suse.de
+- Update blktap-no-uninit.patch to work with gcc-4.5
+* Mon May 11 2015 carnold@suse.com
+- bsc#927967 - VUL-0: CVE-2015-3340: xen: Information leak through
+ XEN_DOMCTL_gettscinfo (XSA-132)
+ 5535f633-dont-leak-hypervisor-stack-to-toolstacks.patch
+* Thu May 7 2015 carnold@suse.com
+- bnc#929339 - VUL-0: CVE-2015-3456: qemu kvm xen: VENOM qemu
+ floppy driver host code execution
+ CVE-2015-3456-xsa133-qemuu.patch
+ CVE-2015-3456-xsa133-qemut.patch
+* Mon Apr 27 2015 carnold@suse.com
+- bsc#928783 - Reboot failure; Request backport of upstream Xen
+ patch to 4.5.0, or update pkgs to 4.5.1
+ 5513b458-allow-reboot-overrides-when-running-under-EFI.patch
+ 5513b4d1-dont-apply-reboot-quirks-if-reboot-set-by-user.patch
+* Tue Apr 21 2015 ohering@suse.de
+- bnc#927750 - Avoid errors reported by system-modules-load.service
+* Wed Apr 8 2015 rguenther@suse.com
+- Add xen-no-array-bounds.patch and blktap-no-uninit.patch to selectively
+ turn errors back to warnings to fix build with GCC 5.
+- Amend xen.stubdom.newlib.patch to pull in declaration of strcmp to
+ avoid implicit-fortify-decl rpmlint error.
+- Fix quoting of __SMBIOS_DATE__ in xen.build-compare.smbiosdate.patch.
+* Fri Apr 3 2015 carnold@suse.com
+- xentop: Fix memory leak on read failure
+ 551ac326-xentop-add-support-for-qdisk.patch
+* Tue Mar 31 2015 carnold@suse.com
+- Dropped xentop-add-support-for-qdisk.patch in favor of upstream
+ version
+ 551ac326-xentop-add-support-for-qdisk.patch
+* Mon Mar 16 2015 carnold@suse.com
+- Enable spice support in qemu for x86_64
+ 5124efbe-add-qxl-support.patch
+ qemu-xen-enable-spice-support.patch
+* Thu Mar 12 2015 rguenther@suse.com
+- Add xen-c99-fix.patch to remove pointless inline specifier on
+ function declarations which break build with a C99 compiler which
+ GCC 5 is by default. (bsc#921994)
+- Add ipxe-no-error-logical-not-parentheses.patch to supply
+ - Wno-logical-not-parentheses to the ipxe build to fix
+ breakage with GCC 5. (bsc#921994)
+* Wed Mar 11 2015 carnold@suse.com
+- bnc#921842 - Xentop doesn't display disk statistics for VMs using
+ qdisks
+ xentop-add-support-for-qdisk.patch
+* Tue Feb 24 2015 meissner@suse.com
+- Disable the PIE enablement done for Factory, as the XEN code
+ is not buildable with PIE and it does not make much sense
+ to build the hypervisor code with it.
+* Tue Feb 17 2015 carnold@suse.com
+- bnc#918169 - XEN fixes required to work with Kernel 3.19.0
+ xen.spec
+* Tue Feb 10 2015 ohering@suse.de
+- Package xen.changes because its referenced in xen.spec
+* Wed Jan 28 2015 carnold@suse.com
+- Update seabios to rel-1.7.5 which is the correct version for
+ Xen 4.5
+* Wed Jan 14 2015 carnold@suse.com
+- Update to Xen 4.5.0 FCS
+* Wed Jan 14 2015 ohering@suse.de
+- Include systemd presets in 13.2 and older
+* Mon Jan 12 2015 ohering@suse.de
+- bnc#897352 - Enable xencommons/xendomains only during fresh install
+- disable restart on upgrade because the toolstack is not restartable
+* Tue Dec 16 2014 ohering@suse.de
+- adjust seabios, vgabios, stubdom and hvmloader build to reduce
+ build-compare noise
+ xen.build-compare.mini-os.patch
+ xen.build-compare.smbiosdate.patch
+ xen.build-compare.ipxe.patch
+ xen.build-compare.vgabios.patch
+ xen.build-compare.seabios.patch
+ xen.build-compare.man.patch
+* Mon Dec 15 2014 carnold@suse.com
+- Update to Xen 4.5.0 RC4
+* Wed Dec 10 2014 ohering@suse.de
+- Remove xend specific if-up scripts
+ Recording bridge slaves is a generic task which should be handled
+ by generic network code
+* Tue Dec 9 2014 ohering@suse.de
+- Use systemd features from upstream
+ requires updated systemd-presets-branding package
+* Thu Dec 4 2014 carnold@suse.com
+- Update to Xen 4.5.0 RC3
+* Thu Dec 4 2014 ohering@suse.de
+- Set GIT, WGET and FTP to /bin/false
+* Wed Dec 3 2014 ohering@suse.de
+- Use new configure features instead of make variables
+ xen.stubdom.newlib.patch
+* Wed Nov 19 2014 ohering@suse.de
+- adjust docs and xen build to reduce build-compare noise
+ xen.build-compare.doc_html.patch
+ xen.build-compare.xen_compile_h.patch
+* Mon Nov 17 2014 ohering@suse.de
+- Drop trailing B_CNT from XEN_EXTRAVERSION to reduce build-compare noise
+* Tue Nov 11 2014 carnold@suse.com
+- Update to Xen 4.5.0 RC2
+* Thu Oct 23 2014 carnold@suse.com
+- Update to Xen 4.5.0 RC1
+ xen-4.5.0-testing-src.tar.bz2
+- Remove all patches now contained in the new tarball
+ xen-4.4.1-testing-src.tar.bz2
+ 5315a3bb-x86-don-t-propagate-acpi_skip_timer_override-do-Dom0.patch
+ 5315a43a-x86-ACPI-also-print-address-space-for-PM1x-fields.patch
+ 53299d8f-xenconsole-reset-tty-on-failure.patch
+ 53299d8f-xenconsole-tolerate-tty-errors.patch
+ 5346a7a0-x86-AMD-support-further-feature-masking-MSRs.patch
+ 53563ea4-x86-MSI-drop-workaround-for-insecure-Dom0-kernels.patch
+ 537c9c77-libxc-check-return-values-on-mmap-and-madvise.patch
+ 537cd0b0-hvmloader-also-cover-PCI-MMIO-ranges-above-4G-with-UC-MTRR-ranges.patch
+ 537cd0cc-hvmloader-PA-range-0xfc000000-0xffffffff-should-be-UC.patch
+ 539ebe62-x86-EFI-improve-boot-time-diagnostics.patch
+ 53aac342-x86-HVM-consolidate-and-sanitize-CR4-guest-reserved-bit-determination.patch
+ 53c9151b-Fix-xl-vncviewer-accesses-port-0-by-any-invalid-domid.patch
+ 53d124e7-fix-list_domain_details-check-config-data-length-0.patch
+ 53dba447-x86-ACPI-allow-CMOS-RTC-use-even-when-ACPI-says-there-is-none.patch
+ 53df727b-x86-HVM-extend-LAPIC-shortcuts-around-P2M-lookups.patch
+ 53e8be5f-x86-vHPET-use-rwlock-instead-of-simple-one.patch
+ 53f737b1-VMX-fix-DebugCtl-MSR-clearing.patch
+ 53f7386d-x86-irq-process-softirqs-in-irq-keyhandlers.patch
+ 53fcebab-xen-pass-kernel-initrd-to-qemu.patch
+ 53ff3659-x86-consolidate-boolean-inputs-in-hvm-and-p2m.patch
+ 53ff36ae-x86-hvm-treat-non-insn-fetch-NPF-also-as-read-violations.patch
+ 53ff36d5-x86-mem_event-deliver-gla-fault-EPT-violation-information.patch
+ 53ff3716-x86-ats-Disable-Address-Translation-Services-by-default.patch
+ 53ff3899-x86-NMI-allow-processing-unknown-NMIs-with-watchdog.patch
+ 54005472-EPT-utilize-GLA-GPA-translation-known-for-certain-faults.patch
+ 540effe6-evtchn-check-control-block-exists-when-using-FIFO-based-events.patch
+ 540f2624-x86-idle-add-barriers-to-CLFLUSH-workaround.patch
+ 541825dc-VMX-don-t-leave-x2APIC-MSR-intercepts-disabled.patch
+ 541ad385-x86-suppress-event-check-IPI-to-MWAITing-CPUs.patch
+ 541ad3ca-x86-HVM-batch-vCPU-wakeups.patch
+ 541ad81a-VT-d-suppress-UR-signaling-for-further-desktop-chipsets.patch
+ 54216833-x86-shadow-fix-race-when-sampling-dirty-vram-state.patch
+ 54216882-x86-emulate-check-cpl-for-all-privileged-instructions.patch
+ 542168ae-x86emul-only-emulate-swint-injection-for-real-mode.patch
+ 54228a37-x86-EFI-fix-freeing-of-uninitialized-pointer.patch
+ 5423e61c-x86emul-fix-SYSCALL-SYSENTER-SYSEXIT-emulation.patch
+ 5424057f-x86-HVM-fix-miscellaneous-aspects-of-x2APIC-emulation.patch
+ 542405b4-x86-HVM-fix-ID-handling-of-x2APIC-emulation.patch
+ 542bf997-x86-HVM-properly-bound-x2APIC-MSR-range.patch
+ 54325cc0-x86-MSI-fix-MSI-X-case-of-freeing-IRQ.patch
+ 54325d2f-x86-restore-reserving-of-IO-APIC-pages-in-XENMEM_machine_memory_map-output.patch
+ 54325d95-don-t-allow-Dom0-access-to-IOMMUs-MMIO-pages.patch
+ 54325ecc-AMD-guest_iommu-properly-disable-guest-iommu-support.patch
+ 54325f3c-x86-paging-make-log-dirty-operations-preemptible.patch
+ 54379e6d-x86-vlapic-don-t-silently-accept-bad-vectors.patch
+ CVE-2013-4540-qemu.patch qemu-support-xen-hvm-direct-kernel-boot.patch
+ qemu-xen-upstream-blkif-discard.patch change-vnc-passwd.patch
+ libxc-pass-errno-to-callers-of-xc_domain_save.patch
+ libxl.honor-more-top-level-vfb-options.patch
+ libxl.add-option-for-discard-support-to-xl-disk-conf.patch
+ libxl.introduce-an-option-to-disable-the-non-O_DIRECT-workaround.patch
+ x86-dom-print.patch x86-extra-trap-info.patch tmp_build.patch
+ xl-check-for-libvirt-managed-domain.patch disable-wget-check.patch
+- Xend/xm is no longer supported and is not part of the upstream code. Remove
+ all xend/xm specific patches, configs, and scripts
+ xen-xmexample.patch bridge-opensuse.patch xmexample.disks xmclone.sh
+ init.xend xend-relocation.sh xend.service xend-relocation-server.fw
+ domUloader.py xmexample.domUloader xmexample.disks
+ bridge-vlan.patch bridge-bonding.patch bridge-record-creation.patch
+ network-nat-open-SuSEfirewall2-FORWARD.patch
+ xend-set-migration-constraints-from-cmdline.patch
+ xen.migrate.tools-xend_move_assert_to_exception_block.patch
+ xend-pvscsi-recognize-also-SCSI-CDROM-devices.patch
+ xend-config.patch xend-max-free-mem.patch xend-hvm-default-pae.patch
+ xend-vif-route-ifup.patch xend-xenapi-console-protocol.patch xend-core-dump-loc.patch
+ xend-xen-api-auth.patch xend-checkpoint-rename.patch xend-xm-save-check-file.patch
+ xend-xm-create-xflag.patch xend-domu-usb-controller.patch xend-devid-or-name.patch
+ xend-migration-domname-fix.patch xend-del_usb_xend_entry.patch xend-xen-domUloader.patch
+ xend-multi-xvdp.patch xend-check_device_status.patch xend-change_home_server.patch
+ xend-minimum-restart-time.patch xend-disable-internal-logrotate.patch xend-config-enable-dump-comment.patch
+ xend-tools-watchdog-support.patch xend-console-port-restore.patch xend-vcpu-affinity-fix.patch
+ xend-migration-bridge-check.patch xend-managed-pci-device.patch xend-hvm-firmware-passthrough.patch
+ xend-cpuinfo-model-name.patch xend-xm-reboot-fix.patch xend-domain-lock.patch
+ xend-domain-lock-sfex.patch xend-32on64-extra-mem.patch xend-hv_extid_compatibility.patch
+ xend-xenpaging.autostart.patch xend-remove-xm-deprecation-warning.patch libxen_permissive.patch
+ tmp-initscript-modprobe.patch init.xendomains xendomains.service
+ xen-watchdog.service xen-updown.sh
+* Thu Oct 16 2014 carnold@suse.com
+- bnc#901317 - L3: increase limit domUloader to 32MB
+ domUloader.py
+* Tue Oct 14 2014 carnold@suse.com
+- bnc#898772 - SLES 12 RC3 - XEN Host crashes when assigning non-VF
+ device (SR-IOV) to guest
+ 54325cc0-x86-MSI-fix-MSI-X-case-of-freeing-IRQ.patch
+- bnc#882089 - Windows 2012 R2 fails to boot up with greater than
+ 60 vcpus
+ 54325ecc-AMD-guest_iommu-properly-disable-guest-iommu-support.patch
+- bnc#826717 - VUL-0: CVE-2013-3495: XSA-59: xen: Intel VT-d
+ Interrupt Remapping engines can be evaded by native NMI interrupts
+ 541ad81a-VT-d-suppress-UR-signaling-for-further-desktop-chipsets.patch
+- Upstream patches from Jan
+ 540effe6-evtchn-check-control-block-exists-when-using-FIFO-based-events.patch (Replaces xsa107.patch)
+ 54216833-x86-shadow-fix-race-when-sampling-dirty-vram-state.patch (Replaces xsa104.patch)
+ 54216882-x86-emulate-check-cpl-for-all-privileged-instructions.patch (Replaces xsa105.patch)
+ 542168ae-x86emul-only-emulate-swint-injection-for-real-mode.patch (Replaces xsa106.patch)
+ 54228a37-x86-EFI-fix-freeing-of-uninitialized-pointer.patch
+ 5423e61c-x86emul-fix-SYSCALL-SYSENTER-SYSEXIT-emulation.patch
+ 5424057f-x86-HVM-fix-miscellaneous-aspects-of-x2APIC-emulation.patch
+ 542405b4-x86-HVM-fix-ID-handling-of-x2APIC-emulation.patch
+ 542bf997-x86-HVM-properly-bound-x2APIC-MSR-range.patch (Replaces xsa108.patch)
+ 54325d2f-x86-restore-reserving-of-IO-APIC-pages-in-XENMEM_machine_memory_map-output.patch
+ 54325d95-don-t-allow-Dom0-access-to-IOMMUs-MMIO-pages.patch
+ 54325f3c-x86-paging-make-log-dirty-operations-preemptible.patch (Replaces xsa97.patch)
+ 54379e6d-x86-vlapic-don-t-silently-accept-bad-vectors.patch
+* Sat Oct 11 2014 dmueller@suse.com
+- restrict requires on grub2-x86_64-xen to x86_64 hosts
+* Wed Oct 8 2014 jfehlig@suse.com
+- bsc#900292 - xl: change default dump directory
+ xl-coredump-file-location.patch
+* Fri Oct 3 2014 mlatimer@suse.com
+- Update xen2libvirt.py to better detect and handle file formats
+* Tue Sep 30 2014 carnold@suse.com
+- bnc#889526 - VUL-0: CVE-2014-5146, CVE-2014-5149: xen: XSA-97
+ Long latency virtual-mmu operations are not preemptible
+ xsa97.patch
+- bnc#882089 - Windows 2012 R2 fails to boot up with greater than
+ 60 vcpus
+ 541ad385-x86-suppress-event-check-IPI-to-MWAITing-CPUs.patch
+ 541ad3ca-x86-HVM-batch-vCPU-wakeups.patch
+- Upstream patches from Jan
+ 540f2624-x86-idle-add-barriers-to-CLFLUSH-workaround.patch
+ 541825dc-VMX-don-t-leave-x2APIC-MSR-intercepts-disabled.patch
+* Tue Sep 30 2014 carnold@suse.com
+- bnc#897657 - VUL-0: CVE-2014-7188: xen: XSA-108 Improper MSR
+ range used for x2APIC emulation
+ xsa108.patch
+* Mon Sep 29 2014 carnold@suse.com
+- bnc#897906 - libxc: check return values on mmap() and madvise()
+ on xc_alloc_hypercall_buffer()
+ 537c9c77-libxc-check-return-values-on-mmap-and-madvise.patch
+* Mon Sep 22 2014 carnold@suse.com
+- bnc#897614 - Virtualization/xen: Bug `xen-tools` uninstallable;
+ grub2-x86_64-xen dependency not available
+ xen.spec
+* Wed Sep 17 2014 jfehlig@suse.com
+- More cleanup of README.SUSE
+* Mon Sep 15 2014 cyliu@suse.com
+- Update xen patch with upstream patch so that latest libvirt
+ patch can work. (bnc#896044)
+ + 53fcebab-xen-pass-kernel-initrd-to-qemu.patch
+ - xen-pass-kernel-initrd-to-qemu.patch
+* Wed Sep 10 2014 carnold@suse.com
+- bnc#895804 - VUL-0: CVE-2014-6268: xen: XSA-107: Mishandling of
+ uninitialised FIFO-based event channel control blocks
+ xsa107.patch
+- bnc#895802 - VUL-0: CVE-2014-7156: xen: XSA-106: Missing
+ privilege level checks in x86 emulation of software interrupts
+ xsa106.patch
+- bnc#895799 - VUL-0: CVE-2014-7155: xen: XSA-105: Missing
+ privilege level checks in x86 HLT, LGDT, LIDT, and LMSW emulation
+ xsa105.patch
+- bnc#895798 - VUL-0: CVE-2014-7154: xen: XSA-104: Race condition
+ in HVMOP_track_dirty_vram
+ xsa104.patch
+* Thu Sep 4 2014 cyliu@suse.com
+- bnc#882405 - Only one key-press event was generated while holding
+ a key before key-release in pv guests through xl vncviewer
+ tigervnc-long-press.patch
+* Tue Sep 2 2014 carnold@suse.com
+- Update to Xen Version 4.4.1 FCS
+ xen-4.4.1-testing-src.tar.bz2
+- Dropped patches now contained in tarball
+ 53d7b781-x86-cpu-undo-BIOS-CPUID-max_leaf-limit-earlier.patch
+ 53df71c7-lz4-check-for-underruns.patch
+ 53e47d6b-x86_emulate-properly-do-IP-updates-and-other-side-effects.patch
+* Mon Sep 1 2014 carnold@suse.com
+- bnc#882089 - Windows 2012 R2 fails to boot up with greater than
+ 60 vcpus
+ 53df727b-x86-HVM-extend-LAPIC-shortcuts-around-P2M-lookups.patch
+ 53e8be5f-x86-vHPET-use-rwlock-instead-of-simple-one.patch
+ 53ff3659-x86-consolidate-boolean-inputs-in-hvm-and-p2m.patch
+ 53ff36ae-x86-hvm-treat-non-insn-fetch-NPF-also-as-read-violations.patch
+ 53ff36d5-x86-mem_event-deliver-gla-fault-EPT-violation-information.patch
+ 54005472-EPT-utilize-GLA-GPA-translation-known-for-certain-faults.patch
+- Upstream patches from Jan
+ 53f737b1-VMX-fix-DebugCtl-MSR-clearing.patch
+ 53f7386d-x86-irq-process-softirqs-in-irq-keyhandlers.patch
+ 53ff3716-x86-ats-Disable-Address-Translation-Services-by-default.patch
+ 53ff3899-x86-NMI-allow-processing-unknown-NMIs-with-watchdog.patch
+* Fri Aug 29 2014 carnold@suse.com
+- bnc#864801 - VUL-0: CVE-2013-4540: qemu: zaurus: buffer overrun
+ on invalid state load
+ CVE-2013-4540-qemu.patch
+* Fri Aug 15 2014 carnold@suse.com
+- Update README.SUSE with additional debug help
+* Fri Aug 8 2014 carnold@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 2014 carnold@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 2014 cyliu@suse.com
+- bnc#820873 - The "long" option doesn't work with "xl list"
+ 53d124e7-fix-list_domain_details-check-config-data-length-0.patch
+* Wed Jul 30 2014 carnold@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
+* Tue Jul 29 2014 carnold@suse.com
+- bnc#882673 - Dom0 memory should enforce a minimum memory size
+ (e.g. dom0_mem=min:512M)
+ xen.spec (Mike Latimer)
+* Thu Jul 24 2014 carnold@suse.com
+- Upstream patches from Jan
+ 5347b524-evtchn-eliminate-64k-ports-limitation.patch
+ 53aac342-x86-HVM-consolidate-and-sanitize-CR4-guest-reserved-bit-determination.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
+* Sun Jul 20 2014 cyliu@suse.com
+- bnc#886801 - xl vncviewer: The first domu can be accessed by any id
+ 53c9151b-Fix-xl-vncviewer-accesses-port-0-by-any-invalid-domid.patch
+* Mon Jul 14 2014 carnold@suse.com
+- Upstream pygrub bug fix
+ 5370e03b-pygrub-fix-error-handling-if-no-valid-partitions-are-found.patch
+* Wed Jul 9 2014 carnold@suse.com
+- Fix pygrub to handle old 32 bit VMs
+ pygrub-boot-legacy-sles.patch (Mike Latimer)
+* Mon Jul 7 2014 jfehlig@suse.com
+- Remove xen-vmresync utility. It is an old Platespin Orchestrate
+ utility that should have never been included in the Xen package.
+ Updated xen.spec
+* Mon Jul 7 2014 jfehlig@suse.com
+- Rework xen-destroy utility included in xen-utils
+ bnc#885292 and bnc#886063
+ Updated xen-utils-0.1.tar.bz2
+* Mon Jul 7 2014 carnold@suse.com
+- bnc#886063 - Xen monitor fails (xl list --long output different
+ from xm list --long output)
+- bnc#885292 - VirtualDomain: pid_status does not know how to check
+ status on SLE12
+ Re-enable building xen-utils for sle12 and include xen-list and
+ xen-destroy in the xen-tools package for HA.
+ xen.spec
+* Fri Jun 27 2014 carnold@suse.com
+- bnc#882127 - Xen kernel panics on booting SLES12 Beta 8
+ 53a199d7-x86-EFI-allow-FPU-XMM-use-in-runtime-service-functions.patch
+- Upstream patches from Jan
+ 538c338f-x86-amd_ucode-flip-revision-numbers-in-printk.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
+ 539ebe62-x86-EFI-improve-boot-time-diagnostics.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 (replaces xsa100.patch)
+ 53a1990a-IOMMU-prevent-VT-d-device-IOTLB-operations-on-wrong-IOMMU.patch
+* Tue Jun 24 2014 jfehlig@suse.com
+- Replace 'domUloader' with 'pygrub' when converting or importing
+ Xen domains into libvirt with xen2libvirt. domUloader is no
+ longer provided in xen-tools.
+ Modified: xen2libvirt.py
+* Fri Jun 13 2014 cyliu@suse.com
+- fate#310956: Support Direct Kernel Boot for FV guests
+ patches would go to upstream:
+ qemu side: qemu-support-xen-hvm-direct-kernel-boot.patch
+ xen side: xen-pass-kernel-initrd-to-qemu.patch
+* Fri Jun 6 2014 carnold@suse.com
+- Modify how we check for libvirt managed domains
+ xl-check-for-libvirt-managed-domain.patch
+* Thu Jun 5 2014 carnold@suse.com
+- bnc#880751 - VUL-0: xen: Hypervisor heap contents leaked to
+ guests
+ xsa100.patch
+- bnc#878841 - VUL-0: XSA-96: Xen: Vulnerabilities in HVM MSI
+ injection
+ 538dcada-x86-HVM-eliminate-vulnerabilities-from-hvm_inject_msi.patch
+- Upstream patches from Jan
+ 537cd0b0-hvmloader-also-cover-PCI-MMIO-ranges-above-4G-with-UC-MTRR-ranges.patch
+ 537cd0cc-hvmloader-PA-range-0xfc000000-0xffffffff-should-be-UC.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
+* Tue May 27 2014 ohering@suse.de
+- bnc#879425: handle cache=unsafe from libvirt to disable flush in qdisk
+ libxl.add-option-to-disable-disk-cache-flushes-in-qdisk.patch
+ qemu-xen-upstream-qdisk-cache-unsafe.patch
+* Tue May 27 2014 ohering@suse.de
+- libxl: introduce an option for disabling the non-O_DIRECT workaround
+ recognize direct-io-safe in domU.cfg diskspec
+ libxl.introduce-an-option-to-disable-the-non-O_DIRECT-workaround.patch
+* Tue May 27 2014 ohering@suse.de
+- fate#316071: add discard support for file backed storage (qdisk)
+ update patch to allow more values in overloaded ->readwrite member
+* Tue May 27 2014 carnold@suse.com
+- bnc#826717 - VUL-0: CVE-2013-3495: XSA-59: xen: Intel VT-d
+ Interrupt Remapping engines can be evaded by native NMI interrupts
+ 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
+- Upstream patches from Jan
+ 53709b77-Nested-VMX-load-current_vmcs-only-when-it-exists.patch
+ 53732f4f-x86-MCE-bypass-uninitialized-vcpu-in-vMCE-injection.patch
+ 537b5ede-move-domain-to-cpupool0-before-destroying-it.patch
+* Tue May 20 2014 carnold@suse.com
+- Update README.SuSE with information on the toolstack change
+* Fri May 16 2014 ohering@suse.de
+- fate#316071: add discard support for file backed storage (qdisk)
+ update to recognize option discard/no-discard instead of discard=0,1
+ to match upstream change
+* Mon May 12 2014 ohering@suse.de
+- fate#316613: Implement pvscsi in xl/libxl
+ libxl.pvscsi.patch
+* Fri May 9 2014 carnold@suse.com
+- bnc#875668 - VUL-0: CVE-2014-3124: xen: XSA-92:
+ HVMOP_set_mem_type allows invalid P2M entries to be created
+ 535fa503-x86-HVM-restrict-HVMOP_set_mem_type.patch (replaces xsa92.patch)
+- bnc#826717 - VUL-0: CVE-2013-3495: XSA-59: xen: Intel VT-d
+ Interrupt Remapping engines can be evaded by native NMI interrupts
+ 535a34eb-VT-d-suppress-UR-signaling-for-server-chipsets.patch
+ 535a3516-VT-d-suppress-UR-signaling-for-desktop-chipsets.patch
+- Upstream patches from Jan
+ 535a354b-passthrough-allow-to-suppress-SERR-and-PERR-signaling.patch
+ 535e31bc-x86-HVM-correct-the-SMEP-logic-for-HVM_CR0_GUEST_RESERVED_BITS.patch
+ 53636978-hvm_set_ioreq_page-releases-wrong-page-in-error-path.patch
+ 53636ebf-x86-fix-guest-CPUID-handling.patch
+* Tue May 6 2014 carnold@suse.com
+- Fix pygrub to handle VM with no grub/menu.lst file.
+- Don't use /var/run/xend/boot for temporary boot directory
+ pygrub-boot-legacy-sles.patch
+* Sat Apr 26 2014 carnold@suse.com
+- When the xl command is used, check to see if the domain being
+ modified is managed by libvirt and print warning if it is.
+ xl-check-for-libvirt-managed-domain.patch
+* Thu Apr 24 2014 carnold@suse.com
+- Upstream patches from Jan
+ 53455585-x86-AMD-feature-masking-is-unavailable-on-Fam11.patch
+ 5346a7a0-x86-AMD-support-further-feature-masking-MSRs.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
+ 53563ea4-x86-MSI-drop-workaround-for-insecure-Dom0-kernels.patch
+ 5357baff-x86-add-missing-break-in-dom0_pit_access.patch
+- XSA-92
+ xsa92.patch
+* Sat Apr 12 2014 mmarek@suse.cz
+- Add # needssslcertforbuild to use the project's certificate when
+ building in a home project. (bnc#872354)
+* Wed Apr 9 2014 carnold@suse.com
+- Upstream patches from Jan
+ 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
+* Thu Apr 3 2014 carnold@suse.com
+- bnc#862608 - SLES 11 SP3 vm-install should get RHEL 7 support
+ when released
+ 53206661-pygrub-support-linux16-and-initrd16.patch
+- Upstream bug fixes
+ 53299d8f-xenconsole-reset-tty-on-failure.patch
+ 53299d8f-xenconsole-tolerate-tty-errors.patch
+* Thu Apr 3 2014 dmueller@suse.com
+- fix build for armv7l and aarch64
+* Thu Apr 3 2014 ohering@suse.de
+- Remove compiletime strings from qemu-upstream
+ qemu-xen-upstream-megasas-buildtime.patch
+* Wed Apr 2 2014 carnold@suse.com
+- bnc#871546 - KMPs are not signed in SUSE:SLE-12:GA?
+ xen.spec
+* Tue Apr 1 2014 carnold@suse.com
+- Upstream patches from Jan
+ 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
+- Drop xsa89.patch for upstream version (see bnc#867910, 5331917d-x86-enforce...)
+* Fri Mar 28 2014 carnold@suse.com
+- bnc#863821 - Xen unable to boot paravirtualized VMs installed
+ with btrfs. Add 'Requires: grub2-x86_64-xen' to xen-tools.
+- Restore soft links for qemu-system-i386 and qemu-dm
+- Cleanup inconsistency in which version of qemu-system-i386 is
+ being used (Xen vs qemu-x86). Use only Xen's version.
+ xen.spec
+* Thu Mar 27 2014 carnold@suse.com
+- Add conditionals for SLE12 when defining xend and max_cpus
+ xen.spec
+* Wed Mar 19 2014 carnold@suse.com
+- Upstream patches from Jan
+ 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
+- Dropped the following as now part of 5321b257
+ 5310bac3-mm-ensure-useful-progress-in-decrease_reservation.patch
+* Wed Mar 12 2014 carnold@suse.com
+- bnc#867910 - VUL-0: EMBARGOED: xen: XSA-89: HVMOP_set_mem_access
+ is not preemptible
+ xsa89.patch
+- Upstream patches from Jan
+ 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
+ 5310bac3-mm-ensure-useful-progress-in-decrease_reservation.patch
+ 5315a254-IOMMU-generalize-and-correct-softirq-processing.patch
+ 5315a3bb-x86-don-t-propagate-acpi_skip_timer_override-do-Dom0.patch
+ 5315a43a-x86-ACPI-also-print-address-space-for-PM1x-fields.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
+* Tue Mar 11 2014 carnold@suse.com
+- Add conversion tool for migrating xend/xm managed VMs to libvirt
+ xen2libvirt.py (Jim Fehlig)
+* Mon Mar 10 2014 carnold@suse.com
+- Update to Xen 4.4.0 FCS
+* Thu Mar 6 2014 mlatimer@suse.com
+- bnc#865682 - Local attach support for PHY backends using scripts
+ local_attach_support_for_phy.patch
+* Tue Feb 25 2014 mlatimer@suse.com
+- bnc#798770 - Improve multipath support for npiv devices
+ block-npiv
+ block-npiv-common.sh
+* Wed Feb 19 2014 ohering@suse.de
+- honor global keymap= option in libxl
+ libxl.honor-more-top-level-vfb-options.patch
+* Tue Feb 11 2014 carnold@suse.com
+- Update to c/s 28381 to include libxl fork and event fixes for
+ libvirt
+ xen-4.4.0-testing-src.tar.bz2
+* Tue Feb 11 2014 ohering@suse.de
+- bnc#863297: xend/pvscsi: recognize also SCSI CDROM devices
+ xend-pvscsi-recognize-also-SCSI-CDROM-devices.patch
+* Tue Feb 11 2014 ohering@suse.de
+- fate#316614: set migration constraints from cmdline
+ fix xl migrate to print the actual error string
+ libxc-pass-errno-to-callers-of-xc_domain_save.patch
+* Mon Feb 10 2014 carnold@suse.com
+- Include additional help docs for xl in xen-tools
+- Apply all patches including those for unpackaged xend
+ xen.spec
+* Mon Feb 10 2014 ohering@suse.de
+- fate#316614: set migration constraints from cmdline
+ split existing changes into libxl and xend part
+ added libxl.set-migration-constraints-from-cmdline.patch
+ added xend-set-migration-constraints-from-cmdline.patch
+ removed xen.migrate.tools_add_xm_migrate_--log_progress_option.patch
+ removed xen.migrate.tools_set_number_of_dirty_pages_during_migration.patch
+ removed xen.migrate.tools_set_migration_constraints_from_cmdline.patch
+* Tue Feb 4 2014 carnold@suse.com
+- Enable ix86 32bit build for xen-libs to be built to support
+ xen-tools-domU on 32bit VMs and also vhostmd running in 32bit VMs
+* Mon Feb 3 2014 carnold@suse.de
+- Enable blktapctrl when qemu-traditional is required to satisfy
+ build dependencies. Remove binaries after build if xend is
+ disabled
+* Sun Feb 2 2014 ohering@suse.de
+- update ifarch usage in xen.spec to cover also arm
+- blktapctrl is used only by xend
+- fix xend-tools-xend sub pkg handling
+- default to gcc47 for sles11sp3 builds
+- remove all latex packages from BuildRequires
+- aarch64-rename-PSR_MODE_ELxx-to-match-linux-headers.patch
+* Sun Feb 2 2014 ohering@suse.de
+- add arch dependent install suffix for /boot/xen files
+* Sat Feb 1 2014 ohering@suse.de
+- Set max_cpus==4 for non-x86_64 builds
+* Fri Jan 31 2014 carnold@suse.com
+- Update to Xen 4.4.0 RC3 c/s 28321
+* Thu Jan 30 2014 ohering@suse.de
+- Add flex and bison to BuildRequires, needed by previous patch
+* Thu Jan 30 2014 ohering@suse.de
+- fate#316071: add discard support for file backed storage (qdisk)
+ libxl.add-option-for-discard-support-to-xl-disk-conf.patch
+* Mon Jan 27 2014 carnold@suse.com
+- On platforms where xend is still supported don't output a
+ deprecation warning when using xm.
+ xend-remove-xm-deprecation-warning.patch
+* Thu Jan 23 2014 carnold@suse.com
+- Changed License to GPL-2.0 (from GPL-2.0+)
+* Thu Jan 23 2014 carnold@suse.com
+- Dropped xen-changeset.patch. It is no longer needed.
+* Sat Jan 18 2014 ohering@suse.de
+- BuildRequire libfdt1-devel on ARM
+* Fri Jan 17 2014 ohering@suse.de
+- fate#311487: remove modprobe.conf files for autoloading of
+ pv-on-hvm files.
+ Rely on core kernel to skip initialization of emulated hardware
+ Handle xen_emul_unplug= from xenlinux based core kernel-default
+ xen_pvonhvm.xen_emul_unplug.patch
+ Dropped xen_pvdrivers.conf
+* Thu Jan 16 2014 carnold@suse.com
+- Fix the spec file to build for old distros
+ The xm/xend toolstack will continue to be contained in xen-tools
+ for older openSUSE and sles distros but it will be contained in
+ xend-tools for os13.x
+* Wed Jan 15 2014 ohering@suse.de
+- fate#316071: add discard support for file backed storage (qdisk)
+ to qemu-upstream, enabled unconditionally
+ qemu-xen-upstream-blkif-discard.patch
+* Tue Jan 14 2014 carnold@suse.com
+- Update to Xen 4.4.0 RC2 c/s 28287
+* Thu Jan 9 2014 carnold@suse.com
+- Restore 32bit ix86 support in spec file for kmps and domU tools
+- Restore a few missing xend patches
+ xend-config-enable-dump-comment.patch
+ xend-tools-watchdog-support.patch
+ xend-vif-route-ifup.patch
+* Thu Jan 2 2014 carnold@suse.com
+- fate#315692: XEN: Include Xen version 4.4 in SLES-12
+ Update to Xen 4.4.0 RC1 c/s 28233
+- Drop 32bit support from spec file
+- Dropped numerous patches now included in the tarball
+* Wed Jan 1 2014 coolo@suse.com
+- gcc-32bit pulls in the right gcc bits, so better buildrequire that
+* Tue Nov 26 2013 carnold@suse.com
+- Upstream patches from Jan
+ 5281fad4-numa-sched-leave-node-affinity-alone-if-not-in-auto-mode.patch
+ 52820823-nested-SVM-adjust-guest-handling-of-structure-mappings.patch
+ 52820863-VMX-don-t-crash-processing-d-debug-key.patch
+ 5282492f-x86-eliminate-has_arch_mmios.patch
+ 52864df2-credit-Update-other-parameters-when-setting-tslice_ms.patch
+ 52864f30-fix-leaking-of-v-cpu_affinity_saved-on-domain-destruction.patch
+ 5289d225-nested-VMX-don-t-ignore-mapping-errors.patch
+ 528a0eb0-x86-consider-modules-when-cutting-off-memory.patch
+ 528f606c-x86-hvm-reset-TSC-to-0-after-domain-resume-from-S3.patch
+ 528f609c-x86-crash-disable-the-watchdog-NMIs-on-the-crashing-cpu.patch
+ 52932418-x86-xsave-fix-nonlazy-state-handling.patch
+* Fri Nov 22 2013 carnold@suse.com
+- bnc#851749 - Xen service file does not call xend properly
+ xend.service
+* Fri Nov 22 2013 adrian@suse.de
+- Add missing requires to pciutils package for xend-tools
+* Tue Nov 19 2013 carnold@suse.com
+- bnc#851386 - VUL-0: xen: XSA-78: Insufficient TLB flushing in
+ VT-d (iommu) code
+ 528a0e5b-TLB-flushing-in-dma_pte_clear_one.patch
+* Tue Nov 19 2013 tbehrens@suse.com
+- Make -devel package depend on libuuid-devel, since libxl.h
+ includes uuid.h
+* Mon Nov 11 2013 carnold@suse.com
+- bnc#849667 - VUL-0: xen: XSA-74: Lock order reversal between
+ page_alloc_lock and mm_rwlock
+ CVE-2013-4553-xsa74.patch
+- bnc#849665 - VUL-0: CVE-2013-4551: xen: XSA-75: Host crash due to
+ guest VMX instruction execution
+ 52809208-nested-VMX-VMLANUCH-VMRESUME-emulation-must-check-permission-1st.patch
+- bnc#849668 - VUL-0: xen: XSA-76: Hypercalls exposed to privilege
+ rings 1 and 2 of HVM guests
+ CVE-2013-4554-xsa76.patch
+- Upstream patches from Jan
+ 52654798-x86-xsave-also-save-restore-XCR0-across-suspend-ACPI-S3.patch
+ 526e43d4-x86-refine-address-validity-checks-before-accessing-page-tables.patch
+ 526f786a-fix-locking-in-cpu_disable_scheduler.patch
+ 5277646c-x86-ACPI-x2APIC-guard-against-out-of-range-ACPI-or-APIC-IDs.patch
+ 5277a134-x86-make-sure-memory-block-is-RAM-before-passing-to-the-allocator.patch
+ 5278f7f9-x86-HVM-32-bit-IN-result-must-be-zero-extended-to-64-bits.patch
+ 527a0a05-call-sched_destroy_domain-before-cpupool_rm_domain.patch
+ 527cb7d2-x86-hvm-fix-restart-of-RTC-periodic-timer-with-vpt_align-1.patch
+ 527cb820-x86-EFI-make-trampoline-allocation-more-flexible.patch
+ 5280aae0-x86-idle-reduce-contention-on-ACPI-register-accesses.patch
+* Mon Nov 4 2013 carnold@suse.com
+- bnc#848657 - VUL-0: xen: CVE-2013-4494: XSA-73: Lock order
+ reversal between page allocation and grant table locks
+ 5277639c-gnttab-correct-locking-order-reversal.patch
+* Thu Oct 31 2013 carnold@suse.com
+- Update to Xen 4.3.1
+* Tue Oct 22 2013 carnold@suse.com
+- domUloader can no longer be used with the xl toolstack to boot
+ sles10. Patch pygrub to get the kernel and initrd from the image.
+ pygrub-boot-legacy-sles.patch
+* Mon Oct 21 2013 carnold@suse.com
+- bnc#842515 - VUL-0: CVE-2013-4375: XSA-71: xen: qemu disk backend
+ (qdisk) resource leak
+ CVE-2013-4375-xsa71.patch
+- bnc#845520 - VUL-0: CVE-2013-4416: xen: ocaml xenstored
+ mishandles oversized message replies
+ CVE-2013-4416-xsa72.patch
+- Upstream patches from Jan
+ 52496bea-x86-properly-handle-hvm_copy_from_guest_-phys-virt-errors.patch (Replaces CVE-2013-4355-xsa63.patch)
+ 52496c11-x86-mm-shadow-Fix-initialization-of-PV-shadow-L4-tables.patch (Replaces CVE-2013-4356-xsa64.patch)
+ 52496c32-x86-properly-set-up-fbld-emulation-operand-address.patch (Replaces CVE-2013-4361-xsa66.patch)
+ 52497c6c-x86-don-t-blindly-create-L3-tables-for-the-direct-map.patch
+ 524e971b-x86-idle-Fix-get_cpu_idle_time-s-interaction-with-offline-pcpus.patch
+ 524e9762-x86-percpu-Force-INVALID_PERCPU_AREA-to-non-canonical.patch
+ 524e983e-Nested-VMX-check-VMX-capability-before-read-VMX-related-MSRs.patch
+ 524e98b1-Nested-VMX-fix-IA32_VMX_CR4_FIXED1-msr-emulation.patch
+ 524e9dc0-xsm-forbid-PV-guest-console-reads.patch
+ 5256a979-x86-check-segment-descriptor-read-result-in-64-bit-OUTS-emulation.patch
+ 5256be57-libxl-fix-vif-rate-parsing.patch
+ 5256be84-tools-ocaml-fix-erroneous-free-of-cpumap-in-stub_xc_vcpu_getaffinity.patch
+ 5256be92-libxl-fix-out-of-memory-error-handling-in-libxl_list_cpupool.patch
+ 5257a89a-x86-correct-LDT-checks.patch
+ 5257a8e7-x86-add-address-validity-check-to-guest_map_l1e.patch
+ 5257a944-x86-check-for-canonical-address-before-doing-page-walks.patch
+ 525b95f4-scheduler-adjust-internal-locking-interface.patch
+ 525b9617-sched-fix-race-between-sched_move_domain-and-vcpu_wake.patch
+ 525e69e8-credit-unpause-parked-vcpu-before-destroying-it.patch
+ 525faf5e-x86-print-relevant-tail-part-of-filename-for-warnings-and-crashes.patch
+* Wed Oct 2 2013 jfehlig@suse.com
+- Improvements to block-dmmd script
+ bnc#828623
+* Tue Oct 1 2013 carnold@suse.com
+- bnc#840196 - L3: MTU size on Dom0 gets reset when booting DomU
+ with e1000 device
+ set-mtu-from-bridge-for-tap-interface.patch
+* Mon Sep 30 2013 carnold@suse.com
+- bnc#839596 - VUL-0: CVE-2013-1442: XSA-62: xen: Information leak
+ on AVX and/or LWP capable CPUs
+ 5242a1b5-x86-xsave-initialize-extended-register-state-when-guests-enable-it.patch
+- bnc#840592 - VUL-0: CVE-2013-4355: XSA-63: xen: Information leaks
+ through I/O instruction emulation
+ CVE-2013-4355-xsa63.patch
+- bnc#840593 - VUL-0: CVE-2013-4356: XSA-64: xen: Memory accessible
+ by 64-bit PV guests under live migration
+ CVE-2013-4356-xsa64.patch
+- bnc#841766 - VUL-1: CVE-2013-4361: XSA-66: xen: Information leak
+ through fbld instruction emulation
+ CVE-2013-4361-xsa66.patch
+- bnc#833796 - L3: Xen: migration broken from xsave-capable to
+ xsave-incapable host
+ 52205e27-x86-xsave-initialization-improvements.patch
+ 522dc0e6-x86-xsave-fix-migration-from-xsave-capable-to-xsave-incapable-host.patch
+- bnc#839600 - [HP BCS SLES11 Bug]: In HP’s UEFI x86_64 platform and
+ sles11sp3 with xen environment, xen hypervisor will panic on
+ multiple blades nPar.
+ 523172d5-x86-fix-memory-cut-off-when-using-PFN-compression.patch
+- bnc#833251 - [HP BCS SLES11 Bug]: In HP’s UEFI x86_64 platform
+ and with xen environment, in booting stage ,xen hypervisor will
+ panic.
+ 522d896b-x86-EFI-properly-handle-run-time-memory-regions-outside-the-1-1-map.patch
+- bnc#834751 - [HP BCS SLES11 Bug]: In xen, “shutdown –y 0 –h”
+ cannot power off system
+ 522d896b-x86-EFI-properly-handle-run-time-memory-regions-outside-the-1-1-map.patch
+- Upstream patches from Jan
+ 520119fc-xen-conring-Write-to-console-ring-even-if-console-lock-is-busted.patch
+ 520a2705-watchdog-crash-Always-disable-watchdog-in-console_force_unlock.patch
+ 522d8a1f-x86-allow-guest-to-set-clear-MSI-X-mask-bit-try-2.patch
+ 522dc044-xmalloc-make-whole-pages-xfree-clear-the-order-field-ab-used-by-xmalloc.patch
+ 522f2f9f-Nested-VMX-Clear-bit-31-of-IA32_VMX_BASIC-MSR.patch
+ 522f37b2-sched-arinc653-check-for-guest-data-transfer-failures.patch
+ 5231e090-libxc-x86-fix-page-table-creation-for-huge-guests.patch
+ 5231f00c-cpufreq-missing-check-of-copy_from_guest.patch
+ 523304b6-x86-machine_restart-must-not-call-acpi_dmar_reinstate-twice.patch
+ 5239a064-x86-HVM-fix-failure-path-in-hvm_vcpu_initialise.patch
+ 5239a076-VMX-fix-failure-path-in-construct_vmcs.patch
+ 523c0ed4-x86-HVM-properly-handle-wide-MMIO.patch
+ 523c1758-sched_credit-filter-node-affinity-mask-against-online-cpus.patch
+ 523ff393-x86-HVM-linear-address-must-be-canonical-for-the-whole-accessed-range.patch
+ 523ff3e2-x86-HVM-refuse-doing-string-operations-in-certain-situations.patch
+* Wed Sep 25 2013 ohering@suse.de
+- Use upstream version of unplugging in PVonHVM guests
+ add 523c1834-unmodified_drivers-enable-unplug-per-default.patch
+ remove disable_emulated_device.patch
+* Wed Sep 25 2013 ohering@suse.de
+- fate#315714 - Support pvUSB in Xen HVM guests, add xen-usb.ko
+* Mon Sep 9 2013 carnold@suse.com
+- Upstream patches from Jan
+ 521c6d4a-x86-don-t-allow-Dom0-access-to-the-MSI-address-range.patch
+ 521c6d6c-x86-don-t-allow-Dom0-access-to-the-HT-address-range.patch
+ 521c6e23-x86-Intel-add-support-for-Haswell-CPU-models.patch
+ 521db25f-Fix-inactive-timer-list-corruption-on-second-S3-resume.patch
+ 521e1156-x86-AVX-instruction-emulation-fixes.patch
+ 521ef8d9-AMD-IOMMU-add-missing-checks.patch
+ 52205a7d-hvmloader-smbios-Correctly-count-the-number-of-tables-written.patch
+ 52205a90-public-hvm_xs_strings.h-Fix-ABI-regression-for-OEM-SMBios-strings.patch
+ 52205e27-x86-xsave-initialization-improvements.patch
+ 5226020f-xend-handle-extended-PCI-configuration-space-when-saving-state.patch
+ 52260214-xend-fix-file-descriptor-leak-in-pci-utilities.patch
+ 52285317-hvmloader-fix-SeaBIOS-interface.patch
+* Tue Sep 3 2013 carnold@suse.com
+- bnc#837585 - xen* pkg update DISables `xencommons` and
+ `xendomains` systemd services
+ xen.spec
+* Fri Aug 30 2013 ohering@suse.de
+- remove unneeded patch, autoload is handled by PCI device, without
+ PCI device xen_platform_pci would not work anyway
+ xen.sles11sp1.fate311487.xen_platform_pci.dmistring.patch
+* Fri Aug 30 2013 ohering@suse.de
+- Update our xen-3.0.4 version of unplug code in qemu-trad
+ add comments about the usage of the code
+ rename handler function
+ reenable handlers for writing/reading from emulated PCI device
+* Fri Aug 30 2013 ohering@suse.de
+- Change unplugging of emulated devices in PVonHVM guests
+ Since 3.0.4 xen-platform-pci.ko triggerd the unplug by writing
+ to the PCI space of the emulated PCI device. 3.3 introduced an
+ official unplug protocol. The option to unplug wit the official
+ protocol is disabled per default.
+ Remove our version and enable the unplug via official protocol
+* Fri Aug 30 2013 carnold@suse.com
+- Upstream patches from Jan
+ 51e517e6-AMD-IOMMU-allocate-IRTEs.patch
+ 51e5183f-AMD-IOMMU-untie-remap-and-vector-maps.patch
+ 51e63df6-VMX-fix-interaction-of-APIC-V-and-Viridian-emulation.patch
+ 52146070-ACPI-fix-acpi_os_map_memory.patch
+ 5214d26a-VT-d-warn-about-CFI-being-enabled-by-firmware.patch
+ 5215d094-Nested-VMX-Check-whether-interrupt-is-blocked-by-TPR.patch
+ 5215d0c5-Nested-VMX-Force-check-ISR-when-L2-is-running.patch
+ 5215d135-Nested-VMX-Clear-APIC-v-control-bit-in-vmcs02.patch
+ 5215d2d5-Nested-VMX-Update-APIC-v-RVI-SVI-when-vmexit-to-L1.patch
+ 5215d8b0-Correct-X2-APIC-HVM-emulation.patch
+- Dropped 520d417d-xen-Add-stdbool.h-workaround-for-BSD.patch
+* Mon Aug 26 2013 carnold@suse.com
+- bnc#836239 - SLES 11 SP3 Xen security patch does not
+ automatically update UEFI boot binary
+ xen.spec
+* Tue Aug 20 2013 carnold@suse.com
+- Upstream patches from Jan
+ 51d5334e-x86-mm-Ensure-useful-progress-in-alloc_l2_table.patch
+ 51dd155c-adjust-x86-EFI-build.patch
+ 51e63d80-x86-cpuidle-Change-logging-for-unknown-APIC-IDs.patch
+ 51e6540d-x86-don-t-use-destroy_xen_mappings-for-vunmap.patch
+ 51e7963f-x86-time-Update-wallclock-in-shared-info-when-altering-domain-time-offset.patch
+ 51ffd577-fix-off-by-one-mistakes-in-vm_alloc.patch
+ 51ffd5fd-x86-refine-FPU-selector-handling-code-for-XSAVEOPT.patch
+ 520114bb-Nested-VMX-Flush-TLBs-and-Caches-if-paging-mode-changed.patch
+ 520a5504-VMX-add-boot-parameter-to-enable-disable-APIC-v-dynamically.patch
+ 520a24f6-x86-AMD-Fix-nested-svm-crash-due-to-assertion-in-__virt_to_maddr.patch
+ 520a2570-x86-AMD-Inject-GP-instead-of-UD-when-unable-to-map-vmcb.patch
+ 520b4b60-VT-d-protect-against-bogus-information-coming-from-BIOS.patch
+ 520b4bda-x86-MTRR-fix-range-check-in-mtrr_add_page.patch
+ 520cb8b6-x86-time-fix-check-for-negative-time-in-__update_vcpu_system_time.patch
+ 520d417d-xen-Add-stdbool.h-workaround-for-BSD.patch
+* Fri Aug 16 2013 carnold@suse.com
+- The xencommons.service file handles the starting of xenstored
+ and xenconsoled. Drop the following services files as
+ unecessary. Update xendomains.service to reflect these changes.
+ xenstored.service
+ xenconsoled.service
+ blktapctrl.service
+* Fri Aug 16 2013 carnold@suse.com
+- Add xencommons.service to xendomains.service 'After' tag
+ xendomains.service
+* Thu Aug 15 2013 carnold@suse.com
+- Change the default bridge in xl.conf from xenbr0 to just br0
+ xl-conf-default-bridge.patch
+- Add network.target to xendomains.service 'After' tag
+ xendomains.service
+* Wed Jul 31 2013 carnold@suse.com
+- Spec file cleanups
+ xen.spec
+- Renamed xend-sysconfig.patch to xencommons-sysconfig.patch
+* Mon Jul 29 2013 carnold@suse.com
+- Added support for systemd with the following service files
+ xenstored.service
+ blktapctrl.service
+ xend.service
+ xenconsoled.service
+ xen-watchdog.service
+ xendomains.service
+ xencommons.service
+* Fri Jul 12 2013 carnold@suse.com
+- Upstream patches from Jan
+ 51d277a3-x86-don-t-pass-negative-time-to-gtime_to_gtsc-try-2.patch
+ 51d27807-iommu-amd-Fix-logic-for-clearing-the-IOMMU-interrupt-bits.patch
+ 51d27841-iommu-amd-Workaround-for-erratum-787.patch
+ 51daa074-Revert-hvmloader-always-include-HPET-table.patch
+* Fri Jul 12 2013 carnold@suse.com
+- Dropped deprecated or unnecessary patches
+ pvdrv-import-shared-info.patch
+ minios-fixups.patch
+* Tue Jul 9 2013 carnold@suse.com
+- Update to Xen 4.3.0 FCS
+* Fri Jul 5 2013 agraf@suse.com
+- Enable ARM targets for Xen
+* Thu Jun 27 2013 carnold@suse.com
+- Update to Xen 4.3.0-rc6
+* Wed Jun 19 2013 carnold@suse.com
+- Update to Xen 4.3.0-rc5
+* Fri Jun 14 2013 carnold@suse.com
+- Update to Xen 4.3.0-rc4
+* Mon Jun 10 2013 carnold@suse.com
+- Fix xen-utils compiler time warnings
+ xen-utils-0.1.tar.bz2
+* Fri Jun 7 2013 carnold@suse.com
+- Enable building the KMPs
+ xen.spec
+* Wed Jun 5 2013 carnold@suse.com
+- Update to Xen 4.3.0-rc3
+* Fri May 31 2013 carnold@suse.com
+- bnc#801663 - performance of mirror lvm unsuitable for production
+ block-dmmd
+* Thu May 30 2013 carnold@suse.com
+- Update to Xen 4.3.0-rc2
+* Wed May 15 2013 carnold@suse.com
+- The xend toolstack is now deprecated and unsupported. Consolidate
+ all xend and traditional qemu patches into one patch file.
+ Rename '.diff' patches to '.patch' and reoder others.
+ xend-traditional-qemu.patch
+* Tue May 14 2013 carnold@suse.com
+- Create a xend-tools package for the legacy xend toolstack and
+ traditional qemu files.
+* Mon May 13 2013 carnold@suse.com
+- Update to Xen 4.3.0-rc1 c/s 27068
+ Drop all upstream changeset patches now included in 4.3 tarball
+- Removed the doc-pdf RPM as there are no more PDFs to include
+ since the docs/xen-api sources were dropped.
+* Tue May 7 2013 carnold@suse.com
+- bnc#818183 - VUL-0: xen: CVE-2013-2007: XSA-51: qga set umask
+ 0077 when daemonizing
+ CVE-2013-2007-xsa51-1.patch
+ CVE-2013-2007-xsa51-2.patch
+* Mon May 6 2013 ohering@suse.de
+- add lndir to BuildRequires
+* Mon May 6 2013 ohering@suse.de
+- remove xen.migrate.tools_notify_restore_to_hangup_during_migration_--abort_if_busy.patch
+ It changed migration protocol and upstream wants a different solution
+* Sun May 5 2013 ohering@suse.de
+- bnc#802221 - fix xenpaging
+ readd xenpaging.qemu.flush-cache.patch
+* Thu May 2 2013 carnold@suse.com
+- bnc#808269 - Fully Virtualized Windows VM install is failed on
+ Ivy Bridge platforms with Xen kernel
+ 26754-hvm-Improve-APIC-INIT-SIPI-emulation.patch
+* Tue Apr 30 2013 carnold@suse.com
+- Upstream patches from Jan
+ 26891-x86-S3-Fix-cpu-pool-scheduling-after-suspend-resume.patch
+ 26930-x86-EFI-fix-runtime-call-status-for-compat-mode-Dom0.patch
+- Additional fix for bnc#816159
+ CVE-2013-1918-xsa45-followup.patch
+* Mon Apr 29 2013 cyliu@suse.com
+- bnc#817068 - Xen guest with >1 sr-iov vf won't start
+ xen-managed-pci-device.patch
+* Mon Apr 29 2013 carnold@suse.com
+- Update to Xen 4.2.2 c/s 26064
+ The following recent security patches are included in the tarball
+ CVE-2013-0151-xsa34.patch (bnc#797285)
+ CVE-2012-6075-xsa41.patch (bnc#797523)
+ CVE-2013-1917-xsa44.patch (bnc#813673)
+ CVE-2013-1919-xsa46.patch (bnc#813675)
+* Wed Apr 24 2013 carnold@suse.com
+- Upstream patch from Jan
+ 26902-x86-EFI-pass-boot-services-variable-info-to-runtime-code.patch
+* Fri Apr 19 2013 carnold@suse.com
+- bnc#816159 - VUL-0: xen: CVE-2013-1918: XSA-45: Several long
+ latency operations are not preemptible
+ CVE-2013-1918-xsa45-1-vcpu-destroy-pagetables-preemptible.patch
+ CVE-2013-1918-xsa45-2-new-guest-cr3-preemptible.patch
+ CVE-2013-1918-xsa45-3-new-user-base-preemptible.patch
+ CVE-2013-1918-xsa45-4-vcpu-reset-preemptible.patch
+ CVE-2013-1918-xsa45-5-set-info-guest-preemptible.patch
+ CVE-2013-1918-xsa45-6-unpin-preemptible.patch
+ CVE-2013-1918-xsa45-7-mm-error-paths-preemptible.patch
+- bnc#816163 - VUL-0: xen: CVE-2013-1952: XSA-49: VT-d interrupt
+ remapping source validation flaw for bridges
+ CVE-2013-1952-xsa49.patch
+* Thu Apr 18 2013 cyliu@suse.com
+- bnc#809662 - can't use pv-grub to start domU (pygrub does work)
+ xen.spec
+* Mon Apr 15 2013 carnold@suse.com
+- bnc#814709 - Unable to create XEN virtual machines in SLED 11 SP2
+ on Kyoto
+ xend-cpuinfo-model-name.patch
+* Mon Apr 15 2013 carnold@suse.com
+- bnc#813673 - VUL-0: CVE-2013-1917: xen: Xen PV DoS vulnerability with
+ SYSENTER
+ CVE-2013-1917-xsa44.patch
+- bnc#813675 - VUL-0: CVE-2013-1919: xen: Several access permission
+ issues with IRQs for unprivileged guests
+ CVE-2013-1919-xsa46.patch
+- bnc#814059 - VUL-1: xen: qemu-nbd format-guessing due to missing
+ format specification
+ CVE-2013-1922-xsa48.patch
+- Upstream patches from Jan
+ 26749-x86-reserve-pages-when-SandyBridge-integrated-graphics.patch
+ 26751-x86-EFI-permit-setting-variable-with-non-zero-attributes.patch
+ 26765-hvm-Clean-up-vlapic_reg_write-error-propagation.patch
+ 26770-x86-irq_move_cleanup_interrupt-must-ignore-legacy-vectors.patch
+ 26771-x86-S3-Restore-broken-vcpu-affinity-on-resume.patch
+ 26772-VMX-Always-disable-SMEP-when-guest-is-in-non-paging-mode.patch
+ 26773-x86-mm-shadow-spurious-warning-when-unmapping-xenheap-pages.patch
+ 26774-defer-event-channel-bucket-pointer-store-until-after-XSM-checks.patch
+ 26799-x86-don-t-pass-negative-time-to-gtime_to_gtsc.patch
+* Thu Apr 4 2013 carnold@suse.com
+- bnc#813156 - IndentationError in XendCheckpoint.py
+ xend-domain-lock.patch
+* Tue Apr 2 2013 ohering@suse.de
+- bnc#797014 - no way to control live migrations
+- bnc#803712 - after live migration rcu_sched_state detected stalls
+ xen.migrate.tools-xend_move_assert_to_exception_block.patch
+ xen.migrate.tools-libxc_print_stats_if_migration_is_aborted.patch
+ xen.migrate.tools_set_number_of_dirty_pages_during_migration.patch
+ xen.migrate.tools_notify_restore_to_hangup_during_migration_--abort_if_busy.patch
+* Tue Mar 26 2013 carnold@suse.com
+- bnc#811764 - XEN (hypervisor or kernel) has a problem with EFI
+ variable services
+ x86-EFI-set-variable-permit-attrs.patch
+- Upstream patches from Jan
+ 26060-ACPI-ERST-table-size-checks.patch
+ 26692-x86-fully-protect-MSI-X-table-from-PV-guest-accesses.patch
+ 26702-powernow-add-fixups-for-AMD-P-state-figures.patch
+ 26704-x86-MCA-suppress-bank-clearing-for-certain-injected-events.patch (bnc#805579)
+ 26731-AMD-IOMMU-Process-softirqs-while-building-dom0-iommu-mappings.patch
+ 26733-VT-d-Enumerate-IOMMUs-when-listing-capabilities.patch
+ 26734-ACPI-ERST-Name-table-in-otherwise-opaque-error-messages.patch
+ 26736-ACPI-APEI-Unlock-apei_iomaps_lock-on-error-path.patch
+ 26737-ACPI-APEI-Add-apei_exec_run_optional.patch
+ 26742-IOMMU-properly-check-whether-interrupt-remapping-is-enabled.patch
+ 26743-VT-d-deal-with-5500-5520-X58-errata.patch (bnc#801910)
+ 26744-AMD-IOMMU-allow-disabling-only-interrupt-remapping.patch
+* Thu Mar 14 2013 jfehlig@suse.com
+- Load blktap module in xencommons init script. blktap2 doesn't
+ support qcow2, so blktap is needed to support domains with
+ 'tap:qcow2' disk configurations.
+ modified tmp-initscript-modprobe.patch
+* Thu Mar 14 2013 carnold@suse.com
+- bnc#809203 - xen.efi isn't signed with SUSE Secure Boot key
+ xen.spec
+* Mon Mar 11 2013 jfehlig@suse.com
+- Fix adding managed PCI device to an inactive domain
+ modified xen-managed-pci-device.patch
+* Mon Mar 11 2013 jfehlig@suse.com
+- bnc#805094 - xen hot plug attach/detach fails
+ modified blktap-pv-cdrom.patch
+* Mon Mar 11 2013 jfehlig@suse.com
+- bnc# 802690 - domain locking can prevent a live migration from
+ completing
+ modified xend-domain-lock.patch
+* Fri Mar 8 2013 ohering@suse.de
+- bnc#797014 - no way to control live migrations
+ 26675-tools-xentoollog_update_tty_detection_in_stdiostream_progress.patch
+ xen.migrate.tools-xc_print_messages_from_xc_save_with_xc_report.patch
+ xen.migrate.tools-xc_document_printf_calls_in_xc_restore.patch
+ xen.migrate.tools-xc_rework_xc_save.cswitch_qemu_logdirty.patch
+ xen.migrate.tools_set_migration_constraints_from_cmdline.patch
+ xen.migrate.tools_add_xm_migrate_--log_progress_option.patch
+* Thu Mar 7 2013 carnold@suse.com
+- Upstream patches from Jan
+ 26585-x86-mm-Take-the-p2m-lock-even-in-shadow-mode.patch
+ 26595-x86-nhvm-properly-clean-up-after-failure-to-set-up-all-vCPU-s.patch
+ 26601-honor-ACPI-v4-FADT-flags.patch
+ 26656-x86-fix-null-pointer-dereference-in-intel_get_extended_msrs.patch
+ 26659-AMD-IOMMU-erratum-746-workaround.patch
+ 26660-x86-fix-CMCI-injection.patch
+ 26672-vmx-fix-handling-of-NMI-VMEXIT.patch
+ 26673-Avoid-stale-pointer-when-moving-domain-to-another-cpupool.patch
+ 26676-fix-compat-memory-exchange-op-splitting.patch
+ 26677-x86-make-certain-memory-sub-ops-return-valid-values.patch
+ 26678-SEDF-avoid-gathering-vCPU-s-on-pCPU0.patch
+ 26679-x86-defer-processing-events-on-the-NMI-exit-path.patch
+ 26683-credit1-Use-atomic-bit-operations-for-the-flags-structure.patch
+ 26689-fix-domain-unlocking-in-some-xsm-error-paths.patch
+* Tue Mar 5 2013 carnold@suse.com
+- fate#313584: pass bios information to XEN HVM guest
+ xend-hvm-firmware-passthrough.patch
+* Mon Mar 4 2013 ohering@suse.de
+- bnc#806736: enabling xentrace crashes hypervisor
+ 26686-xentrace_fix_off-by-one_in_calculate_tbuf_size.patch
+* Thu Feb 28 2013 ohering@suse.de
+- update xenalyze to revision 149
+ Make eip_list output more useful
+ Use correct length when copying record into buffer
+ decode PV_HYPERCALL_SUBCALL events
+ decode PV_HYPERCALL_V2 records
+ Analyze populate-on-demand reclamation patterns
+ Handle 64-bit MMIO
+ Also strip write bit when processing a generic event
+ Make the warnigns in hvm_generic_postprocess more informative
+ Don't warn about switching paging levels unless verbosity>=6
+ Process NPFs as generic for summary purposes
+ Add HVM_EVENT_VLAPIC
+* Wed Feb 20 2013 jfehlig@suse.com
+- Add upstream patch to fix vfb/vkb initialization in libxl
+ 26369-libxl-devid.patch
+* Tue Feb 19 2013 carnold@suse.com
+- fate##313584: pass bios information to XEN HVM guest
+ 26554-hvm-firmware-passthrough.patch
+ 26555-hvm-firmware-passthrough.patch
+ 26556-hvm-firmware-passthrough.patch
+* Tue Feb 19 2013 carnold@suse.com
+- Upstream patches from Jan
+ 26516-ACPI-parse-table-retval.patch (Replaces CVE-2013-0153-xsa36.patch)
+ 26517-AMD-IOMMU-clear-irtes.patch (Replaces CVE-2013-0153-xsa36.patch)
+ 26518-AMD-IOMMU-disable-if-SATA-combined-mode.patch (Replaces CVE-2013-0153-xsa36.patch)
+ 26519-AMD-IOMMU-perdev-intremap-default.patch (Replaces CVE-2013-0153-xsa36.patch)
+ 26526-pvdrv-no-devinit.patch
+ 26529-gcc48-build-fix.patch
+ 26531-AMD-IOMMU-IVHD-special-missing.patch (Replaces CVE-2013-0153-xsa36.patch)
+ 26532-AMD-IOMMU-phantom-MSI.patch
+ 26536-xenoprof-div-by-0.patch
+ 26576-x86-APICV-migration.patch
+ 26577-x86-APICV-x2APIC.patch
+ 26578-AMD-IOMMU-replace-BUG_ON.patch
+* Mon Feb 18 2013 ohering@suse.de
+- bnc#797014 - no way to control live migrations
+ 26547-tools-xc_fix_logic_error_in_stdiostream_progress.patch
+ 26548-tools-xc_handle_tty_output_differently_in_stdiostream_progress.patch
+ 26549-tools-xc_turn_XCFLAGS_*_into_shifts.patch
+ 26550-tools-xc_restore_logging_in_xc_save.patch
+ 26551-tools-xc_log_pid_in_xc_save-xc_restore_output.patch
+* Mon Feb 11 2013 mmarek@suse.cz
+- Set $BRP_PESIGN_FILES in the %%install section so that modules
+ are signed in the buildservice (fate#314552).
+* Mon Feb 11 2013 ohering@suse.de
+- PVonHVM: __devinit was removed in linux-3.8
+* Wed Feb 6 2013 jfehlig@suse.com
+- Add 'managed' PCI passthrough support to xend, allowing support
+ for the same through libvirt
+ xen-managed-pci-device.patch
+ FATE#313570
+* Tue Feb 5 2013 carnold@suse.com
+- Upstream patches from Jan
+ 26287-sched-credit-pick-idle.patch
+ 26340-VT-d-intremap-verify-legacy-bridge.patch (Replaces CVE-2012-5634-xsa33.patch)
+ 26370-libxc-x86-initial-mapping-fit.patch
+ 26395-x86-FPU-context-conditional.patch
+ 26404-x86-forward-both-NMI-kinds.patch
+ 26418-x86-trampoline-consider-multiboot.patch
+ 26427-x86-AMD-enable-WC+.patch
+ 26428-x86-HVM-RTC-update.patch
+ 26440-x86-forward-SERR.patch
+ 26443-ACPI-zap-DMAR.patch
+ 26444-x86-nHVM-no-self-enable.patch (Replaces CVE-2013-0152-xsa35.patch)
+ 26501-VMX-simplify-CR0-update.patch
+ 26502-VMX-disable-SMEP-when-not-paging.patch
+* Fri Feb 1 2013 carnold@suse.com
+- bnc#800275 - VUL-0: XSA-36: CVE-2013-0153: xen: interrupt remap
+ entries shared and old ones not cleared on AMD IOMMUs
+ CVE-2013-0153-xsa36.patch
+* Wed Jan 30 2013 mmarek@suse.cz
+- Add # needssslcertforbuild to the specfile, to make the UEFI
+ signing certificate available during build (fate#314511, fate#314552).
+* Fri Jan 25 2013 jfehlig@suse.com
+- bnc#798188 - Add $network to xend initscript dependencies
+* Thu Jan 24 2013 jfehlig@suse.com
+- Add upstream patches to fix libxl bugs. These patches have
+ already been posted for inclusion in xen-4.2-testing.
+ 25912-partial-libxl.patch
+ 26372-tools-paths.patch
+ 26468-libxl-race.patch
+ 26469-libxl-race.patch
+* Tue Jan 22 2013 carnold@novell.com
+- bnc#797285 - VUL-0: Xen: XSA-34 (CVE-2013-0151) - nested
+ virtualization on 32-bit exposes host crash
+ CVE-2013-0151-xsa34.patch
+- bnc#797287 - VUL-0: Xen: XSA-35 (CVE-2013-0152) - Nested HVM
+ exposes host to being driven out of memory by guest
+ CVE-2013-0152-xsa35.patch
+* Thu Jan 17 2013 carnold@novell.com
+- bnc#793717 - NetWare will not boot on Xen 4.2
+ xnloader.py
+ domUloader.py
+ pygrub-netware-xnloader.patch
+ Removed reverse-24757-use-grant-references.patch
+* Wed Jan 16 2013 carnold@novell.com
+- bnc#797523 - VUL-1: CVE-2012-6075: qemu / kvm-qemu: e1000
+ overflows under some conditions
+ CVE-2012-6075-xsa41.patch
+* Tue Jan 15 2013 carnold@novell.com
+- Mask the floating point exceptions for guests like NetWare on
+ machines that support XSAVE.
+ x86-fpu-context-conditional.patch
+* Mon Jan 14 2013 carnold@novell.com
+- fate##313584: pass bios information to XEN HVM guest
+ 26341-hvm-firmware-passthrough.patch
+ 26342-hvm-firmware-passthrough.patch
+ 26343-hvm-firmware-passthrough.patch
+ 26344-hvm-firmware-passthrough.patch
+* Tue Jan 8 2013 carnold@novell.com
+- bnc#787169 - L3: Marvell 88SE9125 disk controller not detecting
+ disk in Xen kernel
+ 26133-IOMMU-defer-BM-disable.patch
+ 26324-IOMMU-assign-params.patch
+ 26325-IOMMU-add-remove-params.patch
+ 26326-VT-d-context-map-params.patch
+ 26327-AMD-IOMMU-flush-params.patch
+ 26328-IOMMU-pdev-type.patch
+ 26329-IOMMU-phantom-dev.patch
+ 26330-VT-d-phantom-MSI.patch
+ 26331-IOMMU-phantom-dev-quirk.patch
+- Upstream patches from Jan
+ 26294-x86-AMD-Fam15-way-access-filter.patch
+ 26320-IOMMU-domctl-assign-seg.patch
+ 26332-x86-compat-show-guest-stack-mfn.patch
+ 26333-x86-get_page_type-assert.patch
+* Mon Dec 17 2012 carnold@novell.com
+- bnc#794316 - VUL-0: CVE-2012-5634: xen: VT-d interrupt remapping
+ source validation flaw (XSA-33)
+ CVE-2012-5634-xsa33.patch
+* Mon Dec 17 2012 carnold@novell.com
+- Update to Xen 4.2.1 c/s 25952
+* Tue Dec 11 2012 carnold@novell.com
+- Upstream patches from Jan
+ 26195-x86-compat-atp-gmfn-range-cont.patch
+ 26196-ACPI-set-PDC-bits-rc.patch
+ 26200-IOMMU-debug-verbose.patch
+ 26203-x86-HAP-dirty-vram-leak.patch
+ 26229-gnttab-version-switch.patch (Replaces CVE-2012-5510-xsa26.patch)
+ 26230-x86-HVM-limit-batches.patch (Replaces CVE-2012-5511-xsa27.patch)
+ 26231-memory-exchange-checks.patch (Replaces CVE-2012-5513-xsa29.patch)
+ 26232-x86-mark-PoD-error-path.patch (Replaces CVE-2012-5514-xsa30.patch)
+ 26233-memop-order-checks.patch (Replaces CVE-2012-5515-xsa31.patch)
+ 26234-x86-page-from-gfn-pv.patch (Replaces CVE-2012-5525-xsa32.patch)
+ 26235-IOMMU-ATS-max-queue-depth.patch
+ 26252-VMX-nested-rflags.patch
+ 26253-VMX-nested-rdtsc.patch
+ 26254-VMX-nested-dr.patch
+ 26255-VMX-nested-ia32e-mode.patch
+ 26258-VMX-nested-intr-delivery.patch
+ 26260-x86-mmuext-errors.patch
+ 26262-x86-EFI-secure-shim.patch
+ 26266-sched-ratelimit-check.patch
+ 26272-x86-EFI-makefile-cflags-filter.patch
+* Mon Dec 10 2012 carnold@novell.com
+- bnc#757525 - domain destroyed on live migration with missing vif
+ on target machine
+ xen-migration-bridge-check.patch
+* Thu Dec 6 2012 carnold@novell.com
+- NetWare will not boot or install on Xen 4.2
+ reverse-24757-use-grant-references.patch
+* Fri Nov 30 2012 cyliu@suse.com
+- fate#313222 - xenstore-chmod should support 256 permissions
+ 26189-xenstore-chmod.patch
+* Tue Nov 27 2012 carnold@novell.com
+- bnc#789945 - VUL-0: CVE-2012-5510: xen: Grant table version
+ switch list corruption vulnerability (XSA-26)
+ CVE-2012-5510-xsa26.patch
+- bnc#789944 - VUL-0: CVE-2012-5511: xen: Several HVM operations do
+ not validate the range of their inputs (XSA-27)
+ CVE-2012-5511-xsa27.patch
+- bnc#789951 - VUL-0: CVE-2012-5513: xen: XENMEM_exchange may
+ overwrite hypervisor memory (XSA-29)
+ CVE-2012-5513-xsa29.patch
+- bnc#789948 - VUL-0: CVE-2012-5514: xen: Missing unlock in
+ guest_physmap_mark_populate_on_demand() (XSA-30)
+ CVE-2012-5514-xsa30.patch
+- bnc#789950 - VUL-0: CVE-2012-5515: xen: Several memory hypercall
+ operations allow invalid extent order values (XSA-31)
+ CVE-2012-5515-xsa31.patch
+- bnc#789952 - VUL-0: CVE-2012-5525: xen: Several hypercalls do not
+ validate input GFNs (XSA-32)
+ CVE-2012-5525-xsa32.patch
+- Upstream patches from Jan
+ 26129-ACPI-BGRT-invalidate.patch
+ 26132-tmem-save-NULL-check.patch
+ 26134-x86-shadow-invlpg-check.patch
+ 26139-cpumap-masking.patch
+ 26148-vcpu-timer-overflow.patch (Replaces CVE-2012-4535-xsa20.patch)
+ 26149-x86-p2m-physmap-error-path.patch (Replaces CVE-2012-4537-xsa22.patch)
+ 26150-x86-shadow-unhook-toplevel-check.patch (Replaces CVE-2012-4538-xsa23.patch)
+ 26151-gnttab-compat-get-status-frames.patch (Replaces CVE-2012-4539-xsa24.patch)
+ 26179-PCI-find-next-cap.patch
+ 26183-x86-HPET-masking.patch
+ 26188-x86-time-scale-asm.patch
+* Wed Nov 21 2012 ohering@suse.de
+- remove obsolete pv-driver-build.patch to fix build
+* Sat Nov 17 2012 aj@suse.de
+- Fix build with glibc 2.17: add patch xen-glibc217.patch, fix
+ configure for librt.
+* Tue Nov 13 2012 jfehlig@suse.com
+- bnc#777628 - guest "disappears" after live migration
+ Updated block-dmmd script
+* Fri Nov 9 2012 carnold@novell.com
+- Fix exception in balloon.py and osdep.py
+ xen-max-free-mem.diff
+* Tue Nov 6 2012 carnold@novell.com
+- fate#311966: Fix XEN VNC implementation to correctly map keyboard
+ layouts
+ VNC-Support-for-ExtendedKeyEvent-client-message.patch
+* Tue Oct 30 2012 ohering@suse.de
+- fate#310510 - fix xenpaging
+ restore changes to integrate paging into xm/xend
+ xenpaging.autostart.patch
+ xenpaging.doc.patch
+* Mon Oct 29 2012 carnold@novell.com
+- bnc#787163 - VUL-0: CVE-2012-4544: xen: Domain builder Out-of-
+ memory due to malicious kernel/ramdisk (XSA 25)
+ CVE-2012-4544-xsa25.patch
+- bnc#779212 - VUL-0: CVE-2012-4411: XEN / qemu: guest
+ administrator can access qemu monitor console (XSA-19)
+ CVE-2012-4411-xsa19.patch
+* Thu Oct 25 2012 carnold@novell.com
+- bnc#786516 - VUL-0: CVE-2012-4535: xen: Timer overflow DoS
+ vulnerability
+ CVE-2012-4535-xsa20.patch
+- bnc#786518 - VUL-0: CVE-2012-4536: xen: pirq range check DoS
+ vulnerability
+ CVE-2012-4536-xsa21.patch
+- bnc#786517 - VUL-0: CVE-2012-4537: xen: Memory mapping failure
+ DoS vulnerability
+ CVE-2012-4537-xsa22.patch
+- bnc#786519 - VUL-0: CVE-2012-4538: xen: Unhooking empty PAE
+ entries DoS vulnerability
+ CVE-2012-4538-xsa23.patch
+- bnc#786520 - VUL-0: CVE-2012-4539: xen: Grant table hypercall
+ infinite loop DoS vulnerability
+ CVE-2012-4539-xsa24.patch
+- bnc#784087 - L3: Xen BUG at io_apic.c:129
+ 26102-x86-IOAPIC-legacy-not-first.patch
+* Wed Oct 24 2012 carnold@novell.com
+- Upstream patches from Jan
+ 25920-x86-APICV-enable.patch
+ 25921-x86-APICV-delivery.patch
+ 25922-x86-APICV-x2APIC.patch
+ 25957-x86-TSC-adjust-HVM.patch
+ 25958-x86-TSC-adjust-sr.patch
+ 25959-x86-TSC-adjust-expose.patch
+ 25975-x86-IvyBridge.patch
+ 25984-SVM-nested-paging-mode.patch
+ 26054-x86-AMD-perf-ctr-init.patch
+ 26055-x86-oprof-hvm-mode.patch
+ 26056-page-alloc-flush-filter.patch
+ 26061-x86-oprof-counter-range.patch
+ 26062-ACPI-ERST-move-data.patch
+ 26063-x86-HPET-affinity-lock.patch
+ 26095-SVM-nested-leak.patch
+ 26096-SVM-nested-vmexit-emul.patch
+ 26098-perfc-build.patch
+* Mon Oct 22 2012 ohering@suse.de
+- handle possible asprintf failures in log-guest-console.patch
+* Mon Oct 22 2012 ohering@suse.de
+- bnc#694863 - kexec fails in xen
+ 26093-hvm_handle_PoD_and_grant_pages_in_HVMOP_get_mem_type.patch
+* Thu Oct 18 2012 carnold@novell.com
+- fate#312709: Pygrub needs to know which entry to select
+ 26114-pygrub-list-entries.patch
+* Thu Oct 18 2012 ohering@suse.de
+- merge changes fron xen-unstable, obsolete our changes
+ 26077-stubdom_fix_compile_errors_in_grub.patch
+ 26078-hotplug-Linux_remove_hotplug_support_rely_on_udev_instead.patch
+ 26079-hotplug-Linux_close_lockfd_after_lock_attempt.patch
+ 26081-stubdom_fix_rpmlint_warning_spurious-executable-perm.patch
+ 26082-blktap2-libvhd_fix_rpmlint_warning_spurious-executable-perm.patch
+ 26083-blktap_fix_rpmlint_warning_spurious-executable-perm.patch
+ 26084-hotplug_install_hotplugpath.sh_as_data_file.patch
+ 26085-stubdom_install_stubdompath.sh_as_data_file.patch
+ 26086-hotplug-Linux_correct_sysconfig_tag_in_xendomains.patch
+ 26087-hotplug-Linux_install_sysconfig_files_as_data_files.patch
+ 26088-tools_xend_fix_wrong_condition_check_for_xml_file.patch
+* Tue Oct 16 2012 carnold@novell.com
+- fate#311966: Fix XEN VNC implementation to correctly map keyboard
+ layouts
+ VNC-Support-for-ExtendedKeyEvent-client-message.patch
+* Mon Oct 15 2012 ohering@suse.de
+- workaround bash bug in locking.sh:claim_lock, close fd
+* Sat Oct 13 2012 ohering@suse.de
+- fix incorrect self-provides/obsoletes of xen-tools-ioemu
+* Tue Oct 9 2012 carnold@novell.com
+- bnc#783847 - Virtualization/xen: Bug Xen 4.2 'xendomins' init
+ script incorrectly Requires 'xend' service when using 'xl'
+ toolstack
+ init.xendomains
+* Mon Oct 8 2012 carnold@novell.com
+- bnc#782835 - Xen HVM Guest fails (errors) to launch on Opensuse
+ 12.2 + Xen 4.2 + 'xl' toolstack
+ xen-pygrub-grub-args.patch
+* Mon Oct 8 2012 ohering@suse.de
+- backport parallel build support for stubdom
+- rename 5 patches which were merged upstream
+* Fri Oct 5 2012 ohering@suse.de
+- remove more obsolete changes:
+ CFLAGS passing to qemu-traditional, PYTHON_PREFIX_ARG handling
+ and pygrub installation
+* Fri Oct 5 2012 ohering@suse.de
+- update blktap-pv-cdrom.patch
+ handle allocation errors in asprintf to fix compile errors
+ handle value returned from xs_read properly
+ remove casts from void pointers
+* Fri Oct 5 2012 ohering@suse.de
+- update xenalyze to revision 138
+ Fix dump time calculation overflow
+ move struct record_info into a header
+ correctly display of count of HW events
+ update trace.h to match xen-unstable
+ Remove vestigal HW_IRQ trace records
+ Remove decode of PV_UPDATE_VA_MAPPING
+ automatically generate dependencies
+ Get rid of redundant hvm dump_header
+ Introduce more efficient read mechanism
+ Eliminate unnecessary cycles_to_time calculation
+ Rework math to remove two 64-bit divisions
+ Enable -O2 optimization level
+ Remove --dump-cooked
+ Remove spurious dump_header construction
+ Improve record-sorting algorithm
+ Use long to cast into and out of pointers
+ Make max_active_pcpu calculation smarter
+ Optimize pcpu_string
+ Enable more cr3 output
+ Sort cr3 enumerated values by start time
+ Add option to skip vga range in MMIO enumeration
+ Handle MMIO records from different vmexits
+ Relocate pio and mmio enumaration structs to their own sub-struct
+ Handle new hvm_event traces
+ Introduce generic summary functionality
+ Function-ize setting of h->post_process
+ Reorganize cr trace handling
+ Allow several summary handlers to register on a single vmexit
+ Get rid of all tabs in xenalyze.c
+ Handle new IRQ tracing
+ Decrease verbosity
+ Print exit reason number if no string is available
+ Fix minor summary issue
+ Add string for TPR_BELOW_THRESHOLD
+ Raise MAX_CPUS to 256 cpus.
+ Add --report-pcpu option to report physical cpu utilization.
+ increase MAX_CPUS
+ Handle RUNSTATE_INIT in domain_runstate calculation
+* Fri Oct 5 2012 ohering@suse.de
+- update RPM_OPT_FLAGS handling in spec file
+ pass EXTRA_CFLAGS via environment
+* Fri Oct 5 2012 ohering@suse.de
+- remove obsolete xencommons-proc-xen.patch
+* Mon Oct 1 2012 carnold@novell.com
+- Upstream patches from Jan
+ 25927-x86-domctl-ioport-mapping-range.patch
+ 25929-tmem-restore-pool-version.patch
+ 25931-x86-domctl-iomem-mapping-checks.patch
+ 25940-x86-S3-flush-cache.patch
+ 25952-x86-MMIO-remap-permissions.patch
+ 25961-x86-HPET-interrupts.patch
+ 25962-x86-assign-irq-vector-old.patch
+ 25965-x86-ucode-Intel-resume.patch
+* Tue Sep 25 2012 ohering@suse.de
+- pygrub: always append --args
+ 25941-pygrub_always_append_--args.patch
+* Mon Sep 24 2012 ohering@suse.de
+- use BuildRequires: gcc46 only in sles11sp2 or 12.1 to fix build
+ in 11.4
+* Wed Sep 19 2012 carnold@novell.com
+- Upstream patches from Jan
+ 25833-32on64-bogus-pt_base-adjust.patch
+ 25835-adjust-rcu-lock-domain.patch
+ 25836-VT-d-S3-MSI-resume.patch
+ 25850-tmem-xsa-15-1.patch
+ 25851-tmem-xsa-15-2.patch
+ 25852-tmem-xsa-15-3.patch
+ 25853-tmem-xsa-15-4.patch
+ 25854-tmem-xsa-15-5.patch
+ 25855-tmem-xsa-15-6.patch
+ 25856-tmem-xsa-15-7.patch
+ 25857-tmem-xsa-15-8.patch
+ 25858-tmem-xsa-15-9.patch
+ 25859-tmem-missing-break.patch
+ 25860-tmem-cleanup.patch
+ 25861-x86-early-fixmap.patch
+ 25862-sercon-non-com.patch
+ 25863-sercon-ehci-dbgp.patch
+ 25864-sercon-unused.patch
+ 25866-sercon-ns16550-pci-irq.patch
+ 25867-sercon-ns16550-parse.patch
+ 25874-x86-EFI-chain-cfg.patch
+ 25909-xenpm-consistent.patch
+* Tue Sep 18 2012 carnold@novell.com
+- Fixed the 32bit build.
+* Mon Sep 17 2012 carnold@novell.com
+- Update to Xen 4.2.0 FCS c/s 25844
+* Fri Sep 7 2012 ohering@suse.de
+- unmodified_drivers: handle IRQF_SAMPLE_RANDOM, it was removed
+ in 3.6-rc1
+* Wed Sep 5 2012 jfehlig@suse.com
+- bnc#778105 - first XEN-PV VM fails to spawn
+ xend: Increase wait time for disk to appear in host bootloader
+ Modified existing xen-domUloader.diff
+* Thu Aug 30 2012 carnold@novell.com
+- Disable the snapshot patches. Snapshot only supported the qcow2
+ image format which was poorly implemented qemu 0.10.2. Snapshot
+ support may be restored in the future when the newer upstream
+ qemu is used by Xen.
+* Tue Aug 28 2012 ohering@suse.de
+- bnc#776995 - attaching scsi control luns with pvscsi
+ - xend/pvscsi: fix passing of SCSI control LUNs
+ xen-bug776995-pvscsi-no-devname.patch
+ - xend/pvscsi: fix usage of persistant device names for SCSI devices
+ xen-bug776995-pvscsi-persistent-names.patch
+ - xend/pvscsi: update sysfs parser for Linux 3.0
+ xen-bug776995-pvscsi-sysfs-parser.patch
+* Thu Aug 23 2012 carnold@novell.com
+- Update to Xen 4.2.0 RC3+ c/s 25779
+* Tue Aug 21 2012 carnold@novell.com
+- Update to Xen 4.2.0 RC2+ c/s 25765
+* Mon Aug 20 2012 ohering@suse.de
+-bnc#766284 - compiled-in ata_piix driver issues with PVonHVM guests
+ Update xen_pvdrivers.conf to match not only libata but also ata_piix
+ This avoids IO errors in the piix driver caused by unplugged hardware
+* Fri Aug 10 2012 carnold@novell.com
+- Update to Xen 4.1.3 c/s 23336
+* Mon Jul 30 2012 carnold@novell.com
+- Upstream or pending upstream patches from Jan
+ 25587-fix-off-by-one-parsing-error.patch
+ 25616-x86-MCi_CTL-default.patch
+ 25617-vtd-qinval-addr.patch
+ 25688-x86-nr_irqs_gsi.patch
+* Sun Jul 29 2012 aj@suse.de
+- Build all files with optimization (fortify source does not work
+ with -O0).
+* Fri Jul 27 2012 carnold@novell.com
+- bnc#773393 - VUL-0: CVE-2012-3433: xen: HVM guest destroy p2m
+ teardown host DoS vulnerability
+ CVE-2012-3433-xsa11.patch
+- bnc#773401 - VUL-1: CVE-2012-3432: xen: HVM guest user mode MMIO
+ emulation DoS
+ 25682-x86-inconsistent-io-state.patch
+* Wed Jul 18 2012 carnold@novell.com
+- bnc#762484 - VUL-1: CVE-2012-2625: xen: pv bootloader doesn't
+ check the size of the bzip2 or lzma compressed kernel, leading to
+ denial of service
+ 25589-pygrub-size-limits.patch
+* Tue Jul 10 2012 werner@suse.de
+- Make it build with latest TeXLive 2012 with new package layout
+* Fri Jun 15 2012 carnold@novell.com
+- bnc#767273 - unsupported /var/lock/subsys is still used by xendomains
+ init.xendomains
+* Tue Jun 12 2012 carnold@novell.com
+- bnc#766283 - opensuse 12.2 pv guests can not start after
+ installation due to lack of grub2 support in the host
+ 24000-pygrub-grub2.patch
+ 24001-pygrub-grub2.patch
+ 24002-pygrub-grub2.patch
+* Mon Jun 11 2012 carnold@novell.com
+- Upstream pygrub patches for grub2 support and fixes
+ 23686-pygrub-solaris.patch
+ 23697-pygrub-grub2.patch
+ 23944-pygrub-debug.patch
+ 23998-pygrub-GPT.patch
+ 23999-pygrub-grub2.patch
+ 24064-pygrub-HybridISO.patch
+ 24401-pygrub-scrolling.patch
+ 24402-pygrub-edit-fix.patch
+ 24460-pygrub-extlinux.patch
+ 24706-pygrub-extlinux.patch
+* Wed Jun 6 2012 carnold@novell.com
+- Revised version of security patch and an additional patch for
+ bnc#764077
+ x86_64-AMD-erratum-121.patch
+ x86_64-allow-unsafe-adjust.patch
+* Wed Jun 6 2012 ohering@suse.de
+- remove dummy asm/smp-processor-id.h
+* Tue May 29 2012 jsmeix@suse.de
+- removed dummy xenapi.tex which was added because of bnc#750679
+ (see the below entry dated "Mon Apr 2 13:07:20 CEST 2012")
+ because "ps2pdf xenapi.ps xenapi.pdf" failed only for
+ Ghostscript version 9.04 (now we have Ghostscript 9.05).
+* Fri May 25 2012 carnold@novell.com
+- bnc#764077 - VUL-0: EMBARGOED: xen: XSA-9: denial of service on
+ older AMD systems
+ x86_64-AMD-erratum-121.patch
+- Revised version of security patch for bnc#757537
+ x86_64-sysret-canonical.patch
+* Tue May 15 2012 carnold@novell.com
+- Upstream patches from Jan
+ 25242-x86_64-hotplug-compat-m2p.patch
+ 25247-SVM-no-rdtsc-intercept.patch
+ 25267-x86-text-unlikely.patch
+ 25269-x86-vMCE-addr-misc-write.patch
+ 25271-x86_64-IST-index.patch
+ 25327-pvdrv-no-asm-system-h.patch
+* Mon May 14 2012 ohering@suse.de
+- add dummy asm/smp-processor-id.h for kernel-source 3.4-rcX
+* Sun May 13 2012 ohering@suse.de
+- remove inclusion of asm/system.h from platform-pci.c
+* Tue Apr 24 2012 carnold@novell.com
+- Upstream patches from Jan
+ 25168-x86-memset-size.patch
+ 25191-x86-tdt-delta-calculation.patch
+ 25195-x86-cpuidle-C2-no-flush-or-bm-check.patch
+ 25196-x86-HAP-PAT-sr.patch
+ 25200-x86_64-trap-bounce-flags.patch
+* Thu Apr 19 2012 carnold@novell.com
+- bnc#757537 - VUL-0: xen: CVE-2012-0217 PV guest escalation
+ x86_64-sysret-canonical.patch
+- bnc#757970 - VUL-1: xen: guest denial of service on syscall GPF
+ generation
+ x86_64-trap-bounce-flags.patch
+* Tue Apr 3 2012 carnold@novell.com
+- Upstream patches from Jan
+ 25098-x86-emul-lock-UD.patch
+ 25101-x86-hpet-disable.patch
+ ioemu-9877-MSI-X-device-cleanup.patch
+* Mon Apr 2 2012 ohering@suse.de
+- bnc#750679 - "ps2pdf xenapi.ps xenapi.pdf" fails for user abuild in Factory
+ add dummy xenapi.tex until ghostscript is fixed
+* Wed Mar 28 2012 ohering@suse.de
+- remove vcd.o rule from PVonHVM Makefile, not needed anymore
+* Tue Mar 20 2012 carnold@novell.com
+- bnc#753165 - xen/scripts/network-bridge wont create bridge
+ bridge-bonding.diff
+* Mon Mar 19 2012 carnold@novell.com
+- Upstream patches from Jan
+ 24950-gnttab-copy-mapped.patch
+ 24970-x86-cpuidle-deny-port-access.patch
+ 24996-x86-cpuidle-array-overrun.patch
+ 25041-tapdisk2-create-init-name.patch
+* Wed Mar 14 2012 ohering@suse.de
+- use BuildRequires: gcc46 only in sles11sp2 to avoid issues
+ when gcc47 and newer is the distro default
+* Mon Feb 27 2012 jfehlig@suse.com
+- bnc#745880 - cpuid setting is not preserved across xend restarts
+ xend-cpuid.patch
+* Mon Feb 27 2012 jfehlig@suse.com
+- Rename 2XXXX-vif-bridge.patch -> vif-bridge-tap-fix.patch
+* Mon Feb 27 2012 carnold@novell.com
+- bnc#747331 - XEN: standard "newburn" kernel QA stress test on guest
+ (+ smartd on Dom0?) freezes the guest
+ 24883-x86-guest-walk-not-present.patch
+- bnc#745367 - MCE bank handling during migration
+ 24781-x86-vmce-mcg_ctl.patch
+ 24886-x86-vmce-mcg_ctl-default.patch
+ 24887-x86-vmce-sr.patch
+- bnc#744771 - L3: VM with passed through PCI card fails to reboot
+ under dom0 load
+ 24888-pci-release-devices.patch
+- Upstream patches from Jan
+ 24517-VT-d-fault-softirq.patch
+ 24527-AMD-Vi-fault-softirq.patch
+ 24535-x86-vMSI-misc.patch
+ 24615-VESA-lfb-flush.patch
+ 24690-x86-PCI-SERR-no-deadlock.patch
+ 24701-gnttab-map-grant-ref-recovery.patch
+ 24742-gnttab-misc.patch
+ 24780-x86-paging-use-clear_guest.patch
+ 24805-x86-MSI-X-dom0-ro.patch
+ ioemu-9869-MSI-X-init.patch
+ ioemu-9873-MSI-X-fix-unregister_iomem.patch
+* Sat Feb 25 2012 ohering@suse.de
+- add BuildRequires: libuuid-devel
+* Tue Feb 14 2012 carnold@novell.com
+- bnc#746702 - Xen HVM DomU crash during Windows Server 2008 R2
+ install, when maxmem > memory
+ README.SuSE
+* Wed Feb 8 2012 jfehlig@suse.com
+- bnc#745005 - Update vif configuration examples in xmexample*
+ Updated xen-xmexample.diff
+* Thu Feb 2 2012 jfehlig@suse.com
+- bnc#743414 - using vifname is ignored when defining a xen virtual
+ interface with xl/libxl
+ 24459-libxl-vifname.patch
+* Thu Feb 2 2012 carnold@novell.com
+- bnc#740165 - VUL-0: kvm: qemu heap overflow in e1000 device
+ emulation (applicable to Xen qemu - CVE-2012-0029)
+ cve-2012-0029-qemu-xen-unstable.patch
+* Wed Feb 1 2012 carnold@novell.com
+- bnc#744014 - blank screen in SLES11 SP2 guest with a VF statically
+ assigned
+ ioemu-MSI-X-fix-unregister_iomem.patch
+- Upstream patches from Jan
+ 24453-x86-vIRQ-IRR-TMR-race.patch
+ 24456-x86-emul-lea.patch
+* Thu Jan 26 2012 ohering@suse.de
+- fate#310510 - fix xenpaging
+ 24586-x86-mm_Properly_account_for_paged_out_pages.patch
+ 24609-tools-libxc_handle_fallback_in_linux_privcmd_map_foreign_bulk_properly.patch
+ 24610-xenpaging_make_file_op_largefile_aware.patch
+ xen-unstable.misc.linux_privcmd_map_foreign_bulk.retry_paged.patch
+ xenpaging.speedup-page-out.resume_pages.find_next_bit_set.patch
+ xenpaging.speedup-page-out.evict_pages.free_slot_stack.patch
+ xenpaging.speedup-page-out.policy_choose_victim.patch
+ update xenpaging.error-handling.patch, flush qemu cache not so often
+* Thu Jan 26 2012 ohering@suse.de
+- fate#310510 - fix xenpaging
+ 24566-tools-libxc_fix_error_handling_in_xc_mem_paging_load.patch
+* Tue Jan 24 2012 ohering@suse.de
+- fate#310510 - fix xenpaging
+ 24466-libxc_Only_retry_mapping_pages_when_ENOENT_is_returned.patch
+* Mon Jan 23 2012 carnold@novell.com
+- The xen kmp packages fail on the 09-check-packaged-twice script.
+ Rename xen_pvdrivers.conf to xen_pvdrivers-<kernel flavor>.conf
+* Fri Jan 20 2012 ohering@suse.de
+- fate#310510 - fix xenpaging
+ xenpaging.speedup-page-in.gfn_to_slot.patch
+* Wed Jan 18 2012 carnold@novell.com
+- bnc#739585 - L3: Xen block-attach fails after repeated attach/detach
+ blktap-close-fifos.patch
+ blktap-disable-debug-printf.patch
+* Fri Jan 13 2012 jfehlig@suse.com
+- bnc#741159 - Fix default setting of XENSTORED_ROOTDIR in
+ xencommons init script
+ xencommons-xenstored-root.patch
+* Thu Jan 12 2012 carnold@novell.com
+- bnc#740625 - xen: cannot interact with xend after upgrade (SLES)
+- bnc#738694 - xen: cannot interact with xend after upgrade (os12.1)
+- Other README changes included.
+ README.SuSE
+* Tue Jan 10 2012 ohering@suse.de
+- bnc#694863 - kexec fails in xen
+ 24478-libxl_add_feature_flag_to_xenstore_for_XS_RESET_WATCHES.patch
+* Mon Jan 9 2012 ohering@suse.de
+- fate#310510 - fix xenpaging
+ xenpaging.speedup-page-out.patch
+* Tue Jan 3 2012 carnold@novell.com
+- bnc#735806 - VF doesn't work after hot-plug for many times
+ 24448-x86-pt-irq-leak.patch
+- Upstream patches from Jan
+ 24261-x86-cpuidle-Westmere-EX.patch
+ 24417-amd-erratum-573.patch
+ 24429-mceinj-tool.patch
+ 24447-x86-TXT-INIT-SIPI-delay.patch
+ ioemu-9868-MSI-X.patch
+* Mon Jan 2 2012 ohering@suse.de
+- bnc#732884 - remove private runlevel 4 from init scripts
+ xen.no-default-runlevel-4.patch
+* Mon Dec 19 2011 carnold@novell.com
+- bnc#727515 - Fragmented packets hang network boot of HVM guest
+ ipxe-gcc45-warnings.patch
+ ipxe-ipv4-fragment.patch
+ ipxe-enable-nics.patch
+* Mon Dec 19 2011 ohering@suse.de
+- fate#310510 - fix xenpaging
+ update xenpaging.autostart.patch, make changes with mem-swap-target
+ permanent
+ update xenpaging.doc.patch, mention issues with live migration
+* Thu Dec 15 2011 ohering@suse.de
+- fate#310510 - fix xenpaging
+ add xenpaging.evict_mmap_readonly.patch
+ update xenpaging.error-handling.patch, reduce debug output
+* Thu Dec 15 2011 carnold@novell.com
+- bnc#736824 - Microcode patches for AMD's 15h processors panic the
+ system
+ 24189-x86-p2m-pod-locking.patch
+ 24412-x86-AMD-errata-model-shift.patch
+ 24411-x86-ucode-AMD-Fam15.patch
+* Wed Dec 14 2011 carnold@novell.com
+- bnc#711219 - SR-IOV VF doesn't work in SLES11 sp2 guest
+ 24357-firmware-no-_PS0-_PS3.patch
+- Upstream patches from Jan
+ 24153-x86-emul-feature-checks.patch
+ 24275-x86-emul-lzcnt.patch
+ 24277-x86-dom0-features.patch
+ 24278-x86-dom0-no-PCID.patch
+ 24282-x86-log-dirty-bitmap-leak.patch
+ 24359-x86-domU-features.patch
+ 24360-x86-pv-domU-no-PCID.patch
+ 24389-amd-fam10-gart-tlb-walk-err.patch
+ 24391-x86-pcpu-version.patch
+* Thu Dec 8 2011 ohering@suse.de
+- bnc#729208 - xenpaging=-1 doesn't work
+ xenpaging.doc.patch
+* Thu Dec 8 2011 ohering@suse.de
+- fate#310510 - fix xenpaging
+ readd xenpaging.qemu.flush-cache.patch
+* Wed Dec 7 2011 jfehlig@suse.com
+- bnc#732782 - L3: xm create hangs when maxmen value is enclosed
+ in "quotes"
+ xm-create-maxmem.patch
+* Wed Dec 7 2011 carnold@novell.com
+- Upstream patches / changes from Jan
+ Added 24358-kexec-compat-overflow.patch
+ Removed 24341-x86-64-mmcfg_remove___initdata_annotation_overlooked_in_23749e8d1c8f074ba.patch
+ Removed 24345-tools-libxc_Fix_x86_32_build_breakage_in_previous_changeset..patch
+* Wed Dec 7 2011 ohering@suse.de
+- fate#310510 - fix xenpaging
+ 24178-debug_Add_domain-vcpu_pause_count_info_to_d_key..patch
+ Use wait queues for paging, improve foreign mappings.
+ xenpaging.versioned-interface.patch
+ xenpaging.mmap-before-nominate.patch
+ xenpaging.p2m_is_paged.patch
+ xenpaging.evict_fail_fast_forward.patch
+ xenpaging.error-handling.patch
+ xenpaging.mem_event-use-wait_queue.patch
+ xenpaging.waitqueue-paging.patch
+ Remove obsolete patch, not needed with wait queue usage
+ xenpaging.HVMCOPY_gfn_paged_out.patch
+* Wed Dec 7 2011 ohering@suse.de
+- fate#310510 - fix xenpaging
+ Fix incorrect backport, remove double memset, use xzalloc
+ 24171-x86waitqueue_Allocate_whole_page_for_shadow_stack..patch
+* Wed Dec 7 2011 ohering@suse.de
+- fate#310510 - fix xenpaging
+ fix typo in nominate, use lock instead of double unlock
+ 23905-xenpaging_fix_locking_in_p2m_mem_paging_functions.patch
+* Wed Dec 7 2011 ohering@suse.de
+- fate#310510 - fix xenpaging
+ 24327-After_preparing_a_page_for_page-in_allow_immediate_fill-in_of_the_page_contents.patch
+ 24328-Tools_Libxc_wrappers_to_automatically_fill_in_page_oud_page_contents_on_prepare.patch
+ 24329-Teach_xenpaging_to_use_the_new_and_non-racy_xc_mem_paging_load_interface.patch
+* Tue Dec 6 2011 jfehlig@suse.com
+- bnc#734826 - xm rename doesn't work anymore
+ Updated xend-migration-domname-fix.patch
+* Fri Dec 2 2011 ohering@suse.de
+- fate#310510 - fix xenpaging
+ 24269-mem_event_move_mem_event_domain_out_of_struct_domain.patch
+ 24270-Free_d-mem_event_on_domain_destruction..patch
+* Fri Dec 2 2011 ohering@suse.de
+- fate#310510 - fix xenpaging
+ 24318-x86-mm_Fix_checks_during_foreign_mapping_of_paged_pages.patch
+* Fri Dec 2 2011 ohering@suse.de
+- fate#310510 - fix xenpaging
+ 23949-constify_vcpu_set_affinitys_second_parameter.patch
+* Fri Dec 2 2011 ohering@suse.de
+- fate#310510 - fix xenpaging
+ 24105-xenpaging_compare_domain_pointer_in_p2m_mem_paging_populate.patch
+ 24106-mem_event_check_capabilities_only_once.patch
+* Fri Dec 2 2011 ohering@suse.de
+- fate#310510 - fix xenpaging
+ 24272-xenpaging_Fix_c-s_235070a29c8c3ddf7_update_machine_to_phys_mapping_during_page_deallocation.patch
+* Fri Dec 2 2011 ohering@suse.de
+- bnc#727081 - xend domains don't work anymore since update from 12.1 beta to 12.1 RC 1
+ 24344-tools-x86_64_Fix_cpuid_inline_asm_to_not_clobber_stacks_red_zone.patch
+ 24345-tools-libxc_Fix_x86_32_build_breakage_in_previous_changeset..patch
+* Fri Dec 2 2011 ohering@suse.de
+- bnc#733449 - Panic in mcfg_ioremap when booting xen-dbg.gz on Xeon E3-1230
+ 24341-x86-64-mmcfg_remove___initdata_annotation_overlooked_in_23749e8d1c8f074ba.patch
+* Fri Dec 2 2011 ohering@suse.de
+- fate#310510 - fix xenpaging
+ backport waitqueue changes from xen-unstable
+ 24104-waitqueue_Double_size_of_x86_shadow_stack..patch
+ 24171-x86waitqueue_Allocate_whole_page_for_shadow_stack..patch
+ 24195-waitqueue_Detect_saved-stack_overflow_and_crash_the_guest..patch
+ 24196-waitqueue_Reorder_prepare_to_wait_so_that_vcpu_is_definitely_on_the.patch
+ 24197-x86-waitqueue_Because_we_have_per-cpu_stacks_we_must_wake_up_on_teh.patch
+ 24231-waitqueue_Implement_wake_up_nroneall..patch
+ 24232-waitqueue_Hold_a_reference_to_a_domain_on_a_waitqueue..patch
+* Fri Dec 2 2011 ohering@suse.de
+- fate#310510 - fix xenpaging
+ 24227-xenpaging_restrict_pagefile_permissions.patch
+* Fri Dec 2 2011 ohering@suse.de
+- fate#310510 - fix xenpaging
+ merge upstream version of our existing patches:
+ 24218-libxc_add_bitmap_clear_function.patch
+ remove old versions:
+ xenpaging.bitmap_clear.patch
+* Fri Dec 2 2011 ohering@suse.de
+- fate#310510 - fix xenpaging
+ merge upstream version of our existing patches:
+ 24138-xenpaging_munmap_all_pages_after_page-in.patch
+ 24208-xenpaging_remove_filename_from_comment.patch
+ 24209-xenpaging_remove_obsolete_comment_in_resume_path.patch
+ 24210-xenpaging_use_PERROR_to_print_errno.patch
+ 24211-xenpaging_simplify_file_op.patch
+ 24212-xenpaging_print_gfn_in_failure_case.patch
+ 24213-xenpaging_update_xenpaging_init.patch
+ 24214-xenpaging_remove_xc_dominfo_t_from_paging_t.patch
+ 24215-xenpaging_track_the_number_of_paged-out_pages.patch
+ 24216-xenpaging_move_page_add-resume_loops_into_its_own_function..patch
+ 24217-xenpaging_improve_mainloop_exit_handling.patch
+ 24219-xenpaging_retry_unpageable_gfns.patch
+ 24220-xenpaging_install_into_LIBEXEC_dir.patch
+ 24221-xenpaging_add_XEN_PAGING_DIR_-_libxl_xenpaging_dir_path.patch
+ 24222-xenpaging_use_guests_tot_pages_as_working_target.patch
+ 24223-xenpaging_watch_the_guests_memory-target-tot_pages_xenstore_value.patch
+ 24224-xenpaging_add_cmdline_interface_for_pager.patch
+ 24225-xenpaging_improve_policy_mru_list_handling.patch
+ 24226-xenpaging_add_debug_to_show_received_watch_event..patch
+ remove old versions:
+ xenpaging.XEN_PAGING_DIR.patch
+ xenpaging.add_evict_pages.patch
+ xenpaging.cmdline-interface.patch
+ xenpaging.encapsulate_domain_info.patch
+ xenpaging.file_op-return-code.patch
+ xenpaging.install-to-libexec.patch
+ xenpaging.low_target_policy_nomru.patch
+ xenpaging.main-loop-exit-handling.patch
+ xenpaging.misleading-comment.patch
+ xenpaging.page_in-munmap-size.patch
+ xenpaging.print-gfn.patch
+ xenpaging.record-numer-paged-out-pages.patch
+ xenpaging.reset-uncomsumed.patch
+ xenpaging.stale-comments.patch
+ xenpaging.target-tot_pages.patch
+ xenpaging.use-PERROR.patch
+ xenpaging.watch-target-tot_pages.patch
+ xenpaging.watch_event-DPRINTF.patch
+ xenpaging.xc_interface_open-comment.patch
+* Wed Nov 30 2011 jfehlig@suse.com
+- bnc#733348 - Use 'xm' in various scripts if xend is running.
+ Modified xmclone.sh and xen-updown.sh
+- Only emit xl warning when xend is running and -f (force) flag
+ is not specified.
+ Modified disable-xl-when-using-xend.patch
+* Wed Nov 30 2011 carnold@novell.com
+- Upstream patches from Jan
+ 24190-hap-log-dirty-disable-rc.patch
+ 24193-hap-track-dirty-vram-rc.patch
+ 24201-x86-pcpu-platform-op.patch
+* Tue Nov 22 2011 carnold@novell.com
+- Upstream patches from Jan
+ 23900-xzalloc.patch
+ 24144-cpufreq-turbo-crash.patch
+ 24148-shadow-pgt-dying-op-performance.patch
+ 24155-x86-ioapic-EOI-after-migration.patch
+ 24156-x86-ioapic-shared-vectors.patch
+ 24157-x86-xstate-init.patch
+ 24168-x86-vioapic-clear-remote_irr.patch
+* Tue Nov 22 2011 cyliu@suse.com
+- submit fixes for bnc#649209 and bnc#711892
+ xl-create-pv-with-qcow2-img.patch
+ update suspend_evtchn_lock.patch
+* Sun Nov 20 2011 ohering@suse.de
+- Update trace.c, merge patches from upstream
+ 23050-xentrace_dynamic_tracebuffer_allocation.patch
+ 23091-xentrace_fix_t_info_pages_calculation..patch
+ 23092-xentrace_print_calculated_numbers_in_calculate_tbuf_size.patch
+ 23093-xentrace_remove_gdprintk_usage_since_they_are_not_in_guest_context.patch
+ 23094-xentrace_update_comments.patch
+ 23095-xentrace_use_consistent_printk_prefix.patch
+ 23128-xentrace_correct_formula_to_calculate_t_info_pages.patch
+ 23129-xentrace_remove_unneeded_debug_printk.patch
+ 23173-xentrace_Move_register_cpu_notifier_call_into_boot-time_init..patch
+ 23239-xentrace_correct_overflow_check_for_number_of_per-cpu_trace_pages.patch
+ 23308-xentrace_Move_the_global_variable_t_info_first_offset_into_calculate_tbuf_size.patch
+ 23309-xentrace_Mark_data_size___read_mostly_because_its_only_written_once.patch
+ 23310-xentrace_Remove_unneeded_cast_when_assigning_pointer_value_to_dst.patch
+ 23404-xentrace_reduce_trace_buffer_size_to_something_mfn_offset_can_reach.patch
+ 23405-xentrace_fix_type_of_offset_to_avoid_ouf-of-bounds_access.patch
+ 23406-xentrace_update___insert_record_to_copy_the_trace_record_to_individual_mfns.patch
+ 23407-xentrace_allocate_non-contiguous_per-cpu_trace_buffers.patch
+ 23643-xentrace_Allow_tracing_to_be_enabled_at_boot.patch
+ 23719-xentrace_update___trace_var_comment.patch
+ Remove old patches:
+ xen-unstable.xentrace.dynamic_tbuf.patch
+ xen-unstable.xentrace.empty_t_info_pages.patch
+ xen-unstable.xentrace.verbose.patch
+ xen-unstable.xentrace.no_gdprintk.patch
+ xen-unstable.xentrace.comments.patch
+ xen-unstable.xentrace.printk_prefix.patch
+ xen-unstable.xentrace.remove_debug_printk.patch
+ xen-unstable.xentrace.t_info_pages-formula.patch
+ xen-unstable.xentrace.register_cpu_notifier-boot_time.patch
+ xen-unstable.xentrace.t_info_page-overflow.patch
+ xen-unstable.xentrace.t_info_first_offset.patch
+ xen-unstable.xentrace.data_size__read_mostly.patch
+ xen-unstable.xentrace.__insert_record-dst-type.patch
+* Mon Nov 14 2011 carnold@novell.com
+- Upstream patches from Jan
+ 24116-x86-continuation-cancel.patch
+ 24123-x86-cpuidle-quiesce.patch
+ 24124-x86-microcode-amd-quiesce.patch
+ 24137-revert-23666.patch
+ 24xxx-shadow-pgt-dying-op-performance.patch
+* Thu Nov 10 2011 carnold@novell.com
+- bnc#722738 - xm cpupool-create errors out
+ xen-cpupool-xl-config-format.patch
+* Fri Nov 4 2011 carnold@novell.com
+- Fix broken build when building docs
+ 23819-make-docs.patch
+* Fri Nov 4 2011 jfehlig@suse.com
+- bnc#720054 - Prevent vif-bridge from adding user-created tap
+ interfaces to a bridge
+ 2XXXX-vif-bridge.patch
+* Fri Nov 4 2011 carnold@novell.com
+- bnc#713503 - DOM0 filesystem commit
+ 23752-x86-shared-IRQ-vector-maps.patch
+ 23754-AMD-perdev-vector-map.patch
+* Thu Nov 3 2011 ohering@suse.de
+- fate#310510 - fix xenpaging
+ This change reverses the task of xenpaging. Before this change a
+ fixed number of pages was paged out. With this change the guest
+ will not have access to more than the given number of pages at
+ the same time.
+ The xenpaging= config option is replaced by actmem=
+ A new xm mem-swap-target is added.
+ The xenpaging binary is moved to /usr/lib/xen/bin/
+ xenpaging.HVMCOPY_gfn_paged_out.patch
+ xenpaging.XEN_PAGING_DIR.patch
+ xenpaging.add_evict_pages.patch
+ xenpaging.bitmap_clear.patch
+ xenpaging.cmdline-interface.patch
+ xenpaging.encapsulate_domain_info.patch
+ xenpaging.file_op-return-code.patch
+ xenpaging.guest-memusage.patch
+ xenpaging.install-to-libexec.patch
+ xenpaging.low_target_policy_nomru.patch
+ xenpaging.main-loop-exit-handling.patch
+ xenpaging.misleading-comment.patch
+ xenpaging.page_in-munmap-size.patch
+ xenpaging.print-gfn.patch
+ xenpaging.record-numer-paged-out-pages.patch
+ xenpaging.reset-uncomsumed.patch
+ xenpaging.stale-comments.patch
+ xenpaging.target-tot_pages.patch
+ xenpaging.use-PERROR.patch
+ xenpaging.watch-target-tot_pages.patch
+ xenpaging.watch_event-DPRINTF.patch
+ xenpaging.xc_interface_open-comment.patch
+* Thu Nov 3 2011 ohering@suse.de
+- xen.spec: update filelist
+ package /usr/lib*/xen with wildcard to pickup new files
+ remove duplicate /usr/sbin/xen-list from filelist
+* Wed Oct 26 2011 carnold@novell.com
+- bnc#725169 - xen-4.0.2_21511_03-0.5.3: bootup hangs
+ 23993-x86-microcode-amd-fix-23871.patch
+* Wed Oct 26 2011 carnold@novell.com
+- Update to Xen 4.1.2 FCS c/s 23174
+* Mon Oct 24 2011 jfehlig@suse.com
+- bnc#720054 - Fix syntax error introduced during recent adjustment
+ of Xen's tap udev rule.
+ Updated udev-rules.patch
+* Thu Oct 20 2011 ohering@suse.de
+- fate#310510 - fix xenpaging
+ Merge paging related fixes from xen-unstable:
+ 23506-x86_Disable_set_gpfn_from_mfn_until_m2p_table_is_allocated..patch
+ 23507-xenpaging_update_machine_to_phys_mapping_during_page_deallocation.patch
+ 23509-x86_32_Fix_build_Define_machine_to_phys_mapping_valid.patch
+ 23562-xenpaging_remove_unused_spinlock_in_pager.patch
+ 23576-x86_show_page_walk_also_for_early_page_faults.patch
+ 23577-tools_merge_several_bitop_functions_into_xc_bitops.h.patch
+ 23578-xenpaging_add_xs_handle_to_struct_xenpaging.patch
+ 23579-xenpaging_drop_xc.c_remove_ASSERT.patch
+ 23580-xenpaging_drop_xc.c_remove_xc_platform_info_t.patch
+ 23581-xenpaging_drop_xc.c_remove_xc_wait_for_event.patch
+ 23582-xenpaging_drop_xc.c_move_xc_mem_paging_flush_ioemu_cache.patch
+ 23583-xenpaging_drop_xc.c_move_xc_wait_for_event_or_timeout.patch
+ 23584-xenpaging_drop_xc.c_remove_xc_files.patch
+ 23585-xenpaging_correct_dropping_of_pages_to_avoid_full_ring_buffer.patch
+ 23586-xenpaging_do_not_bounce_p2mt_back_to_the_hypervisor.patch
+ 23587-xenpaging_remove_srand_call.patch
+ 23588-xenpaging_remove_return_values_from_functions_that_can_not_fail.patch
+ 23589-xenpaging_catch_xc_mem_paging_resume_errors.patch
+ 23590-xenpaging_remove_local_domain_id_variable.patch
+ 23591-xenpaging_move_num_pages_into_xenpaging_struct.patch
+ 23592-xenpaging_start_paging_in_the_middle_of_gfn_range.patch
+ 23593-xenpaging_pass_integer_to_xenpaging_populate_page.patch
+ 23594-xenpaging_add_helper_function_for_unlinking_pagefile.patch
+ 23595-xenpaging_add_watch_thread_to_catch_guest_shutdown.patch
+ 23596-xenpaging_implement_stopping_of_pager_by_sending_SIGTERM-SIGINT.patch
+ 23597-xenpaging_remove_private_mem_event.h.patch
+ 23599-tools_fix_build_after_recent_xenpaging_changes.patch
+ 23817-mem_event_add_ref_counting_for_free_requestslots.patch
+ 23818-mem_event_use_mem_event_mark_and_pause_in_mem_event_check_ring.patch
+ 23827-xenpaging_use_batch_of_pages_during_final_page-in.patch
+ 23841-mem_event_pass_mem_event_domain_pointer_to_mem_event_functions.patch
+ 23842-mem_event_use_different_ringbuffers_for_share_paging_and_access.patch
+ 23874-xenpaging_track_number_of_paged_pages_in_struct_domain.patch
+ 23904-xenpaging_use_p2m-get_entry_in_p2m_mem_paging_functions.patch
+ 23905-xenpaging_fix_locking_in_p2m_mem_paging_functions.patch
+ 23906-xenpaging_remove_confusing_comment_from_p2m_mem_paging_populate.patch
+ 23908-p2m_query-modify_p2mt_with_p2m_lock_held.patch
+ 23943-xenpaging_clear_page_content_after_evict.patch
+ 23953-xenpaging_handle_evict_failures.patch
+ 23978-xenpaging_check_p2mt_in_p2m_mem_paging_functions.patch
+ 23979-xenpaging_document_p2m_mem_paging_functions.patch
+ 23980-xenpaging_disallow_paging_in_a_PoD_guest.patch
+ Remove obsolete patches:
+ x86-show-page-walk-early.patch
+ xenpaging.23817-mem_event_check_ring.patch
+ xenpaging.catch-xc_mem_paging_resume-error.patch
+ xenpaging.guest_remove_page.slow_path.patch
+ xenpaging.mem_event-no-p2mt.patch
+ xenpaging.no-srand.patch
+ xenpaging.return-void.patch
+ xenpaging.xenpaging_populate_page-gfn.patch
+* Thu Oct 20 2011 ohering@suse.de
+- xen.spec: use changeset number as patch number for upstream patches
+* Wed Oct 19 2011 adrian@suse.de
+- do not use runlevel 4 in init scripts, it makes it impossible
+ to "insserv xend" on 12.1
+* Mon Oct 17 2011 carnold@novell.com
+- Upstream patches from Jan
+ 23955-x86-pv-cpuid-xsave.patch
+ 23957-cpufreq-error-paths.patch
+* Tue Oct 11 2011 carnold@novell.com
+- Upstream patches from Jan
+ 23933-pt-bus2bridge-update.patch
+ 23726-x86-intel-flexmigration-v2.patch
+ 23925-x86-AMD-ARAT-Fam12.patch
+ 23246-x86-xsave-enable.patch
+ 23897-x86-mce-offline-again.patch
+* Mon Oct 10 2011 carnold@novell.com
+- Update to Xen 4.1.2_rc3 c/s 23171
+* Thu Oct 6 2011 jfehlig@suse.com
+- bnc#720054 - Changed /etc/udev/rules.d/40-xen.rules to not run
+ Xen's vif-bridge script when not running Xen. This is not a
+ solution to the bug but an improvement in the rules regardless.
+ Updated udev-rules.patch
+* Tue Oct 4 2011 carnold@novell.com
+- Upstream patches from Jan
+ 23868-vtd-RMRR-validation.patch
+ 23871-x86-microcode-amd-silent.patch
+ 23898-cc-option-grep.patch
+* Fri Sep 30 2011 jfehlig@suse.com
+- Add pciback init script and sysconf file, giving users a simple
+ mechanism to configure pciback.
+ init.pciback sysconfig.pciback
+* Fri Sep 23 2011 ohering@suse.de
+- update scripts to use xl -f, or xm if xend is running:
+ xen-updown.sh, init.xendomains, xmclone.sh
+* Fri Sep 23 2011 ohering@suse.de
+- bnc#694863 - kexec fails in xen
+ xenstored: allow guest to shutdown all its watches/transactions
+ xenstored.XS_RESET_WATCHES.patch
+* Thu Sep 22 2011 carnold@novell.com
+- Upstream patches from Jan
+ 23843-scheduler-switch.patch
+ 23846-x86-TSC-check.patch
+ 23848-vmx-conditional-off.patch
+ 23853-x86-pv-cpuid-xsave.patch
+* Fri Sep 16 2011 ohering@suse.de
+- fate#310510 - fix xenpaging
+ mem_event: add ref counting for free requestslots
+ xenpaging.23817-mem_event_check_ring.patch
+* Wed Sep 14 2011 carnold@novell.com
+- bnc#717650 - Unable to start VM
+- Update to Xen 4.1.2_rc2 c/s 23152
+* Fri Sep 9 2011 jfehlig@suse.com
+- bnc#716695 - domUs using tap devices will not start
+ updated multi-xvdp.patch
+* Tue Sep 6 2011 carnold@novell.com
+- Upstream patches from Jan
+ 23803-intel-pmu-models.patch
+ 23800-x86_64-guest-addr-range.patch
+ 23795-intel-ich10-quirk.patch
+ 23804-x86-IPI-counts.patch
+* Wed Aug 31 2011 jfehlig@suse.com
+- bnc#706106 - Inconsistent reporting of VM names during migration
+ xend-migration-domname-fix.patch
+* Tue Aug 30 2011 carnold@novell.com
+- bnc#712823 - L3:Xen guest does not start reliable when rebooted
+ xend-vcpu-affinity-fix.patch
+* Tue Aug 23 2011 carnold@novell.com
+- Upstream patches from Jan
+ 23725-pci-add-device.patch
+ 23762-iommu-fault-bm-off.patch
+ 23763-pci-multi-seg-x2apic-vtd-no-crash.patch
+ 23765-x86-irq-vector-leak.patch
+ 23766-x86-msi-vf-bars.patch
+ 23771-x86-ioapic-clear-pin.patch
+ 23772-x86-trampoline.patch
+ 23774-x86_64-EFI-EDD.patch
+ 23776-x86-kexec-hpet-legacy-bcast-disable.patch
+ 23781-pm-wide-ACPI-ids.patch
+ 23782-x86-ioapic-clear-irr.patch
+ 23783-ACPI-set-_PDC-bits.patch
+* Mon Aug 15 2011 ohering@suse.de
+- Include gcc46 only when its available (>11.4 && >sles11sp1)
+* Fri Aug 12 2011 carnold@novell.com
+- bnc#711943 - [xl] Fail to create multi-guests with NIC assigned
+ 23685-libxl-segfault-fix.patch
+* Thu Aug 11 2011 jfehlig@suse.com
+- libxenlight and legacy xend toolstack should not be used
+ together. If xend is running, print a warning and exit
+ xl. Add a '-f' (force) option to xl to override this
+ behavior.
+ disable-xl-when-using-xend.patch
+ bnc#707664
+* Wed Aug 10 2011 carnold@novell.com
+- Upstream patches from Jan
+ 23732-sedf.patch
+ 23735-guest-dom0-cap.patch
+ 23746-vtd-cleanup-timers.patch
+ 23747-mmcfg-base-address.patch
+ 23749-mmcfg-reservation.patch
+* Tue Aug 9 2011 cyliu@novell.com
+- bnc#704160 - crm resource migrate fails with xen machines
+ update snapshot-xend.patch
+- bnc#706574 - xm console DomUName hang after "xm save/restore" of
+ PVM on the latest Xen
+ xend-console-port-restore.patch
+* Tue Aug 9 2011 ohering@suse.de
+- update xencommons script to run only when needed
+ xencommons-proc-xen.patch
+* Fri Jul 22 2011 carnold@novell.com
+- Upstream patches from Jan
+ 23726-x86-intel-flexmigration.patch
+ 23706-fix-20892.patch
+ 23723-x86-CMOS-lock.patch
+ 23676-x86_64-image-map-bounds.patch
+ 23724-x86-smpboot-x2apic.patch
+* Mon Jul 11 2011 ohering@suse.de
+- hotplug.losetup.patch
+ correct dev:inode detection, stat returns major:minor without
+ leading zeros, while losetup -a includes trailing zeros
+* Fri Jul 8 2011 cyliu@novell.com
+- fate#310635: xen npiv multipath support
+ update block-npiv* scripts for testing
+* Thu Jul 7 2011 carnold@novell.com
+- Fixes for EFI support
+ x86-EFI-discard-comment.patch
+* Wed Jun 29 2011 carnold@novell.com
+- fate#309894: Xen needs to correctly understand family 15h CPU
+ topology
+- fate#311376: EFI support in SP2
+- fate#311529: Native UEFI booting under Xen (installation)
+ 23074-pfn.h.patch
+ 23571-vtd-fault-verbosity.patch
+ 23574-x86-dom0-compressed-ELF.patch
+ 23575-x86-DMI.patch
+ 23610-x86-topology-info.patch
+ 23611-amd-fam15-topology.patch
+ 23613-EFI-headers.patch
+ 23614-x86_64-EFI-boot.patch
+ 23615-x86_64-EFI-runtime.patch
+ 23616-x86_64-EFI-MPS.patch
+* Wed Jun 29 2011 jbeulich@novell.com
+- Mark xen-scsi.ko supported (bnc#582265, fate#309459).
+* Tue Jun 28 2011 carnold@novell.com
+- fate#310308: Hypervisor assisted watchdog driver
+ ioemu-watchdog-support.patch
+ ioemu-watchdog-linkage.patch
+ ioemu-watchdog-ib700-timer.patch
+ tools-watchdog-support.patch
+* Mon Jun 27 2011 carnold@novell.com
+- bnc#702025 - VUL-0: xen: VT-d (PCI passthrough) MSI trap
+ injection (CVE-2011-1898)
+ Fixed in Xen version 4.1.1
+* Wed Jun 22 2011 cyliu@novell.com
+- fate#310956: Support Direct Kernel Boot for FV guests
+ kernel-boot-hvm.patch
+* Wed Jun 22 2011 cyliu@novell.com
+- fate#310316: Support change vnc password while vm is running
+ change-vnc-passwd.patch
+- fate#310325: Support get domU console log from Dom0
+ log-guest-console.patch
+* Wed Jun 22 2011 ohering@suse.de
+- fate#311487: remove modprobe.conf files for autoloading of Xen
+ and Hyper-V drivers
+ xen.sles11sp1.fate311487.xen_platform_pci.dmistring.patch
+ add dmi modalias to xen-platform-pci.ko
+* Tue Jun 21 2011 carnold@novell.com
+- fate#308532: [NONCODE] Remove XEN 32-bit Hypervisor
+ Modify ExclusiveArch in xen.spec to build only x86_64
+* Tue Jun 21 2011 carnold@novell.com
+- fate#309900 - Add Xen support for SVM Decode Assist in AMD family
+ 15h
+- fate#309902 - Add Xen support for AMD family 12h processors
+- fate#309903 - Add Xen support for AMD family 14h processors
+- fate#309906 - Add Xen support for performance event counters in
+ AMD family 15h
+* Fri Jun 17 2011 carnold@novell.com
+- fate#309893: Add Xen support for AMD family 15h processors
+- fate#309901: Add Xen support for SVM TSC scaling in AMD family
+ 15h
+- fate#311951: Ivy Bridge: XEN support for Supervisor Mode
+ Execution Protection (SMEP)
+ 23437-amd-fam15-TSC-scaling.patch
+ 23462-libxc-cpu-feature.patch
+ 23481-x86-SMEP.patch
+ 23504-x86-SMEP-hvm.patch
+ 23505-x86-cpu-add-arg-check.patch
+ 23508-vmx-proc-based-ctls-probe.patch
+ 23510-hvm-cpuid-DRNG.patch
+ 23511-amd-fam15-no-flush-for-C3.patch
+ 23516-cpuid-ERMS.patch
+ 23538-hvm-pio-emul-no-host-crash.patch
+ 23539-hvm-cpuid-FSGSBASE.patch
+ 23543-x86_64-maddr_to_virt-assertion.patch
+ 23546-fucomip.patch
+* Wed Jun 15 2011 jfehlig@novell.com
+- Fix libxc reentrancy issues
+ 23383-libxc-rm-static-vars.patch
+* Wed Jun 15 2011 carnold@novell.com
+- fate#310957 - Update to Xen 4.1.1 FCS c/s 23079
+* Tue Jun 14 2011 lidongyang@novell.com
+- fate#311000 - Extend Xen domain lock framework to support
+ more alternative
+ xend-domain-lock-sfex.patch
+* Mon Jun 13 2011 lidongyang@novell.com
+- fate#311371 - Enhance yast to configure live migration for
+ Xen and KVM
+ add firewall service file for xen-tools
+* Fri Jun 10 2011 jfehlig@novell.com
+- Add man page for xen-list utility
+ updated xen-utils-0.1.tar.bz2
+* Thu May 26 2011 carnold@novell.com
+- Upstream patches from Jan
+ 23233-hvm-cr-access.patch
+ 23234-svm-decode-assist-base.patch
+ 23235-svm-decode-assist-crs.patch
+ 23236-svm-decode-assist-invlpg.patch
+ 23238-svm-decode-assist-insn-fetch.patch
+ 23303-cpufreq-misc.patch
+ 23304-amd-oprofile-strings.patch
+ 23305-amd-fam15-xenoprof.patch
+ 23306-amd-fam15-vpmu.patch
+ 23334-amd-fam12+14-vpmu.patch
+ 23338-vtd-force-intremap.patch
+* Thu May 26 2011 carnold@novell.com
+- fate#310957 - Update to Xen 4.1.1-rc1 c/s 23064
+* Tue May 24 2011 ohering@suse.de
+- xentrace: dynamic tracebuffer allocation
+ xen-unstable.xentrace.dynamic_tbuf.patch
+ xen-unstable.xentrace.empty_t_info_pages.patch
+ xen-unstable.xentrace.verbose.patch
+ xen-unstable.xentrace.no_gdprintk.patch
+ xen-unstable.xentrace.comments.patch
+ xen-unstable.xentrace.printk_prefix.patch
+ xen-unstable.xentrace.remove_debug_printk.patch
+ xen-unstable.xentrace.t_info_pages-formula.patch
+ xen-unstable.xentrace.register_cpu_notifier-boot_time.patch
+ xen-unstable.xentrace.t_info_page-overflow.patch
+ xen-unstable.xentrace.t_info_first_offset.patch
+ xen-unstable.xentrace.data_size__read_mostly.patch
+ xen-unstable.xentrace.__insert_record-dst-type.patch
+* Tue May 24 2011 ohering@suse.de
+- fate#310510 - fix xenpaging
+ update xenpaging patches for xen 4.1
+ xenpaging.guest_remove_page.slow_path.patch
+ xenpaging.mem_event-no-p2mt.patch
+ xenpaging.no-srand.patch
+ xenpaging.return-void.patch
+ xenpaging.catch-xc_mem_paging_resume-error.patch
+ xenpaging.xenpaging_populate_page-gfn.patch
+ xenpaging.autostart.patch
+* Fri May 20 2011 carnold@novell.com
+- bnc#670465 - When connecting to Xen guest through vncviewer mouse
+ tracking is off.
+- Upstream patch 23298-hvmop-get-mem-type.patch replaces
+ xen.sles11sp1.bug684297.HVMOP_get_mem_type.patch
+- Upstream patches from Jan
+ 23333-hvm-32bit-compat-hypercalls.patch
+ 23337-vtd-malicious-msi-filter.patch
+ 23338-vtd-force-intremap.patch (CVE-2011-1898)
+ 23341-x86-ioapic-write-entry.patch
+ 23343-vtd-error-path-leaks.patch
+* Thu May 19 2011 ohering@suse.de
+- bnc#684305 - on_crash is being ignored with kdump now working in HVM
+ xend-config-enable-dump-comment.patch
+* Thu May 19 2011 ohering@suse.de
+- disable xend's logrotation for xend.log, use included logrotate.conf
+* Wed May 18 2011 ohering@suse.de
+- bnc#684297 - HVM taking too long to dump vmcore
+ xen.sles11sp1.bug684297.HVMOP_get_mem_type.patch
+ new hvm_op hyper call option
+ xen.sles11sp1.bug684297.xen_oldmem_pfn_is_ram.patch
+ Use new Xen HVMOP_get_mem_type hvmop hypercall option and new Linux
+ kernel register_oldmem_pfn_is_ram interface.
+ (depends on two kernel-source changes)
+* Tue May 17 2011 carnold@novell.com
+- Update to Xen 4.1.1-rc1-pre c/s 23051
+* Thu May 12 2011 carnold@novell.com
+- Numerous cleanups when compiling with the unused-but-set-variable
+ flag enabled and warnings equal to errors.
+ xen-warnings-unused.diff
+* Thu May 12 2011 jfehlig@novell.com
+- Add a 'long' option to xen-list utility
+ Updated xen-utils-0.1.tar.bz2
+* Tue May 10 2011 jfehlig@novell.com
+- bnc#691256 - move modprobe of xen backend modules from xend to
+ xencommons initscript
+ tmp-initscript-modprobe.patch
+* Mon May 9 2011 jfehlig@novell.com
+- bnc#691738 - Xen does not find device create with npiv block
+ xen-qemu-iscsi-fix.patch
+* Tue May 3 2011 carnold@novell.com
+- Upstream patches from Jan
+ 22998-x86-get_page_from_l1e-retcode.patch
+ 22999-x86-mod_l1_entry-retcode.patch
+ 23000-x86-mod_l2_entry-retcode.patch
+ 23096-x86-hpet-no-cpumask_lock.patch
+ 23099-x86-rwlock-scalability.patch
+ 23103-x86-pirq-guest-eoi-check.patch
+ 23127-vtd-bios-settings.patch
+ 23153-x86-amd-clear-DramModEn.patch
+ 23154-x86-amd-iorr-no-rdwr.patch
+ 23199-amd-iommu-unmapped-intr-fault.patch
+ 23200-amd-iommu-intremap-sync.patch
+ 23228-x86-conditional-write_tsc.patch
+* Tue May 3 2011 carnold@novell.com
+- bnc#691238 - L3: question on behaviour change xm list
+ snapshot-xend.patch
+* Mon May 2 2011 ohering@suse.de
+- update xenalyze to revision 98
+ * Unify setting of vcpu data type
+ * Unify record size checks
+ * Fix cr3_switch not to access hvm struct before it's initialized
+- add xenalyze.gcc46.patch to fix unused-but-set-variable errors
+* Thu Apr 28 2011 jfehlig@novell.com
+- bnc#688473 - VUL-0: potential buffer overflow in tools
+ cve-2011-1583-4.0.patch
+* Thu Apr 28 2011 ohering@suse.de
+- hotplug.losetup.patch
+ correct dev:inode detection and use variable expansion
+* Tue Apr 26 2011 carnold@novell.com
+- bnc#623680 - xen kernel freezes during boot when processor module
+ is loaded
+ 23228-x86-conditional-write_tsc.patch
+- bnc#680824 - dom0 can't recognize boot disk when IOMMU is enabled
+ 23200-amd-iommu-intremap-sync.patch
+- Upstream patches from Jan
+ 23127-vtd-bios-settings.patch
+ 23153-x86-amd-clear-DramModEn.patch
+ 23154-x86-amd-iorr-no-rdwr.patch
+ 23199-amd-iommu-unmapped-intr-fault.patch
+* Thu Apr 21 2011 ohering@suse.de
+- bnc#685189: update vif-route-ifup.patch to use correct variable
+ after upstream commit 22910:d4bc41a8cecb
+* Wed Apr 20 2011 ohering@suse.de
+- bnc#688519: correct indention in xend-domain-lock.patch
+* Tue Apr 19 2011 jfehlig@novell.com
+- bnc#687981 - L3: mistyping model type when defining VIF crashes
+ VM
+ xend-validate-nic-model.patch
+* Mon Apr 11 2011 jfehlig@suse.de
+- bnc#685338: Fix porting of xend-domain-lock.patch
+* Mon Apr 11 2011 ohering@suse.de
+- update scripts to use xl instead of xm:
+ xen-updown.sh, init.xendomains, xmclone.sh
+* Mon Apr 11 2011 ohering@suse.de
+- disable xend in openSuSE > 11.4
+ the xl command is the replacement for the xm command
+* Thu Apr 7 2011 ohering@suse.de
+- mark runlevel scripts as config to preserve local changes by
+ admin or dev during package update
+* Thu Apr 7 2011 ohering@suse.de
+- enable xencommons runlevel script during upgrade if xend was
+ already enabled
+* Thu Apr 7 2011 ohering@suse.de
+- call /sbin/ldconfig directly in xen-libs post install scripts
+* Tue Apr 5 2011 carnold@novell.com
+- Upstream patches from Jan
+ 23103-x86-pirq-guest-eoi-check.patch
+ 23030-x86-hpet-init.patch
+ 23061-amd-iommu-resume.patch
+ 23127-vtd-bios-settings.patch
+* Thu Mar 31 2011 coolo@novell.com
+- add baselibs.conf as libvirt uses 32bit libraries
+* Tue Mar 29 2011 carnold@novell.com
+- Remus support is enabled for now.
+* Mon Mar 28 2011 carnold@novell.com
+- Enable support for kernel decompression for gzip, bzip2, and LZMA
+ so that kernels compressed with any of these methods can be
+ launched
+* Fri Mar 25 2011 carnold@novell.com
+- Update to Xen 4.1 FCS
+* Thu Mar 24 2011 ohering@suse.de
+- fix xentrace.dynamic_sized_tbuf.patch
+ the default case did not work, correct size calculation
+* Tue Mar 22 2011 carnold@novell.com
+- Update to c/s 23010 Xen 4.1 rc8
+* Tue Mar 22 2011 ohering@suse.de
+- use _smp_mflags instead of jobs, jobs is not expanded everywhere
+* Mon Mar 21 2011 carnold@novell.com
+- bnc#681302 - xm create -x <guest> returns "ImportError: No module
+ named ext"
+ xm-create-xflag.patch
+* Thu Mar 17 2011 carnold@novell.com
+- bnc#675817 - Kernel panic when creating HVM guests on AMD
+ platforms with XSAVE
+ 22462-x86-xsave-init-common.patch
+* Tue Mar 15 2011 carnold@novell.com
+- bnc#679344 - Xen: multi-vCPU pv guest may crash host
+ 23034-x86-arch_set_info_guest-DoS.patch
+- bnc#678871 - dom0 hangs long time when starting hvm guests with
+ memory >= 64GB
+ 22780-pod-preempt.patch
+- bnc#675363 - Random lockups with kernel-xen. Possibly graphics
+ related
+ 22997-x86-map_pages_to_xen-check.patch
+- Upstream patches from Jan
+ 22949-x86-nmi-pci-serr.patch
+ 22992-x86-fiop-m32i.patch
+ 22996-x86-alloc_xen_pagetable-no-BUG.patch
+ 23020-x86-cpuidle-ordering.patch
+ 23039-csched-constrain-cpu.patch
+* Mon Mar 14 2011 jfehlig@novell.com
+- Fix xen-utils to cope with xen-unstable c/s 21483
+* Mon Mar 14 2011 carnold@novell.com
+- bnc#678229 - restore of sles HVM fails
+ 22873-svm-sr-32bit-sysenter-msrs.patch
+* Fri Mar 11 2011 ohering@suse.de
+- xz-devel is available since 11.2, make it optional for SLES11SP1
+* Mon Feb 28 2011 cyliu@novell.com
+- Fix /vm/uuid xenstore leak on tapdisk2 device cleanup
+ 22499-xen-hotplug-cleanup.patch
+* Fri Feb 25 2011 carnold@novell.com
+- Upstream patches from Jan
+ 22872-amd-iommu-pci-reattach.patch
+ 22879-hvm-no-self-set-mem-type.patch
+ 22899-x86-tighten-msr-permissions.patch
+ 22915-x86-hpet-msi-s3.patch
+ 22947-amd-k8-mce-init-all-msrs.patch
+* Thu Feb 17 2011 jfehlig@novell.com
+- bnc#672833 - xen-tools bug causing problems with Ubuntu 10.10
+ under Xen 4.
+ 22238-pygrub-grub2-fix.patch
+* Thu Feb 17 2011 lidongyang@novell.com
+- bnc#665610 - xm console > 1 to same VM messes up both consoles
+ Upstream rejected due to portability concern, see
+ http://lists.xensource.com/archives/html/xen-devel/2011-02/msg00942.html
+ xenconsole-no-multiple-connections.patch
+* Fri Feb 11 2011 carnold@novell.com
+- Enable support for kernel decompression for gzip, bzip2, and LZMA
+ so that kernels compressed with any of these methods can be
+ launched.
+* Thu Feb 10 2011 lidongyang@novell.com
+- bnc#651822 - xm snapshot-xxx scripts lead to an XP SP3 HVM domU
+ to chkdsk
+ Make sure we only apply the snapshot once, and the changes made
+ after snapshot-apply hit the disk.
+* Wed Feb 9 2011 carnold@novell.com
+- Update to Xen 4.1.0 c/s 22861
+* Tue Feb 8 2011 jfehlig@novell.com
+- bnc#658569 - SLES 11 SP1 dom0 iptables gives lots of physdev
+ messages
+ 22385-vif-common.patch
+* Mon Feb 7 2011 ohering@suse.de
+- update xenalyze, more 64bit fixes
+* Mon Feb 7 2011 ohering@suse.de
+- allocate xentrace buffer metadata based on requested tbuf_size
+ xentrace.dynamic_sized_tbuf.patch
+* Mon Feb 7 2011 ohering@suse.de
+- fate#310510 - fix xenpaging
+ xenpaging.runtime_mru_size.patch
+ - specify policy mru size at runtime
+ xenpaging.no_domain_id.patch
+ - reduce memory usage in pager
+* Mon Feb 7 2011 ohering@suse.de
+- bnc#625394 - set vif mtu from bridge mtu if kernel supports it
+ vif-bridge.mtu.patch
+* Sun Feb 6 2011 ohering@suse.de
+- fate#310510 - fix xenpaging
+ xenpaging.autostart_delay.patch
+ - decouple create/destroycreateXenPaging from _create/_removeDevices
+ - change xenpaging variable from int to str
+ - init xenpaging variable to 0 if xenpaging is not in config file
+ to avoid string None coming from sxp file
+* Tue Feb 1 2011 carnold@novell.com
+- Update to Xen 4.0.2 rc2-pre, changeset 21443
+* Mon Jan 31 2011 carnold@novell.com
+- bnc#633573 - System fail to boot after running several warm
+ reboot tests
+ 22749-vtd-workarounds.patch
+- Upstream patches from Jan
+ 22744-ept-pod-locking.patch
+ 22777-vtd-ats-fixes.patch
+ 22781-pod-hap-logdirty.patch
+ 22782-x86-emul-smsw.patch
+ 22789-i386-no-x2apic.patch
+ 22790-svm-resume-migrate-pirqs.patch
+ 22816-x86-pirq-drop-priv-check.patch
+* Thu Jan 27 2011 carnold@novell.com
+- Don't pass the deprecataed extid parameter to xc.hvm_build
+* Fri Jan 14 2011 carnold@novell.com
+- bnc#658704 - SLES11 SP1 Xen boot panic in x2apic mode
+ 22707-x2apic-preenabled-check.patch
+- bnc#641419 - L3: Xen: qemu-dm reports "xc_map_foreign_batch: mmap failed:
+ Cannot allocate memory"
+ 7434-qemu-rlimit-as.patch
+- Additional or upstream patches from Jan
+ 22693-fam10-mmio-conf-base-protect.patch
+ 22694-x86_64-no-weak.patch
+ 22708-xenctx-misc.patch
+ 21432-4.0-cpu-boot-failure.patch
+ 22645-amd-flush-filter.patch
+ qemu-fix-7433.patch
+* Wed Jan 12 2011 carnold@novell.com
+- Maintain compatibility with the extid flag even though it is
+ deprecated for both legacy and sxp config files.
+ hv_extid_compatibility.patch
+* Wed Jan 12 2011 cyliu@novell.com
+- bnc#649209-improve suspend eventchn lock
+ suspend_evtchn_lock.patch
+* Tue Jan 11 2011 carnold@novell.com
+- Removed the hyper-v shim patches in favor of using the upstream
+ version.
+* Mon Jan 10 2011 carnold@novell.com
+- bnc#641419 - L3: Xen: qemu-dm reports "xc_map_foreign_batch: mmap
+ failed: Cannot allocate memory"
+ qemu-rlimit-as.patch
+* Mon Jan 10 2011 cyliu@novell.com
+- Upstream c/s 7433 to replace qemu_altgr_more.patch
+ 7433-qemu-altgr.patch
+* Fri Jan 7 2011 jfehlig@novell.com
+- bnc#661931 - Fix fd leak in xenstore library
+ 21344-4.0-testing-xenstore-fd-leak.patch
+* Tue Jan 4 2011 carnold@novell.com
+- bnc#656369 - g5plus: sles11sp1 xen crash with 8 socket x2apic
+ preenabled
+ 21989-x2apic-resume.patch
+ 22475-x2apic-cleanup.patch
+ 22535-x2apic-preenabled.patch
+- bnc#658163 - maintenance release - Nehalem system cannot boot
+ into xen with maintenance release installed
+ 22504-iommu-dom0-holes.patch
+ 22506-x86-iommu-dom0-estimate.patch
+- bnc#658704 - SLES11 SP1 Xen boot panic in x2apic mode
+ 21810-x2apic-acpi.patch
+- Upstream patches from Jan
+ 22470-vlapic-tick-loss.patch
+ 22484-vlapic-tmcct-periodic.patch
+ 22526-ept-access-once.patch
+ 22533-x86-32bit-apicid.patch
+ 22534-x86-max-local-apic.patch
+ 22538-keyhandler-relax.patch
+ 22540-32on64-hypercall-debug.patch
+ 22549-vtd-map-page-leak.patch
+ 22574-ept-skip-validation.patch
+ 22632-vtd-print-entries.patch
+* Tue Jan 4 2011 carnold@novell.com
+- bnc#661298 - maintenance release candidate - Windows VMs reboot
+ too fast, triggering failsafe
+ xen-minimum-restart-time.patch
+* Tue Jan 4 2011 cyliu@novell.com
+- bnc#659070 - Fail to input '|' in en-us keyboard
+ qemu_altgr_more.patch
+* Tue Dec 28 2010 jfehlig@novell.com
+- bnc#659466 - XEN drbd block device type not working on SLES 11 SP1
+ 20158-revert.patch
+* Mon Dec 27 2010 jfehlig@novell.com
+- Revert changes made to snapshot-xend.patch and
+ snapshot-ioemu-restore.patch made on 2010-11-19. The changes
+ were intended to fix bnc#651822, but testing revealed additional
+ changes were needed to completely resolve the bug. bnc#651822
+ will be fixed in a subsequent maintenance release.
+* Mon Dec 27 2010 lidongyang@novell.com
+- bnc#654543 - PV guest won't unplug the IDE disk created by
+ qemu-dm
+ a dirty hack, only add the device to drives_table[] if we are FV
+ domU, that will be unplugged anyway if a PV driver is loaded
+ later.
+ ioemu-disable-emulated-ide-if-pv.patch
+* Wed Dec 22 2010 cyliu@novell.com
+- Upstream patch to replace xenfb_32bpp.patch
+ 7426-xenfb-depth.patch
+* Tue Dec 21 2010 lidongyang@novell.com
+- bnc#651822 make sure we only apply the snapshot once, and the
+ changes made after snapshot-apply hit the disk.
+ snapshot-xend.patch
+ snapshot-without-pv-fix.patch
+* Fri Dec 17 2010 ohering@suse.de
+- fate#310510 - fix xenpaging
+ xenpaging.HVMCOPY_gfn_paged_out.patch
+ - remove incorrect and unneeded cleanup from do_memory_op
+ subfunctions
+ add mainline tag to merged patches
+* Thu Dec 16 2010 jfehlig@novell.com
+- bnc#613584 - If available, use kpartx '-f' option in domUloader
+* Thu Dec 16 2010 jfehlig@novell.com
+- bnc#659872 - xend: Do no release domain lock on checkpoint
+ operation.
+* Tue Dec 14 2010 carnold@novell.com
+- Upstream patches from Jan
+ 22431-p2m-remove-bug-check.patch
+ 22448-x86_64-gdt-ldt-fault-filter.patch
+ 22466-x86-sis-apic-bug.patch
+ 22451-hvm-cap-clobber.patch
+ 22388-x2apic-panic.patch
+ 22452-x86-irq-migrate-directed-eoi.patch
+* Tue Dec 14 2010 carnold@novell.com
+- bnc#658163 - maintenance release - Nehalem system cannot boot
+ into xen with maintenance release installed
+ iommu-dom0-holes.patch
+ x86-iommu-dom0-estimate.patch
+* Tue Dec 14 2010 carnold@novell.com
+- bnc#659085 - physical host is rebooted with unknown reason
+ Regression: Remove the patch 22071-ept-get-entry-lock.patch
+* Mon Dec 13 2010 carnold@novell.com
+- Removed 7410-qemu-alt-gr.patch and altgr_2.patch. It causes a
+ regression (see bnc#659070)
+* Tue Dec 7 2010 ohering@suse.de
+- make stubdom build optional
+* Tue Dec 7 2010 ohering@suse.de
+- pass -j N to stubdom build
+* Tue Dec 7 2010 ohering@suse.de
+- add xenalzye from http://xenbits.xensource.com/ext/xenalyze.hg
+* Tue Dec 7 2010 ohering@suse.de
+- hotplug-block-losetup-a.patch
+ allow hardlinked blockdevices
+- fate#310510 - fix xenpaging
+ xenpaging.paging_prep_enomem.patch
+ - retry page-in if guest is temporary out-of-memory
+ xenpaging.print-arguments.patch
+ - print arguments passed to xenpaging
+ xenpaging.machine_to_phys_mapping.patch
+ - invalidate array during page deallocation
+ xenpaging.autostart_delay.patch
+ - fold xenpaging.enabled.patch into this patch
+ - set xenpaging_delay to 0.0 to start xenpaging right away
+* Fri Dec 3 2010 carnold@novell.com
+- bnc#654591 - SLES11 SP0->Sp1 regression? (Xen, HVMs, NPIV)
+ Fixed xen-qemu-iscsi-fix.patch
+* Fri Dec 3 2010 cyliu@novell.com
+- blktap2 patch - fix problem that blktap2 device info not cleared
+ when block-attach fail.
+ blktap2.patch
+* Tue Nov 30 2010 carnold@novell.com
+- bnc#655438 - Using performance counter in domU on Nehalem cpus
+ 22417-vpmu-nehalem.patch
+- Upstream patches from Jan
+ 22389-amd-iommu-decls.patch
+ 22416-acpi-check-mwait.patch
+ 22431-p2m-remove-bug-check.patch
+* Tue Nov 30 2010 carnold@novell.com
+- bnc#656245 - VUL-1: hypervisor: application or kernel in any pv
+ Xen domain can crash Xen
+ x86_64-gdt-ldt-fault-filter.patch
+* Mon Nov 29 2010 carnold@novell.com
+- bnc#654050 - Python: a crasher bug in pyexpat - upstream patch
+ needs backporting
+ 22235-lxml-validator.patch
+* Tue Nov 23 2010 jfehlig@novell.com
+- bnc#628729 - Add a small, fast alternative to 'xm list' for
+ enumerating active domains. xen-list is a C program that uses
+ libxenstore and libxenctl directly, bypassing the python
+ toolstack.
+ xen-utils-0.1.tar.bz2
+* Mon Nov 22 2010 jfehlig@novell.com
+- bnc#628729 - Add a small, fast alternative to 'xm list' for
+ enumerating active domains. xen-list is a C program that uses
+ libxenstore and libxenctl directly, bypassing the python
+ toolstack.
+ xen-utils-0.1.tar.bz2
+* Fri Nov 19 2010 lidongyang@novell.com
+- bnc#651822 - xm snapshot-xxx scripts lead to an XP SP3 HVM domU
+ to chkdsk
+ snapshot-xend.patch
+ snapshot-ioemu-restore.patch
+* Wed Nov 17 2010 carnold@novell.com
+- bnc#651957 - Xen: vm-install failed to start
+ xenpaging.enabled.patch
+* Wed Nov 17 2010 ohering@suse.de
+- fate#310510 - fix xenpaging
+ xenpaging.signal_handling.patch
+ - unlink pagefile in signal handler
+* Fri Nov 12 2010 carnold@novell.com
+- Upstream patch for python 2.7 compatibility
+ 22045-python27-compat.patch
+* Thu Nov 11 2010 cyliu@novell.com
+- bnc#641144 - FV Xen VM running windows or linux cannot write to
+ virtual floppy drive
+ bdrv_default_rwflag.patch
+* Thu Nov 11 2010 ohering@suse.de
+- fate#310510 - fix xenpaging
+ xenpaging.optimize_p2m_mem_paging_populate.patch
+ xenpaging.HVMCOPY_gfn_paged_out.patch
+* Thu Nov 11 2010 carnold@novell.com
+- bnc#649864 - automatic numa cpu placement of xen conflicts with
+ cpupools
+ 22326-cpu-pools-numa-placement.patch
+* Wed Nov 10 2010 ohering@suse.de
+- fate#310510 - fix xenpaging
+ xenpaging.populate_only_if_paged.patch
+ - revert logic, populate needs to happen unconditionally
+ xenpaging.p2m_mem_paging_populate_if_p2m_ram_paged.patch
+ - invalidate current mfn only if gfn is not in flight or done
+ xenpaging.mem_event_check_ring-free_requests.patch
+ - print info only if 1 instead of 2 slots are free
+ xenpaging.guest_remove_page.patch
+ - check mfn before usage in resume function
+ xenpaging.machine_to_phys_mapping.patch
+ - check mfn before usage in resume function
+* Tue Nov 9 2010 jfehlig@novell.com
+- bnc#552115 - Remove target discovery in block-iscsi
+ modified block-iscsi script
+* Mon Nov 8 2010 jfehlig@novell.com
+- bnc#649277 - Fix pci passthru in xend interface used by libvirt
+ 22369-xend-pci-passthru-fix.patch
+* Sun Nov 7 2010 lidongyang@novell.com
+- bnc#642078 - xm snapshot-create causes qemu-dm to SEGV
+ snapshot-without-pv-fix.patch
+* Fri Nov 5 2010 ohering@suse.de
+- fate#310510 - fix xenpaging
+ xenpaging.num_pages_equal_max_pages.patch
+* Fri Nov 5 2010 carnold@novell.com
+- bnc#647681 - L3: Passthrough of certain PCI device broken after
+ SLES 11 to SP1 upgrade
+- bnc#650871 - Regression in Xen PCI Passthrough
+ 22348-vtd-check-secbus-devfn.patch
+- Upstream patches from Jan
+ 22223-vtd-workarounds.patch (bnc#652935)
+ 22231-x86-pv-ucode-msr-intel.patch
+ 22232-x86-64-lahf-lm-bios-workaround.patch
+ 22280-kexec.patch
+ 22337-vtd-scan-single-func.patch
+* Wed Nov 3 2010 carnold@novell.com
+- bnc#497149 - SLES11 64bit Xen - SLES11 64bit HVM guest has
+ corrupt text console
+ stdvga-cache.patch
+* Wed Nov 3 2010 ohering@suse.de
+- fate#310510 - fix xenpaging
+ xenpaging.page_already_populated.patch
+ xenpaging.notify_policy_only_once.patch
+ xenpaging.guest_remove_page.patch
+ xenpaging.machine_to_phys_mapping.patch
+ remove xenpaging.memory_op.patch, retry loops are not needed
+* Tue Nov 2 2010 carnold@novell.com
+- bnc#474789 - xen-tools 3.3 rpm misses pv-grub
+- PV-GRUB replaces PyGrub to boot domU images safely: it runs the
+ regular grub inside the created domain itself and uses regular
+ domU facilities to read the disk / fetch files from network etc.;
+ it eventually loads the PV kernel and chain-boots it.
+* Wed Oct 27 2010 ohering@suse.de
+- fate#310510 - fix xenpaging
+ xenpaging.doc.patch
+- add /var/lib/xen/xenpaging directory
+* Wed Oct 27 2010 ksrinivasan@novell.com
+- Some cleanup in the APIC handling code in the HyperV shim.
+ hv_apic.patch
+* Wed Oct 27 2010 ohering@suse.de
+- fate#310510 - fix xenpaging
+ xenpaging.memory_op.patch, correct delay handling in retry loop
+* Wed Oct 27 2010 cyliu@novell.com
+- bnc#640370 - VM graphic console in VNC is corrupted
+ xenfb_32bpp.patch
+* Fri Oct 22 2010 ohering@suse.de
+- fate#310510 - fix xenpaging
+ xenpaging.autostart_delay.patch
+ delay start of xenpaging 7 seconds for smooth BIOS startup
+* Wed Oct 20 2010 ohering@suse.de
+- fate#310510 - fix xenpaging
+ xenpaging.tools_xenpaging_cleanup.patch
+* Wed Oct 20 2010 ohering@suse.de
+- fate#310510 - fix xenpaging
+ xenpaging.mem_event_check_ring-free_requests.patch
+* Wed Oct 20 2010 ohering@suse.de
+- install /etc/xen/examples/xentrace_formats.txt to get human readable
+ tracedata if xenalyze is not used
+* Sun Oct 17 2010 ohering@suse.de
+- fate#310510 - fix xenpaging
+ xenpaging.autostart_delay.patch
+ xenpaging.blacklist.patch
+ xenpaging.MRU_SIZE.patch
+ remove xenpaging.hacks.patch, realmode works
+* Mon Oct 11 2010 carnold@novell.com
+- Upstream patches from Jan including fixes for the following bugs
+ bnc#583568 - Xen kernel is not booting
+ bnc#615206 - Xen kernel fails to boot with IO-APIC problem
+ bnc#640773 - Xen kernel crashing right after grub
+ bnc#643477 - issues with PCI hotplug/hotunplug to Xen driver domain
+ 22222-x86-timer-extint.patch
+ 22214-x86-msr-misc-enable.patch
+ 22213-x86-xsave-cpuid-check.patch
+ 22194-tmem-check-pv-mfn.patch
+ 22177-i386-irq-safe-map_domain_page.patch
+ 22175-x86-irq-enter-exit.patch
+ 22174-x86-pmtimer-accuracy.patch
+ 22160-Intel-C6-EOI.patch
+ 22159-notify-evtchn-dying.patch
+ 22157-x86-debug-key-i.patch
+* Mon Oct 11 2010 ohering@suse.de
+- fate#310510 - fix xenpaging
+ xenpaging.signal_handling.patch
+ xenpaging.autostart.patch
+ xenpaging.hacks.patch
+* Mon Oct 11 2010 ohering@suse.de
+- rename xenpaging.XENMEM_decrease_reservation.patch
+ to xenpaging.memory_op.patch
+* Fri Oct 8 2010 cyliu@novell.com
+- bnc#632956 - fix VNC altgr-insert behavior
+ 7410-qemu-alt-gr.patch
+ altgr_2.patch
+* Thu Oct 7 2010 jfehlig@novell.com
+- bnc#618087 - VNC view won't stay connected to fully virtualized
+ Linux Xen VMs
+ modified ioemu-vnc-resize.patch
+* Tue Oct 5 2010 carnold@novell.com
+- bnc#639546 - Dom-U deleted after introduction of the parameter
+ "change_home_server False" in the VM configuration
+ change_home_server.patch
+* Mon Oct 4 2010 jfehlig@novell.com
+- bnc#641859 - block-dmmd script does not handle the configuration
+ when only MD is used
+ modified block-dmmd script
+* Thu Sep 30 2010 ohering@suse.de
+- fate#310510 - fix xenpaging
+ xenpaging.populate_only_if_paged.patch
+* Mon Sep 27 2010 carnold@novell.com
+- bnc#640773 - Xen kernel crashing right after grub
+ 21894-intel-unmask-cpuid.patch
+- Upstream patch from Jan
+ 22148-serial-irq-dest.patch
+* Thu Sep 23 2010 cyliu@novell.com
+- bnc#628719 - improve check_device_status to handle HA cases
+ check_device_status.patch
+* Thu Sep 23 2010 cyliu@novell.com
+- bnc#628719 - multi-xvdp
+ mutli-xvdp.patch
+* Wed Sep 22 2010 ohering@suse.de
+- fate#310510 - fix xenpaging
+ xenpaging.XENMEM_decrease_reservation.patch
+ xenpaging.xenpaging_init.patch
+ xenpaging.policy_linear.patch
+* Mon Sep 20 2010 cyliu@novell.com
+- bnc#632956 - fix VNC altgr-insert behavior
+ 7410-qemu-alt-gr.patch
+ altgr_2.patch
+* Fri Sep 17 2010 ohering@suse.de
+- fate#310510 - fix xenpaging
+ xenpaging.pageout_policy.patch
+ xenpaging.xs_daemon_close.patch
+ xenpaging.pagefile.patch
+ xenpaging.mem_paging_tool_qemu_flush_cache.patch
+ xenpaging.get_paged_frame.patch
+ xenpaging.notify_via_xen_event_channel.patch
+* Mon Sep 13 2010 carnold@novell.com
+- bnc#636231 - XEN: Unable to disconnect/remove CDROM drive from VM
+ xend-devid-or-name.patch
+* Mon Sep 13 2010 carnold@novell.com
+- Upstream patches from Jan
+ 22019-x86-cpuidle-online-check.patch
+ 22051-x86-forced-EOI.patch
+ 22067-x86-irq-domain.patch
+ 22068-vtd-irte-RH-bit.patch
+ 22071-ept-get-entry-lock.patch
+ 22084-x86-xsave-off.patch
+* Mon Sep 13 2010 carnold@novell.com
+- bnc#638465 - hypervisor panic in memory handling
+ 22135-heap-lock.patch
+* Fri Sep 10 2010 carnold@novell.com
+- Update to Xen 4.0.1. This is a bug fix release.
+* Thu Sep 9 2010 jfehlig@novell.com
+- bnc#635380 - Fix pygrub Grub2 support
+ See update to Xen 4.0.1 for fixes
+* Fri Aug 27 2010 cyliu@novell.com
+- bnc#628701 - Improve performance when activate/deactivate dmmd
+ devices
+ modified block-dmmd script
+* Wed Aug 25 2010 jfehlig@novell.com
+- bnc#628701 - Fix qemu-dm handling of dmmd devices
+ modified xen-qemu-iscsi-fix.patch
+* Mon Aug 16 2010 carnold@novell.com
+- bnc#626262 - Populate-on-demand memory problem on xen with hvm
+ guest
+ 21971-pod-accounting.patch
+* Mon Aug 16 2010 cyliu@novell.com
+- bnc#584204 - xm usb-list broken
+ usb-list.patch
+* Thu Aug 12 2010 carnold@novell.com
+- bnc#625520 - TP-L3: NMI cannot be triggered for xen kernel
+ 21926-x86-pv-NMI-inject.patch
+* Mon Aug 9 2010 carnold@novell.com
+- bnc#613529 - TP-L3: kdump kernel hangs when crash was initiated
+ from xen kernel
+ 21886-kexec-shutdown.patch
+* Mon Aug 2 2010 carnold@novell.com
+- Upstream Intel patches to improve X2APIC handling.
+ 21716-iommu-alloc.patch
+ 21717-ir-qi.patch
+ 21718-x2apic-logic.patch
+* Tue Jul 27 2010 jfehlig@novell.com
+- bnc#623833 - Error in Xend-API method VM_set_actions_after_crash
+ 21866-xenapi.patch
+* Tue Jul 27 2010 jfehlig@novell.com
+- bnc#625003 - Fix vm config options coredump-{restart,destroy}
+ Added hunk to xm-create-xflag.patch
+* Mon Jul 26 2010 jfehlig@novell.com
+- bnc#605186 - Squelch harmless error messages in block-iscsi
+* Mon Jul 26 2010 jfehlig@novell.com
+- bnc#623438 - Add ability to control SCSI device path scanning
+ in xend
+ 21847-pscsi.patch
+* Mon Jul 26 2010 carnold@novell.com
+- Enable the packaging of create.dtd. This is needed for when xm
+ is configured to use xenapi.
+* Wed Jul 21 2010 carnold@novell.com
+- bnc#624285 - TP-L3: xen rdtsc emulation reports wrong frequency
+ 21445-x86-tsc-handling-cleanups-v2.patch
+* Tue Jul 20 2010 carnold@novell.com
+- bnc#623201 - drbd xvd will fail in new xen4 packages due to wrong
+ popen2 arguments in blkif.py
+ popen2-argument-fix.patch
+* Thu Jul 8 2010 carnold@novell.com
+- bnc#620694 - Xen yast vm-install for existing paravirtualized
+ disk fails with UnboundLocalError: local variable 'dev_type'
+ referenced before assignment
+ 21678-xend-mac-fix.patch
+* Wed Jul 7 2010 carnold@novell.com
+- bnc#586221 - cannot add DomU with USB host controller defined
+ domu-usb-controller.patch (Chun Yan Liu)
+* Tue Jul 6 2010 carnold@novell.com
+- Upstream patches from Jan
+ 21151-trace-bounds-check.patch
+ 21627-cpuidle-wrap.patch
+ 21643-vmx-vpmu-pmc-offset.patch
+ 21682-trace-buffer-range.patch
+ 21683-vtd-kill-timer-conditional.patch
+ 21693-memevent-64bit-only.patch
+ 21695-trace-t_info-readonly.patch
+ 21698-x86-pirq-range-check.patch
+ 21699-p2m-query-for-type-change.patch
+ 21700-32on64-vm86-gpf.patch
+ 21705-trace-printk.patch
+ 21706-trace-security.patch
+ 21712-amd-osvw.patch
+ 21744-x86-cpufreq-range-check.patch
+ 21933-vtd-ioapic-write.patch
+ 21953-msi-enable.patch
+* Fri Jun 25 2010 jsong@novell.com
+- bnc#599550 - Xen cannot distinguish the status of 'pause'
+ 21723-get-domu-state.patch
+* Tue Jun 22 2010 jfehlig@novell.com
+- bnc#604611 - Do not store vif device details when vif config
+ contains invalid mac address.
+ 21653-xend-mac-addr.patch
+* Wed Jun 16 2010 carnold@novell.com
+- linux pvdrv: generalize location of autoconf.h
+ Fixes error because of missing autoconf.h when building os11.2
+ Factory.
+* Mon Jun 14 2010 carnold@novell.com
+- bnc#609153 - xm migrate <domain_name> localhost -l fails on
+ Windows VMs
+ 21615-dont-save-xen-heap-pages.patch
+- Upstream fixes from Jan
+ 21446-iommu-graceful-generic-fail.patch
+ 21453-shadow-avoid-remove-all-after-teardown.patch
+ 21456-compat-hvm-addr-check.patch
+ 21492-x86-pirq-unbind.patch
+ 21526-x86-nehalem-cpuid-mask.patch
+ 21620-x86-signed-domain-irq.patch
+* Mon Jun 7 2010 carnold@novell.com
+- bnc#612189 - Clear APIC Timer Initial Count Register when masking
+ timer interrupt
+ 21542-amd-erratum-411.patch
+* Fri Jun 4 2010 carnold@novell.com
+- bnc#610658 - XEN: PXE boot fails for fully virtualized guests -
+ e1000 virtual nic. (see also bnc#484778)
+ enable_more_nic_pxe.patch
+* Tue May 25 2010 carnold@novell.com
+- bnc#608191 - /var/adm/fillup-templates/sysconfig.xend from
+ package xen-tools is no valid sysconfig file
+ xend-sysconfig.patch
+* Tue May 25 2010 carnold@novell.com
+- bnc#608194 - /etc/xen/* config files are not packaged with
+ noreplace
+* Tue May 25 2010 carnold@novell.com
+- bnc#569744 - SLE HVM guest clock/timezone is incorrect after
+ reboot
+ 21460-xend-timeoffset.patch
+* Tue May 25 2010 jfehlig@novell.com
+- bnc#606882 - Allow spaces in vbd path names
+ 21459-block-script.patch
+* Mon May 24 2010 jsong@novell.com
+- bnc#591799 - The status of Caps Lock is incorrect in domU
+ capslock_enable.patch
+* Thu May 20 2010 carnold@novell.com
+- Upstream fixes from Jan including a fix for Intel's ATS issue
+ 21435-vmx-retain-global-controls.patch
+ 21406-x86-microcode-quiet.patch
+ 21421-vts-ats-enabling.patch
+* Wed May 19 2010 carnold@novell.com
+- bnc#607219 - AMD Erratum 383 workaround for Xen
+ 21408-amd-erratum-383.patch
+* Wed May 19 2010 carnold@novell.com
+- Added modprobe of evtchn to init.xend. The kernel will also need
+ to build evtchn as a module for this to be meaningful.
+* Mon May 17 2010 carnold@novell.com
+- bnc#603008 - On an 8 Socket Nehalem-EX system, the fix for 593536
+ causes a hang during network setup.
+- Upstream patches from Jan.
+ 21360-x86-mce-polling-disabled-init.patch
+ 21372-x86-cross-cpu-wait.patch
+ 21331-svm-vintr-during-nmi.patch
+ 21333-xentrace-t_info-size.patch
+ 21340-vtd-dom0-mapping-latency.patch
+ 21346-x86-platform-timer-wrap.patch
+ 21373-dummy-domain-io-caps.patch
+* Wed May 12 2010 carnold@novell.com
+- bnc#605182 - /etc/xen/scripts/xen-hotplug-cleanup: line 24: [:
+ !=: unary operator expected
+ 21129-xen-hotplug-cleanup.patch
+* Mon May 10 2010 carnold@novell.com
+- bnc#599929 - Hot add/remove Kawela NIC device over 500 times will
+ cause guest domain crash
+ passthrough-hotplug-segfault.patch
+* Fri May 7 2010 jfehlig@novell.com
+- bnc#603583 - Fix migration of domUs using tapdisk devices
+ 21317-xend-blkif-util-tap2.patch
+ suse-disable-tap2-default.patch
+* Thu May 6 2010 carnold@novell.com
+- Match upstreams cpu pools switch from domctl to sysctl
+- Upstream replacements for two of our custom patches (to ease
+ applying further backports)
+- Fixed dump-exec-state.patch (could previously hang the system, as
+ could - with lower probability - the un-patched implementation)
+* Wed May 5 2010 carnold@novell.com
+- bnc#593536 - xen hypervisor takes very long to initialize Dom0 on
+ 128 CPUs and 256Gb
+ 21272-x86-dom0-alloc-performance.patch
+ 21266-vmx-disabled-check.patch
+ 21271-x86-cache-flush-global.patch
+* Tue May 4 2010 carnold@novell.com
+- bnc#558815 - using multiple npiv luns with same wwpn/wwnn broken
+- bnc#601104 - Xen /etc/xen/scripts/block-npiv script fails when
+ accessing multiple disks using NPIV
+ block-npiv
+* Fri Apr 30 2010 carnold@novell.com
+- bnc#595124 - VT-d can not be enabled on 32PAE Xen on Nehalem-EX
+ platform
+ 21234-x86-bad-srat-clear-pxm2node.patch
+ bnc#585371 - kdump fails to load with xen: locate_hole failed
+ 21235-crashkernel-advanced.patch
+* Thu Apr 29 2010 carnold@novell.com
+- bnc#588918 - Attaching a U-disk to domain's failed by
+ "xm usb-attach"
+ init.xend
+* Wed Apr 21 2010 jfehlig@novell.com
+- bnc#596442 - Preserve device config on domain start failure
+ xend-preserve-devs.patch
+* Tue Apr 20 2010 jfehlig@novell.com
+- bnc#597770 - insserv reports a loop between xendomains and
+ openais. Remove openais from Should-Start in xendomains script.
+* Fri Apr 16 2010 jfehlig@novell.com
+- bnc#569194 - Tools-side fixes for tapdisk protocol specification
+ blktap-script.patch
+ ioemu-subtype.patch
+ Modified xen-domUloader.diff
+* Wed Apr 14 2010 carnold@novell.com
+- Upstream bug fixes from Jan
+ 21089-x86-startup-irq-from-setup-gsi.patch
+ 21109-x86-cpu-hotplug.patch
+ 21150-shadow-race.patch
+ 21160-sysctl-debug-keys.patch
+* Fri Apr 9 2010 jfehlig@novell.com
+- Updated to Xen 4.0.0 FCS, changeset 21091
+* Tue Apr 6 2010 jfehlig@novell.com
+- Change default lock dir (when domain locking is enabled) to
+ /var/lib/xen/images/vm_locks
+- Support SXP config files in xendomains script
+* Wed Mar 31 2010 carnold@novell.com
+- Update to changeset 21087 Xen 4.0.0 RC9.
+* Fri Mar 26 2010 carnold@novell.com
+- Update to changeset 21075 Xen 4.0.0 RC8.
+* Thu Mar 25 2010 jsong@novell.com
+- bnc#584210 - xm usb-hc-destroy does not remove entry from xend
+ del_usb_xend_entry.patch
+* Tue Mar 23 2010 carnold@novell.com
+- Update to changeset 21057 Xen 4.0.0 RC7.
+* Wed Mar 17 2010 jsong@novell.com
+-Fix bnc#466899 - numa enabled xen fails to start/create vms
+ adjust_vcpuaffinity_more_cpu.patch
+* Tue Mar 9 2010 carnold@novell.com
+- Update to changeset 21022 Xen 4.0.0 RC6.
+* Tue Mar 9 2010 carnold@novell.com
+- bnc#586510 - cpupool fixes
+ cpu-pools-update.patch
+* Fri Mar 5 2010 carnold@novell.com
+- bnc#582645 - Xen stuck, mptbase driver attempting to reset config
+ request
+* Mon Mar 1 2010 carnold@novell.com
+- Update to changeset 20990 Xen 4.0.0 RC5.
+* Mon Feb 22 2010 jfehlig@novell.com
+- bnc#556939 - Improve device map cleanup code in domUloader
+* Sun Feb 21 2010 jfehlig@novell.com
+- bnc# 578910 - xm block-detach does not cleanup xenstore
+ hotplug-cleanup-fix.patch
+* Fri Feb 19 2010 carnold@novell.com
+- bnc#579361 - Windows Server 2003 cannot wake up from stand by in
+ sp1
+ hibernate.patch
+* Fri Feb 19 2010 carnold@novell.com
+- fate#308852: XEN CPU Pools
+ cpupools-core.patch
+ cpupools-core-fixup.patch
+ keyhandler-alternative.patch
+ cpu-pools-libxc.patch
+ cpu-pools-python.patch
+ cpu-pools-libxen.patch
+ cpu-pools-xmtest.patch
+ cpu-pools-docs.patch
+* Thu Feb 18 2010 ksrinivasan@novell.com
+- bnc#558760: Disable scsi devices when PV drivers are loaded.
+* Tue Feb 16 2010 carnold@novell.com
+- Update to changeset 20951 Xen 4.0.0 RC4 for sle11-sp1 beta5.
+* Mon Feb 8 2010 carnold@novell.com
+- bnc#572146 - SLES11 SP1 beta 2 Xen - BUG: soft lockup - CPU#31
+ stuck for 61s! [kstop/31:4512]
+ cpuidle-hint-v3.patch
+* Fri Feb 5 2010 carnold@novell.com
+- Update to changeset 20900 RC2+ for sle11-sp1 beta4.
+* Fri Jan 29 2010 carnold@novell.com
+- bnc#573376 - OS reboot while create DomU with Windows CD
+* Wed Jan 27 2010 carnold@novell.com
+- bnc#573881 - /usr/lib64/xen/bin/qemu-dm is a broken link
+* Thu Jan 21 2010 carnold@novell.com
+- Update to changeset 20840 RC1+ for sle11-sp1 beta3.
+* Thu Jan 21 2010 jfehlig@novell.com
+- bnc#569581 - SuSEfirewall2 should handle rules. Disable
+ handle_iptable in vif-bridge script
+ vif-bridge-no-iptables.patch
+* Wed Jan 20 2010 carnold@novell.com
+- bnc#569577 - /etc/modprove.d/xen_pvdrivers, installed by
+ xen-kmp-default, to ../xen_pvdrivers.conf
+* Wed Jan 6 2010 ksrinivasan@novell.com
+- bnc#564406 - Make the new PV drivers work with older hosts that
+ do not understand the new PV driver protocol.
+* Fri Dec 11 2009 carnold@novell.com
+- Upstream Xen version renamed to 4.0.0 in changeset 20624 & 20625.
+* Wed Dec 9 2009 carnold@novell.com
+- fate#307594: HP-MCBS: XEN: support NR_CPUS=256
+ This is a spec file change (xen.spec)
+* Thu Dec 3 2009 carnold@novell.com
+- bnc#555152 - "NAME" column in xentop (SLES11) output limited to
+ 10 characters unlike SLES10
+ The update to c/s 20572 includes this fix (at c/s 20567).
+* Tue Dec 1 2009 wkong@novell.com
+- Modify xen-paths.diff
+* Tue Dec 1 2009 wkong@novell.com
+- Merge xend-tap-fix.patch to xen-domUloader.diff
+ remove part of it which accepted by upstream
+* Tue Dec 1 2009 jfehlig@novell.com
+- Load gntdev module in xend init script similar to blkbk,
+ netbk, etc.
+* Thu Nov 26 2009 wkong@novell.com
+- Backport dmmd from sles11/xen
+ block-dmmd
+ xen-qemu-iscsi-fix.patch
+ xen.spec
+* Thu Nov 26 2009 wkong@novell.com
+- Fix regression when create_vbd for tap
+ xend-tap-fix.patch
+* Tue Nov 24 2009 carnold@novell.com
+- Temporarily disable libxl because of libconfig dependency.
+* Thu Nov 19 2009 wkong@novell.com
+- fate#302864 domUloader support lvm in disk
+ domUloader.py
+ Note: for test in Beta1, if not good, remove it
+* Thu Nov 19 2009 wkong@novell.com
+- fate#302864 domUloader support fs on whole disk
+ domUloader.py
+* Fri Nov 6 2009 carnold@suse.de
+- Turn KMPs back on now that kernel side fix is checked in.
+* Tue Oct 20 2009 jfehlig@novell.com
+- fate#304415 VMM: ability to switch networking mode
+ Add vif-route-ifup to handle routed configurations using
+ sysconfig scripts.
+ vif-route-ifup.patch
+* Mon Oct 19 2009 jsong@novell.com
+- fate#307540 USB for Xen VMs
+ usb-add.patch
+* Mon Oct 19 2009 jsong@novell.com
+- fate#305545 XEN extra descriptive field within xenstore
+ add_des.patch
+* Mon Oct 12 2009 carnold@novell.com
+- Update to Xen version 3.5.0 for the following features.
+ fate#304226 XEN: FlexMigration feature of VT-x2 support
+ fate#305004 Add SR-IOV PF and VF drivers to Vt-d enabled Xen
+ fate#306830 T states in Xen controlling by MSR
+ fate#306832 Fix for xen panic on new processors
+ fate#306833 Westmere and Nehalem-EX: Add support for Pause Loop exiting feature for Xen
+ fate#306835 Xen: server virtual power management enhacement
+ fate#306837 VT-d2 - PCI SIG ATS support
+ fate#306872 Xen: Node manager support P/T-states change when Vt-d enable
+ fate#306873 Xen: SMP guest live migration may fail with hap=1 on NHM
+ fate#306875 Westmere: LT-SX (Xen)
+ fate#306891 RAS features for Xen: Add support for Machine Check and CPU/Memory online/offline features
+ fate#307322 1GB page support in Xen
+ fate#307324 Xen IOMMU support
+* Fri Oct 9 2009 carnold@novell.com
+- bnc#541945 - xm create -x command does not work in SLES 10 SP2 or
+ SLES 11
+ xm-create-xflag.patch
+* Thu Oct 8 2009 jfehlig@novell.com
+- Minor enhancement to xen-updown.sh sysconfig hook
+* Mon Sep 28 2009 wkong@novell.com
+- Add patch ioemu-bdrv-open-CACHE_WB.patch
+ for install guest on tapdisk very very slow.
+* Fri Sep 25 2009 jfehlig@novell.com
+- Add temporary workaround for race between xend writing and
+ qemu-dm reading from xenstore. The issue is preventing PV
+ domUs from booting as they have no backend console.
+ qemu-retry-be-status.patch
+- bnc#520234 - npiv does not work with XEN
+ Update block-npiv
+- bnc#496033 - Support for creating NPIV ports without starting vm
+ block-npiv-common.sh
+ block-npiv-vport
+ Update block-npiv
+- bnc#500043 - Fix access to NPIV disk from HVM vm
+ Update xen-qemu-iscsi-fix.patch
+* Tue Sep 15 2009 jfehlig@novell.com
+- bnc#513921 - Xen doesn't work get an eror when starting the
+ install processes or starting a pervious installed DomU
+ 20125-xc-parse-tuple-fix.patch
+* Wed Sep 2 2009 carnold@novell.com
+- bnc#536176 - Xen panic when using iommu after updating hypervisor
+ 19380-vtd-feature-check.patch
+* Fri Aug 28 2009 jfehlig@novell.com
+- bnc#530959 - virsh autostart doesn't work
+ Fixing this libvirt bug also required fixing xend's op_pincpu
+ method with upstream c/s 19580
+ 19580-xend-pincpu.patch
+* Fri Aug 28 2009 jbeulich@novell.com
+- bnc#534146 - Xen: Fix SRAT check for discontig memory
+ 20120-x86-srat-check-discontig.patch
+* Mon Aug 24 2009 carnold@novell.com
+- bnc#491081 - Xen time goes backwards x3950M2
+ 20112-x86-dom0-boot-run-timers.patch
+* Mon Aug 10 2009 ro@suse.de
+- disable module build for ec2 correctly to fix build
+ (at the suse_kernel_module_package macro)
+* Mon Aug 10 2009 ksrinivasan@novell.com
+- bnc#524071 - implemented workaround for a windows7 bug.
+ hv_win7_eoi_bug.patch
+* Mon Aug 3 2009 jfehlig@novell.com
+- bnc#524180 - xend memory leak resulting in long garbage collector
+ runs
+ 20013-xend-memleak.patch
+* Fri Jul 31 2009 carnold@novell.com
+- Upstream bugfixes from Jan.
+ 19896-32on64-arg-xlat.patch
+ 19960-show-page-walk.patch
+ 19945-pae-xen-l2-entries.patch
+ 19953-x86-fsgs-base.patch
+ 19931-gnttblop-preempt.patch
+ 19885-kexec-gdt-switch.patch
+ 19894-shadow-resync-fastpath-race.patch
+- hvperv shim patches no longer require being applied conditionally
+* Wed Jul 29 2009 jfehlig@novell.com
+- bnc#520234 - npiv does not work with XEN in SLE11
+ Update block-npiv
+- bnc#496033 - Support for creating NPIV ports without starting vm
+ block-npiv-common.sh
+ block-npiv-vport
+ Update block-npiv
+- bnc#500043 - Fix access to NPIV disk from HVM vm
+ Update xen-qemu-iscsi-fix.patch
+* Wed Jul 15 2009 carnold@novell.com
+- Don't build the KMPs for the ec2 kernel.
+* Thu Jul 2 2009 jfehlig@novell.com
+- Upstream fixes from Jan Beulich
+ 19606-hvm-x2apic-cpuid.patch
+ 19734-vtd-gcmd-submit.patch
+ 19752-vtd-srtp-sirtp-flush.patch
+ 19753-vtd-reg-write-lock.patch
+ 19764-hvm-domain-lock-leak.patch
+ 19765-hvm-post-restore-vcpu-state.patch
+ 19767-hvm-port80-inhibit.patch
+ 19768-x86-dom0-stack-dump.patch
+ 19770-x86-amd-s3-resume.patch
+ 19801-x86-p2m-2mb-hap-only.patch
+ 19815-vtd-kill-correct-timer.patch
+- Patch from Jan Beulich to aid in debugging bnc#509911
+ gnttblop-preempt.patch
+* Tue Jun 23 2009 wkong@novell.com
+- bnc#515220 - qemu-img-xen snapshot Segmentation fault
+ qemu-img-snapshot.patch update
+* Tue Jun 9 2009 wkong@novell.com
+- bnc#504491 - drop write data when set read only disk in xen config
+ bdrv_open2_fix_flags.patch
+ bdrv_open2_flags_2.patch
+* Fri Jun 5 2009 carnold@novell.com
+- Upstream fixes from Jan Beulich.
+ 19474-32on64-S3.patch
+ 19490-log-dirty.patch
+ 19492-sched-timer-non-idle.patch
+ 19493-hvm-io-intercept-count.patch
+ 19505-x86_64-clear-cr1.patch
+ 19519-domctl-deadlock.patch
+ 19523-32on64-restore-p2m.patch
+ 19555-ept-live-migration.patch
+ 19557-amd-iommu-ioapic-remap.patch
+ 19560-x86-flush-tlb-empty-mask.patch
+ 19571-x86-numa-shift.patch
+ 19578-hvm-load-ldt-first.patch
+ 19592-vmx-exit-reason-perfc-size.patch
+ 19595-hvm-set-callback-irq-level.patch
+ 19597-x86-ioport-quirks-BL2xx.patch
+ 19602-vtd-multi-ioapic-remap.patch
+ 19631-x86-frametable-map.patch
+ 19653-hvm-vcpuid-range-checks.patch
+* Fri Jun 5 2009 jsong@novell.com
+- bnc#382112 - Caps lock not being passed to vm correctly.
+ capslock_enable.patch
+* Wed May 27 2009 jfehlig@novell.com
+- bnc#506833 - Use pidof in xend and xendomains init scripts
+* Wed May 27 2009 jsong@novell.com
+- bnc#484778 - XEN: PXE boot of FV domU using non-Realtek NIC fails
+ enable_more_nic_pxe.patch
+* Wed May 27 2009 jsong@novell.com
+ cross-migrate.patch
+- bnc#390961 - cross-migration of a VM causes it to become
+ unresponsive (remains paused after migration)
+* Tue May 19 2009 carnold@novell.com
+- Patches taken to fix the xenctx tool. The fixed version of this
+ tool is needed to debug bnc#502735.
+ 18962-xc_translate_foreign_address.patch
+ 18963-xenctx.patch
+ 19168-hvm-domctl.patch
+ 19169-remove-declare-bitmap.patch
+ 19170-libxc.patch
+ 19171-xenctx.patch
+ 19450-xc_translate_foreign_address.patch
+* Mon May 18 2009 wkong@novell.com
+-bnc#485770 - check exsit file for save and snapshot-create
+ xm-save-check-file.patch
+ snapshot-xend.patch
+* Mon May 18 2009 wkong@novell.com
+-bnc#503782 - Using converted vmdk image does not work
+ ioemu-tapdisk-compat-QEMU_IMG.patch
+* Thu May 14 2009 jfehlig@novell.com
+- bnc#503332 - Remove useless qcow tools
+ /usr/sbin/{qcow-create,img2qcow,qcow2raw} from xen-tools package.
+* Wed May 13 2009 jsong@novell.com
+- bnc#474738 - adding CD drive to VM guest makes it unbootable.
+ parse_boot_disk.patch
+* Mon May 11 2009 wkong@novell.com
+- bnc#477892 - snapshot windows can't accomplish.
+ snapshot-xend.patch
+* Tue Apr 28 2009 carnold@novell.com
+- bnc#495300 - L3: Xen unable to PXE boot Windows based DomU's
+ 18545-hvm-gpxe-rom.patch, 18548-hvm-gpxe-rom.patch
+* Mon Apr 27 2009 jfehlig@novell.com
+- bnc#459836 - Fix rtc_timeoffset when localtime=0
+ xend-timeoffset.patch
+* Wed Apr 22 2009 carnold@novell.com
+- bnc#497440 - xmclone.sh script incorrectly handles networking for
+ SLE11.
+* Fri Apr 17 2009 wkong@novell.com
+- bnc#477890 - VM becomes unresponsive after applying snapshot
+* Wed Apr 15 2009 jfehlig@novell.com
+- bnc#494892 - Update xend-domain-lock.patch to flock the lock
+ file.
+* Wed Apr 8 2009 ksrinivasan@novell.com
+- bnc#439639 - SVVP Test 273 System - Sleep Stress With IO" fails
+ Turned off s3/s4 sleep states for HVM guests.
+* Tue Apr 7 2009 jsong@novell.com
+- bnc#468169 - fix domUloader to umount the mounted device mapper target in dom0
+ when install a sles10 guest with disk = /dev/disk/by_path
+* Thu Apr 2 2009 jfehlig@novell.com
+- bnc#488490 - domUloader can't handle block device names with ':'
+- bnc#486244 - vms fail to start after reboot when using qcow2
+* Tue Mar 31 2009 carnold@novell.com
+- bnc#490835 - VTd errata on Cantiga chipset
+ 19230-vtd-mobile-series4-chipset.patch
+* Mon Mar 30 2009 carnold@novell.com
+- bnc#482515 - Missing dependency in xen.spec
+* Thu Mar 26 2009 carnold@novell.com
+- Additional upstream bug fix patches from Jan Beulich.
+ 19132-page-list-mfn-links.patch
+ 19134-fold-shadow-page-info.patch
+ 19135-next-shadow-mfn.patch
+ 19136-page-info-rearrange.patch
+ 19156-page-list-simplify.patch
+ 19161-pv-ldt-handling.patch
+ 19162-page-info-no-cpumask.patch
+ 19216-msix-fixmap.patch
+ 19268-page-get-owner.patch
+ 19293-vcpu-migration-delay.patch
+ 19391-vpmu-double-free.patch
+ 19415-vtd-dom0-s3.patch
+* Wed Mar 25 2009 carnold@novell.com
+- Imported numerous upstream bug fix patches.
+ 19083-memory-is-conventional-fix.patch
+ 19097-M2P-table-1G-page-mappings.patch
+ 19137-lock-domain-page-list.patch
+ 19140-init-heap-pages-max-order.patch
+ 19167-recover-pat-value-s3-resume.patch
+ 19172-irq-to-vector.patch
+ 19173-pci-passthrough-fix.patch
+ 19176-free-irq-shutdown-fix.patch
+ 19190-pciif-typo-fix.patch
+ 19204-allow-old-images-restore.patch
+ 19232-xend-exception-fix.patch
+ 19239-ioapic-s3-suspend-fix.patch
+ 19240-ioapic-s3-suspend-fix.patch
+ 19242-xenstored-use-after-free-fix.patch
+ 19259-ignore-shutdown-deferrals.patch
+ 19266-19365-event-channel-access-fix.patch
+ 19275-19296-schedular-deadlock-fixes.patch
+ 19276-cpu-selection-allocation-fix.patch
+ 19302-passthrough-pt-irq-time-out.patch
+ 19313-hvmemul-read-msr-fix.patch
+ 19317-vram-tracking-fix.patch
+ 19335-apic-s3-resume-error-fix.patch
+ 19353-amd-migration-fix.patch
+ 19354-amd-migration-fix.patch
+ 19371-in-sync-L1s-writable.patch
+ 19372-2-on-3-shadow-mode-fix.patch
+ 19377-xend-vnclisten.patch
+ 19400-ensure-ltr-execute.patch
+ 19410-virt-to-maddr-fix.patch
+* Mon Mar 9 2009 jfehlig@novell.com
+- bnc#483565 - Fix block-iscsi script.
+ Updated block-iscsi and xen-domUloader.diff
+* Mon Mar 9 2009 carnold@novell.com
+- bnc#465814 - Mouse stops responding when wheel is used in Windows
+ VM.
+ mouse-wheel-roll.patch (James Song)
+- bnc#470704 - save/restore of windows VM throws off the mouse
+ tracking.
+ usb-save-restore.patch (James Song)
+* Thu Mar 5 2009 jfehlig@novell.com
+- bnc#436629 - Use global vnc-listen setting specified in xend
+ configuration file.
+ xend-vnclisten.patch
+- bnc#482623 - Fix pygrub to append user-supplied 'extra' args
+ to kernel args.
+ 19234_pygrub.patch
+* Thu Mar 5 2009 carnold@novell.com
+- bnc#481161 upgrade - sles10sp2 to sles11 upgrade keeps
+ xen-tools-ioemu
+* Tue Mar 3 2009 kukuk@suse.de
+- Don't load 8139* driver if xen-vnif works [bnc#480164]
+* Fri Feb 27 2009 carnold@novell.com
+- bnc#480164 - Default network proposal in fully virtualized
+ SLES 11 VM is invalid.
+ xen_pvdrivers
+* Thu Feb 26 2009 carnold@novell.com
+- bnc#474822 - L3: Win2003 i386 XEN VM can see only 2 TB with a
+ 4TB LUN.
+ int13_hardisk-64bit-lba.patch
+* Wed Feb 25 2009 jfehlig@novell.com
+- bnc#477890 - Destroy domain if snapshot restore fails.
+ Updated snapshot-xend.patch
+* Tue Feb 24 2009 ksrinivasan@novell.com
+- bnc#470238 - SLE11 32FV guest is hanging during certification
+ tests.
+ bnc#468265 - Xen guest shows duplicate drives
+ bnc#469598 - SLES11 RC2 64bit Xen - SLES11 full virt guests
+ hanging under load.
+ disable_emulated_device.diff
+* Tue Feb 24 2009 kwolf@suse.de
+- bnc#477892 - Disable xend timeout for snapshots
+ Updated snapshot-xend.patch
+* Tue Feb 24 2009 kwolf@suse.de
+- bnc#477895 - Fix detaching blktap disks from domains without
+ device model
+ Updated blktap-ioemu-close-fix.patch
+* Fri Feb 20 2009 kwolf@suse.de
+- bnc#472390 - Enable debuginfo for ioemu
+ ioemu-debuginfo.patch
+* Thu Feb 19 2009 carnold@novell.com
+- bnc#473883 - Xen: 64 bit guest crashes with qemu-dm segfault
+ qemu-dm-segfault.patch
+* Wed Feb 18 2009 jfehlig@novell.com
+- bnc#437776 - Remove tracing (bash -x) from network-nat script
+ network-nat.patch
+* Wed Feb 18 2009 jfehlig@novell.com
+- bnc#473815 - Handle NULL return when reading a xenstore path.
+ Updated blktap-error-handling.patch
+* Wed Feb 18 2009 kwolf@suse.de
+- Fix VHD image support for > 4 GB (offsets truncated to 32 bits)
+ ioemu-vpc-4gb-fix.patch
+* Thu Feb 12 2009 ksrinivasan@novell.com
+- bnc#468660 - Fix migration from sles10 to sles11 on Intel.
+ old-arbytes.patch
+* Thu Feb 12 2009 carnold@novell.com
+- bnc#473800 - If VT-d is enabled, Dom0 fails to boot up on
+ Nehalem-HEDT platform.
+ 19198-fix-snoop.patch
+ 19154-snoop-control.patch
+* Thu Feb 5 2009 jfehlig@novell.com
+- bnc#470133 - Better error handling in xm when not booted Xen
+ 19153-xm-noxen-error.patch
+* Wed Feb 4 2009 kwolf@suse.de
+- bnc#472075 - Fix ioemu to initialize its blktap backend also for
+ fully virtualized guests
+ ioemu-blktap-fv-init.patch
+* Tue Feb 3 2009 jfehlig@novell.com
+- bnc#470855 - Add note to xm man page on how to detach domain
+ console
+ 19152-xm-man-page.patch
+* Mon Feb 2 2009 jfehlig@novell.com
+- bnc#471090 - XendAPIStore: Do not remove non-existent item
+ class list
+ 19151-xend-class-dereg.patch
+* Mon Feb 2 2009 carnold@novell.com
+- bnc#470949 - user mode application may crash kernel
+ 19088-x86-page-non-atomic-owner.patch (Jan Beulich)
+ 19089-x86_64-widen-page-refcounts.patch
+ 19103-x86_64-fold-page-lock.patch
+ x86_64-page-info-pack.patch
+ x86_64-sh-next-shadow.patch
+* Fri Jan 23 2009 carnold@novell.com
+- Intel - Remove improper operating condition that results in a
+ machine check.
+ 19072-vmx-pat.patch
+ 19079-snp_ctl-1.patch
+* Fri Jan 23 2009 kwolf@suse.de
+- bnc#465379 - Fix blktap error handling
+ blktap-error-handling.patch
+* Thu Jan 22 2009 carnold@novell.com
+- bnc#435219 - XEN pv-driver doesn't work
+* Thu Jan 22 2009 jbeulich@novell.com
+- Fix unmaskable MSI handling.
+ 18778-msi-irq-fix.patch
+* Wed Jan 21 2009 jfehlig@novell.com
+- bnc#467883 - Squelch output of xen-updown.sh sysconfig hook
+ script and don't save state of tap devices not belonging to Xen.
+* Wed Jan 21 2009 carnold@novell.com
+- bnc#467807 - Xen: IRQs stop working
+ xen-ioapic-ack-default.diff
+* Fri Jan 16 2009 carnold@novell.com
+- bnc#447178 - xm dump-core does not work for cross-bitness guest.
+ 19046-cross-bit-coredumping.patch
+ 19048-cross-bit-coredumping.patch
+ 19051-cross-bit-coredumping.patch
+* Thu Jan 15 2009 brieske@novell.com
+- bnc#429637 - SSVP SMBIOS HCT Test failing
+ 19027-hvmloader-SMBIOS-dev-mem-boundary.patch
+* Wed Jan 14 2009 carnold@novell.com
+- bnc#460805 - Unable to boot with Xen kernel with IBM T42p / T41p
+ 19039-x86-propagate-nolapic.patch
+ 19038-x86-no-apic.patch
+* Mon Jan 5 2009 carnold@novell.com
+- bnc#435596 - dom0 S3 resume fails if disk drive is set as AHCI
+ mode.
+ 18937-S3-MSI.patch
+- Final Xen 3.3.1 FCS changeset 18546
+* Mon Dec 29 2008 carnold@novell.com
+- bnc#436021 - On PAE host with EPT enabled, booting a HVM guest
+ with 4G memory will cause Xen hang.
+ 18943-amd-32bit-paging-limit.patch
+* Mon Dec 22 2008 carnold@novell.com
+- bnc#461596 - Failue to load 64-bit HVM Solaris 10U6 DomU with 2
+ vcpus. Update to RC4 contains fix in c/s 18538.
+* Mon Dec 22 2008 jfehlig@novell.com
+- bnc#379032 and bnc#404014 - Fix loop device leak in domUloader
+* Wed Dec 17 2008 kwolf@suse.de
+- bnc#456758 - Allow all block device types for which a script
+ exists in /etc/xen/scripts besides file, tap and phy.
+ reenable-block-protocols.patch
+* Mon Dec 15 2008 carnold@novell.com
+- Patch cleanup. Updated tarball with several of our stand-alone
+ but now upstream patches (c/s 18536).
+* Fri Dec 5 2008 kwolf@suse.de
+- bnc#404014 - Fix memory leak in libxenguest during domain
+ creation
+ libxc-zlib-memleak.patch
+* Thu Dec 4 2008 jfehlig@novell.com
+- bnc#456511 - Fix domain name change after checkpoint/shutdown
+ events.
+* Tue Dec 2 2008 carnold@novell.com
+- Fixed xmclone.sh. It calls lomount which no longer exists in the
+ distro.
+* Tue Nov 25 2008 kwolf@suse.de
+- Fix the build. Build system seems to be unhappy about having two
+ copies of the xenstore binary (this is not a proper fix in fact
+ as the build error says the two files are not identical - they
+ are hardlinks, so this seems unlikely to be the real cause).
+ tmp_build.patch
+* Mon Nov 24 2008 jfehlig@novell.com
+- bnc#448364 - Fix cpu affinity on save/restore/migrate
+* Thu Nov 20 2008 kwolf@suse.de
+- bnc#444731 - Fix data corruption bug (caused by broken x86
+ emulation for movnti instruction)
+ xen-x86-emulate-movnti.patch
+* Wed Nov 19 2008 kwolf@suse.de
+- Report device model errors during the creation of snapshots
+ to xend instead of failing silently
+* Wed Nov 19 2008 kwolf@suse.de
+- bnc#445659 - ioemu: Workaround for VNC client initialization
+ race with xenfb changing the resolution (caused VNC connection
+ to be closed, vm-install recognized this as failed installation)
+ ioemu-vnc-resize.patch
+* Tue Nov 18 2008 carnold@novell.com
+- bnc#444203 - With EPT mode4, HVM S3 causes Xen HV crash.
+ 18783-hvm-vcpu-reset-state-fix.patch
+* Mon Nov 17 2008 carnold@novell.com
+- bnc#444731 - Blackscreen instead of second stage during
+ installation
+ 18766-realmode-stack-size-fix.patch
+* Thu Nov 13 2008 carnold@novell.com
+- bnc#429739 - Network failure with bnx2 when booted to XEN
+ 18778-msi-irq-fix.patch
+* Wed Nov 12 2008 kwolf@suse.de
+- bnc#444197 - Add udev rule to fix domUloader race with
+ automounter (udev-rules.patch)
+* Sun Nov 9 2008 ro@suse.de
+- disable kmp to fix build again
+* Fri Nov 7 2008 kwolf@suse.de
+- Fix merge damage which prevented disks to be snapshotted when
+ not in disk-only snapshot mode
+* Wed Nov 5 2008 kwolf@suse.de
+- bnc#435195 - Fix error handling for blktap devices and ioemu;
+ check for images smaller than a sector and abort (causes hangs
+ of the complete blktap stack otherwise)
+ ioemu-blktap-zero-size.patch
+* Mon Nov 3 2008 plc@novell.com
+- bnc#436572 - L3: vm serial port configuration and access is not
+ persistent across dom0 reboot
+* Wed Oct 29 2008 carnold@novell.com
+- bnc#436926 - Xen hypervisor crash
+* Tue Oct 28 2008 jfehlig@novell.com
+- bnc#438927 - Fix migration bug in xend
+* Tue Oct 28 2008 carnold@suse.de
+- disable KMP, does not build with current kernel
+* Fri Oct 24 2008 jfehlig@novell.com
+- bnc#437756 - Fix default netdev device in network-route
+* Wed Oct 22 2008 jfehlig@novell.com
+- bnc#434560 - Remove local patch that prevents creating PV vif
+ when "type=ioemu" is specified in guest vif config. This patch
+ is causing several problems with recent changes to xenstore
+ layout.
+* Wed Oct 22 2008 jfehlig@novell.com
+- bnc#431758 - Added upstream changeset 18654 to prevent setting
+ vcpus > VCPUs_max on running domain.
+* Tue Oct 21 2008 carnold@novell.com
+- Update to changeset 18455.
+* Fri Oct 17 2008 olh@suse.de
+- add ExclusiveArch x86 x86_64
+* Wed Oct 15 2008 jfehlig@novell.com
+- bnc#433722 - Fix handling of default bridge in qemu-ifup.
+* Mon Oct 13 2008 carnold@novell.com
+- bnc#431324 - Cannot boot from XEN kernel
+* Mon Oct 13 2008 kwolf@suse.de
+- blktapctrl: Close connection to tapdisk-ioemu only if there are
+ no more attached disks
+ blktap-ioemu-close-fix.patch
+- blktapctrl: If tapdisk-ioemu has been shut down and a new
+ instance is needed, fix saving the PID of the new instance
+* Thu Oct 2 2008 jfehlig@novell.com
+- bnc#431737 - Fix use of deprecated python constructs in xend
+* Mon Sep 29 2008 carnold@novell.com
+- Update to c/s 18430, remove our versions of upstream patches.
+- fate#303867 - minimum HVM domain limits. Pulled upstream
+ patches for supporting up to 255 cpus.
+* Fri Sep 26 2008 kwolf@suse.de
+- bnc#430222 - Fixed block-attach for tap:aio images
+* Thu Sep 25 2008 kwolf@suse.de
+- bnc#429801 - Fixed xm start -c / --vncviewer
+ xm-start-fix.patch
+* Wed Sep 24 2008 carnold@novell.com
+- bnc#382401 - xm man page missing information for commands.
+* Wed Sep 17 2008 carnold@novell.com
+- Pulled some upstream patches for Intel and AMD microcode fixes.
+* Tue Sep 16 2008 carnold@novell.com
+- Update to changeset 18412. Contains several bug fixes including
+ a crash fix in qemu-dm and also various memory leaks fixes.
+* Mon Sep 15 2008 carnold@novell.com
+- Fix parameters in call to kill_proc_info (pv drivers).
+- Add conditional for use of smp_call_function so the pv drivers
+ can be built on older kernel versions.
+* Thu Sep 11 2008 brogers@novell.com
+- Added gdbserver-xen to the set of tools we build.
+ fate#302942
+* Thu Sep 11 2008 jfehlig@novell.com
+- Added ocfs2 to Should-Start in xendomains init script
+* Wed Sep 10 2008 plc@novell.com
+- Added pv cdrom support to blktap
+ fate#300964
+* Wed Sep 10 2008 jfehlig@novell.com
+- Removed invocation of network-bridge script from xend-config.sxp.
+ Networks are now created through yast2-network package.
+- Added sysconfig hook script for Xen to cope with ifup/ifdown
+ events on network devices (e.g. bridges) in use by virtual
+ machines.
+ fate#303386
+* Mon Sep 8 2008 carnold@novell.com
+- Updated to xen version 3.3.1 RC changeset 18390.
+* Wed Sep 3 2008 kwolf@suse.de
+- Snapshots: Fix xend API functions for libvirt usage
+* Mon Sep 1 2008 carnold@novell.com
+- Fix problems building KMPs against the 2.6.27 kernel.
+* Fri Aug 29 2008 plc@novell.com
+- Added 'tap' to the type of devices for HalDaemon.py to
+ scan for change of xenstore attribute media-present.
+* Wed Aug 27 2008 jfehlig@novell.com
+- Don't create pv vif device if emulated network device is
+ explicitly specified in guest config.
+* Fri Aug 22 2008 carnold@novell.com
+- Updated to xen-unstable changeset 18358 Xen 3.3.0 FCS.
+* Wed Aug 20 2008 carnold@novell.com
+- Updated to xen-unstable changeset 18353 RC7.
+* Wed Aug 20 2008 kwolf@suse.de
+- Implementation of xm snapshot-delete
+ snapshot-ioemu-delete.patch, snapshot-xend.patch
+- Add snapshot options to qemu-img-xen
+ qemu-img-snapshot.patch
+* Tue Aug 19 2008 carnold@novell.com
+- Enable kboot and kexec patches.
+* Mon Aug 18 2008 carnold@novell.com
+- Updated to xen-unstable changeset 18335 RC5.
+* Mon Aug 18 2008 carnold@suse.de
+- Removed git dependency. Instead use a static version of
+ ioemu-remote.
+* Thu Aug 14 2008 jfehlig@novell.com
+- Added patch to prevent starting same domU from multiple hosts.
+ Feature is disabled by default - see /etc/xen/xend-config.sxp.
+ fate#305062
+* Mon Aug 11 2008 jfehlig@novell.com
+- Added python-openssl to Requires list for xen-tools. This
+ package is required if SSL relocation is enabled by user.
+* Mon Aug 11 2008 carnold@novell.com
+- Updated to xen-unstable changeset 18309. Pre 3.3.0-rc4.
+* Sat Aug 9 2008 jfehlig@novell.com
+- Disabled xend-relocation-ssl-server for now. Certificates must
+ be created and feature needs testing.
+* Fri Aug 8 2008 carnold@novell.com
+- Update to xen-unstable changeset 18269 post RC3. Reverse
+ version back to 3.3.0 from 4.0.0.
+* Wed Aug 6 2008 carnold@novell.com
+- Updated to xen-unstable changeset 18242. Version changes from
+ 3.3.0 to 4.0.0
+* Mon Aug 4 2008 carnold@novell.com
+- Updated to xen-unstable changeset 18210. Post 3.3.0-rc2.
+* Tue Jul 8 2008 carnold@novell.com
+- Updated to xen-unstable changeset 17990.
+* Tue Jul 8 2008 kwolf@suse.de
+- ioemu: Write barriers for blktap devices
+ ioemu-blktap-barriers.patch
+* Thu Jul 3 2008 kwolf@suse.de
+- blktapctrl defaults to using ioemu instead of tapdisk now
+ blktapctrl-default-to-ioemu.patch
+- Now that ioemu is default, it can be called with image paths
+ starting e.g. with tap:qcow2. If the image format is specified,
+ it has to be respected and no guessing on the image file must
+ happen.
+ ioemu-blktap-image-format.patch
+- qcow2: Read/Write multiple sectors at once if possible to
+ improve performance.
+ ioemu-qcow2-multiblock-aio.patch
+* Thu Jun 12 2008 kwolf@novell.com
+- Add snapshot support to ioemu and blktapctrl
+ snapshot-ioemu-save.patch
+ snapshot-ioemu-restore.patch
+* Fri Jun 6 2008 jfehlig@novell.com
+- bnc#397890 - Create and own /var/lib/xen/dump
+* Thu Jun 5 2008 kwolf@novell.com
+- Fix tapdisk for qcow2 images > 2 GB
+ 1xxxx-qcow2-2gb-bug.patch
+* Thu Jun 5 2008 jfehlig@novell.com
+- Updated to xen-unstable changeset 17772.
+* Tue May 27 2008 plc@novell.com
+- bnc#381368 - boot qcow image fix.
+* Fri May 23 2008 jfehlig@novell.com
+- bnc#378595 - Revert patch that disables use of ifup/ifdown.
+ ifup-bridge in sysconfig has been fixed so patch is no longer
+ needed. Calling ifdown on bridge now removes ports and deletes
+ bridge, so network-bridge no longer needs to do these tasks.
+* Fri May 16 2008 carnold@novell.com
+- bnc#390985 - xm man page needs FIXME sections to be fixed
+ xen-fixme-doc.diff
+* Wed May 14 2008 carnold@novell.com
+- bnc#375322 - L3:timer went backwards
+ x86-domain-shutdown-latency.patch
+* Sat May 10 2008 plc@novell.com
+- bnc#388969 - Shift tab traversal does not work
+ xen-shift-key.patch
+- bnc#384277 - PVFB security hole
+ xen-pvfb-security.patch
+- bnc#385586 - VNC windows size too small
+ xen-vnc-resize.patch
+* Fri Apr 25 2008 carnold@novell.com
+- bnc#383513 - Unknown unit 'K' in Xen's logrotate config file.
+* Fri Apr 25 2008 carnold@novell.com
+- Update to Xen 3.2.1 FCS changeset 16881.
+* Fri Apr 11 2008 carnold@novell.com
+- Update to Xen 3.2.1 RC5 changeset 16864.
+* Thu Apr 10 2008 jfehlig@novell.com
+- bnc#378595 - Do not use ifup/ifdown in network-bridge for now.
+* Mon Mar 24 2008 carnold@novell.com
+- bnc#373194 - The xen module and the kernel for Dom0 don't match.
+- Add ncurses-devel build dependency
+* Mon Mar 24 2008 carnold@novell.com
+- Update to Xen 3.2.1 RC1 changeset 16820.
+* Thu Mar 20 2008 coolo@suse.de
+- 3.1.0 is unfortunately not enough to obsolete 3.1.0_<something>
+ in rpm terms
+* Fri Mar 14 2008 carnold@novell.com
+- Update to Xen 3.2.1 changeset 16805.
+* Fri Mar 14 2008 coolo@suse.de
+- ipcalc does not exist - and breaks pattern
+* Wed Mar 12 2008 jfehlig@novell.com
+- Increased dom0-min-mem value to 512Mb in xend-config.sxp
+ bnc#370007
+* Mon Mar 10 2008 jfehlig@novell.com
+- Fixed initialization of default VM config values when creating
+ VMs through Xen API. bnc#368273
+* Mon Mar 10 2008 jfehlig@novell.com
+- Removed unused/untested xend-relocation script.
+* Fri Mar 7 2008 jfehlig@novell.com
+- Set device model when creating pvfb consoles via XenAPI.
+ bnc#367851
+* Fri Mar 7 2008 jfehlig@novell.com
+- Ensure dhcpcd is activated, if appropriate, on bridges created
+ by network-multinet. bnc#364633
+* Fri Feb 29 2008 carnold@novell.com
+- bnc#357966 - VT-D dosen't work for HVM guest.
+* Fri Feb 29 2008 plc@novell.com
+- Send UNIT_ATTENTION when CD drive has newly inserted media and
+ becomes ready. bnc#365386
+* Thu Feb 28 2008 jfehlig@novell.com
+- Updated block-iscsi script and xen-domUloader patch, bnc #365385
+* Thu Feb 28 2008 carnold@novell.com
+- Add support for Intel EPT / VPID.
+* Tue Feb 26 2008 carnold@novell.com
+- bnc#362415 - SLE-based installs 32-bit fully-virtualized have
+ network problems during installs.
+- bnc#358244 - Time remaining does not change properly for FV SLES10
+ SP2 guest.
+- bnc#363053 - Install remaining time always shows 2:00:00
+* Tue Feb 26 2008 carnold@novell.com
+- bnc#359457 - Xen full virt has data integrity issue.
+* Tue Feb 26 2008 plc@novell.com
+- Tranlate colors from 32 bit to 16 bit when viewing a 32 bit PV
+ VM from a 16 bit client. bnc#351470
+ Also includes upstream mouse queue patch.
+* Fri Feb 22 2008 jfehlig@novell.com
+- Added PAM configuration files for remote authentication via
+ Xen API. bnc #353464
+* Tue Feb 19 2008 carnold@novell.com
+- Fix PV drivers for HVM guests.
+* Fri Feb 15 2008 carnold@novell.com
+- Support for pxe booting fully virtualized guests in vm-install is
+ complete.
+* Thu Feb 14 2008 carnold@novell.com
+- Added upstream changesets that fix various bugs.
+ 16859 16929 16930 16945 16947 16962 16976 16980 16995 16998 17036
+* Wed Feb 13 2008 jfehlig@novell.com
+- Updated network-multinet
+ - Simplify bridge creation
+ - Create traditional bridge and hostonly networks by default
+* Fri Feb 8 2008 jfehlig@novell.com
+- Added upstream changesets 16932, 16965, 16977, and 16988 to fix
+ various bugs in tool stack
+- Also added upstream changeset 16989 to complete fate #302941.
+* Mon Feb 4 2008 plc@novell.com
+- Replaced xen-blktab-subtype-strip.patch with official upstream
+ changeset for bnc#353065.
+* Fri Feb 1 2008 carnold@novell.com
+- Update to xen 3.2 FCS. Changeset 16718
+- Merge xen-tools and xen-tools-ioemu into xen-tools.
+* Wed Dec 19 2007 carnold@novell.com
+- Update to xen 3.2 RC2. Changeset 16646
+* Thu Dec 13 2007 carnold@novell.com
+- Added agent support for HP Proliant hardware.
+* Wed Dec 5 2007 carnold@novell.com
+- #338108 - VUL-0: Xen security issues in SLE10
+- #279062 - Timer ISR/1: Time went backwards
+* Thu Nov 29 2007 carnold@novell.com
+- Added part of upstream c/s 15211. Fixed open call with O_CREAT
+ because it had no mode flags (15211-fix-open-mode.patch).
+* Mon Nov 5 2007 jfehlig@novell.com
+- Added upstream c/s 15434 to allow access to serial devices.
+ Bug #338486.
+* Thu Nov 1 2007 carnold@novell.com
+- #334445: xenbaked: Fix security vulnerability CVE-2007-3919.
+* Thu Nov 1 2007 carnold@novell.com
+- #310279: Kernel Panic while booting Xen
+* Tue Oct 2 2007 ccoffing@novell.com
+- #286859: Fix booting from SAN
+* Thu Sep 13 2007 ccoffing@novell.com
+- #310338: Fix "No such file or directory" in network-multinet
+* Wed Sep 12 2007 jfehlig@novell.com
+- #309940: Fix 'xm reboot'
+- Moved hvm_vnc.diff and xend_mem_leak.diff to 'Upstream patches'
+ section of spec file since both have been accepted upstream now.
+* Mon Sep 10 2007 jfehlig@novell.com
+- #289283: Fix memory leak in xend
+* Fri Sep 7 2007 jfehlig@novell.com
+- #297125: Expose 'type vnc' in vfb device sexp for HVM guests.
+* Thu Sep 6 2007 ccoffing@novell.com
+- #302106: Update network-multinet
+* Wed Sep 5 2007 carnold@novell.com
+- #307458: AMD-V CR8 intercept reduction for HVM windows 64b guests
+* Wed Aug 29 2007 ccoffing@novell.com
+- Update block-iscsi to match changes to open-iscsi.
+* Mon Aug 27 2007 carnold@novell.com
+- #289275 - domu will not reboot if pci= is passed in at boot time.
+* Fri Aug 24 2007 carnold@novell.com
+- #297345: Added several upstream patches for hvm migration.
+* Fri Aug 17 2007 jfehlig@novell.com
+- Added upstream c/s 15128, 15153, 15477, and 15716. These patches
+ provide foundation for bug #238986
+- Renamed xend_dev_destroy_cleanup.patch to reflect the upstream
+ c/s number and moved it to "upstream patches" section of spec
+ file.
+* Mon Aug 13 2007 carnold@novell.com
+- hvm svm: Log into 'xm dmesg' that SVM NPT is enabled.
+* Fri Aug 10 2007 ccoffing@novell.com
+- Honor RPM_OPT_FLAGS better
+* Thu Aug 9 2007 ccoffing@novell.com
+- #298176: Do not enable NX if CPU/BIOS does not support it
+- #289569: Modify network-bridge to handle vlan
+- #297295: Fix bridge setup: stop using getcfg
+* Tue Aug 7 2007 olh@suse.de
+- remove inclusion of linux/compiler.h and linux/string.h
+ remove ExclusiveArch and fix prep section for quilt setup *.spec
+* Thu Aug 2 2007 jfehlig@novell.com
+- Added patch to fix/cleanup destoryDevice code path in xend.
+ Patch was submitted upstream. Aids in fixing several bugs, e.g.
+ [#217211] and #242953.
+* Tue Jul 31 2007 ccoffing@novell.com
+- Update Ron Terry's network-multi script
+- Fix insserv
+* Tue Jul 31 2007 jfehlig@novell.com
+- Added following upstream patches:
+ + 15642 - Fixes bug 289421 found in SLES10 SP1 but applies to
+ Xen 3.1.0 as well.
+ + 15649, 15650, 15651 - Fixes/enhancements to Xen API required
+ by Xen CIM providers
+* Fri Jul 27 2007 ccoffing@novell.com
+- #242953: Allow HVM to use blktap
+- #239173: block-attach as RW for domUloader to avoid failures with
+ reiserfs (since blktap does not yet correctly communicate RO to
+ the kernel)
+* Mon Jul 23 2007 ccoffing@novell.com
+- Drop xen-bootloader-dryrun.diff; not needed for xen 3.1
+- rpmlint: Actually apply patch for #280637
+- rpmlint: Rename logrotate config from xend to xen
+- Don't package xenperf twice
+- xen-detect is a domU tool
+* Mon Jul 23 2007 jfehlig@novell.com
+- Added upstream patches that fix various bugs
+ + 15168 fixes check for duplicate domains
+ + 15587 resets domain ID and fixes problems with domain state
+ via Xen API
+ + 15609 stores memory values changed via Xen API
+* Thu Jul 19 2007 ccoffing@novell.com
+- BuildRequires LibVNCServer-devel
+- Rotate all logs.
+- Fix network data corruption on Win2003 with rtl8139. (#254646)
+- Xen fails to create VM due to "out of memory" errors. (#280637)
+* Tue Jul 17 2007 plc@novell.com
+- Added CDROM removable media patch from 3.0.4
+* Fri Jul 6 2007 ccoffing@novell.com
+- xensource bug #858: Disable strict aliasing for xenstore, to
+ avoid domU hangs.
+* Tue Jul 3 2007 ccoffing@novell.com
+- #285929: Bad "xendomains status" output w/ empty XENDOMAINS_SAVE
+* Tue Jul 3 2007 carnold@novell.com
+- Changes necessary to support EDD and EDID from Jan.
+* Wed Jun 20 2007 jfehlig@novell.com
+- Added upstream changesets 15273, 15274, and 15275.
+- Removed the modified 15157 patch. This patch was actually a
+ consolidation of changesets 15157 and 15250. These changesets
+ are now discrete patches to ease subsequent updates of Xen.
+* Wed Jun 20 2007 ccoffing@novell.com
+- Split vm-install off as a separate package.
+- Update man page.
+- Update Ron Terry's network-multi script.
+* Mon Jun 18 2007 ccoffing@novell.com
+- Fix compiler warnings.
+- Update block-npiv.
+* Mon Jun 11 2007 ccoffing@novell.com
+- Fix more warn_unused_value compiler warnings.
+* Fri Jun 8 2007 ccoffing@novell.com
+- Update to official rc10 (changeset 15042).
+- Updated vm-install:
+ + easier to exit with Ctrl-C
+ + drop "TERM=xterm" for Linux (breaks PVFB text install)
+ + use "TERM=vt100" when calling "xm" to suppress terminal codes
+ + command-line support for VNC password
+ + fixed disk groups (e.g., 2 disks on command line w/o PDEV)
+ + fixed regression: Don't let user close progress window
+ + failure to open a device should not completely fail search for
+ bootsector (consider: no media in /dev/cdrom)
+ + always remove PV kernel and initrd from /tmp
+ + #279153: Support disks on iscsi/qcow/vmdk/nbd/file/phy/...
+* Fri Jun 8 2007 jfehlig@novell.com
+- Added a modified version of upstream c/s 15157. Original version
+ of c/s 15157 fixed bug #262805 but also broke
+ 'xm block-detach dom dev_name'. Modified version fixes bug 262805
+ without introducing regression. Patch fixing c/s 15157 has been
+ submitted upstream.
+* Wed May 23 2007 ccoffing@novell.com
+- Drop xen-messages.diff; Xen now supports HVM save/restore.
+* Tue May 22 2007 ccoffing@novell.com
+- Update Ron Terry's network-multi script.
+- Drop xen-doc-ps. (#267948)
+- Update init scripts.
+- Tidy spec file to fix rpmlint errors.
+- Updated patches from Jan.
+* Mon May 21 2007 ccoffing@novell.com
+- vm-install bug fixes:
+ + #211342: better progress bar
+ + #259994: disk size would reset when editing path
+ + #247073: handle autoyast URLs
+ + #254311: physical disks were showing as 0.0 GB
+* Wed May 16 2007 ccoffing@novell.com
+- Properly quote pathnames in domUloader to fix EVMS. (#274484)
+- Allow user to specify a default 'keymap' in xend's configuration
+ file. (#258818 and 241149)
+* Mon May 14 2007 plc@novell.com
+- Added upstream python patches for keymap specification in
+ PV config file. Added upstream ALTGR fix, sign extension fix
+ and modified patch 323 so that upstream patches applied cleanly.
+ (#258818)
+* Fri May 11 2007 ccoffing@novell.com
+- Update to xen-3.1-testing rc10 (changeset 15040).
+- Update .desktop with proper group. (#258600)
+- Include Kurt's updated block-iscsi. (#251368)
+- Jim's updated patch to honor localtime setting. (#273430)
+- Fix vm-install to work correctly when doing multiple simultaneous
+ installs via virt-manager. (#259917)
+- Network connectivity fails in FV SLES 10 SP1; MAC address was
+ being read incorrectly from xenstore by PV driver. (#272351)
+- For FV SLES 9, default apic=1 to allow x86_64 SLES 9 to boot.
+ (#264183)
+* Fri May 4 2007 carnold@novell.com
+- Added security fixes for problems found Travis Orandy (#270621)
+ CVE-2007-1320, CVE-2007-1321, CVE-2007-1322, CVE-2007-1323,
+ CVE-2007-1366
+* Thu May 3 2007 ccoffing@novell.com
+- Update to xen-3.1-testing rc7 (changeset 15020).
+- Fix identification of virt-manager windows. (#264162)
+* Tue May 1 2007 jfehlig@novell.com
+- Integrated domUloader with 3.0.5. Updated xen-domUloader.diff.
+* Mon Apr 30 2007 ccoffing@novell.com
+- Update to xen-3.0.5-testing rc4 (changeset 14993).
+* Thu Apr 26 2007 jfehlig@novell.com
+- Fixed autobuild error in function that returns random data.
+ File tools/ioemu/hw/piix4acpi.c line 72. Fix added to
+ xen-warnings.diff.
+* Thu Apr 26 2007 ccoffing@novell.com
+- Fix build on SLES 10 SP1.
+* Wed Apr 25 2007 ccoffing@novell.com
+- Update to xen-3.0.5-testing rc3 (changeset 14934).
+- Switch BuildRequires to texlive.
+* Fri Apr 20 2007 ccoffing@novell.com
+- Updated README. (#250705)
+- Fix vm-install's detection of PV RHEL4/5 kernels. (#260983)
+* Thu Apr 19 2007 ccoffing@novell.com
+- Place xenstore-* tools in new xen-tools-domU package, to be used
+ by suse_register. (#249157)
+* Tue Apr 17 2007 ccoffing@novell.com
+- Update translations.
+* Thu Apr 12 2007 ccoffing@novell.com
+- Combine two xenstore reads into one transaction, which causes
+ xenstored to not thrash so badly, and makes virt-manager more
+ responsive and less likely to time out or lock up. Partial fix
+ for #237406.
+- If disk is read-only, pass -r to losetup. (#264158)
+* Thu Apr 5 2007 ccoffing@novell.com
+- Update vm-install:
+ + #260510: do not delete xml settings file
+ + #260579: write correct vif line for PV NIC in FV VM
+ + #261288: re-enable add disk buttons after deleting a disk
+ + #192272, #222765, #250618: Update OS list and their defaults
+* Tue Apr 3 2007 ccoffing@novell.com
+- Could not do simultaneous installs via virt-manager. (#259917)
+* Mon Apr 2 2007 jfehlig@novell.com
+- Fix improper handling of guest kernel arguments in domUloader.
+ Bug #259810
+* Mon Apr 2 2007 ccoffing@novell.com
+- Update vm-install:
+ + #259420: refresh available memory more often
+ + #259972: cannot enter autoyast url
+* Mon Apr 2 2007 ccoffing@novell.com
+- Update translations for RC2.
+* Fri Mar 30 2007 ccoffing@novell.com
+- Fix "cannot allocate memory" when starting VMs. (#229849, 258743)
+* Thu Mar 29 2007 ccoffing@novell.com
+- Fix quoting of args for child processes during VM install.
+ (#258376)
+- Fix retry logic in block hotplug script. (#257925)
+* Wed Mar 28 2007 ccoffing@novell.com
+- Updated vm-install's icon name.
+- Updated translations.
+* Fri Mar 23 2007 ccoffing@novell.com
+- Disable aspects of qemu's console that can affect domain 0.
+ (#256135)
+- Fix xmclone.sh to work with managed domains. (#253988)
+- Update to xen-unstable changeset 14535.
+* Mon Mar 19 2007 ccoffing@novell.com
+- Update to xen-unstable changeset 14444.
+- Include Ron Terry's network-multi_bridge
+* Fri Mar 9 2007 jfehlig@novell.com
+- Added lame patch to handle showing suspended state via Xen API.
+ The patch only affects Xen API and is thus low risk.
+ Bug #237859
+* Fri Mar 9 2007 carnold@novell.com
+- Added AMD support for Vista 64 installation and boot.
+* Fri Mar 9 2007 ccoffing@novell.com
+- Make vm-install support NFS for SUSE (#241251).
+* Fri Mar 9 2007 jfehlig@novell.com
+- Fixed bug #250522
+ + Upstream c/s 13557 stores model attribute of vif in xenstore.
+* Thu Mar 8 2007 ccoffing@novell.com
+- Update vm-install:
+ + Better description on "Virtual Disk" drop-down (not "xvda")
+ + Proper separation of recording options versus calculating
+ defaults; fixes corner cases
+ + #247849, #253013, 253009: Multiple fixes related to how disks
+ are defined, centered around bug #247849 (handle partitioned
+ PV installation disk)
+ + #252437: Allow virtual CDROM to be added (via ISO) even if
+ physical CDROM doesn't exist
+* Wed Mar 7 2007 jfehlig@novell.com
+- Fixed bug #252396
+ + Added upstream c/s 14021. Applies to Xen API c-bindings -
+ low risk.
+ + Added local patch to correctly set Xen API Console.protocol
+ property
+* Wed Mar 7 2007 jfehlig@novell.com
+- Added upstream patch that fixes save/restore on 32pae guests.
+ Upstream c/s 14150. Bug #237859
+* Tue Mar 6 2007 carnold@novell.com
+- Remove a debug message which is spamming the logs during live
+ migration.
+* Mon Mar 5 2007 jfehlig@novell.com
+- Fixed handling of vbd type in Xen API <-> sexpr integration.
+ Bug #250351
+ + Updated an existing patch (xend_disk_decorate_rm.patch) and
+ then renamed patch to xend_vbd_type.patch to better reflect
+ purpose of patch.
+* Mon Mar 5 2007 ccoffing@novell.com
+- Default apic=0 for SLES 8 and 9, for performance. (#228133)
+* Fri Mar 2 2007 carnold@novell.com
+- Xen kernel crashes at domain creation time. Bug #248183.
+ Fix mouse for win2k hvm guest.
+* Fri Mar 2 2007 jfehlig@novell.com
+- Incorrect values returned for actions_after_* in Xen API. Added
+ patch xend-actions-after.patch for fix. Patch submitted upstream
+ as well. Bug #250870.
+* Fri Mar 2 2007 ccoffing@novell.com
+- Update vm-install:
+ + Fixed possible "tree path exception" when editing disk
+ + Fixed failure to properly refresh fields when editing disk
+ + #248356: allow specifying bridge
+* Fri Mar 2 2007 jfehlig@novell.com
+- Add check for HVM domain in domain_save. The check is
+ performed in domain_suspend and should be included here as well.
+* Thu Mar 1 2007 ccoffing@novell.com
+- Update vm-install:
+ + #250201: for linux PVFB, pass xencons=tty if graphics=none
+ + #250016: honor non-sparse flag
+* Thu Mar 1 2007 jfehlig@novell.com
+- Fix exception caused by incorrect method name in xen-messages.diff.
+ This is one of perhaps several problems with save/restore,
+ bug #237859
+* Thu Mar 1 2007 dpmerrill@novell.com
+- Add xen-ioemu-hvm-pv-support.diff
+ This patch allows for shutting down the IDE drive.
+* Thu Mar 1 2007 jfehlig@novell.com
+- Fix bug #243667
+ + Updated domUloader to accept '--args' parameter. The args
+ provided as an option to --args are simply added to the sexpr
+ returned by domUloader. pygrub has similar behavior.
+* Wed Feb 28 2007 ccoffing@novell.com
+- Update vm-install:
+ + #249013, #228113: default to realtek instead of pcnet
+ + #249124: write os-type to config files
+ + Updated translations
+ + Setting os_type should implicitly set full_virt; fixes NIC
+ model exceptions
+ + Add "Add" button to Operating System Installation page, based
+ on usability feedback
+* Wed Feb 28 2007 jfehlig@novell.com
+- Added changeset 13786 and 14022 from xen-unstable. These
+ changesets affect the Xen API C bindings only and are low risk.
+ This is a continuation of support for FATE feature 110320. ECO
+ has been approved for late arrival of this feature.
+* Mon Feb 26 2007 ccoffing@novell.com
+- Update vm-install:
+ + #244772: display error message in GUI if xen isn't running
+ + #246049: better error message when OS==SUSE but ISO looks wrong
+ + Fix printing of jobid when run with --background
+* Wed Feb 21 2007 ccoffing@novell.com
+- Don't allow "xm create" of running VM. (#245253)
+- Update vm-install:
+ + Fix inability to use already-extracted SUSE kernel/initrds
+ + Fix accumulation of 0-byte tmp files
+ + #237063: close fds before running vncviewer
+ + default apic=0 for Windows, due to performance
+* Tue Feb 20 2007 carnold@novell.com
+- Domain0 reboots after 2-6 hours of running guests. (#246160)
+* Tue Feb 20 2007 ccoffing@novell.com
+- Fix typo in xendomains. (#246107)
+- Fix order in which vm-install processes command-line arguments.
+* Fri Feb 16 2007 jfehlig@novell.com
+- Added changeset 13775 from xen-unstable. This patch fixes
+ the last known issue with the Xen API patchset backported
+ from xen-unstable.
+* Fri Feb 16 2007 jfehlig@novell.com
+- Added c/s 13226 from xen-unstable. It affects Xen API only.
+- Added patch to remove ':disk' and 'tap:qcow' from stored domain
+ config. Fixes bug #237414 and helps with bug #242953.
+* Thu Feb 15 2007 jfehlig@novell.com
+- Backported Xen API functionality from xen-unstable to support
+ hosting CIM providers. This functionality is required for
+ FATE feature 110320. ECO has been approved.
+ + Includes 19 changesets from xen-unstable. Most are
+ specific to Xen API.
+ + Includes 1 patch that relaxes parsing of xml response
+ in Xen API c-bindings.
+* Thu Feb 15 2007 carnold@novell.com
+- Added x86-nmi-inject.patch for NW debuging. (#245942)
+* Thu Feb 15 2007 carnold@novell.com
+- kernel panic in DomU while installing 32bit DomU on 64bit
+ Dom0. (#244055) Patches 13630-domctl.patch,
+ 13903-domctl.patch and 13908-domctl.patch
+- Updated patch pae-guest-linear-pgtable.patch
+* Mon Feb 12 2007 ccoffing@novell.com
+- Load xenblk at dom0 start to support bootstrapping from
+ non-loopback devices. (#242963, #186696)
+- Update vm-install:
+ + Update translations
+ + Clean up exception error codes and sync man pages
+ + Honor ordering of arguments (as claimed in man page)
+ + #240984: properly detach vncviewer
+ + #240387: default to absolute coordinate mouse for Windows
+- Drop logging patch. (#245150)
+* Sun Feb 11 2007 ro@suse.de
+- remove -fstack-protector from RPM_OPT_FLAGS for now
+* Thu Feb 8 2007 ccoffing@novell.com
+- Update vm-install:
+ + Allow specifing disk (and disk size) vs. cdrom from CLI
+ + Add missing -M/--max-memory parameter to CLI to match GUI
+ + #241528: Display error if user selects FV OS but hw lacks VT
+ + Move all consistency checks out of Options class, since CLI
+ options may be processed in a "bad" order
+ + Fix infinite loops when info is missing from background jobs
+ + --background implies --no-auto-console
+ + Don't let user close progress window
+ + Fix bug in qemu slowness work-around, reported by Jan Albrecht
+ + Do disk.validate() when clicking "OK" on disks page
+ + #238959: Probe for removable media via /sys/block
+ + Output VNC info for backgrounded job
+ + Fix method of waiting for VM to exit when --no-autoconsole
+ + #239582: Use extracted kernel-xen/initrd-xen if present
+* Tue Feb 6 2007 ro@suse.de
+- disable commented out buildreq for kernel for the moment
+ to workaround endless rebuild
+* Tue Feb 6 2007 ccoffing@novell.com
+- xm-test should clean up xenstore better (#180138)
+* Thu Feb 1 2007 ccoffing@novell.com
+- Implement better job support for CIM (#241197)
+- Temporary fix to allow PV VMs to reboot (#237414)
+- Delete PYTHONOPTIMIZE for good; callers don't set it.
+* Wed Jan 31 2007 ccoffing@novell.com
+- Update xen-3.0.4 (changeset 13138); includes migration bugfix.
+* Tue Jan 30 2007 ccoffing@novell.com
+- Enable building KMP.
+- Fix xendomains to work with managed domains. (#238781)
+* Thu Jan 25 2007 ccoffing@novell.com
+- Various bug fixes of 32on64, from Jan and Keir.
+- Gerd's fix for domain builder with > 4 GB RAM (#233761)
+- Update xen-vm-install:
+ [#234331], #239007: CD/DVDs should always be marked read-only
+ [#238458]: Work-around qemu slowness bug
+ [#239196]: Support SLED
+ [#239275]: Fix .desktop file
+ [#240064]: Clean up VMs better after failed install
+* Tue Jan 23 2007 ccoffing@novell.com
+- Update xen-vm-install:
+ [#237370]: Can now install 32pae SLES 10 on x86_64 hypervisor
+ [#237396]: Be able to use an existing disk, bypass OS installation
+ Fix handling of user's extra_args
+- Patch from Jan to enable building PV drivers KMP for FV SUSE.
+ Currently conditionalized.
+- Drop unused patches xen-io-register-context.diff and
+ xen-console.diff
+* Sat Jan 20 2007 brogers@novell.com
+- Fix handling of localtime config file parameter for PV guests
+ (#234376)
+* Fri Jan 19 2007 ccoffing@novell.com
+- Update xen-vm-install (NIC UI work; do not require tcp port bz
+ [#236517]; integrate with virt-manager)
+* Wed Jan 17 2007 ccoffing@novell.com
+- Update xen-vm-install (more disk UI work; support NetWare
+ response files and licenses)
+* Tue Jan 16 2007 ccoffing@novell.com
+- Major fixes to xen-vm-install (adding disks in the UI now works,
+ and fixed several CLI exceptions)
+- Microcode does not need to be exactly 2048 bytes (changeset
+ 13079; Kurt)
+* Fri Jan 12 2007 ccoffing@novell.com
+- Include script to clone SLES 10 domU, from coolsolutions (fate
+ [#301742])
+- Updated patches from Gerd and Jan, including PAE > 4 gig fix,
+ updated VGA console patch.
+- Updated xen-vm-install with finalized strings and desktop file.
+* Thu Jan 11 2007 ccoffing@novell.com
+- Include xen-unstable patches for HVM save/restore and 32-on-64
+ HVM.
+- Update to xen-3.0.4-1 (changeset 13132).
+* Wed Jan 10 2007 ccoffing@novell.com
+- Update xen-vm-install and domUloader to support NetWare.
+- Include AMD's nested page table patches.
+* Mon Jan 8 2007 ccoffing@novell.com
+- Update to xen-3.0.4 (changeset 13129).
+- Fix from upstream for mis-emulation of x86-64 pop.
+* Fri Jan 5 2007 carnold@novell.com
+- Many patches from Jan Beulich and Gerd Hoffmann in support of
+ 32 on 64 pv guests. These patches apply to both the hypervisor
+ and the tools.
+* Fri Dec 22 2006 ccoffing@novell.com
+- Do not require authentication on XenAPI socket, since CIMOM does
+ not support authentication. Socket is only accessible to root.
+* Wed Dec 20 2006 ccoffing@novell.com
+- Update to xen-3.0.4 (changeset 13100).
+- Update xen-vm-install tools.
+- Include Jim's 2 xen-tools patches for CIM provider issues.
+* Mon Dec 18 2006 ccoffing@novell.com
+- Update to xen-3.0.4-rc3 (changeset 13087).
+- Fix line terminators in block-iscsi (#228864)
+- Make domUloader work with blktap support in xend.
+* Fri Dec 15 2006 ccoffing@novell.com
+- Update to xen-3.0.4-rc2 (changeset 13067).
+* Thu Dec 14 2006 ccoffing@novell.com
+- Update to xen-3.0.4-rc1 (changeset 12901).
+* Wed Dec 13 2006 brogers@novell.com
+- Patch for loading bimodal PAE kernel to suuport NetWare
+* Thu Dec 7 2006 ccoffing@novell.com
+- Update to xen-unstable (changeset 12757).
+- Enable LIBXENAPI_BINDINGS and XENFB_TOOLS.
+- Enable unix domain socket for xend; needed by tools.
+* Tue Dec 5 2006 ccoffing@novell.com
+- Update to xen-unstable (changeset 12734; feature freeze for
+ 3.0.4)
+- Make /etc/xen mode 0700 to protect vnc passwords.
+* Mon Nov 27 2006 ccoffing@novell.com
+- Fix how bootloader is called by the xend during restarts.
+ (#223850)
+* Wed Nov 22 2006 ccoffing@novell.com
+- Series of patches from Jan to address selectors with non-zero-
+ bases and other related issues in HVM. (#214568)
+- Default pae=1, otherwise 64 bit HVM does not work at all.
+ (#217160)
+* Fri Nov 17 2006 ccoffing@novell.com
+- Backport several HVM fixes. (#176171?)
+* Thu Nov 16 2006 ccoffing@novell.com
+- Fix some problems in the xen-hvm-default-bridge patch. (#219092)
+- xmlrpc isn't 64-bit clean, causing xend to get exceptions when
+ PFN is > 2 GB. (#220418)
+* Mon Nov 13 2006 kallan@novell.com
+- Backport changesets 11847, 11888, 1189[6-9], 119[00-18], 11974,
+ 1203[0-2], and 12205 from xen-unstable so that the PV drivers
+ can compile on older kernels such as sles9 and rhel4
+- Fix netfront.c to fail the probe if it is called for an ioemu
+ type device. This allows both PV and FV drivers to exist at
+ same time in the FV guest.
+* Thu Nov 9 2006 ccoffing@novell.com
+- Add xen-vm-install.
+- Default bridge correctly for HVM guests. (#219092)
+* Wed Nov 8 2006 aj@suse.de
+- Set correct permissions on man files.
+* Tue Nov 7 2006 ccoffing@novell.com
+- Update name of blktap.ko in xend init script. (#215384)
+- Remove some extraneous bad chars in xm manpage. (#218440)
+- Update logrotate.conf.
+- Update spec file.
+* Wed Nov 1 2006 kallan@novell.com
+- Backport xen-unstable changesets 12040 to address spurious
+ interrupts with PV drivers in HVM guests.
+* Tue Oct 31 2006 ccoffing@novell.com
+- Backport xen-unstable changesets 1184[1-3] to address SVM
+ interrupt injection issues. Replaces earlier (broken) patches.
+* Mon Oct 30 2006 ccoffing@novell.com
+- /var/lib/xen/images should not be world readable. (#214638)
+- Update to xen-3.0.3-0 (changeset 11774; no code changes).
+* Mon Oct 16 2006 ccoffing@novell.com
+- Update to xen-3.0.3-testing changeset 11772 (rc5).
+- Fix several possible type errors when running domUloader.
+- Remove pygrub. Was broken on reiserfs and never had ext2
+ support, so it is useless. (#173384)
+- First attempt at moving domUloader to blktap. Still disabled
+ due to block-detach failing.
+* Fri Oct 13 2006 ccoffing@novell.com
+- Update to xen-3.0.3-testing changeset 11760 (rc4).
+* Tue Oct 10 2006 ccoffing@novell.com
+- Update to xen-3.0.3-testing changeset 11740 (rc3).
+- Fix crash on PAE when specifying dom0_mem=4096M. (#211399)
+- Make xend.balloon aware of kernel's memory floor, to fix
+ "Privileged domain did not balloon" errors. (#184727)
+* Mon Oct 9 2006 ccoffing@novell.com
+- Include AMD's interrupt injection fix.
+* Wed Oct 4 2006 ccoffing@novell.com
+- Imported keymap patch. (#203758)
+- Account for minimum memory required by dom0 kernel. (#184727)
+- Package /usr/include/xen/hvm/*.h
+* Tue Oct 3 2006 ccoffing@novell.com
+- Update to xen-3.0.3-testing changeset 11686.
+* Tue Oct 3 2006 kallan@novell.com
+- Updated README.SuSE to reflect the current method of handling
+ Xen network-bridging when using SuSEfirewall2. (#205092)
+* Sat Sep 30 2006 aj@suse.de
+- Cleanup BuildRequires.
+* Thu Sep 28 2006 ccoffing@novell.com
+- Only "eval" disks once in domUloader, to match current Xen.
+* Wed Sep 27 2006 ccoffing@novell.com
+- Switch to xen-3.0.3-testing tree; changeset 11633.
+- Update (but disable) paravirtualized framebuffer patches.
+* Tue Sep 26 2006 ccoffing@novell.com
+- Update to xen-unstable changeset 11623.
+- Fix domUloader typo introduced in last update.
+- Build debug version of xen-pae.
+* Mon Sep 25 2006 ccoffing@novell.com
+- Update to xen-unstable changeset 11616.
+* Tue Sep 12 2006 ccoffing@novell.com
+- Update check_python script to identify Python 2.5 RCs as valid.
+* Mon Sep 11 2006 ccoffing@novell.com
+- Update to xen-unstable changeset 11440.
+- xen-tools conflicts with qemu. Do not package qemu.1 manpage.
+ (#204758)
+- Include Jan's updated patch for #192150 (to preserve register
+ context when doing IO).
+* Tue Sep 5 2006 ccoffing@novell.com
+- Update block-nbd and xmexample.nbd, and add block-iscsi and
+ xmexample.iscsi (from Kurt).
+* Thu Aug 31 2006 ccoffing@novell.com
+- Automatically create/destroy virtual frame buffer viewer. Add
+ "sdl=1" to config file of a paravirtualized VM to get the viewer.
+- Log files have moved to /var/log/xen.
+* Tue Aug 29 2006 ccoffing@novell.com
+- xendomains does not actually save domains. (#201349)
+- Update to xen-unstable changeset 11299.
+* Mon Aug 28 2006 ccoffing@novell.com
+- Fix incorrect path on x86_64 for vncfb and sdlfb.
+* Thu Aug 17 2006 ccoffing@novell.com
+- Improve xendomains init script, to handle unset sysconfig vars.
+- Import virtual framebuffer patches.
+- Drop reboot patch; resync patches.
+* Wed Aug 16 2006 ccoffing@novell.com
+- Update to xen-unstable changeset 11134.
+- Drop xen-reverse-10064.diff now that kernel is updated.
+* Tue Aug 8 2006 ccoffing@novell.com
+- Re-enabled patch for #184175.
+- Update to xen-unstable changeset 10986.
+- Include Jan's patch to preserve register context when doing
+ IO. (#192150)
+* Fri Jul 28 2006 ccoffing@novell.com
+- Add support to domUloader for "xm create --dry-run". Based on
+ patch from HP.
+* Thu Jul 27 2006 ccoffing@novell.com
+- Add link for qemu-dm that is invariant across architectures, so
+ that VM config files can be simple key/value pairs parsable by
+ yast, and still be movable to another arch. (#193854)
+- Add loop.ko to rescue image created by mk-xen-rescue-img, and
+ remove usbfs from image's /etc/fstab since USB isn't yet
+ supported, to avoid errors during boot. (#191627)
+* Mon Jul 17 2006 ccoffing@novell.com
+- Update to xen-unstable changeset 10712.
+- Update domUloader and rcxend to work with blktap.
+* Fri Jul 14 2006 ccoffing@novell.com
+- When waiting for domains to shut down, must also wait for
+ loopback devices to be torn down, otherwise higher-level tools
+ may migrate a VM before the disk image is flushed. (#185557)
+- More updates to the README.
+* Thu Jul 13 2006 kallan@novell.com
+- Added for loop to retry the losetup -d in /etc/xen/scripts/block.
+ It is possible for the losetup -d to fail if another process is
+ examining the loopback devices e.g. losetup -a. (#151105)
+* Wed Jul 12 2006 ccoffing@novell.com
+- Corrected and updated README.
+* Mon Jul 10 2006 ccoffing@novell.com
+- Add Jeff Mahoney's block-sync.diff, to give control of
+ "losetup -y" to the user (and potentially yast). Defaults to
+ old async behavior. (#190869)
+* Thu Jul 6 2006 ccoffing@novell.com
+- Update to xen-unstable tree. Revert changeset 10064, to maintain
+ backwards compatibility with SLES 10.
+* Wed Jul 5 2006 ccoffing@novell.com
+- Do not open migration port by default. (#190170)
+- Update patch for migration oops, to latest version in bug
+ [#162865].
+* Mon Jul 3 2006 okir@suse.de
+- xen-losetup-sync.diff: use the new "losetup -y" option to force
+ the loop device to use synchronous I/O (#189051)
+* Fri Jun 30 2006 ccoffing@novell.com
+- Increase balloon timeout value. (#189815)
+- Update to xen-3.0-testing tree, changeset 9762.
+* Thu Jun 29 2006 ccoffing@novell.com
+- Fix some loopback races in domUloader. (#151105)
+* Tue Jun 27 2006 ccoffing@novell.com
+- Add "max_para_memory" and "max_hvm_memory" to output of "xm info"
+ for bug #184727.
+- Include Jan's patches for bug #184175. Improves PAE guest
+ support on HVM.
+* Mon Jun 26 2006 ccoffing@novell.com
+- Include patch from HP to fix a domU migration failure ("Kernel
+ BUG at mm/mmap.c:1961"). Force L1/L2 page tables to be updated
+ at the end, to avoid them from being dirtied and not transferred.
+ (#162865)
+* Fri Jun 23 2006 kallan@novell.com
+- Updated xen-bonding.diff to enable bonding again after the latest
+ patches to network-bridge etc. (#161888)
+* Wed Jun 21 2006 ccoffing@novell.com
+- Clean up the useless "Nothing to flush" messages, from 'ip addr
+ flush', in /var/log/xen-hotplug.log
+- Fix race condition in domUloader.py, when another process did
+ losetup -d while domUloader was running. This would result in
+ the mount failing, and so the VM would fail to start.
+* Tue Jun 20 2006 ccoffing@novell.com
+- Revamp balloon.py to account for pages currently being
+ scrubbed. (#185135)
+* Mon Jun 19 2006 ccoffing@novell.com
+- Update to xen-3.0-testing tree, changeset 9749.
+- DomUs are getting starved for CPU (up to 40 seconds was seen)
+ when dom0 has a load. This can cause pathological behavior, and
+ can cause OCFS2 to fence (panic) the domain. (#179368, #178884)
+- Import Gerd's fix to network-bridge script for bug #161888.
+* Wed Jun 14 2006 ccoffing@novell.com
+- Pull out accidentally-included debugging code.
+- Drop xenvers patch; this was for backwards compatibility for
+ some early internal builds.
+- Update from Jan on the console patch. Not all graphics cards /
+ drivers properly reflect the state in the register being tested.
+ Improved the check, to prevent screen corruption. (#161541)
+* Tue Jun 13 2006 ccoffing@novell.com
+- Resync with new tarball from xen-3.0-testing; changeset 9738.
+* Mon Jun 12 2006 ccoffing@novell.com
+- Drop BUILD_BUG_ON and pirq-shared patches. Last week's pirq
+ sharing patch from upstream (for bug #152892) makes these patches
+ redundant. Dropping these makes our shared_info structure match
+ upstream again, which is needed for compatibility with other
+ paravirtualized guests.
+- Import changeset 9734 from xen-3.0-testing. This fixes a hyper-
+ call (used by the pcifront driver) to work on MP guests. Without
+ this, the pciback driver can hang on MP. (#181467)
+- Import changeset 9733 from xen-3.0-testing. This patch is
+ required to match the Linux kernel, since Linux always calls
+ this operation from VCPU0 during secondary VCPU bringup.
+ Without this, process run-time accounting on secondary CPUs is
+ completely wrong.
+- Updated README: Documented work-around for bug #180058.
+* Fri Jun 9 2006 ccoffing@novell.com
+- Include Jan's patch: "IOPL is ignored for VM86 mode port
+ accesses. Fix Xen emulation to match native behaivour." Fixes
+ some X lockup issues. (#179045)
+- Include Keir's patch to allow reading from port 0x61, to avoid
+ an X server lockup. (#171087)
+- Include xen-3.0-testing changeset 9726, which is needed to
+ support the latest kernel-xen. With this support, Linux will
+ only trigger unhandled IRQ path if IRQ is not shared across
+ multiple guests (another guest may have handled the interrupt).
+ This is more upstream work that goes with bug #152892.
+- Add versioning to the Requires lines, to guard against mixing
+ binary incompatible versions. (#183292)
+- I accidentially dropped part of Clyde's fix for bug #162244.
+ SMP support in HVM is working in xen-unstable, so upstream
+ dropped the HT CPUID masking code, which we then inheirited.
+ Re-add HT CPUID masking. (#162244)
+- Updated README: VNC installations, known issues.
+* Thu Jun 8 2006 ccoffing@novell.com
+- Drop our XCHG patch for the equivalent upstream patch, to fix
+ patch application order. No code change.
+* Wed Jun 7 2006 ccoffing@novell.com
+- Updated README: HVM issues/tips, CDROM tips, known issues.
+- Add patch from Intel to decode LODS/STOS instructions to fix
+ Windows installation. Only affects HVM. Xen changeset #9725
+ consolidates this patch and xen-hvm-decode.diff; drop our 2 in
+ favor of the consolidated upstream patch. (#176717)
+* Tue Jun 6 2006 ccoffing@novell.com
+- Drop xen-8-way-bios patch, because it breaks Windows HVM
+ installation. The patch was only necessary when running SMP HVM
+ with "acpi=0" on the kernel command line. (#181974)
+- Include two patches from xen-3.0-testing that change the
+ interface between Xen and guests. Including these now to help
+ forward-compatibility:
+ + 9709: Changes interface for accessing %%cr3 so that extra bits
+ (>4GB) for PAE pgdirs are placed in low-order bits of %%cr3.
+ Kernels without support for this will still run fine.
+ + 9721: Use explicitly-sized types in the dom0_ops and privcmd
+ structures.
+- Fix ability to change ISOs images for HVM guest. (#181895)
+- Removed pointless whitespace changes from xen-removable.diff, for
+ better maintainability. Cut the patch size in half; no code
+ changes.
+* Mon Jun 5 2006 ccoffing@novell.com
+- Include select patches from xen-3.0-testing:
+ + 9698: Official fix for bug #159001. Dropped our patch.
+ + 9702: Fix MMU_NORMAL_PT_UPDATE when passed a page that is no
+ longer of type page-table.
+ + 9703: Modification to fix for bug #159001; ignore empty PTEs.
+ + 9704: Fix for obvious typo in map_pages_to_xen: When replacing
+ a pte, free the page table pointed to by the old entry, not the
+ new entry.
+ + 9705: Jan's previous signed-ness patch (c/s 9695) was changed
+ when accepted upstream, which broke it; this changeset
+ attempts to fix the breakage.
+ + 9708: HVM: Fix a hang when doing an "xm destroy" of Windows VM.
+ + 9717: HVM: Interrupts must be kept disabled when entering Xen
+ for external interrupt processing.
+* Fri Jun 2 2006 ccoffing@novell.com
+- Include xen-3.0-testing changeset 9693. This scales the
+ ballooning timeout with the amount of memory being requested
+ (necessary for large memory machines). This is a more proper fix
+ for Novell bug #175805, and addresses XenSource bug #650.
+* Thu Jun 1 2006 ccoffing@novell.com
+- Update the README, regarding how to make the mouse work properly
+ with VNC in HVM.
+- Update help text in mk-xen-rescue-img.
+* Wed May 31 2006 ccoffing@novell.com
+- Jan's backport of xen-unstable changesets 9517, 9518, and 9529.
+ This allows Xen to boot on 4-node configurations without
+ crashing. (#150114)
+- Include patch from Jun Nakajima at Intel to fix inability to
+ start XWindows after creating HVM guest. (#159001)
+- Include select patches from xen-3.0-testing:
+ + 9697: Fix infinite recursion loop in get_page_type() error path
+- Include xen-unstable changeset 9967, to improve Summagraphics
+ tablet emulation, to help mouse tracking in HVM. (#167187)
+- Include 3 patches from AMD to fix SMP support in HVM. (#176171)
+- Add CPUID masking patches from AMD and Intel for HVM. This
+ prevents the OS from seeing (and trying to use) various hardware
+ features that are not supported within the VM. (#180879)
+* Fri May 26 2006 ccoffing@novell.com
+- Fix deadlock between xm and qemu. Qemu should not call xm;
+ issue xc commands directly. This deadlock was exposed when
+ making qemu exit nicely and clean up. (#176400)
+- Include Gerd's update to his previous REP MOVS fix. Calculating
+ high_addr and low_addr is more complicated than previously
+ thought, and the count was wrong. (#165448).
+- Drop previous patch that forcefully turns off Xen's console
+ logging to avoid video corruption; instead use Jan's patch which
+ only turns logging off when in graphical mode. (#161541)
+- Include Jan's patch to call machine_halt rather than inline
+ assembly "hlt" when Xen crashes to sync display, disable watchdog
+ timers, etc.
+- Tweak the auto-ballooning patch to limit the VM itself to the
+ requested amount of memory, don't include the overhead, as
+ suggested by Intel. Separate calls exist elsewhere to increase
+ the max as needed. (#149179)
+- Include select patches from xen-3.0-testing:
+ + 9688, 9696: These remove some broken assembly string
+ functions. This is prep work from Jan for bug #160066.
+ + 9695: Updates in the hypervisor to EDI and ESI could be
+ incorrect, due to sign not being handled correctly.
+* Fri May 19 2006 ccoffing@novell.com
+- Update from Intel to previous patch to fix installation of HVM
+ W2k. Adds decoding for two more instructions. (#176717)
+- Updated the README.
+- Included updated version of KY's patch to reserve some lowmem
+ for PAE, to avoid kernel BUG() during boot. The amounts of
+ memory reserved at various physical memory sizes have been
+ adjusted. (#175124)
+- Include Intel's patch for unchecked allocations in shadow*.c.
+ (#149179)
+* Thu May 18 2006 ccoffing@novell.com
+- Include Intel's patch to fix installation of HVM W2k. This patch
+ adds decoding for 'xor' and 'and' instructions. Without this,
+ the VM crashes when W2k attempts to install network components.
+ (#176717)
+- While tidying xen-hvm-memory-check.diff for submission upstream,
+ I noticed an error in the patch (such that low-memory while
+ starting the HVM domain could still crash the physical machine.)
+ Now all uses of iopm are protected by the check. (#149179)
+- Xen must always relinquish control of the VGA console once dom0
+ has started. Otherwise, it could be over-writing dom0's memory,
+ causing screen or other memory corruption. Admin can use
+ "xm dmesg" to view Xen's log instead. (#161541)
+- First send a SIGTERM, rather than SIGKILL, to qemu to give it a
+ chance to clean up. This fixes both mouse and CD-ROM issues
+ for fully virtualized VMs. This is a work-around; Ross is
+ still working on the proper fix. (#176400, #171258, #176157)
+- Include select patches from xen-3.0-testing:
+ + 9682,9683: These patches only affect full virtualization on
+ AMD. Fixes register corruption, cleans up event injection,
+ cleans up IO handling.
+ + 9685,9686: This patch only affects full virtualization on
+ Intel. Fixes VM's segment base address, to avoid vmentry
+ failure. Also remove 32/64 differences in vmx reg store/load.
+* Wed May 17 2006 ccoffing@novell.com
+- When auto-ballooning domain 0's memory for a new HVM domain,
+ all memory (including memory intended for overhead) was given
+ to the VM itself. So increasing the memory size calculations
+ did not actually free up any more memory. Now, treat the amount
+ to balloon and the amount to give to the VM as separate values.
+ (#149179)
+* Tue May 16 2006 ccoffing@novell.com
+- Include Gerd's fix for HVM emulation of REP MOVS when the copy
+ spans a page. If the direction flag was set, the emulation code
+ broke. This caused the VM to freeze when configuring firewall
+ (#165448).
+- Include KY's fix to default to reserving 16M of lowmem for PAE,
+ to avoid hitting kernel BUG() during boot (#175124).
+- Don Dugger's (Intel) fix for HVM screen corruption (#164573).
+- Increase maximum time auto-ballooning will wait for domain 0 to
+ respond, otherwise large VMs will fail to start from yast
+ (#175805).
+* Mon May 15 2006 ccoffing@novell.com
+- Update memory size calculations when auto-ballooning for HVM
+ to make more stable (#149179).
+* Fri May 12 2006 ccoffing@novell.com
+- Include select patches from xen-3.0-testing:
+ + 9674: xc_ptrace: Fix reversed conditional, which broke single-
+ stepping.
+ + 9675: xc_ptrace: Fix out-of-bounds memory-access for FPU state.
+ + 9678: Fix the performance issues of 2-level paging HVM guests
+ on the PAE Xen.
+- Update man pages.
+* Wed May 10 2006 brogers@novell.com
+- Fix loading of binary images which either require PAE or
+ dynamically support running on both PAE hypervisor and non-PAE
+ hypervisors. (#174080)
+* Wed May 10 2006 carnold@novell.com
+- Handle memory failure when staring fully virtualized
+ guests to prevent reboot of the box (AMD) or
+ hanging the box (VT) (#149179).
+* Tue May 9 2006 ccoffing@novell.com
+- Include select patches from xen-3.0-testing:
+ + 9665: Fix pciif parsing for compatibility variable.
+ + 9666: Fix HVM hang; was broken due to previous "hda lost
+ interrupt" patch. (#169146)
+ + 9667: Do not set GP fault in VMCS for VMX (no bug#; from Intel)
+* Thu May 4 2006 cgriffin@novell.com
+- Update xen-3.0-testing tree, changeset 9664:
+ + Changesets 9663 and 9664 fix AMD fully virtualized
+ guests causing the system to reboot when
+ first starting up. (#169855)
+* Thu May 4 2006 cgriffin@novell.com
+- With a Xen domain set up with a loop-mountable file as rootfs,
+ the "xm start " invocation fails. The cause is a bug
+ domUloader.py (#172586)
+* Thu May 4 2006 rmaxfiel@novell.com
+- Added the ability to 'attach' and 'detach' removable media
+ devices to hvm guests. Also made cdrom eject when the eject
+ request comes from the hvm guest. (#159907)
+- Fixed the loss of mouse when a SDL session ends with 'grab'
+ in effect. (#159001)
+* Thu May 4 2006 cgriffin@novell.com
+- Update xen-3.0-testing tree, changeset 9661:
+ + Drop patches merged upstream
+ + Took Kier's official patches for dropped patches most
+ notably spurious interrupts (#152892)
+- Took Intel's patch to fix screen corruption when
+ resizing the screen of windows hvm guests (#164573)
+* Wed May 3 2006 kallan@novell.com
+- Added configuring network interfaces when using Xen bridging instructions
+ to the README.SuSE file as requested by bug #171533.
+* Mon May 1 2006 tthomas@novell.com
+- Added message to xm save to indicate that save is not currently
+ supported for fully virtualized guests. (#161661)
+* Fri Apr 28 2006 ccoffing@novell.com
+- Close fds before exec-ing vncviewer, so yast2-vm doesn't hang
+ when viewing fully-virtualized console (#168392).
+* Thu Apr 27 2006 ccoffing@novell.com
+- Update xen-3.0-testing tree, changeset 9656:
+ + Drop patches merged upstream.
+ + Fix reboot on large SMP machines (IBM, no bug #).
+- Integrate Jan's patches:
+ + Spurious interrupt roundup (#152892).
+* Mon Apr 24 2006 ccoffing@novell.com
+- Integrate Jan's patches:
+ + FXSR patch (#135677).
+ + APIC option patch (work-around #150114).
+ + Protect against hypervisor crash (#169143).
+- Update xen-3.0-testing tree, changeset 9649:
+ + Avoid spurious timer activations in hypervisor.
+ + Fix xen command line parsing (lapic / nolapic parsing).
+ + Fix inverted BUG_ON w.r.t. SiS APIC bug.
+* Fri Apr 21 2006 ccoffing@novell.com
+- Update to 3.0.2-2 (xen-3.0-testing tree, changeset 9640):
+ + Fix for "hda lost interrupt" for PAE VMX.
+ + Increase L2 PDE to 1 GB; allows x86_64 to boot larger dom0.
+ + Fix for SVM booting 32pae-on-32pae.
+- Drop upstream patches (SiS APIC bug, HTT, HVM interrupt race)
+- Add Jan's port of spurious interrupt patch (#152892).
+- Add /etc/xen/images link for convenience (#168070).
+- Updated README.
+* Thu Apr 20 2006 ccoffing@novell.com
+- SiS APIC bug patch (Jan Beulich, #116485).
+* Wed Apr 19 2006 ccoffing@novell.com
+- Don't kill xenstored and xenconsoled when stopping xend.
+ (#158562, #156261)
+* Wed Apr 19 2006 ccoffing@novell.com
+- Update to 3.0.2-2 (xen-3.0-testing tree, changeset 9629):
+ + Fix for SMP IA32 VMX guest booting.
+ + KY's SETMAXMEM fix.
+* Wed Apr 19 2006 cgriffin@novell.com
+- Removed HTT bit from cpuid and set logical processor count to 1.
+ Also fixed logic problem in svm code where apic=0 was not
+ handled (#162244).
+* Wed Apr 19 2006 agruen@suse.de
+- Create /boot symlinks in the %%install section instead of in
+ %%post so that they will end up in the package file list.
+* Tue Apr 18 2006 ccoffing@novell.com
+- Add /etc/xen/vm to vm config file search path (#167208).
+* Fri Apr 14 2006 kallan@novell.com
+- Add support for bonding in network-bridge. (#161678).
+* Fri Apr 14 2006 ccoffing@novell.com
+- Update to 3.0.2-2 (xen-3.0-testing tree, changeset 9620):
+ + Fixes stack corruption in libxs (XenSource #411).
+* Thu Apr 13 2006 rmaxfiel@novell.com
+- Fixed a problem in ioemu which exited when the cdrom line was
+ found in the guest def file but the cd device contained no media.
+ (#161210)
+* Wed Apr 12 2006 ccoffing@novell.com
+- Auto-balloon domain 0 for HVM domains (#149179).
+- Update to 3.0.2-1 (xen-3.0-testing tree, changeset 9612):
+ + Fixes xmlrpc issues.
+ + Fixes several emulated instructions for HVM.
+ + Fixes for x86_64 inline assembly.
+* Tue Apr 11 2006 ccoffing@novell.com
+- Fix "jitter" and race in dom0's memory target calculation, which
+ could cause auto-ballooning to fail (#164714).
+* Tue Apr 11 2006 brogers@novell.com
+- Fix problem where localtime=1 results in zombie domains after
+ they shutdown (#164960)
+* Mon Apr 10 2006 ccoffing@novell.com
+- Update to hg 9598 (xen-3.0-testing tree; 3.0.2-rc). Discounting
+ Linux changes and patches we already carry, this update contains:
+ + Saner error handling in iret hypercall (x86/64).
+ + Make root page table sanity check on restore more generic.
+ + Additional sanity / compatability checks during guest build.
+ + IO-APIC update hypercall fixes.
+* Fri Apr 7 2006 ccoffing@novell.com
+- Don't throw an exception if 'xm top' is run by non-root; print
+ error message instead (#164224).
+- Change localtime patch to account for daylight savings time
+ (Bruce Rogers).
+- Re-add patch to make tightvnc work. It was accidentally dropped
+ recently (#149556).
+* Thu Apr 6 2006 ccoffing@novell.com
+- Update to hg 9590 (xen-3.0-testing tree; 3.0.2-rc).
+- Fix type error in localtime patch for para (Bruce Rogers).
+- Fix default localtime for full (Bruce Rogers).
+- Fix path in mk-xen-resue-img.sh (#163622).
+- Update README (pathnames, yast2-vm descriptions, terminology).
+* Mon Apr 3 2006 garloff@suse.de
+- init script: Test for control_d in capabilities to determine dom0
+ rather than privcmd.
+- init script: Try loading netloop and backend modules.
+- mk-xen-rescue-img.sh: Copy frontend drivers, remove stale files.
+- example config files: provide commented out domUloader exmaples.
+* Mon Apr 3 2006 ccoffing@novell.com
+- Update to hg 9514 (xen-unstable tree; 3.0.2-rc).
+- Fix for rebooting (Jan Beulich; #160064).
+* Fri Mar 31 2006 ccoffing@novell.com
+- Update to hg 9502 (xen-unstable tree; 3.0.2-rc).
+- Update man page (#162402).
+- xen-tools requires python-xml (#161712).
+- Include localtime patch to support NetWare (Bruce Rogers).
+* Thu Mar 30 2006 ccoffing@novell.com
+- Update to hg 9481 (xen-unstable tree; 3.0.2-rc).
+- Correctly default XAUTHORITY if it is not set. This allows the
+ GUI to come up for fully virtualized guests (was especially
+ problematic when VM was started from YaST). (#142472)
+* Wed Mar 29 2006 ccoffing@novell.com
+- Fixed reversed "Do I have enough memory?" test when creating
+ new VMs (#156448).
+* Tue Mar 28 2006 ccoffing@novell.com
+- Pick up two critical fixes for AMD to fix full virtualization:
+ c/s 9453 & c/s 9456.
+* Thu Mar 23 2006 ccoffing@novell.com
+- Update to hg 9434 (xen-unstable tree; 3.0.2-rc).
+- Fix /etc/xen/scripts/block to properly check if devices can be
+ shared.
+- Default XENDOMAINS_AUTO_ONLY to true; previous setting
+ contradicts yast2-vm's claim that only VM's marked auto will be
+ auto-started.
+* Mon Mar 20 2006 ccoffing@novell.com
+- Update to hg 9329 (xen-unstable tree).
+* Wed Mar 15 2006 ccoffing@novell.com
+- Update to hg 9251 (xen-unstable tree).
+- Update to latest versions of Intel's VNC patches:
+ patch-vga-sse2-0314.l, patch-vnc_loop-0314.l,
+ patch-vncmouse-0315.l
+- Gather example files in /etc/xen/examples.
+* Tue Mar 14 2006 rmaxfiel@novell.com
+- Removed the intermediate sym-link between xen.gz and
+ xen-<version>-<release>.gz. Grub 0.97 XFS can not handle a
+ double indirect to a file. (#151792)
+* Mon Mar 13 2006 garloff@suse.de
+- Update README.SuSE: Document limits (mem, cpu hotplug, max_loop),
+ more network troubleshooting, update security info.
+- Be more tolerant against errors in ifdown/ifup to better coexist
+ with non-std network setups (e.g. ifplugd/NetworkManager).
+* Tue Mar 7 2006 ccoffing@novell.com
+- Update to hg 9172 (xen-unstable tree).
+- Create new xen-libs package, split from xen-tools (#154473).
+- Update mk-xen-rescume-img and xmexample.rescue to work with
+ current rescue image on CD (#152971).
+- Include Kurt's patch to domUloader, to pass command line args.
+- xendomains shouldn't try to migrate or save HVM domains, as this
+ isn't supported and will stall the shutdown (#155265).
+- Create empty /etc/xen/vm directory for YaST to place config files
+ in, to avoid name collisions (#156322).
+- Update and re-enable vga patch from Intel (Don Dugger). VGA
+ emul is faster and not corrupted.
+- ifup is run to ensure IPs are assigned before rearranging for
+ xen, but this can fail with ifplugd; this should not kill the
+ whole script (Kirk Allan) (#154115).
+- Make network-bridge script more robust, by checking /sys instead
+ of grep-ing.
+* Mon Mar 6 2006 ccoffing@novell.com
+- Update to hg 9148 (xen-unstable tree). Drop patches merged
+ upstream.
+- More README improvements (#154134).
+- Fix "vncviewer=1" to bring up vncviewer (#149556).
+* Mon Mar 6 2006 ccoffing@novell.com
+- Fix build of hvmloader and vmxassist by removing external
+ CFLAGS (XS changeset #9110).
+- Fix build by forcing --prefix during installation of *.py.
+* Wed Mar 1 2006 ccoffing@novell.com
+- Update to hg 9029 (xen-unstable tree). Adds support for HVM on
+ 64 bit hardware.
+- Update vncmouse diff to 20060301 from Intel; compensates for lack
+ of eager events in our LibVNCServer.
+- Fix many bugs in lomount.
+- Cap maximum value of "xm mem-set" for domain 0, based on size of
+ dom0's page tables (#152667).
+* Mon Feb 27 2006 ccoffing@novell.com
+- Update to hg 9015 (xen-unstable tree). More bug fixes.
+- Update patch to better honor RPM_OPT_FLAGS.
+- Updated README (#154134).
+- Disable xen-vga-0213 patch; it speeds VGA updates but was
+ corrupting the display.
+- Change max mouse polling time from 1ms to 10ms to reduce CPU
+ load (from Intel).
+* Thu Feb 23 2006 ccoffing@novell.com
+- Update to hg 8954 (xen-unstable tree). More bug fixes.
+- Don't use a dummy IP of 1.2.3.4 for NFS server when booting domU
+ with DHCP. Seems to hang x86_64 Linux.
+- Remove unnecessary x86_64 patch.
+- Fix auto-ballooning of dom0 memory for HVM domUs (XenSource bug
+ 521).
+* Tue Feb 21 2006 ccoffing@novell.com
+- Update to hg 8920 (xen-unstable tree). Fixes instruction decode
+ for fully virtualized guests, fixing booting from CDs.
+- Integrate 3 patches from Intel, to improve VNC performance.
+* Tue Feb 21 2006 ccoffing@novell.com
+- Update to hg 8910 (xen-unstable tree).
+ fixes 32 on 32, 32 pae on 32pae, 64 on 64, 32 on 64.
+ critical HVM fixes, for fully virtualized guests.
+* Fri Feb 17 2006 ccoffing@novell.com
+- Update to hg 8870 (xen-unstable tree). More HVM fixes.
+- Remove duplicate balloon.free call.
+- Add patch from Intel to fix dom0 crash on 64 bit SMP HVM.
+* Thu Feb 16 2006 carnold@novell.com
+- Update to hg 8858 (xen-unstable tree).
+* Wed Feb 15 2006 ccoffing@novell.com
+- Update to hg 8857 (xen-unstable tree). Syncs hypervisor core
+ with Linux 2.6.16, which may fix some ACPI issues. Fixes HVM.
+- Fix uninitialized variable in xc_load_bin (from Bruce Rogers).
+- Auto-balloon dom0 for fully virtualized domains (#149179).
+- xen-doc-html was missing image files.
+* Mon Feb 13 2006 ccoffing@novell.com
+- Update to hg 8830 (xen-unstable tree).
+- Restore cs 8783/8792 to match kernel.
+* Wed Feb 8 2006 ccoffing@novell.com
+- Update to hg 8800 (xen-unstable tree).
+- Update BuildRequires.
+- Add "max-free-memory" to "xm info", to support yast2-vm (#147612)
+- Insserv xendomains, to support yast2-vm.
+- Fix exit code of "xend stop".
+- Revert cs 8783/8792 to allow xenstore to start (until kernel
+ catches up).
+- Ensure eth0 aka veth0 really comes up in network-bridge.
+* Sat Feb 4 2006 mls@suse.de
+- converted neededforbuild to BuildRequires
+* Fri Jan 27 2006 ccoffing@novell.com
+- Update to hg 8728 (xen-unstable tree).
+- Improve network-bridge:
+ + Ensure netdev really is up, to fix STARTMODE="manual".
+ + Stop ifplugd when doing ifdown, to fix STARTMODE="ifplugd".
+ + Improve check for whether bridge already exists.
+ + Improve defaults for netdev.
+- Fix log rotate so xend moves to new log.
+- xen-tools "Requires" python, et.al.; xen proper doesn't.
+- Revamp mk-xen-rescue-img.sh (#118566).
+- Revamp rcxendomains: improved output, error checking, return
+ values (#143754, #105677).
+* Tue Jan 24 2006 ccoffing@novell.com
+- Update to hg 8659 (xen-unstable tree).
+* Mon Jan 23 2006 ccoffing@novell.com
+- Correct return values and improve messages of init scripts.
+* Fri Jan 20 2006 ccoffing@novell.com
+- Use domUloader instead of pygrub.
+* Thu Jan 19 2006 carnold@novell.com
+- Build based on the xen-unstable.hg 8628
+* Wed Jan 18 2006 carnold@novell.com
+- Update to hg 8646 xen-unstable-hvm.hg tree.
+* Fri Jan 13 2006 ccoffing@novell.com
+- Allow version string "XEN_VER=3.0" instead of just
+ "XEN_VER=xen-3.0" for backwards compatibility.
+- Correctly set changeset in compile.h.
+* Thu Jan 12 2006 carnold@novell.com
+- Added two patches from AMD that apply to the 8513 changeset.
+* Thu Jan 12 2006 kukuk@suse.de
+- Add libreiserfs-devel to nfb.
+* Wed Jan 11 2006 carnold@novell.com
+- Update to hg 8513 xen-unstable-hvm.hg tree.
+* Tue Jan 10 2006 ccoffing@novell.com
+- Update to hg 8269 (xen-3.0-testing).
+- Support try-restart in init scripts.
+- Clean up installation of udev rules.
+* Wed Dec 14 2005 ccoffing@novell.com
+- Update to hg 8257 (xen-3.0-testing).
+- Update documentation.
+- Fix gcc 4.1 warnings.
+* Wed Dec 7 2005 ccoffing@novell.com
+- Update to hg 8241 (xen-3.0-testing).
+* Mon Nov 28 2005 ccoffing@novell.com
+- Update to hg 8073.
+- Rationalize command names (eg, setsize -> xentrace-setsize).
+- Fix gcc 4.1 warnings.
+* Wed Nov 16 2005 ccoffing@novell.com
+- Update to hg 7782.
+- Honor RPM_OPT_FLAGS better.
+- Include a few simple, obvious fixes from upstream.
+- Build xm-test package.
+- Update udev scripts.
+* Mon Nov 14 2005 ccoffing@novell.com
+- Includes upstream fixes to fix i586 save/restore.
+* Thu Nov 10 2005 ccoffing@novell.com
+- Include a few simple, obvious fixes: 7609, 7618, 7636, 7689,
+ 7690, 7692, 7696
+* Thu Nov 3 2005 ccoffing@novell.com
+- Update to hg 7608.
+- Fix warn_unused_result warnings.
+- Drop some patches (merged upstream)
+- Tidy README.SuSE.
+* Tue Nov 1 2005 ccoffing@novell.com
+- Update to hg 7583.
+* Thu Oct 20 2005 ccoffing@novell.com
+- Don't mention unwritten man pages.
+- Update xmexample* to match SUSE paths.
+- Update xs-include patch.
+* Wed Oct 19 2005 garloff@suse.de
+- Avoid race in watchdog functionality.
+- Improve network-bridge script.
+* Tue Oct 18 2005 garloff@suse.de
+- Ignore zombies in the xendomains shutdown procedure and have a
+ configurable timeout for the commands. Make xendomains status
+ report something useful.
+- Make xendomains script comaptible to non-SUSE distros.
+* Mon Oct 17 2005 garloff@suse.de
+- Update to hg 7398.
+* Mon Oct 17 2005 garloff@suse.de
+- Create useful xendomains init script and sysconfig file.
+* Mon Oct 17 2005 garloff@suse.de
+- Create symlinks also for -pae and -dbg hypervisor.
+- Build doxygen documentation.
+- Include block-nbd script and xen-nbd example config.
+- Include patchset info.
+* Wed Oct 12 2005 garloff@suse.de
+- Update docu.
+- Enable xen-dbg hypervisor for gdbserver domU debugging.
+* Tue Oct 11 2005 garloff@suse.de
+- Update docu.
+- Update to hg 7313.
+- Move libxenstore.so to xen-tools.
+* Tue Oct 11 2005 garloff@suse.de
+- Fix buglet in /sbin/xen-vbd.
+* Mon Oct 10 2005 garloff@suse.de
+- Downgrade to hg 7267.
+- Add troubleshooting section to README.SUSE.
+* Mon Oct 10 2005 garloff@suse.de
+- Fix typo in SrvDomain for mem-set operation.
+- Workaround: write directly to balloon in dom0 setMemoryTarget.
+- Kill xenconsoled and xenstored in rcxend stop.
+* Sun Oct 9 2005 garloff@suse.de
+- Update to hg 7278.
+- Provide udev rules to setup vifs and vbds in dom0 when domUs
+ boot (kraxel).
+- Change default FS size for rescue images to 80MB.
+* Sat Sep 10 2005 garloff@suse.de
+- Update to hg 6715.
+- Fix network-bridge down.
+* Wed Sep 7 2005 garloff@suse.de
+- Build PAE version along non-PAE version of Hypervisor.
+* Tue Sep 6 2005 garloff@suse.de
+- Try to fix network bridge down issue.
+- Document netowrking and firewalling caveats in README.SUSE.
+- Enable PAE.
+* Tue Sep 6 2005 garloff@suse.de
+- Update to hg 6644.
+* Sun Sep 4 2005 garloff@suse.de
+- Update to hg 6610.
+- Rename default name of xen-br0 to xenbr0.
+- Fix pygrub installation.
+- Use libreiserfs to support pygrub on reiser.
+* Mon Aug 29 2005 ccoffing@novell.com
+- xen-bridge-net.diff: do not destroy domain 0's network setup
+ when starting xend.
+* Mon Aug 29 2005 garloff@suse.de
+- Update to hg 6458.
+- Drop privileged port check -- we use Unix dom sockets anyway
+ (#105178).
+- init.xend: Fix linebreaks in PID list.
+- Correctly assign insserv to xen-tools subpackage.
+* Thu Aug 25 2005 garloff@suse.de
+- Add dirs /var/run/xenstored and /var/lib/xenstored.
+* Thu Aug 25 2005 garloff@suse.de
+- Update to hg 6393.
+* Mon Aug 22 2005 garloff@suse.de
+- Update to hg 6315.
+- Include linux-public headers in xen-devel package.
+* Sun Aug 21 2005 garloff@suse.de
+- Update to hg 6305.
+* Sat Aug 20 2005 garloff@suse.de
+- Update to hg 6299.
+- Enable VNC support (depending on LibVNCServer).
+* Sat Aug 20 2005 garloff@suse.de
+- Split off xen-tools-ioemu for supporting unmodified guests.
+* Fri Aug 19 2005 garloff@suse.de
+- Enable pygrub (at the cost of depending on e2fsprogs-devel)
+- Enable VMX ioemu SDL support (at the cost of many dependencies)
+* Fri Aug 19 2005 garloff@suse.de
+- Update to mercurial changeset 6223.
+- Move /usr/libexec/xen/ to /usr/lib[64]/xen/bin/.
+- Split off -tools package.
+* Mon Aug 15 2005 garloff@suse.de
+- Create symlinks in %%post.
+- Update README.SUSE.
+- Mark /etc/xen/ as %%config(noreplace).
+- Fix x86-64 build (movl -> mov, lib vs. lib64 inst dirs).
+- Remove PYTHONOPTIMIZE.
+* Tue Aug 2 2005 ccoffing@novell.com
+- Fix warn_unused_result warnings
+* Thu Jul 28 2005 ccoffing@novell.com
+- Update to latest 3.0-unstable snapshot.
+* Wed Jul 13 2005 ccoffing@novell.com
+- Fixed bug in glibc24 patch that caused erroneous "out of memory"
+ errors
+* Fri Jun 24 2005 ccoffing@novell.com
+- Fix gcc4 patch that caused a panic in Xen at boot.
+* Fri Jun 24 2005 ccoffing@novell.com
+- Fix xen-syms link.
+* Fri Jun 17 2005 ccoffing@novell.com
+- Fix version-check in NetWare loader (0x336ec577 -> 0x326ec578).
+* Fri Jun 17 2005 ccoffing@novell.com
+- Backport NetWare-friendly loader from Xen 3.0.
+* Thu Jun 16 2005 ccoffing@novell.com
+- Destroy domains that failed to be fully created.
+* Fri Jun 10 2005 garloff@suse.de
+- Update to latest 2.0-testing snapshot.
+- Use RPM version and release no as xen version.
+* Tue Jun 7 2005 garloff@suse.de
+- Update mk-xen-rescue-img.sh script: Handle SLES9 better.
+- Export PYTHONOPTIMIZE in xend start script.
+* Mon Jun 6 2005 garloff@suse.de
+- Merge _perform_err fixes.
+* Mon May 23 2005 ccoffing@novell.com
+- update to 2.0.6
+* Wed Apr 13 2005 garloff@suse.de
+- More gcc4 and binutils related fixes.
+* Wed Apr 13 2005 garloff@suse.de
+- Build fixes for gcc4.
+* Sun Apr 3 2005 garloff@suse.de
+- Update xen: Various fixes (scheduling, memset, domain crash
+ handling) and enhancements (bg page scrubbing).
+* Thu Mar 24 2005 garloff@suse.de
+- xen-bridge-net.diff: Make sure bridge netdev is up after adding
+ addresses to it.
+* Wed Mar 23 2005 garloff@suse.de
+- xen-secure.diff: Check for privileged port before allowing
+ certain control operations.
+- README.SUSE: Document this change.
+* Wed Mar 23 2005 garloff@suse.de
+- Require ports < 1024 to allow controlling VMs.
+* Mon Mar 21 2005 garloff@suse.de
+- Update xen.
+* Wed Mar 16 2005 garloff@suse.de
+- Update xen.
+- Add /var/lib/xen/xen-db/ subdirs.
+* Sun Mar 13 2005 garloff@suse.de
+- Update to post-2.0.5
+- Make /usr/sbin/xm root:trusted 0750
+- Drop some patches (merged upstream)
+* Tue Mar 8 2005 garloff@suse.de
+- Update README with security notes.
+- Update mk-xen-rescue-image.sh script allowing to specify the
+ kernel version to be used.
+- Rather than busy-looping, exit console on a domain that has
+ shutdown.
+* Mon Mar 7 2005 garloff@suse.de
+- Update xen to latest snapshot.
+- tgif not needed any more.
+* Tue Mar 1 2005 garloff@suse.de
+- Include serial-split from Charles Coffing.
+* Tue Mar 1 2005 garloff@suse.de
+- Update xen to latest snapshot.
+* Mon Feb 21 2005 garloff@suse.de
+- Update README.SuSE.
+- Update xen to latest snapshot.
+* Sun Feb 13 2005 garloff@suse.de
+- Add init header to xendomains init script.
+- Add bridge-utils dependency.
+- Update config file and README.
+- Activate xend init script on installation.
+* Wed Feb 9 2005 ro@suse.de
+- remove te_etex and te_pdf from neededforbuild.
+* Wed Feb 9 2005 garloff@suse.de
+- Update README about IDE dma.
+- Default to dhcp.
+* Wed Feb 9 2005 garloff@suse.de
+- Update to xen post-2.0.4.
+- Little bugfix for xen rescue install script.
+- Update README.SUSE: Better explanation of root FS creation.
+* Sun Jan 23 2005 garloff@suse.de
+- Change some defaults to be more secure (xend only binds to
+ localhost, ip spoof protection on).
+- Avoid ipv6 issue with xend network script.
+- Extensive docu in README.SUSE now.
+- mk-xen-rescue-img.sh creates a xen root fs image from the std
+ SUSE rescue image.
+- Put boot.local script in root img to parse ip boot par.
+* Thu Jan 20 2005 garloff@suse.de
+- Update to newer snapshot.
+* Wed Jan 19 2005 garloff@suse.de
+- Update to xen-2.0-unstable (post 2.0.3).
+* Thu Dec 9 2004 garloff@suse.de
+- Initial creation of package xen, xen-doc-*.
+- i686 only for now.
diff --git a/xen.stubdom.newlib.patch b/xen.stubdom.newlib.patch
new file mode 100644
index 0000000..64983fb
--- /dev/null
+++ b/xen.stubdom.newlib.patch
@@ -0,0 +1,119 @@
+# HG changeset patch
+# Parent 02ec826cab1e4acb25b364a180a1597ace1149f9
+stubdom: fix errors in newlib
+
+rpm post-build-checks found a few code bugs in newlib, and marks them as
+errors. Add another newlib patch and apply it during stubdom build.
+
+I: A function uses a 'return;' statement, but has actually a value
+ to return, like an integer ('return 42;') or similar.
+W: xen voidreturn ../../../../newlib-1.16.0/libgloss/i386/cygmon-gmon.c:117, 125, 146, 157, 330
+
+I: Program is using implicit definitions of special functions.
+ these functions need to use their correct prototypes to allow
+ the lightweight buffer overflow checking to work.
+ - Implicit memory/string functions need #include <string.h>.
+ - Implicit *printf functions need #include <stdio.h>.
+ - Implicit *printf functions need #include <stdio.h>.
+ - Implicit *read* functions need #include <unistd.h>.
+ - Implicit *recv* functions need #include <sys/socket.h>.
+E: xen implicit-fortify-decl ../../../../newlib-1.16.0/libgloss/i386/cygmon-gmon.c:119
+
+I: Program returns random data in a function
+E: xen no-return-in-nonvoid-function ../../../../newlib-1.16.0/libgloss/i386/cygmon-gmon.c:362
+
+Signed-off-by: Olaf Hering <olaf@aepfle.de>
+
+Index: xen-4.12.0-testing/stubdom/Makefile
+===================================================================
+--- xen-4.12.0-testing.orig/stubdom/Makefile
++++ xen-4.12.0-testing/stubdom/Makefile
+@@ -88,6 +88,8 @@ newlib-$(NEWLIB_VERSION): newlib-$(NEWLI
+ patch -d $@ -p0 < newlib-chk.patch
+ patch -d $@ -p1 < newlib-stdint-size_max-fix-from-1.17.0.patch
+ patch -d $@ -p1 < newlib-disable-texinfo.patch
++ patch -d $@ -p1 < newlib-cygmon-gmon.patch
++ patch -d $@ -p1 < newlib-makedoc.patch
+ find $@ -type f | xargs perl -i.bak \
+ -pe 's/\b_(tzname|daylight|timezone)\b/$$1/g'
+ touch $@
+Index: xen-4.12.0-testing/stubdom/newlib-cygmon-gmon.patch
+===================================================================
+--- /dev/null
++++ xen-4.12.0-testing/stubdom/newlib-cygmon-gmon.patch
+@@ -0,0 +1,60 @@
++
++I: A function uses a 'return;' statement, but has actually a value
++ to return, like an integer ('return 42;') or similar.
++W: xen voidreturn ../../../../newlib-1.16.0/libgloss/i386/cygmon-gmon.c:117, 125, 146, 157, 330
++
++I: Program is using implicit definitions of special functions.
++ these functions need to use their correct prototypes to allow
++ the lightweight buffer overflow checking to work.
++ - Implicit memory/string functions need #include <string.h>.
++ - Implicit *printf functions need #include <stdio.h>.
++ - Implicit *printf functions need #include <stdio.h>.
++ - Implicit *read* functions need #include <unistd.h>.
++ - Implicit *recv* functions need #include <sys/socket.h>.
++E: xen implicit-fortify-decl ../../../../newlib-1.16.0/libgloss/i386/cygmon-gmon.c:119
++
++I: Program returns random data in a function
++E: xen no-return-in-nonvoid-function ../../../../newlib-1.16.0/libgloss/i386/cygmon-gmon.c:362
++
++---
++ libgloss/i386/cygmon-gmon.c | 6 +++++-
++ 1 file changed, 5 insertions(+), 1 deletion(-)
++
++Index: newlib-1.16.0/libgloss/i386/cygmon-gmon.c
++===================================================================
++--- newlib-1.16.0.orig/libgloss/i386/cygmon-gmon.c
+++++ newlib-1.16.0/libgloss/i386/cygmon-gmon.c
++@@ -61,6 +61,8 @@
++ static char sccsid[] = "@(#)gmon.c 5.3 (Berkeley) 5/22/91";
++ #endif /* not lint */
++
+++#include <string.h>
+++#include <unistd.h>
++ #define DEBUG
++ #ifdef DEBUG
++ #include <stdio.h>
++@@ -89,7 +91,7 @@ static int s_scale;
++
++ extern int errno;
++
++-int
+++void
++ monstartup(lowpc, highpc)
++ char *lowpc;
++ char *highpc;
++@@ -199,6 +201,7 @@ _mcleanup()
++
++ static char already_setup = 0;
++
+++void
++ _mcount()
++ {
++ register char *selfpc;
++@@ -341,6 +344,7 @@ overflow:
++ * profiling is what mcount checks to see if
++ * all the data structures are ready.
++ */
+++void
++ moncontrol(mode)
++ int mode;
++ {
+Index: xen-4.12.0-testing/stubdom/newlib-makedoc.patch
+===================================================================
+--- /dev/null
++++ xen-4.12.0-testing/stubdom/newlib-makedoc.patch
+@@ -0,0 +1,10 @@
++--- newlib-1.16.0/newlib/doc/makedoc.c.orig 2015-04-08 11:56:39.283090914 +0200
+++++ newlib-1.16.0/newlib/doc/makedoc.c 2015-04-08 11:56:51.245227742 +0200
++@@ -39,6 +39,7 @@
++ #include <stdio.h>
++ #include <stdlib.h>
++ #include <ctype.h>
+++#include <string.h>
++
++ #define DEF_SIZE 5000
++ #define STACK 50
diff --git a/xen2libvirt.py b/xen2libvirt.py
new file mode 100644
index 0000000..68958ef
--- /dev/null
+++ b/xen2libvirt.py
@@ -0,0 +1,137 @@
+#!/usr/bin/python3
+#
+# Copyright (C) 2014 SUSE LINUX Products GmbH, Nuernberg, Germany.
+#
+# This library is free software; you can redistribute it and/or
+# modify it under the terms of the GNU Lesser General Public
+# License as published by the Free Software Foundation; either
+# version 2.1 of the License, or (at your option) any later version.
+#
+# This library is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+# Lesser General Public License for more details.
+#
+# You should have received a copy of the GNU Lesser General Public
+# License along with this library. If not, see
+# <http://www.gnu.org/licenses/>.
+#
+# Authors:
+# Jim Fehlig <jfehlig@suse.com>
+#
+# Read native Xen configuration format, convert to libvirt domXML, and
+# import (virsh define <xml>) into libvirt.
+
+
+import sys
+import os
+import argparse
+import re
+from xml.etree import ElementTree
+
+try:
+ import libvirt
+except ImportError:
+ print('Unable to import the libvirt module. Is libvirt-python installed?')
+ sys.exit(1)
+
+parser = argparse.ArgumentParser(description='Import Xen domain configuration into libvirt')
+parser.add_argument('-c', '--convert-only', help='Convert Xen domain configuration into libvirt domXML, but do not import into libvirt', action='store_true', dest='convert_only')
+parser.add_argument('-r', '--recursive', help='Operate recursivelly on all Xen domain configuration rooted at path', action='store_true')
+parser.add_argument('-f', '--format', help='Format of Xen domain configuration. Supported formats are xm and sexpr', choices=['xm', 'sexpr'], default=None)
+parser.add_argument('-v', '--verbose', help='Print information about the import process', action='store_true')
+parser.add_argument('path', help='Path to Xen domain configuration')
+
+
+def print_verbose(msg):
+ if args.verbose:
+ print(msg)
+
+
+def check_config(path, config):
+ isbinary = os.system('file -b ' + path + ' | grep text > /dev/null')
+
+ if isbinary:
+ print('Skipping %s (not a valid Xen configuration file)' % path)
+ return 'unknown'
+
+ for line in config.splitlines():
+ if len(line) == 0 or line.startswith('#'):
+ continue
+ if line.startswith('<domain'):
+ # XML is not a supported conversion format
+ break
+ if line.startswith('(domain'):
+ print('Found sexpr formatted file %s' % path)
+ return 'sexpr'
+ if '=' in line:
+ print('Found xm formatted file %s' % path)
+ return 'xm'
+ break
+
+ print('Skipping %s (not a valid Xen configuration file)' % path)
+ return 'unknown'
+
+
+def import_domain(conn, path, format=None, convert_only=False):
+
+ f = open(path, 'r')
+ config = f.read()
+ print_verbose('Xen domain configuration read from %s:\n %s' % (path, config))
+ if format is None:
+ format = check_config(path, config)
+
+ if format == 'sexpr':
+ print_verbose('scrubbing domid from configuration')
+ config = re.sub("\(domid [0-9]*\)", "", config)
+ print_verbose('scrubbed sexpr:\n %s' % config)
+ xml = conn.domainXMLFromNative('xen-sxpr', config, 0)
+ elif format == 'xm':
+ xml = conn.domainXMLFromNative('xen-xm', config, 0)
+ else:
+ # Return to continue on to next file (if recursive)
+ return
+
+ f.close()
+
+ # domUloader is no longer available in SLES12, replace with pygrub
+ tree = ElementTree.fromstring(xml)
+ bl = tree.find('.//bootloader')
+ if bl is not None and bl.text is not None and 'domUloader' in bl.text:
+ bl.text = 'pygrub'
+ xml = ElementTree.tostring(tree)
+
+ print_verbose('Successfully converted Xen domain configuration to '
+ 'libvirt domXML:\n %s' % xml)
+ if convert_only:
+ print(xml)
+ else:
+ print_verbose('Importing converted libvirt domXML into libvirt...')
+ dom = conn.defineXML(xml.decode("utf-8"))
+ if dom is None:
+ print('Failed to define domain from converted domXML')
+ sys.exit(1)
+ print_verbose('domXML successfully imported into libvirt')
+
+
+args = parser.parse_args()
+path = args.path
+
+# Connect to libvirt
+conn = libvirt.open(None)
+if conn is None:
+ print('Failed to open connection to the hypervisor')
+ sys.exit(1)
+
+if args.recursive:
+ try:
+ for root, dirs, files in os.walk(path):
+ for name in files:
+ abs_name = os.path.join(root, name)
+ print_verbose('Processing file %s' % abs_name)
+ import_domain(conn, abs_name, args.format, args.convert_only)
+ except IOError:
+ print('Failed to open/read path %s' % path)
+ sys.exit(1)
+else:
+ import_domain(conn, args.path, args.format, args.convert_only)
diff --git a/xen_maskcalc.py b/xen_maskcalc.py
new file mode 100644
index 0000000..0d12227
--- /dev/null
+++ b/xen_maskcalc.py
@@ -0,0 +1,395 @@
+#!/usr/bin/python3
+
+# Xen Mask Calculator - Calculate CPU masking information based on cpuid(1)
+# Copyright (C) 2017 Armando Vega
+#
+# This program is free software: you can redistribute it and/or modify
+# it under the terms of the GNU General Public License as published by
+# the Free Software Foundation, either version 3 of the License, or
+# (at your option) any later version.
+#
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with this program. If not, see <http://www.gnu.org/licenses/>.
+
+import argparse
+import sys
+import os
+
+
+EAX1_MATCH = '0x00000001 0x00:'
+EAX7_MATCH = '0x00000007 0x00:'
+EXP_LINELN = 76
+
+libxl_names_ecx1 = []
+libxl_names_edx1 = []
+libvirt_names_ecx1 = []
+libvirt_names_edx1 = []
+
+libxl_names_ebx7 = []
+libxl_names_ecx7 = []
+libvirt_names_ebx7 = []
+libvirt_names_ecx7 = []
+
+def fill_ecx1(bit, libxl, libvirt):
+ if libxl_names_ecx1[bit]:
+ print("ecx bit %s already set: libxl %s libvirt %s. Ignoring %s/%s\n" % (bit, libxl_names_ecx1[bit], libvirt_names_ecx1[bit], libxl, libvirt))
+ return
+ libxl_names_ecx1[bit] = libxl
+ libvirt_names_ecx1[bit] = libvirt
+
+def fill_edx1(bit, libxl, libvirt):
+ if libxl_names_edx1[bit]:
+ print("edx bit %s already set: libxl %s libvirt %s. Ignoring %s/%s\n" % (bit, libxl_names_edx1[bit], libvirt_names_edx1[bit], libxl, libvirt))
+ return
+ libxl_names_edx1[bit] = libxl
+ libvirt_names_edx1[bit] = libvirt
+
+def fill_ebx7(bit, libxl, libvirt):
+ if libxl_names_ebx7[bit]:
+ print("edx bit %s already set: libxl %s libvirt %s. Ignoring %s/%s\n" % (bit, libxl_names_ebx7[bit], libvirt_names_ebx7[bit], libxl, libvirt))
+ return
+ libxl_names_ebx7[bit] = libxl
+ libvirt_names_ebx7[bit] = libvirt
+
+def fill_ecx7(bit, libxl, libvirt):
+ if libxl_names_ecx7[bit]:
+ print("ecx bit %s already set: libxl %s libvirt %s. Ignoring %s/%s\n" % (bit, libxl_names_ecx7[bit], libvirt_names_ecx7[bit], libxl, libvirt))
+ return
+ libxl_names_ecx7[bit] = libxl
+ libvirt_names_ecx7[bit] = libvirt
+
+def fill_bit_names():
+ for i in range(0,32):
+ libxl_names_ecx1.append(None)
+ libxl_names_edx1.append(None)
+ libxl_names_ebx7.append(None)
+ libxl_names_ecx7.append(None)
+ libvirt_names_ecx1.append(None)
+ libvirt_names_edx1.append(None)
+ libvirt_names_ebx7.append(None)
+ libvirt_names_ecx7.append(None)
+
+ fill_ecx1(0, "sse3", "pni")
+ fill_ecx1(1, "pclmulqdq", "pclmuldq")
+ fill_ecx1(2, "dtes64", "dtes64")
+ fill_ecx1(3, "monitor", "monitor")
+ fill_ecx1(4, "dscpl", "ds_cpl")
+ fill_ecx1(5, "vmx", "vmx")
+ fill_ecx1(6, "smx", "smx")
+ fill_ecx1(7, "est", "est")
+ fill_ecx1(8, "tm2", "tm2")
+ fill_ecx1(9, "ssse3", "ssse3")
+ fill_ecx1(10, "cntxid", "cid")
+ fill_ecx1(12, "fma", "fma")
+ fill_ecx1(13, "cmpxchg16", "cx16")
+ fill_ecx1(14, "xtpr", "xtpr")
+ fill_ecx1(15, "pdcm", "pdcm")
+ fill_ecx1(17, "pcid", "pcid")
+ fill_ecx1(18, "dca", "dca")
+ fill_ecx1(19, "sse4_1", "sse4.1")
+ fill_ecx1(20, "sse4_2", "sse4.2")
+ fill_ecx1(21, "x2apic", "x2apic")
+ fill_ecx1(22, "movbe", "movbe")
+ fill_ecx1(23, "popcnt", "popcnt")
+ fill_ecx1(24, "tsc-deadline", "tsc-deadline")
+ fill_ecx1(25, "aes", "aes")
+ fill_ecx1(26, "xsave", "xsave")
+ fill_ecx1(27, "osxsave", "osxsave")
+ fill_ecx1(28, "avx", "avx")
+ fill_ecx1(29, "f16c", "f16c")
+ fill_ecx1(30, "rdrand", "rdrand")
+ fill_ecx1(31, "hypervisor", "hypervisor")
+
+ fill_edx1(0, "fpu", "fpu")
+ fill_edx1(1, "vme", "vme")
+ fill_edx1(2, "de", "de")
+ fill_edx1(3, "pse", "pse")
+ fill_edx1(4, "tsc", "tsc")
+ fill_edx1(5, "msr", "msr")
+ fill_edx1(6, "pae", "pae")
+ fill_edx1(7, "mce", "mce")
+ fill_edx1(8, "cmpxchg8", "cx8")
+ fill_edx1(9, "apic", "apic")
+ fill_edx1(11, "sysenter", "sep")
+ fill_edx1(12, "mtrr", "mtrr")
+ fill_edx1(13, "pge", "pge")
+ fill_edx1(14, "mca", "mca")
+ fill_edx1(15, "cmov", "cmov")
+ fill_edx1(16, "pat", "pat")
+ fill_edx1(17, "pse36", "pse36")
+ fill_edx1(18, "psn", "pn")
+ fill_edx1(19, "clfsh", "clflush")
+ fill_edx1(21, "ds", "ds")
+ fill_edx1(22, "acpi", "acpi")
+ fill_edx1(23, "mmx", "mmx")
+ fill_edx1(24, "fxsr", "fxsr")
+ fill_edx1(25, "sse", "sse")
+ fill_edx1(26, "sse2", "sse2")
+ fill_edx1(27, "ss", "ss")
+ fill_edx1(28, "htt", "ht")
+ fill_edx1(29, "tm", "tm")
+ fill_edx1(30, "ia64", "ia64")
+ fill_edx1(31, "pbe", "pbe")
+
+ fill_ebx7(0, "fsgsbase", "fsgsbase")
+ fill_ebx7(1, "tsc_adjust", "tsc_adjust")
+ fill_ebx7(3, "bmi1", "bmi1")
+ fill_ebx7(4, "hle", "hle")
+ fill_ebx7(5, "avx2", "avx2")
+ fill_ebx7(7, "smep", "smep")
+ fill_ebx7(8, "bmi2", "bmi2")
+ fill_ebx7(9, "erms", "erms")
+ fill_ebx7(10, "invpcid", "invpcid")
+ fill_ebx7(11, "rtm", "rtm")
+ fill_ebx7(12, "cmt", "cmt")
+ fill_ebx7(14, "mpx", "mpx")
+ fill_ebx7(16, "avx512f", "avx512f")
+ fill_ebx7(17, "avx512dq", "avx512dq")
+ fill_ebx7(18, "rdseed", "rdseed")
+ fill_ebx7(19, "adx", "adx")
+ fill_ebx7(20, "smap", "smap")
+ fill_ebx7(21, "avx512-ifma", "avx512-ifma")
+ fill_ebx7(23, "clflushopt", "clflushopt")
+ fill_ebx7(24, "clwb", "clwb")
+ fill_ebx7(26, "avx512pf", "avx512pf")
+ fill_ebx7(27, "avx512er", "avx512er")
+ fill_ebx7(28, "avx512cd", "avx512cd")
+ fill_ebx7(29, "sha", "sha")
+ fill_ebx7(30, "avx512bw", "avx512bw")
+ fill_ebx7(31, "avx512vl", "avx512vl")
+
+ fill_ecx7(0, "prefetchwt1", "prefetchwt1")
+ fill_ecx7(1, "avx512-vbmi", "avx512-vbmi")
+ fill_ecx7(2, "umip", "umip")
+ fill_ecx7(3, "pku", "pku")
+ fill_ecx7(4, "ospke", "ospke")
+ fill_ecx7(6, "avx512-vbmi2", "avx512-vbmi2")
+ fill_ecx7(8, "gfni", "gfni")
+ fill_ecx7(9, "vaes", "vaes")
+ fill_ecx7(10, "vpclmulqdq", "vpclmulqdq")
+ fill_ecx7(11, "avx512-vnni", "avx512-vnni")
+ fill_ecx7(12, "avx512-bitalg", "avx512-bitalg")
+ fill_ecx7(14, "avx512-vpopcntdq", "avx512-vpopcntdq")
+ fill_ecx7(22, "rdpid", "rdpid")
+ fill_ecx7(25, "cldemote", "cldemote")
+
+
+def get_register_mask(regs):
+ """ Take a list of register values and return the calculated mask """
+ reg_n = len(regs)
+ mask = ''
+ for idx in range(32):
+ counter = 0
+ for reg in regs:
+ counter += 1 if (reg & (1 << idx) > 0) else 0
+ # if we have all 1s or all 0s we don't mask the bit
+ if counter == reg_n or counter == 0:
+ mask = mask + 'x'
+ else:
+ mask = mask + '0'
+ # we calculated the mask in reverse, so we reverse it again
+ return mask[::-1]
+
+
+def print_xl_masking_config(nodes):
+ """ Take a dictionary of nodes containing their registers and print out CPUID masking configuration for xl """
+ nomasking = 'x' * 32
+ libxl = []
+ libvirt = []
+ eax1_ecx_regs = []
+ eax1_edx_regs = []
+ eax7_ebx_regs = []
+ eax7_ecx_regs = []
+ for node in nodes:
+ eax1_ecx_regs.append(nodes[node]['eax1_ecx'])
+ eax1_edx_regs.append(nodes[node]['eax1_edx'])
+ eax7_ebx_regs.append(nodes[node]['eax7_ebx'])
+ eax7_ecx_regs.append(nodes[node]['eax7_ecx'])
+ # Get masks for the EAX1 and EAX7 registers
+ eax1_ecx_mask = get_register_mask(eax1_ecx_regs)
+ eax1_edx_mask = get_register_mask(eax1_edx_regs)
+ eax7_ebx_mask = get_register_mask(eax7_ebx_regs)
+ eax7_ecx_mask = get_register_mask(eax7_ecx_regs)
+ # Build the xl CPUID config
+ cpuid_config = 'cpuid = [\n "0x00000001:ecx=' + eax1_ecx_mask
+ if eax1_edx_mask != nomasking:
+ cpuid_config += ',edx=' + eax1_edx_mask
+ cpuid_config += '",\n'
+ cpuid_config += ' "0x00000007,0x00:ebx=' + eax7_ebx_mask
+ if eax7_ecx_mask != nomasking:
+ cpuid_config += ',ecx=' + eax7_ecx_mask
+ cpuid_config += '"\n'
+ cpuid_config += ']'
+ print(cpuid_config)
+
+ bitnum = len(eax1_ecx_mask)
+ while bitnum > 0:
+ bitnum -= 1
+ bitval = eax1_ecx_mask[len(eax1_ecx_mask) - 1 - bitnum]
+ if bitval == "0" and libxl_names_ecx1[bitnum]:
+ libxl.append(libxl_names_ecx1[bitnum] + "=0")
+ libvirt.append(libvirt_names_ecx1[bitnum])
+
+ bitnum = len(eax1_edx_mask)
+ while bitnum > 0:
+ bitnum -= 1
+ bitval = eax1_edx_mask[len(eax1_edx_mask) - 1 - bitnum]
+ if bitval == "0" and libxl_names_edx1[bitnum]:
+ libxl.append(libxl_names_edx1[bitnum] + "=0")
+ libvirt.append(libvirt_names_edx1[bitnum])
+
+ bitnum = len(eax7_ebx_mask)
+ while bitnum > 0:
+ bitnum -= 1
+ bitval = eax7_ebx_mask[len(eax7_ebx_mask) - 1 - bitnum]
+ if bitval == "0" and libxl_names_ebx7[bitnum]:
+ libxl.append(libxl_names_ebx7[bitnum] + "=0")
+ libvirt.append(libvirt_names_ebx7[bitnum])
+
+ bitnum = len(eax7_ecx_mask)
+ while bitnum > 0:
+ bitnum -= 1
+ bitval = eax7_ecx_mask[len(eax7_ecx_mask) - 1 - bitnum]
+ if bitval == "0" and libxl_names_ecx7[bitnum]:
+ libxl.append(libxl_names_ecx7[bitnum] + "=0")
+ libvirt.append(libvirt_names_ecx7[bitnum])
+
+ if len(libxl) > 0:
+ output = "cpuid = [ host"
+ for i in libxl:
+ output += "," + i
+ output += " ]"
+ print(output)
+
+ print("<domain>")
+ print(" <cpu>")
+ for i in libvirt:
+ print(" <feature policy='optional' name='%s' />" % i)
+ print(" </cpu>")
+ print("</domain>")
+
+
+def print_verbose_masking_info(nodes):
+ """ Take a dictionary of nodes containing their registers and print out verbose mask derivation information """
+ eax1_ecx_regs = []
+ eax1_edx_regs = []
+ eax7_ebx_regs = []
+ eax7_ecx_regs = []
+ for node in nodes:
+ eax1_ecx_regs.append(nodes[node]['eax1_ecx'])
+ eax1_edx_regs.append(nodes[node]['eax1_edx'])
+ eax7_ebx_regs.append(nodes[node]['eax7_ebx'])
+ eax7_ecx_regs.append(nodes[node]['eax7_ecx'])
+
+ print("")
+ print('== Detailed mask derivation info ==')
+ print("")
+
+ print('EAX1 ECX registers:')
+ for reg in eax1_ecx_regs:
+ print('{0:032b}'.format(reg))
+ print('================================')
+ print(get_register_mask(eax1_ecx_regs))
+
+ print("")
+ print('EAX1 EDX registers:')
+ for reg in eax1_edx_regs:
+ print('{0:032b}'.format(reg))
+ print('================================')
+ print(get_register_mask(eax1_edx_regs))
+
+ print("")
+ print('EAX7,0 EBX registers:')
+ for reg in eax7_ebx_regs:
+ print('{0:032b}'.format(reg))
+ print('================================')
+ print(get_register_mask(eax7_ebx_regs))
+
+ print("")
+ print('EAX7,0 ECX registers:')
+ for reg in eax7_ecx_regs:
+ print('{0:032b}'.format(reg))
+ print('================================')
+ print(get_register_mask(eax7_ecx_regs))
+
+
+if __name__ == '__main__':
+ epilog = """The individual 'node_files' are generated with 'cpuid -1r':
+ server1~$ cpuid -1r > node1
+ server2~$ cpuid -1r > node2
+ server3~$ cpuid -1r > node3
+
+ ~$ {0} node1 node2 node3
+
+ Use 'zypper install cpuid' to install the cpuid.rpm.
+
+Note: Run 'cpuid' with NATIVE boot instead of dom0 to get the complete cpid value.
+Xen hides some bits from dom0!
+ """.format(sys.argv[0])
+ parser = argparse.ArgumentParser(
+ formatter_class=argparse.RawDescriptionHelpFormatter,
+ description='A utility that calculates a XEN CPUID difference mask',
+ epilog=epilog
+ )
+ parser.add_argument('node_files', nargs='*', help='Filenames of XEN node CPUID outputs')
+ parser.add_argument('-v', '--verbose', action='store_true', help='Get detailed mask derivation information')
+ args = parser.parse_args()
+ if len(args.node_files) < 2:
+ print('Need at least 2 files to do the comparison!')
+ parser.print_help()
+ sys.exit(1)
+
+ fill_bit_names()
+ nodes = dict()
+ for node in args.node_files:
+ if os.path.isfile(node):
+ try:
+ f = open(node)
+ except IOError as e:
+ print("I/O error({0}): {1}".format(e.errno, e.strerror))
+ sys.exit(1)
+ else:
+ lines = [line.strip() for line in f]
+ eax1 = ''
+ eax7 = ''
+ # try to match the lines containing interesting registers
+ # EAX1 - Processor Info and Feature Bits
+ # EAX7 - Extended features
+ for line in lines:
+ if line.startswith(EAX1_MATCH):
+ eax1 = line
+ elif line.startswith(EAX7_MATCH):
+ eax7 = line
+ # if we get garbled data we should probably just give up
+ if len(eax1) < EXP_LINELN or len(eax7) < EXP_LINELN:
+ print('ERROR: invalid data format in file : ' + node)
+ sys.exit(1)
+
+ # check if we can actually parse the strings into integers
+ try:
+ eax1_ecx = int(eax1.split()[4].split('=')[1], 0)
+ eax1_edx = int(eax1.split()[5].split('=')[1], 0)
+ eax7_ebx = int(eax7.split()[3].split('=')[1], 0)
+ eax7_ecx = int(eax7.split()[4].split('=')[1], 0)
+ except ValueError:
+ print('ERROR: invalid data format in file: ' + node)
+ sys.exit(1)
+
+ nodes[node] = dict()
+ nodes[node]['eax1_ecx'] = eax1_ecx
+ nodes[node]['eax1_edx'] = eax1_edx
+ nodes[node]['eax7_ebx'] = eax7_ebx
+ nodes[node]['eax7_ecx'] = eax7_ecx
+ f.close()
+ else:
+ print('File not found: ' + node)
+ sys.exit(1)
+
+ print_xl_masking_config(nodes)
+ if args.verbose:
+ print_verbose_masking_info(nodes)
diff --git a/xenapiusers b/xenapiusers
new file mode 100644
index 0000000..d8649da
--- /dev/null
+++ b/xenapiusers
@@ -0,0 +1 @@
+root
diff --git a/xencommons.service b/xencommons.service
new file mode 100644
index 0000000..ba2a6cd
--- /dev/null
+++ b/xencommons.service
@@ -0,0 +1,36 @@
+[Unit]
+Description=xencommons
+ConditionPathExists=/proc/xen/capabilities
+
+# Avoid errors from systemd-modules-load.service
+Requires=xen-dom0-modules.service
+After=xen-dom0-modules.service
+
+# Pull in all upstream service files
+Requires=proc-xen.mount
+After=proc-xen.mount
+Requires=xenstored.service
+After=xenstored.service
+Requires=xenconsoled.service
+After=xenconsoled.service
+Requires=xen-init-dom0.service
+After=xen-init-dom0.service
+Requires=xen-qemu-dom0-disk-backend.service
+After=xen-qemu-dom0-disk-backend.service
+
+# Make sure network (for bridge) and remote mounts (for xendomains) are available ...
+After=network-online.target
+After=remote-fs.target
+
+# ... for libvirt and xendomains
+Before=xendomains.service libvirtd.service
+
+[Service]
+Type=oneshot
+RemainAfterExit=true
+ExecStartPre=/bin/grep -q control_d /proc/xen/capabilities
+ExecStart=/usr/bin/xenstore-ls -f
+ExecStartPost=/bin/sh -c 'mv -vf /var/log/xen/xen-boot.log /var/log/xen/xen-boot.prev.log ; /usr/sbin/xl dmesg > /var/log/xen/xen-boot.log'
+
+[Install]
+WantedBy=multi-user.target
diff --git a/xenconsole-no-multiple-connections.patch b/xenconsole-no-multiple-connections.patch
new file mode 100644
index 0000000..89bb169
--- /dev/null
+++ b/xenconsole-no-multiple-connections.patch
@@ -0,0 +1,27 @@
+Index: xen-4.8.0-testing/tools/console/client/main.c
+===================================================================
+--- xen-4.8.0-testing.orig/tools/console/client/main.c
++++ xen-4.8.0-testing/tools/console/client/main.c
+@@ -101,6 +101,7 @@ static int get_pty_fd(struct xs_handle *
+ * Assumes there is already a watch set in the store for this path. */
+ {
+ struct timeval tv;
++ struct flock lock;
+ fd_set watch_fdset;
+ int xs_fd = xs_fileno(xs), pty_fd = -1;
+ int start, now;
+@@ -124,6 +125,14 @@ static int get_pty_fd(struct xs_handle *
+ pty_fd = open(pty_path, O_RDWR | O_NOCTTY);
+ if (pty_fd == -1)
+ warn("Could not open tty `%s'", pty_path);
++ else {
++ memset(&lock, 0, sizeof(lock));
++ lock.l_type = F_WRLCK;
++ lock.l_whence = SEEK_SET;
++ if (fcntl(pty_fd, F_SETLK, &lock) != 0)
++ err(errno, "Could not lock tty '%s'",
++ pty_path);
++ }
+ }
+ free(pty_path);
+ }
diff --git a/xendomains-wait-disks.LICENSE b/xendomains-wait-disks.LICENSE
new file mode 100644
index 0000000..9cecc1d
--- /dev/null
+++ b/xendomains-wait-disks.LICENSE
@@ -0,0 +1,674 @@
+ GNU GENERAL PUBLIC LICENSE
+ Version 3, 29 June 2007
+
+ Copyright (C) 2007 Free Software Foundation, Inc. <http://fsf.org/>
+ Everyone is permitted to copy and distribute verbatim copies
+ of this license document, but changing it is not allowed.
+
+ Preamble
+
+ The GNU General Public License is a free, copyleft license for
+software and other kinds of works.
+
+ The licenses for most software and other practical works are designed
+to take away your freedom to share and change the works. By contrast,
+the GNU General Public License is intended to guarantee your freedom to
+share and change all versions of a program--to make sure it remains free
+software for all its users. We, the Free Software Foundation, use the
+GNU General Public License for most of our software; it applies also to
+any other work released this way by its authors. You can apply it to
+your programs, too.
+
+ When we speak of free software, we are referring to freedom, not
+price. Our General Public Licenses are designed to make sure that you
+have the freedom to distribute copies of free software (and charge for
+them if you wish), that you receive source code or can get it if you
+want it, that you can change the software or use pieces of it in new
+free programs, and that you know you can do these things.
+
+ To protect your rights, we need to prevent others from denying you
+these rights or asking you to surrender the rights. Therefore, you have
+certain responsibilities if you distribute copies of the software, or if
+you modify it: responsibilities to respect the freedom of others.
+
+ For example, if you distribute copies of such a program, whether
+gratis or for a fee, you must pass on to the recipients the same
+freedoms that you received. You must make sure that they, too, receive
+or can get the source code. And you must show them these terms so they
+know their rights.
+
+ Developers that use the GNU GPL protect your rights with two steps:
+(1) assert copyright on the software, and (2) offer you this License
+giving you legal permission to copy, distribute and/or modify it.
+
+ For the developers' and authors' protection, the GPL clearly explains
+that there is no warranty for this free software. For both users' and
+authors' sake, the GPL requires that modified versions be marked as
+changed, so that their problems will not be attributed erroneously to
+authors of previous versions.
+
+ Some devices are designed to deny users access to install or run
+modified versions of the software inside them, although the manufacturer
+can do so. This is fundamentally incompatible with the aim of
+protecting users' freedom to change the software. The systematic
+pattern of such abuse occurs in the area of products for individuals to
+use, which is precisely where it is most unacceptable. Therefore, we
+have designed this version of the GPL to prohibit the practice for those
+products. If such problems arise substantially in other domains, we
+stand ready to extend this provision to those domains in future versions
+of the GPL, as needed to protect the freedom of users.
+
+ Finally, every program is threatened constantly by software patents.
+States should not allow patents to restrict development and use of
+software on general-purpose computers, but in those that do, we wish to
+avoid the special danger that patents applied to a free program could
+make it effectively proprietary. To prevent this, the GPL assures that
+patents cannot be used to render the program non-free.
+
+ The precise terms and conditions for copying, distribution and
+modification follow.
+
+ TERMS AND CONDITIONS
+
+ 0. Definitions.
+
+ "This License" refers to version 3 of the GNU General Public License.
+
+ "Copyright" also means copyright-like laws that apply to other kinds of
+works, such as semiconductor masks.
+
+ "The Program" refers to any copyrightable work licensed under this
+License. Each licensee is addressed as "you". "Licensees" and
+"recipients" may be individuals or organizations.
+
+ To "modify" a work means to copy from or adapt all or part of the work
+in a fashion requiring copyright permission, other than the making of an
+exact copy. The resulting work is called a "modified version" of the
+earlier work or a work "based on" the earlier work.
+
+ A "covered work" means either the unmodified Program or a work based
+on the Program.
+
+ To "propagate" a work means to do anything with it that, without
+permission, would make you directly or secondarily liable for
+infringement under applicable copyright law, except executing it on a
+computer or modifying a private copy. Propagation includes copying,
+distribution (with or without modification), making available to the
+public, and in some countries other activities as well.
+
+ To "convey" a work means any kind of propagation that enables other
+parties to make or receive copies. Mere interaction with a user through
+a computer network, with no transfer of a copy, is not conveying.
+
+ An interactive user interface displays "Appropriate Legal Notices"
+to the extent that it includes a convenient and prominently visible
+feature that (1) displays an appropriate copyright notice, and (2)
+tells the user that there is no warranty for the work (except to the
+extent that warranties are provided), that licensees may convey the
+work under this License, and how to view a copy of this License. If
+the interface presents a list of user commands or options, such as a
+menu, a prominent item in the list meets this criterion.
+
+ 1. Source Code.
+
+ The "source code" for a work means the preferred form of the work
+for making modifications to it. "Object code" means any non-source
+form of a work.
+
+ A "Standard Interface" means an interface that either is an official
+standard defined by a recognized standards body, or, in the case of
+interfaces specified for a particular programming language, one that
+is widely used among developers working in that language.
+
+ The "System Libraries" of an executable work include anything, other
+than the work as a whole, that (a) is included in the normal form of
+packaging a Major Component, but which is not part of that Major
+Component, and (b) serves only to enable use of the work with that
+Major Component, or to implement a Standard Interface for which an
+implementation is available to the public in source code form. A
+"Major Component", in this context, means a major essential component
+(kernel, window system, and so on) of the specific operating system
+(if any) on which the executable work runs, or a compiler used to
+produce the work, or an object code interpreter used to run it.
+
+ The "Corresponding Source" for a work in object code form means all
+the source code needed to generate, install, and (for an executable
+work) run the object code and to modify the work, including scripts to
+control those activities. However, it does not include the work's
+System Libraries, or general-purpose tools or generally available free
+programs which are used unmodified in performing those activities but
+which are not part of the work. For example, Corresponding Source
+includes interface definition files associated with source files for
+the work, and the source code for shared libraries and dynamically
+linked subprograms that the work is specifically designed to require,
+such as by intimate data communication or control flow between those
+subprograms and other parts of the work.
+
+ The Corresponding Source need not include anything that users
+can regenerate automatically from other parts of the Corresponding
+Source.
+
+ The Corresponding Source for a work in source code form is that
+same work.
+
+ 2. Basic Permissions.
+
+ All rights granted under this License are granted for the term of
+copyright on the Program, and are irrevocable provided the stated
+conditions are met. This License explicitly affirms your unlimited
+permission to run the unmodified Program. The output from running a
+covered work is covered by this License only if the output, given its
+content, constitutes a covered work. This License acknowledges your
+rights of fair use or other equivalent, as provided by copyright law.
+
+ You may make, run and propagate covered works that you do not
+convey, without conditions so long as your license otherwise remains
+in force. You may convey covered works to others for the sole purpose
+of having them make modifications exclusively for you, or provide you
+with facilities for running those works, provided that you comply with
+the terms of this License in conveying all material for which you do
+not control copyright. Those thus making or running the covered works
+for you must do so exclusively on your behalf, under your direction
+and control, on terms that prohibit them from making any copies of
+your copyrighted material outside their relationship with you.
+
+ Conveying under any other circumstances is permitted solely under
+the conditions stated below. Sublicensing is not allowed; section 10
+makes it unnecessary.
+
+ 3. Protecting Users' Legal Rights From Anti-Circumvention Law.
+
+ No covered work shall be deemed part of an effective technological
+measure under any applicable law fulfilling obligations under article
+11 of the WIPO copyright treaty adopted on 20 December 1996, or
+similar laws prohibiting or restricting circumvention of such
+measures.
+
+ When you convey a covered work, you waive any legal power to forbid
+circumvention of technological measures to the extent such circumvention
+is effected by exercising rights under this License with respect to
+the covered work, and you disclaim any intention to limit operation or
+modification of the work as a means of enforcing, against the work's
+users, your or third parties' legal rights to forbid circumvention of
+technological measures.
+
+ 4. Conveying Verbatim Copies.
+
+ You may convey verbatim copies of the Program's source code as you
+receive it, in any medium, provided that you conspicuously and
+appropriately publish on each copy an appropriate copyright notice;
+keep intact all notices stating that this License and any
+non-permissive terms added in accord with section 7 apply to the code;
+keep intact all notices of the absence of any warranty; and give all
+recipients a copy of this License along with the Program.
+
+ You may charge any price or no price for each copy that you convey,
+and you may offer support or warranty protection for a fee.
+
+ 5. Conveying Modified Source Versions.
+
+ You may convey a work based on the Program, or the modifications to
+produce it from the Program, in the form of source code under the
+terms of section 4, provided that you also meet all of these conditions:
+
+ a) The work must carry prominent notices stating that you modified
+ it, and giving a relevant date.
+
+ b) The work must carry prominent notices stating that it is
+ released under this License and any conditions added under section
+ 7. This requirement modifies the requirement in section 4 to
+ "keep intact all notices".
+
+ c) You must license the entire work, as a whole, under this
+ License to anyone who comes into possession of a copy. This
+ License will therefore apply, along with any applicable section 7
+ additional terms, to the whole of the work, and all its parts,
+ regardless of how they are packaged. This License gives no
+ permission to license the work in any other way, but it does not
+ invalidate such permission if you have separately received it.
+
+ d) If the work has interactive user interfaces, each must display
+ Appropriate Legal Notices; however, if the Program has interactive
+ interfaces that do not display Appropriate Legal Notices, your
+ work need not make them do so.
+
+ A compilation of a covered work with other separate and independent
+works, which are not by their nature extensions of the covered work,
+and which are not combined with it such as to form a larger program,
+in or on a volume of a storage or distribution medium, is called an
+"aggregate" if the compilation and its resulting copyright are not
+used to limit the access or legal rights of the compilation's users
+beyond what the individual works permit. Inclusion of a covered work
+in an aggregate does not cause this License to apply to the other
+parts of the aggregate.
+
+ 6. Conveying Non-Source Forms.
+
+ You may convey a covered work in object code form under the terms
+of sections 4 and 5, provided that you also convey the
+machine-readable Corresponding Source under the terms of this License,
+in one of these ways:
+
+ a) Convey the object code in, or embodied in, a physical product
+ (including a physical distribution medium), accompanied by the
+ Corresponding Source fixed on a durable physical medium
+ customarily used for software interchange.
+
+ b) Convey the object code in, or embodied in, a physical product
+ (including a physical distribution medium), accompanied by a
+ written offer, valid for at least three years and valid for as
+ long as you offer spare parts or customer support for that product
+ model, to give anyone who possesses the object code either (1) a
+ copy of the Corresponding Source for all the software in the
+ product that is covered by this License, on a durable physical
+ medium customarily used for software interchange, for a price no
+ more than your reasonable cost of physically performing this
+ conveying of source, or (2) access to copy the
+ Corresponding Source from a network server at no charge.
+
+ c) Convey individual copies of the object code with a copy of the
+ written offer to provide the Corresponding Source. This
+ alternative is allowed only occasionally and noncommercially, and
+ only if you received the object code with such an offer, in accord
+ with subsection 6b.
+
+ d) Convey the object code by offering access from a designated
+ place (gratis or for a charge), and offer equivalent access to the
+ Corresponding Source in the same way through the same place at no
+ further charge. You need not require recipients to copy the
+ Corresponding Source along with the object code. If the place to
+ copy the object code is a network server, the Corresponding Source
+ may be on a different server (operated by you or a third party)
+ that supports equivalent copying facilities, provided you maintain
+ clear directions next to the object code saying where to find the
+ Corresponding Source. Regardless of what server hosts the
+ Corresponding Source, you remain obligated to ensure that it is
+ available for as long as needed to satisfy these requirements.
+
+ e) Convey the object code using peer-to-peer transmission, provided
+ you inform other peers where the object code and Corresponding
+ Source of the work are being offered to the general public at no
+ charge under subsection 6d.
+
+ A separable portion of the object code, whose source code is excluded
+from the Corresponding Source as a System Library, need not be
+included in conveying the object code work.
+
+ A "User Product" is either (1) a "consumer product", which means any
+tangible personal property which is normally used for personal, family,
+or household purposes, or (2) anything designed or sold for incorporation
+into a dwelling. In determining whether a product is a consumer product,
+doubtful cases shall be resolved in favor of coverage. For a particular
+product received by a particular user, "normally used" refers to a
+typical or common use of that class of product, regardless of the status
+of the particular user or of the way in which the particular user
+actually uses, or expects or is expected to use, the product. A product
+is a consumer product regardless of whether the product has substantial
+commercial, industrial or non-consumer uses, unless such uses represent
+the only significant mode of use of the product.
+
+ "Installation Information" for a User Product means any methods,
+procedures, authorization keys, or other information required to install
+and execute modified versions of a covered work in that User Product from
+a modified version of its Corresponding Source. The information must
+suffice to ensure that the continued functioning of the modified object
+code is in no case prevented or interfered with solely because
+modification has been made.
+
+ If you convey an object code work under this section in, or with, or
+specifically for use in, a User Product, and the conveying occurs as
+part of a transaction in which the right of possession and use of the
+User Product is transferred to the recipient in perpetuity or for a
+fixed term (regardless of how the transaction is characterized), the
+Corresponding Source conveyed under this section must be accompanied
+by the Installation Information. But this requirement does not apply
+if neither you nor any third party retains the ability to install
+modified object code on the User Product (for example, the work has
+been installed in ROM).
+
+ The requirement to provide Installation Information does not include a
+requirement to continue to provide support service, warranty, or updates
+for a work that has been modified or installed by the recipient, or for
+the User Product in which it has been modified or installed. Access to a
+network may be denied when the modification itself materially and
+adversely affects the operation of the network or violates the rules and
+protocols for communication across the network.
+
+ Corresponding Source conveyed, and Installation Information provided,
+in accord with this section must be in a format that is publicly
+documented (and with an implementation available to the public in
+source code form), and must require no special password or key for
+unpacking, reading or copying.
+
+ 7. Additional Terms.
+
+ "Additional permissions" are terms that supplement the terms of this
+License by making exceptions from one or more of its conditions.
+Additional permissions that are applicable to the entire Program shall
+be treated as though they were included in this License, to the extent
+that they are valid under applicable law. If additional permissions
+apply only to part of the Program, that part may be used separately
+under those permissions, but the entire Program remains governed by
+this License without regard to the additional permissions.
+
+ When you convey a copy of a covered work, you may at your option
+remove any additional permissions from that copy, or from any part of
+it. (Additional permissions may be written to require their own
+removal in certain cases when you modify the work.) You may place
+additional permissions on material, added by you to a covered work,
+for which you have or can give appropriate copyright permission.
+
+ Notwithstanding any other provision of this License, for material you
+add to a covered work, you may (if authorized by the copyright holders of
+that material) supplement the terms of this License with terms:
+
+ a) Disclaiming warranty or limiting liability differently from the
+ terms of sections 15 and 16 of this License; or
+
+ b) Requiring preservation of specified reasonable legal notices or
+ author attributions in that material or in the Appropriate Legal
+ Notices displayed by works containing it; or
+
+ c) Prohibiting misrepresentation of the origin of that material, or
+ requiring that modified versions of such material be marked in
+ reasonable ways as different from the original version; or
+
+ d) Limiting the use for publicity purposes of names of licensors or
+ authors of the material; or
+
+ e) Declining to grant rights under trademark law for use of some
+ trade names, trademarks, or service marks; or
+
+ f) Requiring indemnification of licensors and authors of that
+ material by anyone who conveys the material (or modified versions of
+ it) with contractual assumptions of liability to the recipient, for
+ any liability that these contractual assumptions directly impose on
+ those licensors and authors.
+
+ All other non-permissive additional terms are considered "further
+restrictions" within the meaning of section 10. If the Program as you
+received it, or any part of it, contains a notice stating that it is
+governed by this License along with a term that is a further
+restriction, you may remove that term. If a license document contains
+a further restriction but permits relicensing or conveying under this
+License, you may add to a covered work material governed by the terms
+of that license document, provided that the further restriction does
+not survive such relicensing or conveying.
+
+ If you add terms to a covered work in accord with this section, you
+must place, in the relevant source files, a statement of the
+additional terms that apply to those files, or a notice indicating
+where to find the applicable terms.
+
+ Additional terms, permissive or non-permissive, may be stated in the
+form of a separately written license, or stated as exceptions;
+the above requirements apply either way.
+
+ 8. Termination.
+
+ You may not propagate or modify a covered work except as expressly
+provided under this License. Any attempt otherwise to propagate or
+modify it is void, and will automatically terminate your rights under
+this License (including any patent licenses granted under the third
+paragraph of section 11).
+
+ However, if you cease all violation of this License, then your
+license from a particular copyright holder is reinstated (a)
+provisionally, unless and until the copyright holder explicitly and
+finally terminates your license, and (b) permanently, if the copyright
+holder fails to notify you of the violation by some reasonable means
+prior to 60 days after the cessation.
+
+ Moreover, your license from a particular copyright holder is
+reinstated permanently if the copyright holder notifies you of the
+violation by some reasonable means, this is the first time you have
+received notice of violation of this License (for any work) from that
+copyright holder, and you cure the violation prior to 30 days after
+your receipt of the notice.
+
+ Termination of your rights under this section does not terminate the
+licenses of parties who have received copies or rights from you under
+this License. If your rights have been terminated and not permanently
+reinstated, you do not qualify to receive new licenses for the same
+material under section 10.
+
+ 9. Acceptance Not Required for Having Copies.
+
+ You are not required to accept this License in order to receive or
+run a copy of the Program. Ancillary propagation of a covered work
+occurring solely as a consequence of using peer-to-peer transmission
+to receive a copy likewise does not require acceptance. However,
+nothing other than this License grants you permission to propagate or
+modify any covered work. These actions infringe copyright if you do
+not accept this License. Therefore, by modifying or propagating a
+covered work, you indicate your acceptance of this License to do so.
+
+ 10. Automatic Licensing of Downstream Recipients.
+
+ Each time you convey a covered work, the recipient automatically
+receives a license from the original licensors, to run, modify and
+propagate that work, subject to this License. You are not responsible
+for enforcing compliance by third parties with this License.
+
+ An "entity transaction" is a transaction transferring control of an
+organization, or substantially all assets of one, or subdividing an
+organization, or merging organizations. If propagation of a covered
+work results from an entity transaction, each party to that
+transaction who receives a copy of the work also receives whatever
+licenses to the work the party's predecessor in interest had or could
+give under the previous paragraph, plus a right to possession of the
+Corresponding Source of the work from the predecessor in interest, if
+the predecessor has it or can get it with reasonable efforts.
+
+ You may not impose any further restrictions on the exercise of the
+rights granted or affirmed under this License. For example, you may
+not impose a license fee, royalty, or other charge for exercise of
+rights granted under this License, and you may not initiate litigation
+(including a cross-claim or counterclaim in a lawsuit) alleging that
+any patent claim is infringed by making, using, selling, offering for
+sale, or importing the Program or any portion of it.
+
+ 11. Patents.
+
+ A "contributor" is a copyright holder who authorizes use under this
+License of the Program or a work on which the Program is based. The
+work thus licensed is called the contributor's "contributor version".
+
+ A contributor's "essential patent claims" are all patent claims
+owned or controlled by the contributor, whether already acquired or
+hereafter acquired, that would be infringed by some manner, permitted
+by this License, of making, using, or selling its contributor version,
+but do not include claims that would be infringed only as a
+consequence of further modification of the contributor version. For
+purposes of this definition, "control" includes the right to grant
+patent sublicenses in a manner consistent with the requirements of
+this License.
+
+ Each contributor grants you a non-exclusive, worldwide, royalty-free
+patent license under the contributor's essential patent claims, to
+make, use, sell, offer for sale, import and otherwise run, modify and
+propagate the contents of its contributor version.
+
+ In the following three paragraphs, a "patent license" is any express
+agreement or commitment, however denominated, not to enforce a patent
+(such as an express permission to practice a patent or covenant not to
+sue for patent infringement). To "grant" such a patent license to a
+party means to make such an agreement or commitment not to enforce a
+patent against the party.
+
+ If you convey a covered work, knowingly relying on a patent license,
+and the Corresponding Source of the work is not available for anyone
+to copy, free of charge and under the terms of this License, through a
+publicly available network server or other readily accessible means,
+then you must either (1) cause the Corresponding Source to be so
+available, or (2) arrange to deprive yourself of the benefit of the
+patent license for this particular work, or (3) arrange, in a manner
+consistent with the requirements of this License, to extend the patent
+license to downstream recipients. "Knowingly relying" means you have
+actual knowledge that, but for the patent license, your conveying the
+covered work in a country, or your recipient's use of the covered work
+in a country, would infringe one or more identifiable patents in that
+country that you have reason to believe are valid.
+
+ If, pursuant to or in connection with a single transaction or
+arrangement, you convey, or propagate by procuring conveyance of, a
+covered work, and grant a patent license to some of the parties
+receiving the covered work authorizing them to use, propagate, modify
+or convey a specific copy of the covered work, then the patent license
+you grant is automatically extended to all recipients of the covered
+work and works based on it.
+
+ A patent license is "discriminatory" if it does not include within
+the scope of its coverage, prohibits the exercise of, or is
+conditioned on the non-exercise of one or more of the rights that are
+specifically granted under this License. You may not convey a covered
+work if you are a party to an arrangement with a third party that is
+in the business of distributing software, under which you make payment
+to the third party based on the extent of your activity of conveying
+the work, and under which the third party grants, to any of the
+parties who would receive the covered work from you, a discriminatory
+patent license (a) in connection with copies of the covered work
+conveyed by you (or copies made from those copies), or (b) primarily
+for and in connection with specific products or compilations that
+contain the covered work, unless you entered into that arrangement,
+or that patent license was granted, prior to 28 March 2007.
+
+ Nothing in this License shall be construed as excluding or limiting
+any implied license or other defenses to infringement that may
+otherwise be available to you under applicable patent law.
+
+ 12. No Surrender of Others' Freedom.
+
+ If conditions are imposed on you (whether by court order, agreement or
+otherwise) that contradict the conditions of this License, they do not
+excuse you from the conditions of this License. If you cannot convey a
+covered work so as to satisfy simultaneously your obligations under this
+License and any other pertinent obligations, then as a consequence you may
+not convey it at all. For example, if you agree to terms that obligate you
+to collect a royalty for further conveying from those to whom you convey
+the Program, the only way you could satisfy both those terms and this
+License would be to refrain entirely from conveying the Program.
+
+ 13. Use with the GNU Affero General Public License.
+
+ Notwithstanding any other provision of this License, you have
+permission to link or combine any covered work with a work licensed
+under version 3 of the GNU Affero General Public License into a single
+combined work, and to convey the resulting work. The terms of this
+License will continue to apply to the part which is the covered work,
+but the special requirements of the GNU Affero General Public License,
+section 13, concerning interaction through a network will apply to the
+combination as such.
+
+ 14. Revised Versions of this License.
+
+ The Free Software Foundation may publish revised and/or new versions of
+the GNU General Public License from time to time. Such new versions will
+be similar in spirit to the present version, but may differ in detail to
+address new problems or concerns.
+
+ Each version is given a distinguishing version number. If the
+Program specifies that a certain numbered version of the GNU General
+Public License "or any later version" applies to it, you have the
+option of following the terms and conditions either of that numbered
+version or of any later version published by the Free Software
+Foundation. If the Program does not specify a version number of the
+GNU General Public License, you may choose any version ever published
+by the Free Software Foundation.
+
+ If the Program specifies that a proxy can decide which future
+versions of the GNU General Public License can be used, that proxy's
+public statement of acceptance of a version permanently authorizes you
+to choose that version for the Program.
+
+ Later license versions may give you additional or different
+permissions. However, no additional obligations are imposed on any
+author or copyright holder as a result of your choosing to follow a
+later version.
+
+ 15. Disclaimer of Warranty.
+
+ THERE IS NO WARRANTY FOR THE PROGRAM, TO THE EXTENT PERMITTED BY
+APPLICABLE LAW. EXCEPT WHEN OTHERWISE STATED IN WRITING THE COPYRIGHT
+HOLDERS AND/OR OTHER PARTIES PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY
+OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, BUT NOT LIMITED TO,
+THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
+PURPOSE. THE ENTIRE RISK AS TO THE QUALITY AND PERFORMANCE OF THE PROGRAM
+IS WITH YOU. SHOULD THE PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF
+ALL NECESSARY SERVICING, REPAIR OR CORRECTION.
+
+ 16. Limitation of Liability.
+
+ IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING
+WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MODIFIES AND/OR CONVEYS
+THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES, INCLUDING ANY
+GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING OUT OF THE
+USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED TO LOSS OF
+DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY YOU OR THIRD
+PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER PROGRAMS),
+EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE POSSIBILITY OF
+SUCH DAMAGES.
+
+ 17. Interpretation of Sections 15 and 16.
+
+ If the disclaimer of warranty and limitation of liability provided
+above cannot be given local legal effect according to their terms,
+reviewing courts shall apply local law that most closely approximates
+an absolute waiver of all civil liability in connection with the
+Program, unless a warranty or assumption of liability accompanies a
+copy of the Program in return for a fee.
+
+ END OF TERMS AND CONDITIONS
+
+ How to Apply These Terms to Your New Programs
+
+ If you develop a new program, and you want it to be of the greatest
+possible use to the public, the best way to achieve this is to make it
+free software which everyone can redistribute and change under these terms.
+
+ To do so, attach the following notices to the program. It is safest
+to attach them to the start of each source file to most effectively
+state the exclusion of warranty; and each file should have at least
+the "copyright" line and a pointer to where the full notice is found.
+
+ {one line to give the program's name and a brief idea of what it does.}
+ Copyright (C) {year} {name of author}
+
+ This program is free software: you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation, either version 3 of the License, or
+ (at your option) any later version.
+
+ This program is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ GNU General Public License for more details.
+
+ You should have received a copy of the GNU General Public License
+ along with this program. If not, see <http://www.gnu.org/licenses/>.
+
+Also add information on how to contact you by electronic and paper mail.
+
+ If the program does terminal interaction, make it output a short
+notice like this when it starts in an interactive mode:
+
+ {project} Copyright (C) {year} {fullname}
+ This program comes with ABSOLUTELY NO WARRANTY; for details type `show w'.
+ This is free software, and you are welcome to redistribute it
+ under certain conditions; type `show c' for details.
+
+The hypothetical commands `show w' and `show c' should show the appropriate
+parts of the General Public License. Of course, your program's commands
+might be different; for a GUI interface, you would use an "about box".
+
+ You should also get your employer (if you work as a programmer) or school,
+if any, to sign a "copyright disclaimer" for the program, if necessary.
+For more information on this, and how to apply and follow the GNU GPL, see
+<http://www.gnu.org/licenses/>.
+
+ The GNU General Public License does not permit incorporating your program
+into proprietary programs. If your program is a subroutine library, you
+may consider it more useful to permit linking proprietary applications with
+the library. If this is what you want to do, use the GNU Lesser General
+Public License instead of this License. But first, please read
+<http://www.gnu.org/philosophy/why-not-lgpl.html>.
diff --git a/xendomains-wait-disks.README.md b/xendomains-wait-disks.README.md
new file mode 100644
index 0000000..4eb3881
--- /dev/null
+++ b/xendomains-wait-disks.README.md
@@ -0,0 +1,28 @@
+# xen-tools-xendomains-wait-disk
+
+[xendomains.service](https://github.com/xen-project/xen/blob/RELEASE-4.13.0/tools/hotplug/Linux/systemd/xendomains.service.in) has problems
+with disks that appear only later in boot process (or even after booting is complete). This project creates a service that
+loops over all disks that domU will use and wait for them to appear.
+
+xendomains-wait-disk.service launches a script that reads both /etc/xen/auto/ configurations and /var/lib/xen/save/ dumps.
+From those files, it extracts which disks are needed for all domU that will be started (respecting /etc/sysconfig/xendomains
+settings). After that, it simply loops waiting for those disks to appear. There is a timeout (5 min) configured in
+xendomains-wait-disk.service that prevents it to block booting process forever.
+
+There are two known cases where this project is useful:
+
+## degraded mdadm RAID
+
+mdadm RAID are assembled by [udev rules](https://github.com/neilbrown/mdadm/blob/master/udev-md-raid-assembly.rules).
+However, it is only assembled when it is healthy. When a member is still missing, it starts a [timer](https://github.com/neilbrown/mdadm/blob/master/systemd/mdadm-last-resort%40.timer) that will try to assemble the RAID anyway after 30s, even if degraded. This timer does not block xendomains to be started. So, if a domU is depending on a MD RAID that is degraded (i.e. RAID 1 missing one disk), xendomains.service will be started before those 30s passed and that domU will fail.
+
+An alternative solution would be to add extra hard dependencies to xendomains.service for each required disk (Require=xxx.device). However, this solution introduces another bigger problem. Before, if a single RAID is degraded, only the domU that depends on it will fail. With Require=xxx.device, xendomains will never start if
+a RAID could not be assembled even after 30s (i.e. RAID5 with two missing disks).
+
+With xendomains-wait-disk.service, xendomains.service will be blocked up to 5 min waiting for those MD RAID used by domUs. If it fails, xendomains.service
+continues anyway.
+
+## iSCSI disks
+
+domU that uses iSCSI disk (mapped by host OS) also fails to start during boot. open-iscsi.service returns before it connect to the remote target and rescan
+iscsi disks. As in mdadm RAID case, xendomains.service is started and domU that depends on iSCSI disks will fail.
diff --git a/xendomains-wait-disks.sh b/xendomains-wait-disks.sh
new file mode 100644
index 0000000..15ae507
--- /dev/null
+++ b/xendomains-wait-disks.sh
@@ -0,0 +1,199 @@
+#!/bin/bash
+#
+# Generates xendomains unit
+#
+
+read_conf_from_file() {
+ ${sbindir}/xl create --quiet --dryrun --defconfig "$1"
+}
+
+big2littleendian_32bit(){
+ echo ${1:6:2}${1:4:2}${1:2:2}${1:0:2}
+}
+
+read_hex() {
+ local out_var=$1; shift
+ local input=$1; shift
+ local pos_var=$1; shift
+ local length=$1; shift
+ local hex=$(dd bs=1 skip=${!pos_var} count=$length status=none <$input | xxd -p -c$length -l$length)
+ read -r $pos_var <<<"$((${!pos_var} + $length))"
+ read -r $out_var <<<"$hex"
+}
+
+hex2dec() {
+ local hex=$1; shift
+ local little_endian=$1; shift
+ if $little_endian; then
+ hex=$(big2littleendian_32bit $hex)
+ fi
+ echo $((0x$hex))
+}
+
+read_conf_from_image(){
+ local pos=0 length=0
+
+ local magic_header byte_order mandatory_flags optional_flags optional_data_len config_len config_json
+
+ read_hex magic_header $1 pos 32
+ # "Xen saved domain, xl format\n \0 \r"
+ if [ "$magic_header" != "58656e20736176656420646f6d61696e2c20786c20666f726d61740a2000200d" ]; then
+ log $err "Unknown file format in $1. Wrong magic header: '0x$magic_header'"
+ return 1
+ fi
+
+ read_hex byte_order $1 pos 4
+ case "$byte_order" in
+ 04030201) little_endian=true;;
+ 01020304) little_endian=false;;
+ *) log $err "Unknown byte order 0x$byte_order in $1"; return 1;;
+ esac
+
+ #define XL_MANDATORY_FLAG_JSON (1U << 0) /* config data is in JSON format */
+ #define XL_MANDATORY_FLAG_STREAMv2 (1U << 1) /* stream is v2 */
+ read_hex mandatory_flags $1 pos 4
+ if [ "$(($(hex2dec $mandatory_flags $little_endian) & 0x3))" -ne 3 ]; then
+ log $err "Unknown config format or stream version. Mandatory flags are 0x$mandatory_flag"
+ return 1
+ fi
+
+ read_hex optional_flags $1 pos 4
+ read_hex optional_data_len $1 pos 4
+ optional_data_len=$(hex2dec $optional_data_len $little_endian)
+
+ # I'll not use but saved memory dump will begin at $((pos+optional_data_len))
+ read_hex config_len $1 pos 4
+ config_len=$(hex2dec $config_len $little_endian)
+
+ # null terminated string
+ read_hex config_json $1 pos $config_len
+ xxd -p -r <<<"$config_json"
+}
+
+log() {
+ local msg_loglevel=$1; shift
+ if [ "$msg_loglevel" -gt "$LOGLEVEL" ]; then
+ return 0
+ fi
+ echo "$@" >&2
+}
+
+
+emerg=0; alert=1; crit=2; err=3
+warning=4; notice=5; info=6; debug=7
+LOGLEVEL=${LOGLEVEL:-4}
+if [ "$SYSTEMD_LOG_LEVEL" ]; then
+ LOGLEVEL=${!SYSTEMD_LOG_LEVEL}
+fi
+log $debug "Using loglevel $LOGLEVEL"
+trap "log $err Error on \$LINENO: \$(caller)" ERR
+
+log $debug "loading /etc/xen/scripts/hotplugpath.sh..."
+. /etc/xen/scripts/hotplugpath.sh
+
+#log $debug "testing for ${sbindir}/xl..."
+#CMD=${sbindir}/xl
+#if ! $CMD list &> /dev/null; then
+# log $err "${sbindir}/xl list failed!"
+# log $err "$($CMD list &>&1)"
+# exit $?
+#fi
+#log $debug "${sbindir}/xl list OK!"
+
+log $debug "loading /etc/sysconfig/xendomains..."
+XENDOM_CONFIG=/etc/sysconfig/xendomains
+if ! test -r $XENDOM_CONFIG; then
+ echo "$XENDOM_CONFIG not existing" >&2;
+ exit 6
+fi
+
+. $XENDOM_CONFIG
+
+doms_conf=()
+doms_restore=()
+doms_source=()
+
+log $debug "Reading saved domains..."
+if [ "$XENDOMAINS_RESTORE" = "true" ] && [ -d "$XENDOMAINS_SAVE" ]; then
+ for dom in $XENDOMAINS_SAVE/*; do
+ log $debug "Trying $dom..."
+ if ! [ -r $dom ] ; then
+ log $debug "Not readable $dom..."
+ continue
+ fi
+
+ log $debug "Reading conf from $dom..."
+ if ! dom_conf=$(read_conf_from_image $dom); then
+ log $error "Cannot read conf from $dom"
+ continue
+ fi
+
+ log $debug "Adding $dom to the list"
+ doms_conf+=("$dom_conf")
+ doms_restore+=(true)
+ doms_source+=("$dom")
+ done
+fi
+
+log $debug "Reading auto domains..."
+if [ -d "$XENDOMAINS_AUTO" ]; then
+ for dom in $XENDOMAINS_AUTO/*; do
+ log $debug "Trying $dom..."
+ if ! [ -r $dom ] ; then
+ log $debug "Not readable $dom..."
+ continue
+ fi
+
+ log $debug "Reading conf from $dom..."
+ if ! dom_conf=$(read_conf_from_file $dom); then
+ echo 123
+ log $error "Cannot read conf from $dom"
+ continue
+ fi
+
+ log $debug "Adding $dom to the list"
+ doms_conf+=("$dom_conf")
+ doms_restore+=(false)
+ doms_source+=("$dom")
+ done
+fi
+
+log $debug "We have ${#doms_conf[*]} to check"
+for i in ${!doms_conf[*]}; do
+ log $debug "Doing dom $i..."
+
+ dom_conf="${doms_conf[i]}"
+ dom_restore="${doms_restore[i]}"
+ dom_source="${doms_source[i]}"
+
+ dom_name=$(sed -n 's/^.*(name \(.*\))$/\1/p;s/^.*"name": "\(.*\)",$/\1/p' <<<"$dom_conf")
+ readarray -t required_disks <<<"$(sed -n -e '/^ "disks": \[/,/ \],/{ /"pdev_path":/ { s/.*"pdev_path": "//;s/".*//p } }' <<<"$dom_conf")"
+
+ log $debug "dom $i is named $dom_name..."
+ for disk in "${required_disks[@]}"; do
+ disk_control_var=control_$(tr -d -c '[a-zA-Z0-9_]' <<<"$disk")
+ if [ "${!disk_control_var:-0}" -eq 1 ]; then
+ log $debug "$disk for $dom_name is already being checked"
+ continue
+ fi
+ declare $disk_control_var=1
+ log $debug "waiting for $disk for $dom_name"
+ (
+ j=0 found_loglevel=$debug
+ while true; do
+ if [ -e "$disk" ]; then
+ log $found_loglevel "disk $disk found (after $j seconds)"
+ exit 0
+ fi
+ if [ "$(( j++ % 5))" -eq 0 ]; then
+ log $warning "still waiting for $disk for $dom_name..."
+ found_loglevel=$warning
+ fi
+ sleep 1
+ done
+ ) &
+ done
+done
+
+wait
+log $debug "Exiting normally"
diff --git a/xenstore-launch.patch b/xenstore-launch.patch
new file mode 100644
index 0000000..03e2bce
--- /dev/null
+++ b/xenstore-launch.patch
@@ -0,0 +1,19 @@
+References: bsc#1131811
+
+When the xenstored service is started it exits successfully but systemd seems to
+lose track of the service and reports an error causing other xen services to fail.
+This patch is a workaround giving systemd time to acknowledge a succesful start
+of xenstored. The real fix is believed to be needed in systemd.
+
+diff --git a/tools/hotplug/Linux/launch-xenstore.in b/tools/hotplug/Linux/launch-xenstore.in
+index 991dec8d25..eb3d7c964c 100644
+--- a/tools/hotplug/Linux/launch-xenstore.in
++++ b/tools/hotplug/Linux/launch-xenstore.in
+@@ -79,6 +79,7 @@ test -f @CONFIG_DIR@/@CONFIG_LEAF_DIR@/xencommons && . @CONFIG_DIR@/@CONFIG_LEAF
+ echo -n Starting $XENSTORE_DOMAIN_KERNEL...
+ ${LIBEXEC_BIN}/init-xenstore-domain $XENSTORE_DOMAIN_ARGS || exit 1
+ systemd-notify --ready 2>/dev/null
++ systemd-notify --booted 2>/dev/null && sleep 60
+
+ exit 0
+ }
diff --git a/xenstore-run-in-studomain.patch b/xenstore-run-in-studomain.patch
new file mode 100644
index 0000000..5cdb3f2
--- /dev/null
+++ b/xenstore-run-in-studomain.patch
@@ -0,0 +1,59 @@
+References: fate#323663 - Run Xenstore in stubdomain
+
+Index: xen-4.10.0-testing/tools/hotplug/Linux/init.d/sysconfig.xencommons.in
+===================================================================
+--- xen-4.10.0-testing.orig/tools/hotplug/Linux/init.d/sysconfig.xencommons.in
++++ xen-4.10.0-testing/tools/hotplug/Linux/init.d/sysconfig.xencommons.in
+@@ -16,7 +16,7 @@
+ #
+ # Changing this requires a reboot to take effect.
+ #
+-#XENSTORETYPE=daemon
++#XENSTORETYPE=domain
+
+ ## Type: string
+ ## Default: xenstored
+@@ -67,7 +67,7 @@ XENSTORED_ARGS=
+ #
+ # xenstore domain memory size in MiB.
+ # Only evaluated if XENSTORETYPE is "domain".
+-#XENSTORE_DOMAIN_SIZE=8
++#XENSTORE_DOMAIN_SIZE=32
+
+ ## Type: string
+ ## Default: not set, no autoballooning of xenstore domain
+@@ -78,7 +78,7 @@ XENSTORED_ARGS=
+ # - combination of both in form of <val>:<frac> (e.g. 8:1/100), resulting
+ # value will be the higher of both specifications
+ # Only evaluated if XENSTORETYPE is "domain".
+-#XENSTORE_MAX_DOMAIN_SIZE=
++#XENSTORE_MAX_DOMAIN_SIZE=1/100
+
+ ## Type: string
+ ## Default: ""
+Index: xen-4.10.0-testing/tools/hotplug/Linux/launch-xenstore.in
+===================================================================
+--- xen-4.10.0-testing.orig/tools/hotplug/Linux/launch-xenstore.in
++++ xen-4.10.0-testing/tools/hotplug/Linux/launch-xenstore.in
+@@ -48,7 +48,7 @@ test_xenstore && exit 0
+
+ test -f @CONFIG_DIR@/@CONFIG_LEAF_DIR@/xencommons && . @CONFIG_DIR@/@CONFIG_LEAF_DIR@/xencommons
+
+-[ "$XENSTORETYPE" = "" ] && XENSTORETYPE=daemon
++[ "$XENSTORETYPE" = "" ] && XENSTORETYPE=domain
+
+ /bin/mkdir -p @XEN_RUN_DIR@
+
+@@ -72,9 +72,10 @@ test -f @CONFIG_DIR@/@CONFIG_LEAF_DIR@/x
+ [ "$XENSTORETYPE" = "domain" ] && {
+ [ -z "$XENSTORE_DOMAIN_KERNEL" ] && XENSTORE_DOMAIN_KERNEL=@LIBEXEC@/boot/xenstore-stubdom.gz
+ XENSTORE_DOMAIN_ARGS="$XENSTORE_DOMAIN_ARGS --kernel $XENSTORE_DOMAIN_KERNEL"
+- [ -z "$XENSTORE_DOMAIN_SIZE" ] && XENSTORE_DOMAIN_SIZE=8
++ [ -z "$XENSTORE_DOMAIN_SIZE" ] && XENSTORE_DOMAIN_SIZE=32
+ XENSTORE_DOMAIN_ARGS="$XENSTORE_DOMAIN_ARGS --memory $XENSTORE_DOMAIN_SIZE"
+- [ -z "$XENSTORE_MAX_DOMAIN_SIZE" ] || XENSTORE_DOMAIN_ARGS="$XENSTORE_DOMAIN_ARGS --maxmem $XENSTORE_MAX_DOMAIN_SIZE"
++ [ -z "$XENSTORE_MAX_DOMAIN_SIZE" ] && XENSTORE_MAX_DOMAIN_SIZE="1/100"
++ XENSTORE_DOMAIN_ARGS="$XENSTORE_DOMAIN_ARGS --maxmem $XENSTORE_MAX_DOMAIN_SIZE"
+
+ echo -n Starting $XENSTORE_DOMAIN_KERNEL...
+ ${LIBEXEC_BIN}/init-xenstore-domain $XENSTORE_DOMAIN_ARGS || exit 1
diff --git a/xl-conf-default-bridge.patch b/xl-conf-default-bridge.patch
new file mode 100644
index 0000000..0d2cd72
--- /dev/null
+++ b/xl-conf-default-bridge.patch
@@ -0,0 +1,13 @@
+Index: xen-4.4.0-testing/tools/examples/xl.conf
+===================================================================
+--- xen-4.4.0-testing.orig/tools/examples/xl.conf
++++ xen-4.4.0-testing/tools/examples/xl.conf
+@@ -30,7 +30,7 @@
+ #vif.default.script="vif-bridge"
+
+ # default bridge device to use with vif-bridge hotplug scripts
+-#vif.default.bridge="xenbr0"
++vif.default.bridge="br0"
+
+ # Reserve a claim of memory when launching a guest. This guarantees immediate
+ # feedback whether the guest can be launched due to memory exhaustion
diff --git a/xl-conf-disable-autoballoon.patch b/xl-conf-disable-autoballoon.patch
new file mode 100644
index 0000000..150d988
--- /dev/null
+++ b/xl-conf-disable-autoballoon.patch
@@ -0,0 +1,11 @@
+--- xen-4.12.0-testing/tools/examples/xl.conf.orig 2019-03-11 06:17:17.586380817 -0600
++++ xen-4.12.0-testing/tools/examples/xl.conf 2019-03-11 06:17:31.314553910 -0600
+@@ -3,7 +3,7 @@
+ # Control whether dom0 is ballooned down when xen doesn't have enough
+ # free memory to create a domain. "auto" means only balloon if dom0
+ # starts with all the host's memory.
+-#autoballoon="auto"
++autoballoon="off"
+
+ # full path of the lockfile used by xl during domain creation
+ #lockfile="/var/lock/xl"
diff --git a/xnloader.py b/xnloader.py
new file mode 100644
index 0000000..e194da4
--- /dev/null
+++ b/xnloader.py
@@ -0,0 +1,64 @@
+# NetWare-specific operations
+#
+# Copyright (c) 2013 Suse Linux Products.
+# Author: Charles Arnold <carnold@suse.com>
+#
+# This software may be freely redistributed under the terms of the GNU
+# general public license.
+#
+# You should have received a copy of the GNU General Public License
+# along with this program; if not, write to the Free Software
+# 51 Franklin St, Boston, MA 02110
+
+# Binary patching of xnloader.sys
+# For launching NetWare on Xen 4.2 and newer
+
+
+import os, sys, base64
+
+CODE_OFFSET=0x49F5
+NUMBER_OF_CODE_BYTES=17
+ORIGINAL_CODE="BA00080000C786FC1F0000FFFFFFFF31C9"
+PATCHED_CODE="BAF8070000834C961CFFB9080000009090"
+XNLOADER_SYS_MD5SUM="eb76cce2a2d45928ea2bf26e01430af2"
+
+def patch_netware_loader(loader):
+ """Open the given xnloader.sys file and patch the relevant code hunk."""
+
+ # domUloader calls this with all kernels so perhaps this is not the NetWare loader
+ md5sum_cmd = 'md5sum ' + loader
+ p = os.popen(md5sum_cmd)
+ sum = p.read().split()[0]
+ p.close()
+ if sum != XNLOADER_SYS_MD5SUM:
+ return
+
+ try:
+ fd = os.open(loader, os.O_RDWR)
+ except Exception as e:
+ print(e, file=sys.stderr)
+ raise
+
+ # Validate minimum size for I/O
+ stat = os.fstat(fd)
+ if stat.st_size < CODE_OFFSET+NUMBER_OF_CODE_BYTES:
+ os.close(fd)
+ return
+
+ # Seek to location of code hunk
+ os.lseek(fd, CODE_OFFSET, os.SEEK_SET)
+
+ # Read code bytes at offset
+ buf = os.read(fd, NUMBER_OF_CODE_BYTES)
+
+ code_as_hex = base64.b16encode(buf)
+ code_as_hex = code_as_hex.decode('utf-8')
+ if code_as_hex == ORIGINAL_CODE:
+ # Seek back to start location of the code hunk
+ os.lseek(fd, CODE_OFFSET, os.SEEK_SET)
+ # Convert the PATCHED_CODE string to raw binary
+ code_as_bin = base64.b16decode(PATCHED_CODE)
+ # Write the patched code
+ os.write(fd, code_as_bin)
+ os.close(fd)
+
diff --git a/xsa286-1.patch b/xsa286-1.patch
new file mode 100644
index 0000000..f0f51d5
--- /dev/null
+++ b/xsa286-1.patch
@@ -0,0 +1,70 @@
+x86/mm: split L4 and L3 parts of the walk out of do_page_walk()
+
+The L3 one at least is going to be re-used by a subsequent patch, and
+splitting the L4 one then as well seems only natural.
+
+This is part of XSA-286.
+
+Signed-off-by: Jan Beulich <jbeulich@suse.com>
+Reviewed-by: George Dunlap <george.dunlap@citrix.com>
+Reviewed-by: Andrew Cooper <andrew.cooper3@citrix.com>
+
+--- a/xen/arch/x86/x86_64/mm.c
++++ b/xen/arch/x86/x86_64/mm.c
+@@ -44,26 +44,47 @@ unsigned int __read_mostly m2p_compat_vs
+
+ l2_pgentry_t *compat_idle_pg_table_l2;
+
+-void *do_page_walk(struct vcpu *v, unsigned long addr)
++static l4_pgentry_t page_walk_get_l4e(pagetable_t root, unsigned long addr)
+ {
+- unsigned long mfn = pagetable_get_pfn(v->arch.guest_table);
+- l4_pgentry_t l4e, *l4t;
+- l3_pgentry_t l3e, *l3t;
+- l2_pgentry_t l2e, *l2t;
+- l1_pgentry_t l1e, *l1t;
++ unsigned long mfn = pagetable_get_pfn(root);
++ l4_pgentry_t *l4t, l4e;
+
+- if ( !is_pv_vcpu(v) || !is_canonical_address(addr) )
+- return NULL;
++ if ( !is_canonical_address(addr) )
++ return l4e_empty();
+
+ l4t = map_domain_page(_mfn(mfn));
+ l4e = l4t[l4_table_offset(addr)];
+ unmap_domain_page(l4t);
++
++ return l4e;
++}
++
++static l3_pgentry_t page_walk_get_l3e(pagetable_t root, unsigned long addr)
++{
++ l4_pgentry_t l4e = page_walk_get_l4e(root, addr);
++ l3_pgentry_t *l3t, l3e;
++
+ if ( !(l4e_get_flags(l4e) & _PAGE_PRESENT) )
+- return NULL;
++ return l3e_empty();
+
+ l3t = map_l3t_from_l4e(l4e);
+ l3e = l3t[l3_table_offset(addr)];
+ unmap_domain_page(l3t);
++
++ return l3e;
++}
++
++void *do_page_walk(struct vcpu *v, unsigned long addr)
++{
++ l3_pgentry_t l3e;
++ l2_pgentry_t l2e, *l2t;
++ l1_pgentry_t l1e, *l1t;
++ unsigned long mfn;
++
++ if ( !is_pv_vcpu(v) )
++ return NULL;
++
++ l3e = page_walk_get_l3e(v->arch.guest_table, addr);
+ mfn = l3e_get_pfn(l3e);
+ if ( !(l3e_get_flags(l3e) & _PAGE_PRESENT) || !mfn_valid(_mfn(mfn)) )
+ return NULL;
diff --git a/xsa286-2.patch b/xsa286-2.patch
new file mode 100644
index 0000000..80bc3c8
--- /dev/null
+++ b/xsa286-2.patch
@@ -0,0 +1,167 @@
+x86/mm: check page types in do_page_walk()
+
+For page table entries read to be guaranteed valid, transiently locking
+the pages and validating their types is necessary. Note that guest use
+of linear page tables is intentionally not taken into account here, as
+ordinary data (guest stacks) can't possibly live inside page tables.
+
+This is part of XSA-286.
+
+Signed-off-by: Jan Beulich <jbeulich@suse.com>
+Reviewed-by: George Dunlap <george.dunlap@citrix.com>
+Reviewed-by: Andrew Cooper <andrew.cooper3@citrix.com>
+
+--- a/xen/arch/x86/x86_64/mm.c
++++ b/xen/arch/x86/x86_64/mm.c
+@@ -46,15 +46,29 @@ l2_pgentry_t *compat_idle_pg_table_l2;
+
+ static l4_pgentry_t page_walk_get_l4e(pagetable_t root, unsigned long addr)
+ {
+- unsigned long mfn = pagetable_get_pfn(root);
+- l4_pgentry_t *l4t, l4e;
++ mfn_t mfn = pagetable_get_mfn(root);
++ /* current's root page table can't disappear under our feet. */
++ bool need_lock = !mfn_eq(mfn, pagetable_get_mfn(current->arch.guest_table));
++ struct page_info *pg;
++ l4_pgentry_t l4e = l4e_empty();
+
+ if ( !is_canonical_address(addr) )
+ return l4e_empty();
+
+- l4t = map_domain_page(_mfn(mfn));
+- l4e = l4t[l4_table_offset(addr)];
+- unmap_domain_page(l4t);
++ pg = mfn_to_page(mfn);
++ if ( need_lock && !page_lock(pg) )
++ return l4e_empty();
++
++ if ( (pg->u.inuse.type_info & PGT_type_mask) == PGT_l4_page_table )
++ {
++ l4_pgentry_t *l4t = map_domain_page(mfn);
++
++ l4e = l4t[l4_table_offset(addr)];
++ unmap_domain_page(l4t);
++ }
++
++ if ( need_lock )
++ page_unlock(pg);
+
+ return l4e;
+ }
+@@ -62,14 +76,26 @@ static l4_pgentry_t page_walk_get_l4e(pa
+ static l3_pgentry_t page_walk_get_l3e(pagetable_t root, unsigned long addr)
+ {
+ l4_pgentry_t l4e = page_walk_get_l4e(root, addr);
+- l3_pgentry_t *l3t, l3e;
++ mfn_t mfn = l4e_get_mfn(l4e);
++ struct page_info *pg;
++ l3_pgentry_t l3e = l3e_empty();
+
+ if ( !(l4e_get_flags(l4e) & _PAGE_PRESENT) )
+ return l3e_empty();
+
+- l3t = map_l3t_from_l4e(l4e);
+- l3e = l3t[l3_table_offset(addr)];
+- unmap_domain_page(l3t);
++ pg = mfn_to_page(mfn);
++ if ( !page_lock(pg) )
++ return l3e_empty();
++
++ if ( (pg->u.inuse.type_info & PGT_type_mask) == PGT_l3_page_table )
++ {
++ l3_pgentry_t *l3t = map_domain_page(mfn);
++
++ l3e = l3t[l3_table_offset(addr)];
++ unmap_domain_page(l3t);
++ }
++
++ page_unlock(pg);
+
+ return l3e;
+ }
+@@ -77,44 +103,67 @@ static l3_pgentry_t page_walk_get_l3e(pa
+ void *do_page_walk(struct vcpu *v, unsigned long addr)
+ {
+ l3_pgentry_t l3e;
+- l2_pgentry_t l2e, *l2t;
+- l1_pgentry_t l1e, *l1t;
+- unsigned long mfn;
++ l2_pgentry_t l2e = l2e_empty();
++ l1_pgentry_t l1e = l1e_empty();
++ mfn_t mfn;
++ struct page_info *pg;
+
+ if ( !is_pv_vcpu(v) )
+ return NULL;
+
+ l3e = page_walk_get_l3e(v->arch.guest_table, addr);
+- mfn = l3e_get_pfn(l3e);
+- if ( !(l3e_get_flags(l3e) & _PAGE_PRESENT) || !mfn_valid(_mfn(mfn)) )
++ mfn = l3e_get_mfn(l3e);
++ if ( !(l3e_get_flags(l3e) & _PAGE_PRESENT) || !mfn_valid(mfn) )
+ return NULL;
+ if ( (l3e_get_flags(l3e) & _PAGE_PSE) )
+ {
+- mfn += PFN_DOWN(addr & ((1UL << L3_PAGETABLE_SHIFT) - 1));
++ mfn = mfn_add(mfn, PFN_DOWN(addr & ((1UL << L3_PAGETABLE_SHIFT) - 1)));
+ goto ret;
+ }
+
+- l2t = map_domain_page(_mfn(mfn));
+- l2e = l2t[l2_table_offset(addr)];
+- unmap_domain_page(l2t);
+- mfn = l2e_get_pfn(l2e);
+- if ( !(l2e_get_flags(l2e) & _PAGE_PRESENT) || !mfn_valid(_mfn(mfn)) )
++ pg = mfn_to_page(mfn);
++ if ( !page_lock(pg) )
++ return NULL;
++
++ if ( (pg->u.inuse.type_info & PGT_type_mask) == PGT_l2_page_table )
++ {
++ const l2_pgentry_t *l2t = map_domain_page(mfn);
++
++ l2e = l2t[l2_table_offset(addr)];
++ unmap_domain_page(l2t);
++ }
++
++ page_unlock(pg);
++
++ mfn = l2e_get_mfn(l2e);
++ if ( !(l2e_get_flags(l2e) & _PAGE_PRESENT) || !mfn_valid(mfn) )
+ return NULL;
+ if ( (l2e_get_flags(l2e) & _PAGE_PSE) )
+ {
+- mfn += PFN_DOWN(addr & ((1UL << L2_PAGETABLE_SHIFT) - 1));
++ mfn = mfn_add(mfn, PFN_DOWN(addr & ((1UL << L2_PAGETABLE_SHIFT) - 1)));
+ goto ret;
+ }
+
+- l1t = map_domain_page(_mfn(mfn));
+- l1e = l1t[l1_table_offset(addr)];
+- unmap_domain_page(l1t);
+- mfn = l1e_get_pfn(l1e);
+- if ( !(l1e_get_flags(l1e) & _PAGE_PRESENT) || !mfn_valid(_mfn(mfn)) )
++ pg = mfn_to_page(mfn);
++ if ( !page_lock(pg) )
++ return NULL;
++
++ if ( (pg->u.inuse.type_info & PGT_type_mask) == PGT_l1_page_table )
++ {
++ const l1_pgentry_t *l1t = map_domain_page(mfn);
++
++ l1e = l1t[l1_table_offset(addr)];
++ unmap_domain_page(l1t);
++ }
++
++ page_unlock(pg);
++
++ mfn = l1e_get_mfn(l1e);
++ if ( !(l1e_get_flags(l1e) & _PAGE_PRESENT) || !mfn_valid(mfn) )
+ return NULL;
+
+ ret:
+- return map_domain_page(_mfn(mfn)) + (addr & ~PAGE_MASK);
++ return map_domain_page(mfn) + (addr & ~PAGE_MASK);
+ }
+
+ /*
diff --git a/xsa286-3.patch b/xsa286-3.patch
new file mode 100644
index 0000000..2b0f703
--- /dev/null
+++ b/xsa286-3.patch
@@ -0,0 +1,81 @@
+x86/mm: avoid using linear page tables in map_guest_l1e()
+
+Replace the linear L2 table access by an actual page walk.
+
+This is part of XSA-286.
+
+Signed-off-by: Jan Beulich <jbeulich@suse.com>
+Signed-off-by: Roger Pau Monné <roger.pau@citrix.com>
+Reviewed-by: George Dunlap <george.dunlap@citrix.com>
+Reviewed-by: Andrew Cooper <andrew.cooper3@citrix.com>
+
+--- a/xen/arch/x86/pv/mm.c
++++ b/xen/arch/x86/pv/mm.c
+@@ -40,11 +40,14 @@ l1_pgentry_t *map_guest_l1e(unsigned lon
+ if ( unlikely(!__addr_ok(linear)) )
+ return NULL;
+
+- /* Find this l1e and its enclosing l1mfn in the linear map. */
+- if ( __copy_from_user(&l2e,
+- &__linear_l2_table[l2_linear_offset(linear)],
+- sizeof(l2_pgentry_t)) )
++ if ( unlikely(!(current->arch.flags & TF_kernel_mode)) )
++ {
++ ASSERT_UNREACHABLE();
+ return NULL;
++ }
++
++ /* Find this l1e and its enclosing l1mfn. */
++ l2e = page_walk_get_l2e(current->arch.guest_table, linear);
+
+ /* Check flags that it will be safe to read the l1e. */
+ if ( (l2e_get_flags(l2e) & (_PAGE_PRESENT | _PAGE_PSE)) != _PAGE_PRESENT )
+--- a/xen/arch/x86/x86_64/mm.c
++++ b/xen/arch/x86/x86_64/mm.c
+@@ -100,6 +100,34 @@ static l3_pgentry_t page_walk_get_l3e(pa
+ return l3e;
+ }
+
++l2_pgentry_t page_walk_get_l2e(pagetable_t root, unsigned long addr)
++{
++ l3_pgentry_t l3e = page_walk_get_l3e(root, addr);
++ mfn_t mfn = l3e_get_mfn(l3e);
++ struct page_info *pg;
++ l2_pgentry_t l2e = l2e_empty();
++
++ if ( !(l3e_get_flags(l3e) & _PAGE_PRESENT) ||
++ (l3e_get_flags(l3e) & _PAGE_PSE) )
++ return l2e_empty();
++
++ pg = mfn_to_page(mfn);
++ if ( !page_lock(pg) )
++ return l2e_empty();
++
++ if ( (pg->u.inuse.type_info & PGT_type_mask) == PGT_l2_page_table )
++ {
++ l2_pgentry_t *l2t = map_domain_page(mfn);
++
++ l2e = l2t[l2_table_offset(addr)];
++ unmap_domain_page(l2t);
++ }
++
++ page_unlock(pg);
++
++ return l2e;
++}
++
+ void *do_page_walk(struct vcpu *v, unsigned long addr)
+ {
+ l3_pgentry_t l3e;
+--- a/xen/include/asm-x86/mm.h
++++ b/xen/include/asm-x86/mm.h
+@@ -577,7 +577,9 @@ void audit_domains(void);
+ void make_cr3(struct vcpu *v, mfn_t mfn);
+ void update_cr3(struct vcpu *v);
+ int vcpu_destroy_pagetables(struct vcpu *);
++
+ void *do_page_walk(struct vcpu *v, unsigned long addr);
++l2_pgentry_t page_walk_get_l2e(pagetable_t root, unsigned long addr);
+
+ int __sync_local_execstate(void);
+
diff --git a/xsa286-4.patch b/xsa286-4.patch
new file mode 100644
index 0000000..b425374
--- /dev/null
+++ b/xsa286-4.patch
@@ -0,0 +1,161 @@
+x86/mm: avoid using linear page tables in guest_get_eff_kern_l1e()
+
+First of all drop guest_get_eff_l1e() entirely - there's no actual user
+of it: pv_ro_page_fault() has a guest_kernel_mode() conditional around
+its only call site.
+
+Then replace the linear L1 table access by an actual page walk.
+
+This is part of XSA-286.
+
+Signed-off-by: Jan Beulich <jbeulich@suse.com>
+Signed-off-by: Roger Pau Monné <roger.pau@citrix.com>
+Reviewed-by: George Dunlap <george.dunlap@citrix.com>
+Reviewed-by: Andrew Cooper <andrew.cooper3@citrix.com>
+
+--- a/xen/arch/x86/pv/mm.c
++++ b/xen/arch/x86/pv/mm.c
+@@ -59,27 +59,6 @@ l1_pgentry_t *map_guest_l1e(unsigned lon
+ }
+
+ /*
+- * Read the guest's l1e that maps this address, from the kernel-mode
+- * page tables.
+- */
+-static l1_pgentry_t guest_get_eff_kern_l1e(unsigned long linear)
+-{
+- struct vcpu *curr = current;
+- const bool user_mode = !(curr->arch.flags & TF_kernel_mode);
+- l1_pgentry_t l1e;
+-
+- if ( user_mode )
+- toggle_guest_pt(curr);
+-
+- l1e = guest_get_eff_l1e(linear);
+-
+- if ( user_mode )
+- toggle_guest_pt(curr);
+-
+- return l1e;
+-}
+-
+-/*
+ * Map a guest's LDT page (covering the byte at @offset from start of the LDT)
+ * into Xen's virtual range. Returns true if the mapping changed, false
+ * otherwise.
+--- a/xen/arch/x86/pv/mm.h
++++ b/xen/arch/x86/pv/mm.h
+@@ -5,19 +5,19 @@ l1_pgentry_t *map_guest_l1e(unsigned lon
+
+ int new_guest_cr3(mfn_t mfn);
+
+-/* Read a PV guest's l1e that maps this linear address. */
+-static inline l1_pgentry_t guest_get_eff_l1e(unsigned long linear)
++/*
++ * Read the guest's l1e that maps this address, from the kernel-mode
++ * page tables.
++ */
++static inline l1_pgentry_t guest_get_eff_kern_l1e(unsigned long linear)
+ {
+- l1_pgentry_t l1e;
++ l1_pgentry_t l1e = l1e_empty();
+
+ ASSERT(!paging_mode_translate(current->domain));
+ ASSERT(!paging_mode_external(current->domain));
+
+- if ( unlikely(!__addr_ok(linear)) ||
+- __copy_from_user(&l1e,
+- &__linear_l1_table[l1_linear_offset(linear)],
+- sizeof(l1_pgentry_t)) )
+- l1e = l1e_empty();
++ if ( likely(__addr_ok(linear)) )
++ l1e = page_walk_get_l1e(current->arch.guest_table, linear);
+
+ return l1e;
+ }
+--- a/xen/arch/x86/pv/ro-page-fault.c
++++ b/xen/arch/x86/pv/ro-page-fault.c
+@@ -357,7 +357,7 @@ int pv_ro_page_fault(unsigned long addr,
+ bool mmio_ro;
+
+ /* Attempt to read the PTE that maps the VA being accessed. */
+- pte = guest_get_eff_l1e(addr);
++ pte = guest_get_eff_kern_l1e(addr);
+
+ /* We are only looking for read-only mappings */
+ if ( ((l1e_get_flags(pte) & (_PAGE_PRESENT | _PAGE_RW)) != _PAGE_PRESENT) )
+--- a/xen/arch/x86/x86_64/mm.c
++++ b/xen/arch/x86/x86_64/mm.c
+@@ -128,6 +128,62 @@ l2_pgentry_t page_walk_get_l2e(pagetable
+ return l2e;
+ }
+
++/*
++ * For now no "set_accessed" parameter, as all callers want it set to true.
++ * For now also no "set_dirty" parameter, as all callers deal with r/o
++ * mappings, and we don't want to set the dirty bit there (conflicts with
++ * CET-SS). However, as there are CPUs which may set the dirty bit on r/o
++ * PTEs, the logic below tolerates the bit becoming set "behind our backs".
++ */
++l1_pgentry_t page_walk_get_l1e(pagetable_t root, unsigned long addr)
++{
++ l2_pgentry_t l2e = page_walk_get_l2e(root, addr);
++ mfn_t mfn = l2e_get_mfn(l2e);
++ struct page_info *pg;
++ l1_pgentry_t l1e = l1e_empty();
++
++ if ( !(l2e_get_flags(l2e) & _PAGE_PRESENT) ||
++ (l2e_get_flags(l2e) & _PAGE_PSE) )
++ return l1e_empty();
++
++ pg = mfn_to_page(mfn);
++ if ( !page_lock(pg) )
++ return l1e_empty();
++
++ if ( (pg->u.inuse.type_info & PGT_type_mask) == PGT_l1_page_table )
++ {
++ l1_pgentry_t *l1t = map_domain_page(mfn);
++
++ l1e = l1t[l1_table_offset(addr)];
++
++ if ( (l1e_get_flags(l1e) & (_PAGE_ACCESSED | _PAGE_PRESENT)) ==
++ _PAGE_PRESENT )
++ {
++ l1_pgentry_t ol1e = l1e;
++
++ l1e_add_flags(l1e, _PAGE_ACCESSED);
++ /*
++ * Best effort only; with the lock held the page shouldn't
++ * change anyway, except for the dirty bit to perhaps become set.
++ */
++ while ( cmpxchg(&l1e_get_intpte(l1t[l1_table_offset(addr)]),
++ l1e_get_intpte(ol1e), l1e_get_intpte(l1e)) !=
++ l1e_get_intpte(ol1e) &&
++ !(l1e_get_flags(l1e) & _PAGE_DIRTY) )
++ {
++ l1e_add_flags(ol1e, _PAGE_DIRTY);
++ l1e_add_flags(l1e, _PAGE_DIRTY);
++ }
++ }
++
++ unmap_domain_page(l1t);
++ }
++
++ page_unlock(pg);
++
++ return l1e;
++}
++
+ void *do_page_walk(struct vcpu *v, unsigned long addr)
+ {
+ l3_pgentry_t l3e;
+--- a/xen/include/asm-x86/mm.h
++++ b/xen/include/asm-x86/mm.h
+@@ -580,6 +580,7 @@ int vcpu_destroy_pagetables(struct vcpu
+
+ void *do_page_walk(struct vcpu *v, unsigned long addr);
+ l2_pgentry_t page_walk_get_l2e(pagetable_t root, unsigned long addr);
++l1_pgentry_t page_walk_get_l1e(pagetable_t root, unsigned long addr);
+
+ int __sync_local_execstate(void);
+
diff --git a/xsa286-5.patch b/xsa286-5.patch
new file mode 100644
index 0000000..01fa2c1
--- /dev/null
+++ b/xsa286-5.patch
@@ -0,0 +1,94 @@
+x86/mm: avoid using top level linear page tables in {,un}map_domain_page()
+
+Move the page table recursion two levels down. This entails avoiding
+to free the recursive mapping prematurely in free_perdomain_mappings().
+
+This is part of XSA-286.
+
+Signed-off-by: Jan Beulich <jbeulich@suse.com>
+Reviewed-by: George Dunlap <george.dunlap@citrix.com>
+Reviewed-by: Andrew Cooper <andrew.cooper3@citrix.com>
+
+--- a/xen/arch/x86/domain_page.c
++++ b/xen/arch/x86/domain_page.c
+@@ -65,7 +65,8 @@ void __init mapcache_override_current(st
+ #define mapcache_l2_entry(e) ((e) >> PAGETABLE_ORDER)
+ #define MAPCACHE_L2_ENTRIES (mapcache_l2_entry(MAPCACHE_ENTRIES - 1) + 1)
+ #define MAPCACHE_L1ENT(idx) \
+- __linear_l1_table[l1_linear_offset(MAPCACHE_VIRT_START + pfn_to_paddr(idx))]
++ ((l1_pgentry_t *)(MAPCACHE_VIRT_START | \
++ ((L2_PAGETABLE_ENTRIES - 1) << L2_PAGETABLE_SHIFT)))[idx]
+
+ void *map_domain_page(mfn_t mfn)
+ {
+@@ -235,6 +236,7 @@ int mapcache_domain_init(struct domain *
+ {
+ struct mapcache_domain *dcache = &d->arch.pv.mapcache;
+ unsigned int bitmap_pages;
++ int rc;
+
+ ASSERT(is_pv_domain(d));
+
+@@ -243,8 +245,10 @@ int mapcache_domain_init(struct domain *
+ return 0;
+ #endif
+
++ BUILD_BUG_ON(MAPCACHE_VIRT_START & ((1 << L3_PAGETABLE_SHIFT) - 1));
+ BUILD_BUG_ON(MAPCACHE_VIRT_END + PAGE_SIZE * (3 +
+- 2 * PFN_UP(BITS_TO_LONGS(MAPCACHE_ENTRIES) * sizeof(long))) >
++ 2 * PFN_UP(BITS_TO_LONGS(MAPCACHE_ENTRIES) * sizeof(long))) +
++ (1U << L2_PAGETABLE_SHIFT) >
+ MAPCACHE_VIRT_START + (PERDOMAIN_SLOT_MBYTES << 20));
+ bitmap_pages = PFN_UP(BITS_TO_LONGS(MAPCACHE_ENTRIES) * sizeof(long));
+ dcache->inuse = (void *)MAPCACHE_VIRT_END + PAGE_SIZE;
+@@ -253,9 +257,25 @@ int mapcache_domain_init(struct domain *
+
+ spin_lock_init(&dcache->lock);
+
+- return create_perdomain_mapping(d, (unsigned long)dcache->inuse,
+- 2 * bitmap_pages + 1,
+- NIL(l1_pgentry_t *), NULL);
++ rc = create_perdomain_mapping(d, (unsigned long)dcache->inuse,
++ 2 * bitmap_pages + 1,
++ NIL(l1_pgentry_t *), NULL);
++ if ( !rc )
++ {
++ /*
++ * Install mapping of our L2 table into its own last slot, for easy
++ * access to the L1 entries via MAPCACHE_L1ENT().
++ */
++ l3_pgentry_t *l3t = __map_domain_page(d->arch.perdomain_l3_pg);
++ l3_pgentry_t l3e = l3t[l3_table_offset(MAPCACHE_VIRT_END)];
++ l2_pgentry_t *l2t = map_l2t_from_l3e(l3e);
++
++ l2e_get_intpte(l2t[L2_PAGETABLE_ENTRIES - 1]) = l3e_get_intpte(l3e);
++ unmap_domain_page(l2t);
++ unmap_domain_page(l3t);
++ }
++
++ return rc;
+ }
+
+ int mapcache_vcpu_init(struct vcpu *v)
+@@ -346,7 +366,7 @@ mfn_t domain_page_map_to_mfn(const void
+ else
+ {
+ ASSERT(va >= MAPCACHE_VIRT_START && va < MAPCACHE_VIRT_END);
+- pl1e = &__linear_l1_table[l1_linear_offset(va)];
++ pl1e = &MAPCACHE_L1ENT(PFN_DOWN(va - MAPCACHE_VIRT_START));
+ }
+
+ return l1e_get_mfn(*pl1e);
+--- a/xen/arch/x86/mm.c
++++ b/xen/arch/x86/mm.c
+@@ -6024,6 +6024,10 @@ void free_perdomain_mappings(struct doma
+ {
+ struct page_info *l1pg = l2e_get_page(l2tab[j]);
+
++ /* mapcache_domain_init() installs a recursive entry. */
++ if ( l1pg == l2pg )
++ continue;
++
+ if ( l2e_get_flags(l2tab[j]) & _PAGE_AVAIL0 )
+ {
+ l1_pgentry_t *l1tab = __map_domain_page(l1pg);
diff --git a/xsa286-6.patch b/xsa286-6.patch
new file mode 100644
index 0000000..a2dcabd
--- /dev/null
+++ b/xsa286-6.patch
@@ -0,0 +1,95 @@
+x86/mm: restrict use of linear page tables to shadow mode code
+
+Other code does not require them to be set up anymore, so restrict when
+to populate the respective L4 slot and reduce visibility of the
+accessors.
+
+While with the removal of all uses the vulnerability is actually fixed,
+removing the creation of the linear mapping adds an extra layer of
+protection. Similarly reducing visibility of the accessors mostly
+eliminates the risk of undue re-introduction of uses of the linear
+mappings.
+
+This is (not strictly) part of XSA-286.
+
+Signed-off-by: Jan Beulich <jbeulich@suse.com>
+Reviewed-by: George Dunlap <george.dunlap@citrix.com>
+Reviewed-by: Andrew Cooper <andrew.cooper3@citrix.com>
+
+--- a/xen/arch/x86/mm.c
++++ b/xen/arch/x86/mm.c
+@@ -1750,9 +1750,10 @@ void init_xen_l4_slots(l4_pgentry_t *l4t
+ l4t[l4_table_offset(PCI_MCFG_VIRT_START)] =
+ idle_pg_table[l4_table_offset(PCI_MCFG_VIRT_START)];
+
+- /* Slot 258: Self linear mappings. */
++ /* Slot 258: Self linear mappings (shadow pt only). */
+ ASSERT(!mfn_eq(l4mfn, INVALID_MFN));
+ l4t[l4_table_offset(LINEAR_PT_VIRT_START)] =
++ !shadow_mode_external(d) ? l4e_empty() :
+ l4e_from_mfn(l4mfn, __PAGE_HYPERVISOR_RW);
+
+ /* Slot 259: Shadow linear mappings (if applicable) .*/
+--- a/xen/arch/x86/mm/shadow/private.h
++++ b/xen/arch/x86/mm/shadow/private.h
+@@ -135,6 +135,15 @@ enum {
+ # define GUEST_PTE_SIZE 4
+ #endif
+
++/* Where to find each level of the linear mapping */
++#define __linear_l1_table ((l1_pgentry_t *)(LINEAR_PT_VIRT_START))
++#define __linear_l2_table \
++ ((l2_pgentry_t *)(__linear_l1_table + l1_linear_offset(LINEAR_PT_VIRT_START)))
++#define __linear_l3_table \
++ ((l3_pgentry_t *)(__linear_l2_table + l2_linear_offset(LINEAR_PT_VIRT_START)))
++#define __linear_l4_table \
++ ((l4_pgentry_t *)(__linear_l3_table + l3_linear_offset(LINEAR_PT_VIRT_START)))
++
+ /******************************************************************************
+ * Auditing routines
+ */
+--- a/xen/arch/x86/x86_64/mm.c
++++ b/xen/arch/x86/x86_64/mm.c
+@@ -833,9 +833,6 @@ void __init paging_init(void)
+
+ machine_to_phys_mapping_valid = 1;
+
+- /* Set up linear page table mapping. */
+- l4e_write(&idle_pg_table[l4_table_offset(LINEAR_PT_VIRT_START)],
+- l4e_from_paddr(__pa(idle_pg_table), __PAGE_HYPERVISOR_RW));
+ return;
+
+ nomem:
+--- a/xen/include/asm-x86/config.h
++++ b/xen/include/asm-x86/config.h
+@@ -193,7 +193,7 @@ extern unsigned char boot_edid_info[128]
+ */
+ #define PCI_MCFG_VIRT_START (PML4_ADDR(257))
+ #define PCI_MCFG_VIRT_END (PCI_MCFG_VIRT_START + PML4_ENTRY_BYTES)
+-/* Slot 258: linear page table (guest table). */
++/* Slot 258: linear page table (monitor table, HVM only). */
+ #define LINEAR_PT_VIRT_START (PML4_ADDR(258))
+ #define LINEAR_PT_VIRT_END (LINEAR_PT_VIRT_START + PML4_ENTRY_BYTES)
+ /* Slot 259: linear page table (shadow table). */
+--- a/xen/include/asm-x86/page.h
++++ b/xen/include/asm-x86/page.h
+@@ -274,19 +274,6 @@ void copy_page_sse2(void *, const void *
+ #define vmap_to_mfn(va) _mfn(l1e_get_pfn(*virt_to_xen_l1e((unsigned long)(va))))
+ #define vmap_to_page(va) mfn_to_page(vmap_to_mfn(va))
+
+-#endif /* !defined(__ASSEMBLY__) */
+-
+-/* Where to find each level of the linear mapping */
+-#define __linear_l1_table ((l1_pgentry_t *)(LINEAR_PT_VIRT_START))
+-#define __linear_l2_table \
+- ((l2_pgentry_t *)(__linear_l1_table + l1_linear_offset(LINEAR_PT_VIRT_START)))
+-#define __linear_l3_table \
+- ((l3_pgentry_t *)(__linear_l2_table + l2_linear_offset(LINEAR_PT_VIRT_START)))
+-#define __linear_l4_table \
+- ((l4_pgentry_t *)(__linear_l3_table + l3_linear_offset(LINEAR_PT_VIRT_START)))
+-
+-
+-#ifndef __ASSEMBLY__
+ extern root_pgentry_t idle_pg_table[ROOT_PAGETABLE_ENTRIES];
+ extern l2_pgentry_t *compat_idle_pg_table_l2;
+ extern unsigned int m2p_compat_vstart;
diff --git a/xsa333.patch b/xsa333.patch
new file mode 100644
index 0000000..fac386b
--- /dev/null
+++ b/xsa333.patch
@@ -0,0 +1,35 @@
+From: Andrew Cooper <andrew.cooper3@citrix.com>
+Subject: x86/pv: Handle the Intel-specific MSR_MISC_ENABLE correctly
+
+This MSR doesn't exist on AMD hardware, and switching away from the safe
+functions in the common MSR path was an erroneous change.
+
+Partially revert the change.
+
+This is XSA-333.
+
+Fixes: 4fdc932b3cc ("x86/Intel: drop another 32-bit leftover")
+Signed-off-by: Andrew Cooper <andrew.cooper3@citrix.com>
+
+--- a/xen/arch/x86/pv/emul-priv-op.c
++++ b/xen/arch/x86/pv/emul-priv-op.c
+@@ -891,7 +891,8 @@ static int read_msr(unsigned int reg, ui
+ return X86EMUL_OKAY;
+
+ case MSR_IA32_MISC_ENABLE:
+- rdmsrl(reg, *val);
++ if ( rdmsr_safe(reg, *val) )
++ break;
+ *val = guest_misc_enable(*val);
+ return X86EMUL_OKAY;
+
+@@ -1031,7 +1032,8 @@ static int write_msr(unsigned int reg, u
+ break;
+
+ case MSR_IA32_MISC_ENABLE:
+- rdmsrl(reg, temp);
++ if ( rdmsr_safe(reg, temp) )
++ break;
+ if ( val != guest_misc_enable(temp) )
+ goto invalid;
+ return X86EMUL_OKAY;
diff --git a/xsa334.patch b/xsa334.patch
new file mode 100644
index 0000000..5473a0f
--- /dev/null
+++ b/xsa334.patch
@@ -0,0 +1,48 @@
+xen/memory: Don't skip the RCU unlock path in acquire_resource()
+
+In the case that an HVM Stubdomain makes an XENMEM_acquire_resource hypercall,
+the FIXME path will bypass rcu_unlock_domain() on the way out of the function.
+
+Move the check to the start of the function. This does change the behaviour
+of the get-size path for HVM Stubdomains, but that functionality is currently
+broken and unused anyway, as well as being quite useless to entities which
+can't actually map the resource anyway.
+
+This is XSA-334.
+
+Fixes: 83fa6552ce ("common: add a new mappable resource type: XENMEM_resource_grant_table")
+Signed-off-by: Andrew Cooper <andrew.cooper3@citrix.com>
+Reviewed-by: Jan Beulich <jbeulich@suse.com>
+
+--- a/xen/common/memory.c
++++ b/xen/common/memory.c
+@@ -1057,6 +1057,14 @@ static int acquire_resource(
+ xen_pfn_t mfn_list[32];
+ int rc;
+
++ /*
++ * FIXME: Until foreign pages inserted into the P2M are properly
++ * reference counted, it is unsafe to allow mapping of
++ * resource pages unless the caller is the hardware domain.
++ */
++ if ( paging_mode_translate(currd) && !is_hardware_domain(currd) )
++ return -EACCES;
++
+ if ( copy_from_guest(&xmar, arg, 1) )
+ return -EFAULT;
+
+@@ -1113,14 +1121,6 @@ static int acquire_resource(
+ xen_pfn_t gfn_list[ARRAY_SIZE(mfn_list)];
+ unsigned int i;
+
+- /*
+- * FIXME: Until foreign pages inserted into the P2M are properly
+- * reference counted, it is unsafe to allow mapping of
+- * resource pages unless the caller is the hardware domain.
+- */
+- if ( !is_hardware_domain(currd) )
+- return -EACCES;
+-
+ if ( copy_from_guest(gfn_list, xmar.frame_list, xmar.nr_frames) )
+ rc = -EFAULT;
+
diff --git a/xsa336.patch b/xsa336.patch
new file mode 100644
index 0000000..7bfdce8
--- /dev/null
+++ b/xsa336.patch
@@ -0,0 +1,274 @@
+x86/vpt: fix race when migrating timers between vCPUs
+
+The current vPT code will migrate the emulated timers between vCPUs
+(change the pt->vcpu field) while just holding the destination lock,
+either from create_periodic_time or pt_adjust_global_vcpu_target if
+the global target is adjusted. Changing the periodic_timer vCPU field
+in this way creates a race where a third party could grab the lock in
+the unlocked region of pt_adjust_global_vcpu_target (or before
+create_periodic_time performs the vcpu change) and then release the
+lock from a different vCPU, creating a locking imbalance.
+
+Introduce a per-domain rwlock in order to protect periodic_time
+migration between vCPU lists. Taking the lock in read mode prevents
+any timer from being migrated to a different vCPU, while taking it in
+write mode allows performing migration of timers across vCPUs. The
+per-vcpu locks are still used to protect all the other fields from the
+periodic_timer struct.
+
+Note that such migration shouldn't happen frequently, and hence
+there's no performance drop as a result of such locking.
+
+This is XSA-336.
+
+Reported-by: Igor Druzhinin <igor.druzhinin@citrix.com>
+Signed-off-by: Roger Pau Monné <roger.pau@citrix.com>
+Tested-by: Igor Druzhinin <igor.druzhinin@citrix.com>
+Reviewed-by: Jan Beulich <jbeulich@suse.com>
+
+--- a/xen/arch/x86/hvm/hvm.c
++++ b/xen/arch/x86/hvm/hvm.c
+@@ -646,6 +646,8 @@ int hvm_domain_initialise(struct domain
+ /* need link to containing domain */
+ d->arch.hvm.pl_time->domain = d;
+
++ rwlock_init(&d->arch.hvm.pl_time->pt_migrate);
++
+ /* Set the default IO Bitmap. */
+ if ( is_hardware_domain(d) )
+ {
+--- a/xen/arch/x86/hvm/vpt.c
++++ b/xen/arch/x86/hvm/vpt.c
+@@ -152,23 +152,32 @@ static int pt_irq_masked(struct periodic
+ return 1;
+ }
+
+-static void pt_lock(struct periodic_time *pt)
++static void pt_vcpu_lock(struct vcpu *v)
+ {
+- struct vcpu *v;
++ read_lock(&v->domain->arch.hvm.pl_time->pt_migrate);
++ spin_lock(&v->arch.hvm.tm_lock);
++}
+
+- for ( ; ; )
+- {
+- v = pt->vcpu;
+- spin_lock(&v->arch.hvm.tm_lock);
+- if ( likely(pt->vcpu == v) )
+- break;
+- spin_unlock(&v->arch.hvm.tm_lock);
+- }
++static void pt_vcpu_unlock(struct vcpu *v)
++{
++ spin_unlock(&v->arch.hvm.tm_lock);
++ read_unlock(&v->domain->arch.hvm.pl_time->pt_migrate);
++}
++
++static void pt_lock(struct periodic_time *pt)
++{
++ /*
++ * We cannot use pt_vcpu_lock here, because we need to acquire the
++ * per-domain lock first and then (re-)fetch the value of pt->vcpu, or
++ * else we might be using a stale value of pt->vcpu.
++ */
++ read_lock(&pt->vcpu->domain->arch.hvm.pl_time->pt_migrate);
++ spin_lock(&pt->vcpu->arch.hvm.tm_lock);
+ }
+
+ static void pt_unlock(struct periodic_time *pt)
+ {
+- spin_unlock(&pt->vcpu->arch.hvm.tm_lock);
++ pt_vcpu_unlock(pt->vcpu);
+ }
+
+ static void pt_process_missed_ticks(struct periodic_time *pt)
+@@ -218,7 +227,7 @@ void pt_save_timer(struct vcpu *v)
+ if ( v->pause_flags & VPF_blocked )
+ return;
+
+- spin_lock(&v->arch.hvm.tm_lock);
++ pt_vcpu_lock(v);
+
+ list_for_each_entry ( pt, head, list )
+ if ( !pt->do_not_freeze )
+@@ -226,7 +235,7 @@ void pt_save_timer(struct vcpu *v)
+
+ pt_freeze_time(v);
+
+- spin_unlock(&v->arch.hvm.tm_lock);
++ pt_vcpu_unlock(v);
+ }
+
+ void pt_restore_timer(struct vcpu *v)
+@@ -234,7 +243,7 @@ void pt_restore_timer(struct vcpu *v)
+ struct list_head *head = &v->arch.hvm.tm_list;
+ struct periodic_time *pt;
+
+- spin_lock(&v->arch.hvm.tm_lock);
++ pt_vcpu_lock(v);
+
+ list_for_each_entry ( pt, head, list )
+ {
+@@ -247,7 +256,7 @@ void pt_restore_timer(struct vcpu *v)
+
+ pt_thaw_time(v);
+
+- spin_unlock(&v->arch.hvm.tm_lock);
++ pt_vcpu_unlock(v);
+ }
+
+ static void pt_timer_fn(void *data)
+@@ -308,7 +317,7 @@ int pt_update_irq(struct vcpu *v)
+ int irq, pt_vector = -1;
+ bool level;
+
+- spin_lock(&v->arch.hvm.tm_lock);
++ pt_vcpu_lock(v);
+
+ earliest_pt = NULL;
+ max_lag = -1ULL;
+@@ -338,7 +347,7 @@ int pt_update_irq(struct vcpu *v)
+
+ if ( earliest_pt == NULL )
+ {
+- spin_unlock(&v->arch.hvm.tm_lock);
++ pt_vcpu_unlock(v);
+ return -1;
+ }
+
+@@ -346,7 +355,7 @@ int pt_update_irq(struct vcpu *v)
+ irq = earliest_pt->irq;
+ level = earliest_pt->level;
+
+- spin_unlock(&v->arch.hvm.tm_lock);
++ pt_vcpu_unlock(v);
+
+ switch ( earliest_pt->source )
+ {
+@@ -393,7 +402,7 @@ int pt_update_irq(struct vcpu *v)
+ time_cb *cb = NULL;
+ void *cb_priv;
+
+- spin_lock(&v->arch.hvm.tm_lock);
++ pt_vcpu_lock(v);
+ /* Make sure the timer is still on the list. */
+ list_for_each_entry ( pt, &v->arch.hvm.tm_list, list )
+ if ( pt == earliest_pt )
+@@ -403,7 +412,7 @@ int pt_update_irq(struct vcpu *v)
+ cb_priv = pt->priv;
+ break;
+ }
+- spin_unlock(&v->arch.hvm.tm_lock);
++ pt_vcpu_unlock(v);
+
+ if ( cb != NULL )
+ cb(v, cb_priv);
+@@ -440,12 +449,12 @@ void pt_intr_post(struct vcpu *v, struct
+ if ( intack.source == hvm_intsrc_vector )
+ return;
+
+- spin_lock(&v->arch.hvm.tm_lock);
++ pt_vcpu_lock(v);
+
+ pt = is_pt_irq(v, intack);
+ if ( pt == NULL )
+ {
+- spin_unlock(&v->arch.hvm.tm_lock);
++ pt_vcpu_unlock(v);
+ return;
+ }
+
+@@ -454,7 +463,7 @@ void pt_intr_post(struct vcpu *v, struct
+ cb = pt->cb;
+ cb_priv = pt->priv;
+
+- spin_unlock(&v->arch.hvm.tm_lock);
++ pt_vcpu_unlock(v);
+
+ if ( cb != NULL )
+ cb(v, cb_priv);
+@@ -465,12 +474,12 @@ void pt_migrate(struct vcpu *v)
+ struct list_head *head = &v->arch.hvm.tm_list;
+ struct periodic_time *pt;
+
+- spin_lock(&v->arch.hvm.tm_lock);
++ pt_vcpu_lock(v);
+
+ list_for_each_entry ( pt, head, list )
+ migrate_timer(&pt->timer, v->processor);
+
+- spin_unlock(&v->arch.hvm.tm_lock);
++ pt_vcpu_unlock(v);
+ }
+
+ void create_periodic_time(
+@@ -489,7 +498,7 @@ void create_periodic_time(
+
+ destroy_periodic_time(pt);
+
+- spin_lock(&v->arch.hvm.tm_lock);
++ write_lock(&v->domain->arch.hvm.pl_time->pt_migrate);
+
+ pt->pending_intr_nr = 0;
+ pt->do_not_freeze = 0;
+@@ -539,7 +548,7 @@ void create_periodic_time(
+ init_timer(&pt->timer, pt_timer_fn, pt, v->processor);
+ set_timer(&pt->timer, pt->scheduled);
+
+- spin_unlock(&v->arch.hvm.tm_lock);
++ write_unlock(&v->domain->arch.hvm.pl_time->pt_migrate);
+ }
+
+ void destroy_periodic_time(struct periodic_time *pt)
+@@ -564,30 +573,20 @@ void destroy_periodic_time(struct period
+
+ static void pt_adjust_vcpu(struct periodic_time *pt, struct vcpu *v)
+ {
+- int on_list;
+-
+ ASSERT(pt->source == PTSRC_isa || pt->source == PTSRC_ioapic);
+
+ if ( pt->vcpu == NULL )
+ return;
+
+- pt_lock(pt);
+- on_list = pt->on_list;
+- if ( pt->on_list )
+- list_del(&pt->list);
+- pt->on_list = 0;
+- pt_unlock(pt);
+-
+- spin_lock(&v->arch.hvm.tm_lock);
++ write_lock(&pt->vcpu->domain->arch.hvm.pl_time->pt_migrate);
+ pt->vcpu = v;
+- if ( on_list )
++ if ( pt->on_list )
+ {
+- pt->on_list = 1;
++ list_del(&pt->list);
+ list_add(&pt->list, &v->arch.hvm.tm_list);
+-
+ migrate_timer(&pt->timer, v->processor);
+ }
+- spin_unlock(&v->arch.hvm.tm_lock);
++ write_unlock(&pt->vcpu->domain->arch.hvm.pl_time->pt_migrate);
+ }
+
+ void pt_adjust_global_vcpu_target(struct vcpu *v)
+--- a/xen/include/asm-x86/hvm/vpt.h
++++ b/xen/include/asm-x86/hvm/vpt.h
+@@ -134,6 +134,13 @@ struct pl_time { /* platform time */
+ struct RTCState vrtc;
+ struct HPETState vhpet;
+ struct PMTState vpmt;
++ /*
++ * rwlock to prevent periodic_time vCPU migration. Take the lock in read
++ * mode in order to prevent the vcpu field of periodic_time from changing.
++ * Lock must be taken in write mode when changes to the vcpu field are
++ * performed, as it allows exclusive access to all the timers of a domain.
++ */
++ rwlock_t pt_migrate;
+ /* guest_time = Xen sys time + stime_offset */
+ int64_t stime_offset;
+ /* Ensures monotonicity in appropriate timer modes. */
diff --git a/xsa337-1.patch b/xsa337-1.patch
new file mode 100644
index 0000000..feab65b
--- /dev/null
+++ b/xsa337-1.patch
@@ -0,0 +1,85 @@
+x86/msi: get rid of read_msi_msg
+
+It's safer and faster to just use the cached last written
+(untranslated) MSI message stored in msi_desc for the single user that
+calls read_msi_msg.
+
+This also prevents relying on the data read from the device MSI
+registers in order to figure out the index into the IOMMU interrupt
+remapping table, which is not safe.
+
+This is XSA-337.
+
+Requested-by: Andrew Cooper <andrew.cooper3@citrix.com>
+Signed-off-by: Roger Pau Monné <roger.pau@citrix.com>
+Reviewed-by: Jan Beulich <jbeulich@suse.com>
+
+--- a/xen/arch/x86/msi.c
++++ b/xen/arch/x86/msi.c
+@@ -183,54 +183,6 @@ void msi_compose_msg(unsigned vector, co
+ MSI_DATA_VECTOR(vector);
+ }
+
+-static bool read_msi_msg(struct msi_desc *entry, struct msi_msg *msg)
+-{
+- switch ( entry->msi_attrib.type )
+- {
+- case PCI_CAP_ID_MSI:
+- {
+- struct pci_dev *dev = entry->dev;
+- int pos = entry->msi_attrib.pos;
+- uint16_t data;
+-
+- msg->address_lo = pci_conf_read32(dev->sbdf,
+- msi_lower_address_reg(pos));
+- if ( entry->msi_attrib.is_64 )
+- {
+- msg->address_hi = pci_conf_read32(dev->sbdf,
+- msi_upper_address_reg(pos));
+- data = pci_conf_read16(dev->sbdf, msi_data_reg(pos, 1));
+- }
+- else
+- {
+- msg->address_hi = 0;
+- data = pci_conf_read16(dev->sbdf, msi_data_reg(pos, 0));
+- }
+- msg->data = data;
+- break;
+- }
+- case PCI_CAP_ID_MSIX:
+- {
+- void __iomem *base = entry->mask_base;
+-
+- if ( unlikely(!msix_memory_decoded(entry->dev,
+- entry->msi_attrib.pos)) )
+- return false;
+- msg->address_lo = readl(base + PCI_MSIX_ENTRY_LOWER_ADDR_OFFSET);
+- msg->address_hi = readl(base + PCI_MSIX_ENTRY_UPPER_ADDR_OFFSET);
+- msg->data = readl(base + PCI_MSIX_ENTRY_DATA_OFFSET);
+- break;
+- }
+- default:
+- BUG();
+- }
+-
+- if ( iommu_intremap )
+- iommu_read_msi_from_ire(entry, msg);
+-
+- return true;
+-}
+-
+ static int write_msi_msg(struct msi_desc *entry, struct msi_msg *msg)
+ {
+ entry->msg = *msg;
+@@ -302,10 +254,7 @@ void set_msi_affinity(struct irq_desc *d
+
+ ASSERT(spin_is_locked(&desc->lock));
+
+- memset(&msg, 0, sizeof(msg));
+- if ( !read_msi_msg(msi_desc, &msg) )
+- return;
+-
++ msg = msi_desc->msg;
+ msg.data &= ~MSI_DATA_VECTOR_MASK;
+ msg.data |= MSI_DATA_VECTOR(desc->arch.vector);
+ msg.address_lo &= ~MSI_ADDR_DEST_ID_MASK;
diff --git a/xsa337-2.patch b/xsa337-2.patch
new file mode 100644
index 0000000..8bcbf7c
--- /dev/null
+++ b/xsa337-2.patch
@@ -0,0 +1,180 @@
+x86/MSI-X: restrict reading of table/PBA bases from BARs
+
+When assigned to less trusted or un-trusted guests, devices may change
+state behind our backs (they may e.g. get reset by means we may not know
+about). Therefore we should avoid reading BARs from hardware once a
+device is no longer owned by Dom0. Furthermore when we can't read a BAR,
+or when we read zero, we shouldn't instead use the caller provided
+address unless that caller can be trusted.
+
+Re-arrange the logic in msix_capability_init() such that only Dom0 (and
+only if the device isn't DomU-owned yet) or calls through
+PHYSDEVOP_prepare_msix will actually result in the reading of the
+respective BAR register(s). Additionally do so only as long as in-use
+table entries are known (note that invocation of PHYSDEVOP_prepare_msix
+counts as a "pseudo" entry). In all other uses the value already
+recorded will get used instead.
+
+Clear the recorded values in _pci_cleanup_msix() as well as on the one
+affected error path. (Adjust this error path to also avoid blindly
+disabling MSI-X when it was enabled on entry to the function.)
+
+While moving around variable declarations (in many cases to reduce their
+scopes), also adjust some of their types.
+
+This is part of XSA-337.
+
+Signed-off-by: Jan Beulich <jbeulich@suse.com>
+Reviewed-by: Roger Pau Monné <roger.pau@citrix.com>
+
+--- a/xen/arch/x86/msi.c
++++ b/xen/arch/x86/msi.c
+@@ -769,16 +769,14 @@ static int msix_capability_init(struct p
+ {
+ struct arch_msix *msix = dev->msix;
+ struct msi_desc *entry = NULL;
+- int vf;
+ u16 control;
+ u64 table_paddr;
+ u32 table_offset;
+- u8 bir, pbus, pslot, pfunc;
+ u16 seg = dev->seg;
+ u8 bus = dev->bus;
+ u8 slot = PCI_SLOT(dev->devfn);
+ u8 func = PCI_FUNC(dev->devfn);
+- bool maskall = msix->host_maskall;
++ bool maskall = msix->host_maskall, zap_on_error = false;
+ unsigned int pos = pci_find_cap_offset(seg, bus, slot, func,
+ PCI_CAP_ID_MSIX);
+
+@@ -820,43 +818,45 @@ static int msix_capability_init(struct p
+
+ /* Locate MSI-X table region */
+ table_offset = pci_conf_read32(dev->sbdf, msix_table_offset_reg(pos));
+- bir = (u8)(table_offset & PCI_MSIX_BIRMASK);
+- table_offset &= ~PCI_MSIX_BIRMASK;
++ if ( !msix->used_entries &&
++ (!msi ||
++ (is_hardware_domain(current->domain) &&
++ (dev->domain == current->domain || dev->domain == dom_io))) )
++ {
++ unsigned int bir = table_offset & PCI_MSIX_BIRMASK, pbus, pslot, pfunc;
++ int vf;
++ paddr_t pba_paddr;
++ unsigned int pba_offset;
+
+- if ( !dev->info.is_virtfn )
+- {
+- pbus = bus;
+- pslot = slot;
+- pfunc = func;
+- vf = -1;
+- }
+- else
+- {
+- pbus = dev->info.physfn.bus;
+- pslot = PCI_SLOT(dev->info.physfn.devfn);
+- pfunc = PCI_FUNC(dev->info.physfn.devfn);
+- vf = PCI_BDF2(dev->bus, dev->devfn);
+- }
+-
+- table_paddr = read_pci_mem_bar(seg, pbus, pslot, pfunc, bir, vf);
+- WARN_ON(msi && msi->table_base != table_paddr);
+- if ( !table_paddr )
+- {
+- if ( !msi || !msi->table_base )
++ if ( !dev->info.is_virtfn )
+ {
+- pci_conf_write16(dev->sbdf, msix_control_reg(pos),
+- control & ~PCI_MSIX_FLAGS_ENABLE);
+- xfree(entry);
+- return -ENXIO;
++ pbus = bus;
++ pslot = slot;
++ pfunc = func;
++ vf = -1;
++ }
++ else
++ {
++ pbus = dev->info.physfn.bus;
++ pslot = PCI_SLOT(dev->info.physfn.devfn);
++ pfunc = PCI_FUNC(dev->info.physfn.devfn);
++ vf = PCI_BDF2(dev->bus, dev->devfn);
+ }
+- table_paddr = msi->table_base;
+- }
+- table_paddr += table_offset;
+
+- if ( !msix->used_entries )
+- {
+- u64 pba_paddr;
+- u32 pba_offset;
++ table_paddr = read_pci_mem_bar(seg, pbus, pslot, pfunc, bir, vf);
++ WARN_ON(msi && msi->table_base != table_paddr);
++ if ( !table_paddr )
++ {
++ if ( !msi || !msi->table_base )
++ {
++ pci_conf_write16(dev->sbdf, msix_control_reg(pos),
++ control & ~PCI_MSIX_FLAGS_ENABLE);
++ xfree(entry);
++ return -ENXIO;
++ }
++ table_paddr = msi->table_base;
++ }
++ table_paddr += table_offset & ~PCI_MSIX_BIRMASK;
+
+ msix->table.first = PFN_DOWN(table_paddr);
+ msix->table.last = PFN_DOWN(table_paddr +
+@@ -875,7 +875,18 @@ static int msix_capability_init(struct p
+ BITS_TO_LONGS(msix->nr_entries) - 1);
+ WARN_ON(rangeset_overlaps_range(mmio_ro_ranges, msix->pba.first,
+ msix->pba.last));
++
++ zap_on_error = true;
++ }
++ else if ( !msix->table.first )
++ {
++ pci_conf_write16(dev->sbdf, msix_control_reg(pos), control);
++ xfree(entry);
++ return -ENODATA;
+ }
++ else
++ table_paddr = (msix->table.first << PAGE_SHIFT) +
++ (table_offset & ~PCI_MSIX_BIRMASK & ~PAGE_MASK);
+
+ if ( entry )
+ {
+@@ -886,8 +897,15 @@ static int msix_capability_init(struct p
+
+ if ( idx < 0 )
+ {
+- pci_conf_write16(dev->sbdf, msix_control_reg(pos),
+- control & ~PCI_MSIX_FLAGS_ENABLE);
++ if ( zap_on_error )
++ {
++ msix->table.first = 0;
++ msix->pba.first = 0;
++
++ control &= ~PCI_MSIX_FLAGS_ENABLE;
++ }
++
++ pci_conf_write16(dev->sbdf, msix_control_reg(pos), control);
+ xfree(entry);
+ return idx;
+ }
+@@ -1076,9 +1094,14 @@ static void _pci_cleanup_msix(struct arc
+ if ( rangeset_remove_range(mmio_ro_ranges, msix->table.first,
+ msix->table.last) )
+ WARN();
++ msix->table.first = 0;
++ msix->table.last = 0;
++
+ if ( rangeset_remove_range(mmio_ro_ranges, msix->pba.first,
+ msix->pba.last) )
+ WARN();
++ msix->pba.first = 0;
++ msix->pba.last = 0;
+ }
+ }
+
diff --git a/xsa338.patch b/xsa338.patch
new file mode 100644
index 0000000..131853c
--- /dev/null
+++ b/xsa338.patch
@@ -0,0 +1,39 @@
+evtchn: relax port_is_valid()
+
+To avoid ports potentially becoming invalid behind the back of certain
+other functions (due to ->max_evtchn shrinking) because of
+- a guest invoking evtchn_reset() and from a 2nd vCPU opening new
+ channels in parallel (see also XSA-343),
+- alloc_unbound_xen_event_channel() produced channels living above the
+ 2-level range (see also XSA-342),
+drop the max_evtchns check from port_is_valid(). For a port for which
+the function once returned "true", the returned value may not turn into
+"false" later on. The function's result may only depend on bounds which
+can only ever grow (which is the case for d->valid_evtchns).
+
+This also eliminates a false sense of safety, utilized by some of the
+users (see again XSA-343): Without a suitable lock held, d->max_evtchns
+may change at any time, and hence deducing that certain other operations
+are safe when port_is_valid() returned true is not legitimate. The
+opportunities to abuse this may get widened by the change here
+(depending on guest and host configuration), but will be taken care of
+by the other XSA.
+
+This is XSA-338.
+
+Fixes: 48974e6ce52e ("evtchn: use a per-domain variable for the max number of event channels")
+Signed-off-by: Jan Beulich <jbeulich@suse.com>
+Reviewed-by: Stefano Stabellini <sstabellini@kernel.org>
+Reviewed-by: Julien Grall <jgrall@amazon.com>
+
+--- a/xen/include/xen/event.h
++++ b/xen/include/xen/event.h
+@@ -107,8 +107,6 @@ void notify_via_xen_event_channel(struct
+
+ static inline bool_t port_is_valid(struct domain *d, unsigned int p)
+ {
+- if ( p >= d->max_evtchns )
+- return 0;
+ return p < read_atomic(&d->valid_evtchns);
+ }
+
diff --git a/xsa339.patch b/xsa339.patch
new file mode 100644
index 0000000..4a67286
--- /dev/null
+++ b/xsa339.patch
@@ -0,0 +1,71 @@
+x86/pv: Avoid double exception injection
+
+There is at least one path (SYSENTER with NT set, Xen converts to #GP) which
+ends up injecting the #GP fault twice, first in compat_sysenter(), and then a
+second time in compat_test_all_events(), due to the stale TBF_EXCEPTION left
+in TRAPBOUNCE_flags.
+
+The guest kernel sees the second fault first, which is a kernel level #GP
+pointing at the head of the #GP handler, and is therefore a userspace
+trigger-able DoS.
+
+This particular bug has bitten us several times before, so rearrange
+{compat_,}create_bounce_frame() to clobber TRAPBOUNCE on success, rather than
+leaving this task to one area of code which isn't used uniformly.
+
+Other scenarios which might result in a double injection (e.g. two calls
+directly to compat_create_bounce_frame) will now crash the guest, which is far
+more obvious than letting the kernel run with corrupt state.
+
+This is XSA-339.
+
+Fixes: fdac9515607b ("x86: clear EFLAGS.NT in SYSENTER entry path")
+Signed-off-by: Andrew Cooper <andrew.cooper3@citrix.com>
+Reviewed-by: Jan Beulich <jbeulich@suse.com>
+
+--- a/xen/arch/x86/x86_64/compat/entry.S
++++ b/xen/arch/x86/x86_64/compat/entry.S
+@@ -78,7 +78,6 @@ compat_process_softirqs:
+ sti
+ .Lcompat_bounce_exception:
+ call compat_create_bounce_frame
+- movb $0, TRAPBOUNCE_flags(%rdx)
+ jmp compat_test_all_events
+
+ ALIGN
+@@ -349,7 +348,13 @@ __UNLIKELY_END(compat_bounce_null_select
+ movl %eax,UREGS_cs+8(%rsp)
+ movl TRAPBOUNCE_eip(%rdx),%eax
+ movl %eax,UREGS_rip+8(%rsp)
++
++ /* Trapbounce complete. Clobber state to avoid an erroneous second injection. */
++ xor %eax, %eax
++ mov %ax, TRAPBOUNCE_cs(%rdx)
++ mov %al, TRAPBOUNCE_flags(%rdx)
+ ret
++
+ .section .fixup,"ax"
+ .Lfx13:
+ xorl %edi,%edi
+--- a/xen/arch/x86/x86_64/entry.S
++++ b/xen/arch/x86/x86_64/entry.S
+@@ -90,7 +90,6 @@ process_softirqs:
+ sti
+ .Lbounce_exception:
+ call create_bounce_frame
+- movb $0, TRAPBOUNCE_flags(%rdx)
+ jmp test_all_events
+
+ ALIGN
+@@ -495,6 +494,11 @@ UNLIKELY_START(z, create_bounce_frame_ba
+ jmp asm_domain_crash_synchronous /* Does not return */
+ __UNLIKELY_END(create_bounce_frame_bad_bounce_ip)
+ movq %rax,UREGS_rip+8(%rsp)
++
++ /* Trapbounce complete. Clobber state to avoid an erroneous second injection. */
++ xor %eax, %eax
++ mov %rax, TRAPBOUNCE_eip(%rdx)
++ mov %al, TRAPBOUNCE_flags(%rdx)
+ ret
+
+ .pushsection .fixup, "ax", @progbits
diff --git a/xsa340.patch b/xsa340.patch
new file mode 100644
index 0000000..80aa95a
--- /dev/null
+++ b/xsa340.patch
@@ -0,0 +1,62 @@
+xen/evtchn: Add missing barriers when accessing/allocating an event channel
+
+While the allocation of a bucket is always performed with the per-domain
+lock, the bucket may be accessed without the lock taken (for instance, see
+evtchn_send()).
+
+Instead such sites relies on port_is_valid() to return a non-zero value
+when the port has a struct evtchn associated to it. The function will
+mostly check whether the port is less than d->valid_evtchns as all the
+buckets/event channels should be allocated up to that point.
+
+Unfortunately a compiler is free to re-order the assignment in
+evtchn_allocate_port() so it would be possible to have d->valid_evtchns
+updated before the new bucket has finish to allocate.
+
+Additionally on Arm, even if this was compiled "correctly", the
+processor can still re-order the memory access.
+
+Add a write memory barrier in the allocation side and a read memory
+barrier when the port is valid to prevent any re-ordering issue.
+
+This is XSA-340.
+
+Signed-off-by: Julien Grall <jgrall@amazon.com>
+
+--- a/xen/common/event_channel.c
++++ b/xen/common/event_channel.c
+@@ -178,6 +178,13 @@ int evtchn_allocate_port(struct domain *
+ return -ENOMEM;
+ bucket_from_port(d, port) = chn;
+
++ /*
++ * d->valid_evtchns is used to check whether the bucket can be
++ * accessed without the per-domain lock. Therefore,
++ * d->valid_evtchns should be seen *after* the new bucket has
++ * been setup.
++ */
++ smp_wmb();
+ write_atomic(&d->valid_evtchns, d->valid_evtchns + EVTCHNS_PER_BUCKET);
+ }
+
+--- a/xen/include/xen/event.h
++++ b/xen/include/xen/event.h
+@@ -107,7 +107,17 @@ void notify_via_xen_event_channel(struct
+
+ static inline bool_t port_is_valid(struct domain *d, unsigned int p)
+ {
+- return p < read_atomic(&d->valid_evtchns);
++ if ( p >= read_atomic(&d->valid_evtchns) )
++ return false;
++
++ /*
++ * The caller will usually access the event channel afterwards and
++ * may be done without taking the per-domain lock. The barrier is
++ * going in pair the smp_wmb() barrier in evtchn_allocate_port().
++ */
++ smp_rmb();
++
++ return true;
+ }
+
+ static inline struct evtchn *evtchn_from_port(struct domain *d, unsigned int p)
diff --git a/xsa342.patch b/xsa342.patch
new file mode 100644
index 0000000..6638271
--- /dev/null
+++ b/xsa342.patch
@@ -0,0 +1,144 @@
+evtchn/x86: enforce correct upper limit for 32-bit guests
+
+The recording of d->max_evtchns in evtchn_2l_init(), in particular with
+the limited set of callers of the function, is insufficient. Neither for
+PV nor for HVM guests the bitness is known at domain_create() time, yet
+the upper bound in 2-level mode depends upon guest bitness. Recording
+too high a limit "allows" x86 32-bit domains to open not properly usable
+event channels, management of which (inside Xen) would then result in
+corruption of the shared info and vCPU info structures.
+
+Keep the upper limit dynamic for the 2-level case, introducing a helper
+function to retrieve the effective limit. This helper is now supposed to
+be private to the event channel code. The used in do_poll() and
+domain_dump_evtchn_info() weren't consistent with port uses elsewhere
+and hence get switched to port_is_valid().
+
+Furthermore FIFO mode's setup_ports() gets adjusted to loop only up to
+the prior ABI limit, rather than all the way up to the new one.
+
+Finally a word on the change to do_poll(): Accessing ->max_evtchns
+without holding a suitable lock was never safe, as it as well as
+->evtchn_port_ops may change behind do_poll()'s back. Using
+port_is_valid() instead widens some the window for potential abuse,
+until we've dealt with the race altogether (see XSA-343).
+
+This is XSA-342.
+
+Fixes: 48974e6ce52e ("evtchn: use a per-domain variable for the max number of event channels")
+Reported-by: Julien Grall <jgrall@amazon.com>
+Signed-off-by: Jan Beulich <jbeulich@suse.com>
+Reviewed-by: Stefano Stabellini <sstabellini@kernel.org>
+Reviewed-by: Julien Grall <jgrall@amazon.com>
+
+--- a/xen/common/event_2l.c
++++ b/xen/common/event_2l.c
+@@ -103,7 +103,6 @@ static const struct evtchn_port_ops evtc
+ void evtchn_2l_init(struct domain *d)
+ {
+ d->evtchn_port_ops = &evtchn_port_ops_2l;
+- d->max_evtchns = BITS_PER_EVTCHN_WORD(d) * BITS_PER_EVTCHN_WORD(d);
+ }
+
+ /*
+--- a/xen/common/event_channel.c
++++ b/xen/common/event_channel.c
+@@ -151,7 +151,7 @@ static void free_evtchn_bucket(struct do
+
+ int evtchn_allocate_port(struct domain *d, evtchn_port_t port)
+ {
+- if ( port > d->max_evtchn_port || port >= d->max_evtchns )
++ if ( port > d->max_evtchn_port || port >= max_evtchns(d) )
+ return -ENOSPC;
+
+ if ( port_is_valid(d, port) )
+@@ -1396,13 +1396,11 @@ static void domain_dump_evtchn_info(stru
+
+ spin_lock(&d->event_lock);
+
+- for ( port = 1; port < d->max_evtchns; ++port )
++ for ( port = 1; port_is_valid(d, port); ++port )
+ {
+ const struct evtchn *chn;
+ char *ssid;
+
+- if ( !port_is_valid(d, port) )
+- continue;
+ chn = evtchn_from_port(d, port);
+ if ( chn->state == ECS_FREE )
+ continue;
+--- a/xen/common/event_fifo.c
++++ b/xen/common/event_fifo.c
+@@ -478,7 +478,7 @@ static void cleanup_event_array(struct d
+ d->evtchn_fifo = NULL;
+ }
+
+-static void setup_ports(struct domain *d)
++static void setup_ports(struct domain *d, unsigned int prev_evtchns)
+ {
+ unsigned int port;
+
+@@ -488,7 +488,7 @@ static void setup_ports(struct domain *d
+ * - save its pending state.
+ * - set default priority.
+ */
+- for ( port = 1; port < d->max_evtchns; port++ )
++ for ( port = 1; port < prev_evtchns; port++ )
+ {
+ struct evtchn *evtchn;
+
+@@ -546,6 +546,8 @@ int evtchn_fifo_init_control(struct evtc
+ if ( !d->evtchn_fifo )
+ {
+ struct vcpu *vcb;
++ /* Latch the value before it changes during setup_event_array(). */
++ unsigned int prev_evtchns = max_evtchns(d);
+
+ for_each_vcpu ( d, vcb ) {
+ rc = setup_control_block(vcb);
+@@ -562,8 +564,7 @@ int evtchn_fifo_init_control(struct evtc
+ goto error;
+
+ d->evtchn_port_ops = &evtchn_port_ops_fifo;
+- d->max_evtchns = EVTCHN_FIFO_NR_CHANNELS;
+- setup_ports(d);
++ setup_ports(d, prev_evtchns);
+ }
+ else
+ rc = map_control_block(v, gfn, offset);
+--- a/xen/common/schedule.c
++++ b/xen/common/schedule.c
+@@ -1434,7 +1434,7 @@ static long do_poll(struct sched_poll *s
+ goto out;
+
+ rc = -EINVAL;
+- if ( port >= d->max_evtchns )
++ if ( !port_is_valid(d, port) )
+ goto out;
+
+ rc = 0;
+--- a/xen/include/xen/event.h
++++ b/xen/include/xen/event.h
+@@ -105,6 +105,12 @@ void notify_via_xen_event_channel(struct
+ #define bucket_from_port(d, p) \
+ ((group_from_port(d, p))[((p) % EVTCHNS_PER_GROUP) / EVTCHNS_PER_BUCKET])
+
++static inline unsigned int max_evtchns(const struct domain *d)
++{
++ return d->evtchn_fifo ? EVTCHN_FIFO_NR_CHANNELS
++ : BITS_PER_EVTCHN_WORD(d) * BITS_PER_EVTCHN_WORD(d);
++}
++
+ static inline bool_t port_is_valid(struct domain *d, unsigned int p)
+ {
+ if ( p >= read_atomic(&d->valid_evtchns) )
+--- a/xen/include/xen/sched.h
++++ b/xen/include/xen/sched.h
+@@ -382,7 +382,6 @@ struct domain
+ /* Event channel information. */
+ struct evtchn *evtchn; /* first bucket only */
+ struct evtchn **evtchn_group[NR_EVTCHN_GROUPS]; /* all other buckets */
+- unsigned int max_evtchns; /* number supported by ABI */
+ unsigned int max_evtchn_port; /* max permitted port number */
+ unsigned int valid_evtchns; /* number of allocated event channels */
+ spinlock_t event_lock;
diff --git a/xsa343-1.patch b/xsa343-1.patch
new file mode 100644
index 0000000..04d7e44
--- /dev/null
+++ b/xsa343-1.patch
@@ -0,0 +1,189 @@
+evtchn: evtchn_reset() may not succeed with still-open ports
+
+While the function closes all ports, it does so without holding any
+lock, and hence racing requests may be issued causing new ports to get
+opened. This would have been problematic in particular if such a newly
+opened port had a port number above the new implementation limit (i.e.
+when switching from FIFO to 2-level) after the reset, as prior to
+"evtchn: relax port_is_valid()" this could have led to e.g.
+evtchn_close()'s "BUG_ON(!port_is_valid(d2, port2))" to trigger.
+
+Introduce a counter of active ports and check that it's (still) no
+larger then the number of Xen internally used ones after obtaining the
+necessary lock in evtchn_reset().
+
+As to the access model of the new {active,xen}_evtchns fields - while
+all writes get done using write_atomic(), reads ought to use
+read_atomic() only when outside of a suitably locked region.
+
+Note that as of now evtchn_bind_virq() and evtchn_bind_ipi() don't have
+a need to call check_free_port().
+
+This is part of XSA-343.
+
+Signed-off-by: Jan Beulich <jbeulich@suse.com>
+Reviewed-by: Stefano Stabellini <sstabellini@kernel.org>
+Reviewed-by: Julien Grall <jgrall@amazon.com>
+
+--- a/xen/common/event_channel.c
++++ b/xen/common/event_channel.c
+@@ -188,6 +188,8 @@ int evtchn_allocate_port(struct domain *
+ write_atomic(&d->valid_evtchns, d->valid_evtchns + EVTCHNS_PER_BUCKET);
+ }
+
++ write_atomic(&d->active_evtchns, d->active_evtchns + 1);
++
+ return 0;
+ }
+
+@@ -211,11 +213,26 @@ static int get_free_port(struct domain *
+ return -ENOSPC;
+ }
+
++/*
++ * Check whether a port is still marked free, and if so update the domain
++ * counter accordingly. To be used on function exit paths.
++ */
++static void check_free_port(struct domain *d, evtchn_port_t port)
++{
++ if ( port_is_valid(d, port) &&
++ evtchn_from_port(d, port)->state == ECS_FREE )
++ write_atomic(&d->active_evtchns, d->active_evtchns - 1);
++}
++
+ void evtchn_free(struct domain *d, struct evtchn *chn)
+ {
+ /* Clear pending event to avoid unexpected behavior on re-bind. */
+ evtchn_port_clear_pending(d, chn);
+
++ if ( consumer_is_xen(chn) )
++ write_atomic(&d->xen_evtchns, d->xen_evtchns - 1);
++ write_atomic(&d->active_evtchns, d->active_evtchns - 1);
++
+ /* Reset binding to vcpu0 when the channel is freed. */
+ chn->state = ECS_FREE;
+ chn->notify_vcpu_id = 0;
+@@ -258,6 +275,7 @@ static long evtchn_alloc_unbound(evtchn_
+ alloc->port = port;
+
+ out:
++ check_free_port(d, port);
+ spin_unlock(&d->event_lock);
+ rcu_unlock_domain(d);
+
+@@ -351,6 +369,7 @@ static long evtchn_bind_interdomain(evtc
+ bind->local_port = lport;
+
+ out:
++ check_free_port(ld, lport);
+ spin_unlock(&ld->event_lock);
+ if ( ld != rd )
+ spin_unlock(&rd->event_lock);
+@@ -488,7 +507,7 @@ static long evtchn_bind_pirq(evtchn_bind
+ struct domain *d = current->domain;
+ struct vcpu *v = d->vcpu[0];
+ struct pirq *info;
+- int port, pirq = bind->pirq;
++ int port = 0, pirq = bind->pirq;
+ long rc;
+
+ if ( (pirq < 0) || (pirq >= d->nr_pirqs) )
+@@ -536,6 +555,7 @@ static long evtchn_bind_pirq(evtchn_bind
+ arch_evtchn_bind_pirq(d, pirq);
+
+ out:
++ check_free_port(d, port);
+ spin_unlock(&d->event_lock);
+
+ return rc;
+@@ -1011,10 +1031,10 @@ int evtchn_unmask(unsigned int port)
+ return 0;
+ }
+
+-
+ int evtchn_reset(struct domain *d)
+ {
+ unsigned int i;
++ int rc = 0;
+
+ if ( d != current->domain && !d->controller_pause_count )
+ return -EINVAL;
+@@ -1024,7 +1044,9 @@ int evtchn_reset(struct domain *d)
+
+ spin_lock(&d->event_lock);
+
+- if ( d->evtchn_fifo )
++ if ( d->active_evtchns > d->xen_evtchns )
++ rc = -EAGAIN;
++ else if ( d->evtchn_fifo )
+ {
+ /* Switching back to 2-level ABI. */
+ evtchn_fifo_destroy(d);
+@@ -1033,7 +1055,7 @@ int evtchn_reset(struct domain *d)
+
+ spin_unlock(&d->event_lock);
+
+- return 0;
++ return rc;
+ }
+
+ static long evtchn_set_priority(const struct evtchn_set_priority *set_priority)
+@@ -1219,10 +1241,9 @@ int alloc_unbound_xen_event_channel(
+
+ spin_lock(&ld->event_lock);
+
+- rc = get_free_port(ld);
++ port = rc = get_free_port(ld);
+ if ( rc < 0 )
+ goto out;
+- port = rc;
+ chn = evtchn_from_port(ld, port);
+
+ rc = xsm_evtchn_unbound(XSM_TARGET, ld, chn, remote_domid);
+@@ -1238,7 +1259,10 @@ int alloc_unbound_xen_event_channel(
+
+ spin_unlock(&chn->lock);
+
++ write_atomic(&ld->xen_evtchns, ld->xen_evtchns + 1);
++
+ out:
++ check_free_port(ld, port);
+ spin_unlock(&ld->event_lock);
+
+ return rc < 0 ? rc : port;
+@@ -1314,6 +1338,7 @@ int evtchn_init(struct domain *d, unsign
+ return -EINVAL;
+ }
+ evtchn_from_port(d, 0)->state = ECS_RESERVED;
++ write_atomic(&d->active_evtchns, 0);
+
+ #if MAX_VIRT_CPUS > BITS_PER_LONG
+ d->poll_mask = xzalloc_array(unsigned long, BITS_TO_LONGS(d->max_vcpus));
+@@ -1340,6 +1365,8 @@ void evtchn_destroy(struct domain *d)
+ for ( i = 0; port_is_valid(d, i); i++ )
+ evtchn_close(d, i, 0);
+
++ ASSERT(!d->active_evtchns);
++
+ clear_global_virq_handlers(d);
+
+ evtchn_fifo_destroy(d);
+--- a/xen/include/xen/sched.h
++++ b/xen/include/xen/sched.h
+@@ -384,6 +384,16 @@ struct domain
+ struct evtchn **evtchn_group[NR_EVTCHN_GROUPS]; /* all other buckets */
+ unsigned int max_evtchn_port; /* max permitted port number */
+ unsigned int valid_evtchns; /* number of allocated event channels */
++ /*
++ * Number of in-use event channels. Writers should use write_atomic().
++ * Readers need to use read_atomic() only when not holding event_lock.
++ */
++ unsigned int active_evtchns;
++ /*
++ * Number of event channels used internally by Xen (not subject to
++ * EVTCHNOP_reset). Read/write access like for active_evtchns.
++ */
++ unsigned int xen_evtchns;
+ spinlock_t event_lock;
+ const struct evtchn_port_ops *evtchn_port_ops;
+ struct evtchn_fifo_domain *evtchn_fifo;
diff --git a/xsa343-2.patch b/xsa343-2.patch
new file mode 100644
index 0000000..e38fb65
--- /dev/null
+++ b/xsa343-2.patch
@@ -0,0 +1,289 @@
+evtchn: convert per-channel lock to be IRQ-safe
+
+... in order for send_guest_{global,vcpu}_virq() to be able to make use
+of it.
+
+This is part of XSA-343.
+
+Signed-off-by: Jan Beulich <jbeulich@suse.com>
+Acked-by: Julien Grall <jgrall@amazon.com>
+
+--- a/xen/common/event_channel.c
++++ b/xen/common/event_channel.c
+@@ -248,6 +248,7 @@ static long evtchn_alloc_unbound(evtchn_
+ int port;
+ domid_t dom = alloc->dom;
+ long rc;
++ unsigned long flags;
+
+ d = rcu_lock_domain_by_any_id(dom);
+ if ( d == NULL )
+@@ -263,14 +264,14 @@ static long evtchn_alloc_unbound(evtchn_
+ if ( rc )
+ goto out;
+
+- spin_lock(&chn->lock);
++ spin_lock_irqsave(&chn->lock, flags);
+
+ chn->state = ECS_UNBOUND;
+ if ( (chn->u.unbound.remote_domid = alloc->remote_dom) == DOMID_SELF )
+ chn->u.unbound.remote_domid = current->domain->domain_id;
+ evtchn_port_init(d, chn);
+
+- spin_unlock(&chn->lock);
++ spin_unlock_irqrestore(&chn->lock, flags);
+
+ alloc->port = port;
+
+@@ -283,26 +284,32 @@ static long evtchn_alloc_unbound(evtchn_
+ }
+
+
+-static void double_evtchn_lock(struct evtchn *lchn, struct evtchn *rchn)
++static unsigned long double_evtchn_lock(struct evtchn *lchn,
++ struct evtchn *rchn)
+ {
+- if ( lchn < rchn )
++ unsigned long flags;
++
++ if ( lchn <= rchn )
+ {
+- spin_lock(&lchn->lock);
+- spin_lock(&rchn->lock);
++ spin_lock_irqsave(&lchn->lock, flags);
++ if ( lchn != rchn )
++ spin_lock(&rchn->lock);
+ }
+ else
+ {
+- if ( lchn != rchn )
+- spin_lock(&rchn->lock);
++ spin_lock_irqsave(&rchn->lock, flags);
+ spin_lock(&lchn->lock);
+ }
++
++ return flags;
+ }
+
+-static void double_evtchn_unlock(struct evtchn *lchn, struct evtchn *rchn)
++static void double_evtchn_unlock(struct evtchn *lchn, struct evtchn *rchn,
++ unsigned long flags)
+ {
+- spin_unlock(&lchn->lock);
+ if ( lchn != rchn )
+- spin_unlock(&rchn->lock);
++ spin_unlock(&lchn->lock);
++ spin_unlock_irqrestore(&rchn->lock, flags);
+ }
+
+ static long evtchn_bind_interdomain(evtchn_bind_interdomain_t *bind)
+@@ -312,6 +319,7 @@ static long evtchn_bind_interdomain(evtc
+ int lport, rport = bind->remote_port;
+ domid_t rdom = bind->remote_dom;
+ long rc;
++ unsigned long flags;
+
+ if ( rdom == DOMID_SELF )
+ rdom = current->domain->domain_id;
+@@ -347,7 +355,7 @@ static long evtchn_bind_interdomain(evtc
+ if ( rc )
+ goto out;
+
+- double_evtchn_lock(lchn, rchn);
++ flags = double_evtchn_lock(lchn, rchn);
+
+ lchn->u.interdomain.remote_dom = rd;
+ lchn->u.interdomain.remote_port = rport;
+@@ -364,7 +372,7 @@ static long evtchn_bind_interdomain(evtc
+ */
+ evtchn_port_set_pending(ld, lchn->notify_vcpu_id, lchn);
+
+- double_evtchn_unlock(lchn, rchn);
++ double_evtchn_unlock(lchn, rchn, flags);
+
+ bind->local_port = lport;
+
+@@ -387,6 +395,7 @@ int evtchn_bind_virq(evtchn_bind_virq_t
+ struct domain *d = current->domain;
+ int virq = bind->virq, vcpu = bind->vcpu;
+ int rc = 0;
++ unsigned long flags;
+
+ if ( (virq < 0) || (virq >= ARRAY_SIZE(v->virq_to_evtchn)) )
+ return -EINVAL;
+@@ -424,14 +433,14 @@ int evtchn_bind_virq(evtchn_bind_virq_t
+
+ chn = evtchn_from_port(d, port);
+
+- spin_lock(&chn->lock);
++ spin_lock_irqsave(&chn->lock, flags);
+
+ chn->state = ECS_VIRQ;
+ chn->notify_vcpu_id = vcpu;
+ chn->u.virq = virq;
+ evtchn_port_init(d, chn);
+
+- spin_unlock(&chn->lock);
++ spin_unlock_irqrestore(&chn->lock, flags);
+
+ v->virq_to_evtchn[virq] = bind->port = port;
+
+@@ -448,6 +457,7 @@ static long evtchn_bind_ipi(evtchn_bind_
+ struct domain *d = current->domain;
+ int port, vcpu = bind->vcpu;
+ long rc = 0;
++ unsigned long flags;
+
+ if ( domain_vcpu(d, vcpu) == NULL )
+ return -ENOENT;
+@@ -459,13 +469,13 @@ static long evtchn_bind_ipi(evtchn_bind_
+
+ chn = evtchn_from_port(d, port);
+
+- spin_lock(&chn->lock);
++ spin_lock_irqsave(&chn->lock, flags);
+
+ chn->state = ECS_IPI;
+ chn->notify_vcpu_id = vcpu;
+ evtchn_port_init(d, chn);
+
+- spin_unlock(&chn->lock);
++ spin_unlock_irqrestore(&chn->lock, flags);
+
+ bind->port = port;
+
+@@ -509,6 +519,7 @@ static long evtchn_bind_pirq(evtchn_bind
+ struct pirq *info;
+ int port = 0, pirq = bind->pirq;
+ long rc;
++ unsigned long flags;
+
+ if ( (pirq < 0) || (pirq >= d->nr_pirqs) )
+ return -EINVAL;
+@@ -541,14 +552,14 @@ static long evtchn_bind_pirq(evtchn_bind
+ goto out;
+ }
+
+- spin_lock(&chn->lock);
++ spin_lock_irqsave(&chn->lock, flags);
+
+ chn->state = ECS_PIRQ;
+ chn->u.pirq.irq = pirq;
+ link_pirq_port(port, chn, v);
+ evtchn_port_init(d, chn);
+
+- spin_unlock(&chn->lock);
++ spin_unlock_irqrestore(&chn->lock, flags);
+
+ bind->port = port;
+
+@@ -569,6 +580,7 @@ int evtchn_close(struct domain *d1, int
+ struct evtchn *chn1, *chn2;
+ int port2;
+ long rc = 0;
++ unsigned long flags;
+
+ again:
+ spin_lock(&d1->event_lock);
+@@ -668,14 +680,14 @@ int evtchn_close(struct domain *d1, int
+ BUG_ON(chn2->state != ECS_INTERDOMAIN);
+ BUG_ON(chn2->u.interdomain.remote_dom != d1);
+
+- double_evtchn_lock(chn1, chn2);
++ flags = double_evtchn_lock(chn1, chn2);
+
+ evtchn_free(d1, chn1);
+
+ chn2->state = ECS_UNBOUND;
+ chn2->u.unbound.remote_domid = d1->domain_id;
+
+- double_evtchn_unlock(chn1, chn2);
++ double_evtchn_unlock(chn1, chn2, flags);
+
+ goto out;
+
+@@ -683,9 +695,9 @@ int evtchn_close(struct domain *d1, int
+ BUG();
+ }
+
+- spin_lock(&chn1->lock);
++ spin_lock_irqsave(&chn1->lock, flags);
+ evtchn_free(d1, chn1);
+- spin_unlock(&chn1->lock);
++ spin_unlock_irqrestore(&chn1->lock, flags);
+
+ out:
+ if ( d2 != NULL )
+@@ -705,13 +717,14 @@ int evtchn_send(struct domain *ld, unsig
+ struct evtchn *lchn, *rchn;
+ struct domain *rd;
+ int rport, ret = 0;
++ unsigned long flags;
+
+ if ( !port_is_valid(ld, lport) )
+ return -EINVAL;
+
+ lchn = evtchn_from_port(ld, lport);
+
+- spin_lock(&lchn->lock);
++ spin_lock_irqsave(&lchn->lock, flags);
+
+ /* Guest cannot send via a Xen-attached event channel. */
+ if ( unlikely(consumer_is_xen(lchn)) )
+@@ -746,7 +759,7 @@ int evtchn_send(struct domain *ld, unsig
+ }
+
+ out:
+- spin_unlock(&lchn->lock);
++ spin_unlock_irqrestore(&lchn->lock, flags);
+
+ return ret;
+ }
+@@ -1238,6 +1251,7 @@ int alloc_unbound_xen_event_channel(
+ {
+ struct evtchn *chn;
+ int port, rc;
++ unsigned long flags;
+
+ spin_lock(&ld->event_lock);
+
+@@ -1250,14 +1264,14 @@ int alloc_unbound_xen_event_channel(
+ if ( rc )
+ goto out;
+
+- spin_lock(&chn->lock);
++ spin_lock_irqsave(&chn->lock, flags);
+
+ chn->state = ECS_UNBOUND;
+ chn->xen_consumer = get_xen_consumer(notification_fn);
+ chn->notify_vcpu_id = lvcpu;
+ chn->u.unbound.remote_domid = remote_domid;
+
+- spin_unlock(&chn->lock);
++ spin_unlock_irqrestore(&chn->lock, flags);
+
+ write_atomic(&ld->xen_evtchns, ld->xen_evtchns + 1);
+
+@@ -1280,11 +1294,12 @@ void notify_via_xen_event_channel(struct
+ {
+ struct evtchn *lchn, *rchn;
+ struct domain *rd;
++ unsigned long flags;
+
+ ASSERT(port_is_valid(ld, lport));
+ lchn = evtchn_from_port(ld, lport);
+
+- spin_lock(&lchn->lock);
++ spin_lock_irqsave(&lchn->lock, flags);
+
+ if ( likely(lchn->state == ECS_INTERDOMAIN) )
+ {
+@@ -1294,7 +1309,7 @@ void notify_via_xen_event_channel(struct
+ evtchn_port_set_pending(rd, rchn->notify_vcpu_id, rchn);
+ }
+
+- spin_unlock(&lchn->lock);
++ spin_unlock_irqrestore(&lchn->lock, flags);
+ }
+
+ void evtchn_check_pollers(struct domain *d, unsigned int port)
diff --git a/xsa343-3.patch b/xsa343-3.patch
new file mode 100644
index 0000000..19d9252
--- /dev/null
+++ b/xsa343-3.patch
@@ -0,0 +1,379 @@
+evtchn: address races with evtchn_reset()
+
+Neither d->evtchn_port_ops nor max_evtchns(d) may be used in an entirely
+lock-less manner, as both may change by a racing evtchn_reset(). In the
+common case, at least one of the domain's event lock or the per-channel
+lock needs to be held. In the specific case of the inter-domain sending
+by evtchn_send() and notify_via_xen_event_channel() holding the other
+side's per-channel lock is sufficient, as the channel can't change state
+without both per-channel locks held. Without such a channel changing
+state, evtchn_reset() can't complete successfully.
+
+Lock-free accesses continue to be permitted for the shim (calling some
+otherwise internal event channel functions), as this happens while the
+domain is in effectively single-threaded mode. Special care also needs
+taking for the shim's marking of in-use ports as ECS_RESERVED (allowing
+use of such ports in the shim case is okay because switching into and
+hence also out of FIFO mode is impossible there).
+
+As a side effect, certain operations on Xen bound event channels which
+were mistakenly permitted so far (e.g. unmask or poll) will be refused
+now.
+
+This is part of XSA-343.
+
+Signed-off-by: Jan Beulich <jbeulich@suse.com>
+Acked-by: Julien Grall <jgrall@amazon.com>
+
+--- a/xen/arch/x86/irq.c
++++ b/xen/arch/x86/irq.c
+@@ -2474,14 +2474,24 @@ static void dump_irqs(unsigned char key)
+
+ for ( i = 0; i < action->nr_guests; )
+ {
++ struct evtchn *evtchn;
++ unsigned int pending = 2, masked = 2;
++
+ d = action->guest[i++];
+ pirq = domain_irq_to_pirq(d, irq);
+ info = pirq_info(d, pirq);
++ evtchn = evtchn_from_port(d, info->evtchn);
++ local_irq_disable();
++ if ( spin_trylock(&evtchn->lock) )
++ {
++ pending = evtchn_is_pending(d, evtchn);
++ masked = evtchn_is_masked(d, evtchn);
++ spin_unlock(&evtchn->lock);
++ }
++ local_irq_enable();
+ printk("d%d:%3d(%c%c%c)%c",
+- d->domain_id, pirq,
+- evtchn_port_is_pending(d, info->evtchn) ? 'P' : '-',
+- evtchn_port_is_masked(d, info->evtchn) ? 'M' : '-',
+- info->masked ? 'M' : '-',
++ d->domain_id, pirq, "-P?"[pending],
++ "-M?"[masked], info->masked ? 'M' : '-',
+ i < action->nr_guests ? ',' : '\n');
+ }
+ }
+--- a/xen/arch/x86/pv/shim.c
++++ b/xen/arch/x86/pv/shim.c
+@@ -660,8 +660,11 @@ void pv_shim_inject_evtchn(unsigned int
+ if ( port_is_valid(guest, port) )
+ {
+ struct evtchn *chn = evtchn_from_port(guest, port);
++ unsigned long flags;
+
++ spin_lock_irqsave(&chn->lock, flags);
+ evtchn_port_set_pending(guest, chn->notify_vcpu_id, chn);
++ spin_unlock_irqrestore(&chn->lock, flags);
+ }
+ }
+
+--- a/xen/common/event_2l.c
++++ b/xen/common/event_2l.c
+@@ -63,8 +63,10 @@ static void evtchn_2l_unmask(struct doma
+ }
+ }
+
+-static bool evtchn_2l_is_pending(const struct domain *d, evtchn_port_t port)
++static bool evtchn_2l_is_pending(const struct domain *d,
++ const struct evtchn *evtchn)
+ {
++ evtchn_port_t port = evtchn->port;
+ unsigned int max_ports = BITS_PER_EVTCHN_WORD(d) * BITS_PER_EVTCHN_WORD(d);
+
+ ASSERT(port < max_ports);
+@@ -72,8 +74,10 @@ static bool evtchn_2l_is_pending(const s
+ guest_test_bit(d, port, &shared_info(d, evtchn_pending)));
+ }
+
+-static bool evtchn_2l_is_masked(const struct domain *d, evtchn_port_t port)
++static bool evtchn_2l_is_masked(const struct domain *d,
++ const struct evtchn *evtchn)
+ {
++ evtchn_port_t port = evtchn->port;
+ unsigned int max_ports = BITS_PER_EVTCHN_WORD(d) * BITS_PER_EVTCHN_WORD(d);
+
+ ASSERT(port < max_ports);
+--- a/xen/common/event_channel.c
++++ b/xen/common/event_channel.c
+@@ -156,8 +156,9 @@ int evtchn_allocate_port(struct domain *
+
+ if ( port_is_valid(d, port) )
+ {
+- if ( evtchn_from_port(d, port)->state != ECS_FREE ||
+- evtchn_port_is_busy(d, port) )
++ const struct evtchn *chn = evtchn_from_port(d, port);
++
++ if ( chn->state != ECS_FREE || evtchn_is_busy(d, chn) )
+ return -EBUSY;
+ }
+ else
+@@ -774,6 +775,7 @@ void send_guest_vcpu_virq(struct vcpu *v
+ unsigned long flags;
+ int port;
+ struct domain *d;
++ struct evtchn *chn;
+
+ ASSERT(!virq_is_global(virq));
+
+@@ -784,7 +786,10 @@ void send_guest_vcpu_virq(struct vcpu *v
+ goto out;
+
+ d = v->domain;
+- evtchn_port_set_pending(d, v->vcpu_id, evtchn_from_port(d, port));
++ chn = evtchn_from_port(d, port);
++ spin_lock(&chn->lock);
++ evtchn_port_set_pending(d, v->vcpu_id, chn);
++ spin_unlock(&chn->lock);
+
+ out:
+ spin_unlock_irqrestore(&v->virq_lock, flags);
+@@ -813,7 +818,9 @@ void send_guest_global_virq(struct domai
+ goto out;
+
+ chn = evtchn_from_port(d, port);
++ spin_lock(&chn->lock);
+ evtchn_port_set_pending(d, chn->notify_vcpu_id, chn);
++ spin_unlock(&chn->lock);
+
+ out:
+ spin_unlock_irqrestore(&v->virq_lock, flags);
+@@ -823,6 +830,7 @@ void send_guest_pirq(struct domain *d, c
+ {
+ int port;
+ struct evtchn *chn;
++ unsigned long flags;
+
+ /*
+ * PV guests: It should not be possible to race with __evtchn_close(). The
+@@ -837,7 +845,9 @@ void send_guest_pirq(struct domain *d, c
+ }
+
+ chn = evtchn_from_port(d, port);
++ spin_lock_irqsave(&chn->lock, flags);
+ evtchn_port_set_pending(d, chn->notify_vcpu_id, chn);
++ spin_unlock_irqrestore(&chn->lock, flags);
+ }
+
+ static struct domain *global_virq_handlers[NR_VIRQS] __read_mostly;
+@@ -1034,12 +1044,15 @@ int evtchn_unmask(unsigned int port)
+ {
+ struct domain *d = current->domain;
+ struct evtchn *evtchn;
++ unsigned long flags;
+
+ if ( unlikely(!port_is_valid(d, port)) )
+ return -EINVAL;
+
+ evtchn = evtchn_from_port(d, port);
++ spin_lock_irqsave(&evtchn->lock, flags);
+ evtchn_port_unmask(d, evtchn);
++ spin_unlock_irqrestore(&evtchn->lock, flags);
+
+ return 0;
+ }
+@@ -1449,8 +1462,8 @@ static void domain_dump_evtchn_info(stru
+
+ printk(" %4u [%d/%d/",
+ port,
+- evtchn_port_is_pending(d, port),
+- evtchn_port_is_masked(d, port));
++ evtchn_is_pending(d, chn),
++ evtchn_is_masked(d, chn));
+ evtchn_port_print_state(d, chn);
+ printk("]: s=%d n=%d x=%d",
+ chn->state, chn->notify_vcpu_id, chn->xen_consumer);
+--- a/xen/common/event_fifo.c
++++ b/xen/common/event_fifo.c
+@@ -296,23 +296,26 @@ static void evtchn_fifo_unmask(struct do
+ evtchn_fifo_set_pending(v, evtchn);
+ }
+
+-static bool evtchn_fifo_is_pending(const struct domain *d, evtchn_port_t port)
++static bool evtchn_fifo_is_pending(const struct domain *d,
++ const struct evtchn *evtchn)
+ {
+- const event_word_t *word = evtchn_fifo_word_from_port(d, port);
++ const event_word_t *word = evtchn_fifo_word_from_port(d, evtchn->port);
+
+ return word && guest_test_bit(d, EVTCHN_FIFO_PENDING, word);
+ }
+
+-static bool_t evtchn_fifo_is_masked(const struct domain *d, evtchn_port_t port)
++static bool_t evtchn_fifo_is_masked(const struct domain *d,
++ const struct evtchn *evtchn)
+ {
+- const event_word_t *word = evtchn_fifo_word_from_port(d, port);
++ const event_word_t *word = evtchn_fifo_word_from_port(d, evtchn->port);
+
+ return !word || guest_test_bit(d, EVTCHN_FIFO_MASKED, word);
+ }
+
+-static bool_t evtchn_fifo_is_busy(const struct domain *d, evtchn_port_t port)
++static bool_t evtchn_fifo_is_busy(const struct domain *d,
++ const struct evtchn *evtchn)
+ {
+- const event_word_t *word = evtchn_fifo_word_from_port(d, port);
++ const event_word_t *word = evtchn_fifo_word_from_port(d, evtchn->port);
+
+ return word && guest_test_bit(d, EVTCHN_FIFO_LINKED, word);
+ }
+--- a/xen/include/asm-x86/event.h
++++ b/xen/include/asm-x86/event.h
+@@ -47,4 +47,10 @@ static inline bool arch_virq_is_global(u
+ return true;
+ }
+
++#ifdef CONFIG_PV_SHIM
++# include <asm/pv/shim.h>
++# define arch_evtchn_is_special(chn) \
++ (pv_shim && (chn)->port && (chn)->state == ECS_RESERVED)
++#endif
++
+ #endif
+--- a/xen/include/xen/event.h
++++ b/xen/include/xen/event.h
+@@ -133,6 +133,24 @@ static inline struct evtchn *evtchn_from
+ return bucket_from_port(d, p) + (p % EVTCHNS_PER_BUCKET);
+ }
+
++/*
++ * "usable" as in "by a guest", i.e. Xen consumed channels are assumed to be
++ * taken care of separately where used for Xen's internal purposes.
++ */
++static bool evtchn_usable(const struct evtchn *evtchn)
++{
++ if ( evtchn->xen_consumer )
++ return false;
++
++#ifdef arch_evtchn_is_special
++ if ( arch_evtchn_is_special(evtchn) )
++ return true;
++#endif
++
++ BUILD_BUG_ON(ECS_FREE > ECS_RESERVED);
++ return evtchn->state > ECS_RESERVED;
++}
++
+ /* Wait on a Xen-attached event channel. */
+ #define wait_on_xen_event_channel(port, condition) \
+ do { \
+@@ -165,19 +183,24 @@ int evtchn_reset(struct domain *d);
+
+ /*
+ * Low-level event channel port ops.
++ *
++ * All hooks have to be called with a lock held which prevents the channel
++ * from changing state. This may be the domain event lock, the per-channel
++ * lock, or in the case of sending interdomain events also the other side's
++ * per-channel lock. Exceptions apply in certain cases for the PV shim.
+ */
+ struct evtchn_port_ops {
+ void (*init)(struct domain *d, struct evtchn *evtchn);
+ void (*set_pending)(struct vcpu *v, struct evtchn *evtchn);
+ void (*clear_pending)(struct domain *d, struct evtchn *evtchn);
+ void (*unmask)(struct domain *d, struct evtchn *evtchn);
+- bool (*is_pending)(const struct domain *d, evtchn_port_t port);
+- bool (*is_masked)(const struct domain *d, evtchn_port_t port);
++ bool (*is_pending)(const struct domain *d, const struct evtchn *evtchn);
++ bool (*is_masked)(const struct domain *d, const struct evtchn *evtchn);
+ /*
+ * Is the port unavailable because it's still being cleaned up
+ * after being closed?
+ */
+- bool (*is_busy)(const struct domain *d, evtchn_port_t port);
++ bool (*is_busy)(const struct domain *d, const struct evtchn *evtchn);
+ int (*set_priority)(struct domain *d, struct evtchn *evtchn,
+ unsigned int priority);
+ void (*print_state)(struct domain *d, const struct evtchn *evtchn);
+@@ -193,38 +216,67 @@ static inline void evtchn_port_set_pendi
+ unsigned int vcpu_id,
+ struct evtchn *evtchn)
+ {
+- d->evtchn_port_ops->set_pending(d->vcpu[vcpu_id], evtchn);
++ if ( evtchn_usable(evtchn) )
++ d->evtchn_port_ops->set_pending(d->vcpu[vcpu_id], evtchn);
+ }
+
+ static inline void evtchn_port_clear_pending(struct domain *d,
+ struct evtchn *evtchn)
+ {
+- d->evtchn_port_ops->clear_pending(d, evtchn);
++ if ( evtchn_usable(evtchn) )
++ d->evtchn_port_ops->clear_pending(d, evtchn);
+ }
+
+ static inline void evtchn_port_unmask(struct domain *d,
+ struct evtchn *evtchn)
+ {
+- d->evtchn_port_ops->unmask(d, evtchn);
++ if ( evtchn_usable(evtchn) )
++ d->evtchn_port_ops->unmask(d, evtchn);
+ }
+
+-static inline bool evtchn_port_is_pending(const struct domain *d,
+- evtchn_port_t port)
++static inline bool evtchn_is_pending(const struct domain *d,
++ const struct evtchn *evtchn)
+ {
+- return d->evtchn_port_ops->is_pending(d, port);
++ return evtchn_usable(evtchn) && d->evtchn_port_ops->is_pending(d, evtchn);
+ }
+
+-static inline bool evtchn_port_is_masked(const struct domain *d,
+- evtchn_port_t port)
++static inline bool evtchn_port_is_pending(struct domain *d, evtchn_port_t port)
+ {
+- return d->evtchn_port_ops->is_masked(d, port);
++ struct evtchn *evtchn = evtchn_from_port(d, port);
++ bool rc;
++ unsigned long flags;
++
++ spin_lock_irqsave(&evtchn->lock, flags);
++ rc = evtchn_is_pending(d, evtchn);
++ spin_unlock_irqrestore(&evtchn->lock, flags);
++
++ return rc;
++}
++
++static inline bool evtchn_is_masked(const struct domain *d,
++ const struct evtchn *evtchn)
++{
++ return !evtchn_usable(evtchn) || d->evtchn_port_ops->is_masked(d, evtchn);
++}
++
++static inline bool evtchn_port_is_masked(struct domain *d, evtchn_port_t port)
++{
++ struct evtchn *evtchn = evtchn_from_port(d, port);
++ bool rc;
++ unsigned long flags;
++
++ spin_lock_irqsave(&evtchn->lock, flags);
++ rc = evtchn_is_masked(d, evtchn);
++ spin_unlock_irqrestore(&evtchn->lock, flags);
++
++ return rc;
+ }
+
+-static inline bool evtchn_port_is_busy(const struct domain *d,
+- evtchn_port_t port)
++static inline bool evtchn_is_busy(const struct domain *d,
++ const struct evtchn *evtchn)
+ {
+ return d->evtchn_port_ops->is_busy &&
+- d->evtchn_port_ops->is_busy(d, port);
++ d->evtchn_port_ops->is_busy(d, evtchn);
+ }
+
+ static inline int evtchn_port_set_priority(struct domain *d,
+@@ -233,6 +285,8 @@ static inline int evtchn_port_set_priori
+ {
+ if ( !d->evtchn_port_ops->set_priority )
+ return -ENOSYS;
++ if ( !evtchn_usable(evtchn) )
++ return -EACCES;
+ return d->evtchn_port_ops->set_priority(d, evtchn, priority);
+ }
+
diff --git a/xsa344-1.patch b/xsa344-1.patch
new file mode 100644
index 0000000..a130366
--- /dev/null
+++ b/xsa344-1.patch
@@ -0,0 +1,128 @@
+evtchn: arrange for preemption in evtchn_destroy()
+
+Especially closing of fully established interdomain channels can take
+quite some time, due to the locking involved. Therefore we shouldn't
+assume we can clean up still active ports all in one go. Besides adding
+the necessary preemption check, also avoid pointlessly starting from
+(or now really ending at) 0; 1 is the lowest numbered port which may
+need closing.
+
+Since we're now reducing ->valid_evtchns, free_xen_event_channel(),
+and (at least to be on the safe side) notify_via_xen_event_channel()
+need to cope with attempts to close / unbind from / send through already
+closed (and no longer valid, as per port_is_valid()) ports.
+
+This is part of XSA-344.
+
+Signed-off-by: Jan Beulich <jbeulich@suse.com>
+Acked-by: Julien Grall <jgrall@amazon.com>
+
+--- a/xen/common/domain.c
++++ b/xen/common/domain.c
+@@ -770,12 +770,14 @@ int domain_kill(struct domain *d)
+ return domain_kill(d);
+ d->is_dying = DOMDYING_dying;
+ argo_destroy(d);
+- evtchn_destroy(d);
+ gnttab_release_mappings(d);
+ vnuma_destroy(d->vnuma);
+ domain_set_outstanding_pages(d, 0);
+ /* fallthrough */
+ case DOMDYING_dying:
++ rc = evtchn_destroy(d);
++ if ( rc )
++ break;
+ rc = domain_relinquish_resources(d);
+ if ( rc != 0 )
+ break;
+--- a/xen/common/event_channel.c
++++ b/xen/common/event_channel.c
+@@ -1297,7 +1297,16 @@ int alloc_unbound_xen_event_channel(
+
+ void free_xen_event_channel(struct domain *d, int port)
+ {
+- BUG_ON(!port_is_valid(d, port));
++ if ( !port_is_valid(d, port) )
++ {
++ /*
++ * Make sure ->is_dying is read /after/ ->valid_evtchns, pairing
++ * with the spin_barrier() and BUG_ON() in evtchn_destroy().
++ */
++ smp_rmb();
++ BUG_ON(!d->is_dying);
++ return;
++ }
+
+ evtchn_close(d, port, 0);
+ }
+@@ -1309,7 +1318,17 @@ void notify_via_xen_event_channel(struct
+ struct domain *rd;
+ unsigned long flags;
+
+- ASSERT(port_is_valid(ld, lport));
++ if ( !port_is_valid(ld, lport) )
++ {
++ /*
++ * Make sure ->is_dying is read /after/ ->valid_evtchns, pairing
++ * with the spin_barrier() and BUG_ON() in evtchn_destroy().
++ */
++ smp_rmb();
++ ASSERT(ld->is_dying);
++ return;
++ }
++
+ lchn = evtchn_from_port(ld, lport);
+
+ spin_lock_irqsave(&lchn->lock, flags);
+@@ -1380,8 +1399,7 @@ int evtchn_init(struct domain *d, unsign
+ return 0;
+ }
+
+-
+-void evtchn_destroy(struct domain *d)
++int evtchn_destroy(struct domain *d)
+ {
+ unsigned int i;
+
+@@ -1390,14 +1408,29 @@ void evtchn_destroy(struct domain *d)
+ spin_barrier(&d->event_lock);
+
+ /* Close all existing event channels. */
+- for ( i = 0; port_is_valid(d, i); i++ )
++ for ( i = d->valid_evtchns; --i; )
++ {
+ evtchn_close(d, i, 0);
+
++ /*
++ * Avoid preempting when called from domain_create()'s error path,
++ * and don't check too often (choice of frequency is arbitrary).
++ */
++ if ( i && !(i & 0x3f) && d->is_dying != DOMDYING_dead &&
++ hypercall_preempt_check() )
++ {
++ write_atomic(&d->valid_evtchns, i);
++ return -ERESTART;
++ }
++ }
++
+ ASSERT(!d->active_evtchns);
+
+ clear_global_virq_handlers(d);
+
+ evtchn_fifo_destroy(d);
++
++ return 0;
+ }
+
+
+--- a/xen/include/xen/sched.h
++++ b/xen/include/xen/sched.h
+@@ -136,7 +136,7 @@ struct evtchn
+ } __attribute__((aligned(64)));
+
+ int evtchn_init(struct domain *d, unsigned int max_port);
+-void evtchn_destroy(struct domain *d); /* from domain_kill */
++int evtchn_destroy(struct domain *d); /* from domain_kill */
+ void evtchn_destroy_final(struct domain *d); /* from complete_domain_destroy */
+
+ struct waitqueue_vcpu;
diff --git a/xsa344-2.patch b/xsa344-2.patch
new file mode 100644
index 0000000..530e0c3
--- /dev/null
+++ b/xsa344-2.patch
@@ -0,0 +1,201 @@
+evtchn: arrange for preemption in evtchn_reset()
+
+Like for evtchn_destroy() looping over all possible event channels to
+close them can take a significant amount of time. Unlike done there, we
+can't alter domain properties (i.e. d->valid_evtchns) here. Borrow, in a
+lightweight form, the paging domctl continuation concept, redirecting
+the continuations to different sub-ops. Just like there this is to be
+able to allow for predictable overall results of the involved sub-ops:
+Racing requests should either complete or be refused.
+
+Note that a domain can't interfere with an already started (by a remote
+domain) reset, due to being paused. It can prevent a remote reset from
+happening by leaving a reset unfinished, but that's only going to affect
+itself.
+
+This is part of XSA-344.
+
+Signed-off-by: Jan Beulich <jbeulich@suse.com>
+Acked-by: Julien Grall <jgrall@amazon.com>
+
+--- a/xen/common/domain.c
++++ b/xen/common/domain.c
+@@ -1214,7 +1214,7 @@ void domain_unpause_except_self(struct d
+ domain_unpause(d);
+ }
+
+-int domain_soft_reset(struct domain *d)
++int domain_soft_reset(struct domain *d, bool resuming)
+ {
+ struct vcpu *v;
+ int rc;
+@@ -1228,7 +1228,7 @@ int domain_soft_reset(struct domain *d)
+ }
+ spin_unlock(&d->shutdown_lock);
+
+- rc = evtchn_reset(d);
++ rc = evtchn_reset(d, resuming);
+ if ( rc )
+ return rc;
+
+--- a/xen/common/domctl.c
++++ b/xen/common/domctl.c
+@@ -572,12 +572,22 @@ long do_domctl(XEN_GUEST_HANDLE_PARAM(xe
+ }
+
+ case XEN_DOMCTL_soft_reset:
++ case XEN_DOMCTL_soft_reset_cont:
+ if ( d == current->domain ) /* no domain_pause() */
+ {
+ ret = -EINVAL;
+ break;
+ }
+- ret = domain_soft_reset(d);
++ ret = domain_soft_reset(d, op->cmd == XEN_DOMCTL_soft_reset_cont);
++ if ( ret == -ERESTART )
++ {
++ op->cmd = XEN_DOMCTL_soft_reset_cont;
++ if ( !__copy_field_to_guest(u_domctl, op, cmd) )
++ ret = hypercall_create_continuation(__HYPERVISOR_domctl,
++ "h", u_domctl);
++ else
++ ret = -EFAULT;
++ }
+ break;
+
+ case XEN_DOMCTL_destroydomain:
+--- a/xen/common/event_channel.c
++++ b/xen/common/event_channel.c
+@@ -1057,7 +1057,7 @@ int evtchn_unmask(unsigned int port)
+ return 0;
+ }
+
+-int evtchn_reset(struct domain *d)
++int evtchn_reset(struct domain *d, bool resuming)
+ {
+ unsigned int i;
+ int rc = 0;
+@@ -1065,11 +1065,40 @@ int evtchn_reset(struct domain *d)
+ if ( d != current->domain && !d->controller_pause_count )
+ return -EINVAL;
+
+- for ( i = 0; port_is_valid(d, i); i++ )
++ spin_lock(&d->event_lock);
++
++ /*
++ * If we are resuming, then start where we stopped. Otherwise, check
++ * that a reset operation is not already in progress, and if none is,
++ * record that this is now the case.
++ */
++ i = resuming ? d->next_evtchn : !d->next_evtchn;
++ if ( i > d->next_evtchn )
++ d->next_evtchn = i;
++
++ spin_unlock(&d->event_lock);
++
++ if ( !i )
++ return -EBUSY;
++
++ for ( ; port_is_valid(d, i); i++ )
++ {
+ evtchn_close(d, i, 1);
+
++ /* NB: Choice of frequency is arbitrary. */
++ if ( !(i & 0x3f) && hypercall_preempt_check() )
++ {
++ spin_lock(&d->event_lock);
++ d->next_evtchn = i;
++ spin_unlock(&d->event_lock);
++ return -ERESTART;
++ }
++ }
++
+ spin_lock(&d->event_lock);
+
++ d->next_evtchn = 0;
++
+ if ( d->active_evtchns > d->xen_evtchns )
+ rc = -EAGAIN;
+ else if ( d->evtchn_fifo )
+@@ -1204,7 +1233,8 @@ long do_event_channel_op(int cmd, XEN_GU
+ break;
+ }
+
+- case EVTCHNOP_reset: {
++ case EVTCHNOP_reset:
++ case EVTCHNOP_reset_cont: {
+ struct evtchn_reset reset;
+ struct domain *d;
+
+@@ -1217,9 +1247,13 @@ long do_event_channel_op(int cmd, XEN_GU
+
+ rc = xsm_evtchn_reset(XSM_TARGET, current->domain, d);
+ if ( !rc )
+- rc = evtchn_reset(d);
++ rc = evtchn_reset(d, cmd == EVTCHNOP_reset_cont);
+
+ rcu_unlock_domain(d);
++
++ if ( rc == -ERESTART )
++ rc = hypercall_create_continuation(__HYPERVISOR_event_channel_op,
++ "ih", EVTCHNOP_reset_cont, arg);
+ break;
+ }
+
+--- a/xen/include/public/domctl.h
++++ b/xen/include/public/domctl.h
+@@ -1152,7 +1152,10 @@ struct xen_domctl {
+ #define XEN_DOMCTL_iomem_permission 20
+ #define XEN_DOMCTL_ioport_permission 21
+ #define XEN_DOMCTL_hypercall_init 22
+-#define XEN_DOMCTL_arch_setup 23 /* Obsolete IA64 only */
++#ifdef __XEN__
++/* #define XEN_DOMCTL_arch_setup 23 Obsolete IA64 only */
++#define XEN_DOMCTL_soft_reset_cont 23
++#endif
+ #define XEN_DOMCTL_settimeoffset 24
+ #define XEN_DOMCTL_getvcpuaffinity 25
+ #define XEN_DOMCTL_real_mode_area 26 /* Obsolete PPC only */
+--- a/xen/include/public/event_channel.h
++++ b/xen/include/public/event_channel.h
+@@ -74,6 +74,9 @@
+ #define EVTCHNOP_init_control 11
+ #define EVTCHNOP_expand_array 12
+ #define EVTCHNOP_set_priority 13
++#ifdef __XEN__
++#define EVTCHNOP_reset_cont 14
++#endif
+ /* ` } */
+
+ typedef uint32_t evtchn_port_t;
+--- a/xen/include/xen/event.h
++++ b/xen/include/xen/event.h
+@@ -171,7 +171,7 @@ void evtchn_check_pollers(struct domain
+ void evtchn_2l_init(struct domain *d);
+
+ /* Close all event channels and reset to 2-level ABI. */
+-int evtchn_reset(struct domain *d);
++int evtchn_reset(struct domain *d, bool resuming);
+
+ /*
+ * Low-level event channel port ops.
+--- a/xen/include/xen/sched.h
++++ b/xen/include/xen/sched.h
+@@ -394,6 +394,8 @@ struct domain
+ * EVTCHNOP_reset). Read/write access like for active_evtchns.
+ */
+ unsigned int xen_evtchns;
++ /* Port to resume from in evtchn_reset(), when in a continuation. */
++ unsigned int next_evtchn;
+ spinlock_t event_lock;
+ const struct evtchn_port_ops *evtchn_port_ops;
+ struct evtchn_fifo_domain *evtchn_fifo;
+@@ -663,7 +665,7 @@ int domain_shutdown(struct domain *d, u8
+ void domain_resume(struct domain *d);
+ void domain_pause_for_debugger(void);
+
+-int domain_soft_reset(struct domain *d);
++int domain_soft_reset(struct domain *d, bool resuming);
+
+ int vcpu_start_shutdown_deferral(struct vcpu *v);
+ void vcpu_end_shutdown_deferral(struct vcpu *v);
diff --git a/xsa345-1.patch b/xsa345-1.patch
new file mode 100644
index 0000000..a9759d5
--- /dev/null
+++ b/xsa345-1.patch
@@ -0,0 +1,81 @@
+x86/mm: Refactor map_pages_to_xen to have only a single exit path
+
+We will soon need to perform clean-ups before returning.
+
+No functional change.
+
+This is part of XSA-345.
+
+Signed-off-by: Wei Liu <wei.liu2@citrix.com>
+Signed-off-by: Hongyan Xia <hongyxia@amazon.com>
+Signed-off-by: George Dunlap <george.dunlap@citrix.com>
+Acked-by: Jan Beulich <jbeulich@suse.com>
+
+--- a/xen/arch/x86/mm.c
++++ b/xen/arch/x86/mm.c
+@@ -5181,6 +5181,7 @@ int map_pages_to_xen(
+ l2_pgentry_t *pl2e, ol2e;
+ l1_pgentry_t *pl1e, ol1e;
+ unsigned int i;
++ int rc = -ENOMEM;
+
+ #define flush_flags(oldf) do { \
+ unsigned int o_ = (oldf); \
+@@ -5201,7 +5202,8 @@ int map_pages_to_xen(
+ l3_pgentry_t ol3e, *pl3e = virt_to_xen_l3e(virt);
+
+ if ( !pl3e )
+- return -ENOMEM;
++ goto out;
++
+ ol3e = *pl3e;
+
+ if ( cpu_has_page1gb &&
+@@ -5289,7 +5291,7 @@ int map_pages_to_xen(
+
+ pl2e = alloc_xen_pagetable();
+ if ( pl2e == NULL )
+- return -ENOMEM;
++ goto out;
+
+ for ( i = 0; i < L2_PAGETABLE_ENTRIES; i++ )
+ l2e_write(pl2e + i,
+@@ -5318,7 +5320,7 @@ int map_pages_to_xen(
+
+ pl2e = virt_to_xen_l2e(virt);
+ if ( !pl2e )
+- return -ENOMEM;
++ goto out;
+
+ if ( ((((virt >> PAGE_SHIFT) | mfn_x(mfn)) &
+ ((1u << PAGETABLE_ORDER) - 1)) == 0) &&
+@@ -5361,7 +5363,7 @@ int map_pages_to_xen(
+ {
+ pl1e = virt_to_xen_l1e(virt);
+ if ( pl1e == NULL )
+- return -ENOMEM;
++ goto out;
+ }
+ else if ( l2e_get_flags(*pl2e) & _PAGE_PSE )
+ {
+@@ -5388,7 +5390,7 @@ int map_pages_to_xen(
+
+ pl1e = alloc_xen_pagetable();
+ if ( pl1e == NULL )
+- return -ENOMEM;
++ goto out;
+
+ for ( i = 0; i < L1_PAGETABLE_ENTRIES; i++ )
+ l1e_write(&pl1e[i],
+@@ -5532,7 +5534,10 @@ int map_pages_to_xen(
+
+ #undef flush_flags
+
+- return 0;
++ rc = 0;
++
++ out:
++ return rc;
+ }
+
+ int populate_pt_range(unsigned long virt, unsigned long nr_mfns)
diff --git a/xsa345-2.patch b/xsa345-2.patch
new file mode 100644
index 0000000..a007f05
--- /dev/null
+++ b/xsa345-2.patch
@@ -0,0 +1,55 @@
+x86/mm: Refactor modify_xen_mappings to have one exit path
+
+We will soon need to perform clean-ups before returning.
+
+No functional change.
+
+This is part of XSA-345.
+
+Signed-off-by: Wei Liu <wei.liu2@citrix.com>
+Signed-off-by: Hongyan Xia <hongyxia@amazon.com>
+Signed-off-by: George Dunlap <george.dunlap@citrix.com>
+Acked-by: Jan Beulich <jbeulich@suse.com>
+
+--- a/xen/arch/x86/mm.c
++++ b/xen/arch/x86/mm.c
+@@ -5564,6 +5564,7 @@ int modify_xen_mappings(unsigned long s,
+ l1_pgentry_t *pl1e;
+ unsigned int i;
+ unsigned long v = s;
++ int rc = -ENOMEM;
+
+ /* Set of valid PTE bits which may be altered. */
+ #define FLAGS_MASK (_PAGE_NX|_PAGE_RW|_PAGE_PRESENT)
+@@ -5605,7 +5606,8 @@ int modify_xen_mappings(unsigned long s,
+ /* PAGE1GB: shatter the superpage and fall through. */
+ pl2e = alloc_xen_pagetable();
+ if ( !pl2e )
+- return -ENOMEM;
++ goto out;
++
+ for ( i = 0; i < L2_PAGETABLE_ENTRIES; i++ )
+ l2e_write(pl2e + i,
+ l2e_from_pfn(l3e_get_pfn(*pl3e) +
+@@ -5660,7 +5662,8 @@ int modify_xen_mappings(unsigned long s,
+ /* PSE: shatter the superpage and try again. */
+ pl1e = alloc_xen_pagetable();
+ if ( !pl1e )
+- return -ENOMEM;
++ goto out;
++
+ for ( i = 0; i < L1_PAGETABLE_ENTRIES; i++ )
+ l1e_write(&pl1e[i],
+ l1e_from_pfn(l2e_get_pfn(*pl2e) + i,
+@@ -5789,7 +5792,10 @@ int modify_xen_mappings(unsigned long s,
+ flush_area(NULL, FLUSH_TLB_GLOBAL);
+
+ #undef FLAGS_MASK
+- return 0;
++ rc = 0;
++
++ out:
++ return rc;
+ }
+
+ #undef flush_area
diff --git a/xsa345-3.patch b/xsa345-3.patch
new file mode 100644
index 0000000..1b49a71
--- /dev/null
+++ b/xsa345-3.patch
@@ -0,0 +1,237 @@
+x86/mm: Prevent some races in hypervisor mapping updates
+
+map_pages_to_xen will attempt to coalesce mappings into 2MiB and 1GiB
+superpages if possible, to maximize TLB efficiency. This means both
+replacing superpage entries with smaller entries, and replacing
+smaller entries with superpages.
+
+Unfortunately, while some potential races are handled correctly,
+others are not. These include:
+
+1. When one processor modifies a sub-superpage mapping while another
+processor replaces the entire range with a superpage.
+
+Take the following example:
+
+Suppose L3[N] points to L2. And suppose we have two processors, A and
+B.
+
+* A walks the pagetables, get a pointer to L2.
+* B replaces L3[N] with a 1GiB mapping.
+* B Frees L2
+* A writes L2[M] #
+
+This is race exacerbated by the fact that virt_to_xen_l[21]e doesn't
+handle higher-level superpages properly: If you call virt_xen_to_l2e
+on a virtual address within an L3 superpage, you'll either hit a BUG()
+(most likely), or get a pointer into the middle of a data page; same
+with virt_xen_to_l1 on a virtual address within either an L3 or L2
+superpage.
+
+So take the following example:
+
+* A reads pl3e and discovers it to point to an L2.
+* B replaces L3[N] with a 1GiB mapping
+* A calls virt_to_xen_l2e() and hits the BUG_ON() #
+
+2. When two processors simultaneously try to replace a sub-superpage
+mapping with a superpage mapping.
+
+Take the following example:
+
+Suppose L3[N] points to L2. And suppose we have two processors, A and B,
+both trying to replace L3[N] with a superpage.
+
+* A walks the pagetables, get a pointer to pl3e, and takes a copy ol3e pointing to L2.
+* B walks the pagetables, gets a pointre to pl3e, and takes a copy ol3e pointing to L2.
+* A writes the new value into L3[N]
+* B writes the new value into L3[N]
+* A recursively frees all the L1's under L2, then frees L2
+* B recursively double-frees all the L1's under L2, then double-frees L2 #
+
+Fix this by grabbing a lock for the entirety of the mapping update
+operation.
+
+Rather than grabbing map_pgdir_lock for the entire operation, however,
+repurpose the PGT_locked bit from L3's page->type_info as a lock.
+This means that rather than locking the entire address space, we
+"only" lock a single 512GiB chunk of hypervisor address space at a
+time.
+
+There was a proposal for a lock-and-reverify approach, where we walk
+the pagetables to the point where we decide what to do; then grab the
+map_pgdir_lock, re-verify the information we collected without the
+lock, and finally make the change (starting over again if anything had
+changed). Without being able to guarantee that the L2 table wasn't
+freed, however, that means every read would need to be considered
+potentially unsafe. Thinking carefully about that is probably
+something that wants to be done on public, not under time pressure.
+
+This is part of XSA-345.
+
+Signed-off-by: Hongyan Xia <hongyxia@amazon.com>
+Signed-off-by: George Dunlap <george.dunlap@citrix.com>
+Reviewed-by: Jan Beulich <jbeulich@suse.com>
+
+--- a/xen/arch/x86/mm.c
++++ b/xen/arch/x86/mm.c
+@@ -2161,6 +2161,50 @@ void page_unlock(struct page_info *page)
+ current_locked_page_set(NULL);
+ }
+
++/*
++ * L3 table locks:
++ *
++ * Used for serialization in map_pages_to_xen() and modify_xen_mappings().
++ *
++ * For Xen PT pages, the page->u.inuse.type_info is unused and it is safe to
++ * reuse the PGT_locked flag. This lock is taken only when we move down to L3
++ * tables and below, since L4 (and above, for 5-level paging) is still globally
++ * protected by map_pgdir_lock.
++ *
++ * PV MMU update hypercalls call map_pages_to_xen while holding a page's page_lock().
++ * This has two implications:
++ * - We cannot reuse reuse current_locked_page_* for debugging
++ * - To avoid the chance of deadlock, even for different pages, we
++ * must never grab page_lock() after grabbing l3t_lock(). This
++ * includes any page_lock()-based locks, such as
++ * mem_sharing_page_lock().
++ *
++ * Also note that we grab the map_pgdir_lock while holding the
++ * l3t_lock(), so to avoid deadlock we must avoid grabbing them in
++ * reverse order.
++ */
++static void l3t_lock(struct page_info *page)
++{
++ unsigned long x, nx;
++
++ do {
++ while ( (x = page->u.inuse.type_info) & PGT_locked )
++ cpu_relax();
++ nx = x | PGT_locked;
++ } while ( cmpxchg(&page->u.inuse.type_info, x, nx) != x );
++}
++
++static void l3t_unlock(struct page_info *page)
++{
++ unsigned long x, nx, y = page->u.inuse.type_info;
++
++ do {
++ x = y;
++ BUG_ON(!(x & PGT_locked));
++ nx = x & ~PGT_locked;
++ } while ( (y = cmpxchg(&page->u.inuse.type_info, x, nx)) != x );
++}
++
+ #ifdef CONFIG_PV
+ /*
+ * PTE flags that a guest may change without re-validating the PTE.
+@@ -5171,6 +5215,23 @@ l1_pgentry_t *virt_to_xen_l1e(unsigned l
+ flush_area_local((const void *)v, f) : \
+ flush_area_all((const void *)v, f))
+
++#define L3T_INIT(page) (page) = ZERO_BLOCK_PTR
++
++#define L3T_LOCK(page) \
++ do { \
++ if ( locking ) \
++ l3t_lock(page); \
++ } while ( false )
++
++#define L3T_UNLOCK(page) \
++ do { \
++ if ( locking && (page) != ZERO_BLOCK_PTR ) \
++ { \
++ l3t_unlock(page); \
++ (page) = ZERO_BLOCK_PTR; \
++ } \
++ } while ( false )
++
+ int map_pages_to_xen(
+ unsigned long virt,
+ mfn_t mfn,
+@@ -5182,6 +5243,7 @@ int map_pages_to_xen(
+ l1_pgentry_t *pl1e, ol1e;
+ unsigned int i;
+ int rc = -ENOMEM;
++ struct page_info *current_l3page;
+
+ #define flush_flags(oldf) do { \
+ unsigned int o_ = (oldf); \
+@@ -5197,13 +5259,20 @@ int map_pages_to_xen(
+ } \
+ } while (0)
+
++ L3T_INIT(current_l3page);
++
+ while ( nr_mfns != 0 )
+ {
+- l3_pgentry_t ol3e, *pl3e = virt_to_xen_l3e(virt);
++ l3_pgentry_t *pl3e, ol3e;
+
++ L3T_UNLOCK(current_l3page);
++
++ pl3e = virt_to_xen_l3e(virt);
+ if ( !pl3e )
+ goto out;
+
++ current_l3page = virt_to_page(pl3e);
++ L3T_LOCK(current_l3page);
+ ol3e = *pl3e;
+
+ if ( cpu_has_page1gb &&
+@@ -5537,6 +5606,7 @@ int map_pages_to_xen(
+ rc = 0;
+
+ out:
++ L3T_UNLOCK(current_l3page);
+ return rc;
+ }
+
+@@ -5565,6 +5635,7 @@ int modify_xen_mappings(unsigned long s,
+ unsigned int i;
+ unsigned long v = s;
+ int rc = -ENOMEM;
++ struct page_info *current_l3page;
+
+ /* Set of valid PTE bits which may be altered. */
+ #define FLAGS_MASK (_PAGE_NX|_PAGE_RW|_PAGE_PRESENT)
+@@ -5573,11 +5644,22 @@ int modify_xen_mappings(unsigned long s,
+ ASSERT(IS_ALIGNED(s, PAGE_SIZE));
+ ASSERT(IS_ALIGNED(e, PAGE_SIZE));
+
++ L3T_INIT(current_l3page);
++
+ while ( v < e )
+ {
+- l3_pgentry_t *pl3e = virt_to_xen_l3e(v);
++ l3_pgentry_t *pl3e;
+
+- if ( !pl3e || !(l3e_get_flags(*pl3e) & _PAGE_PRESENT) )
++ L3T_UNLOCK(current_l3page);
++
++ pl3e = virt_to_xen_l3e(v);
++ if ( !pl3e )
++ goto out;
++
++ current_l3page = virt_to_page(pl3e);
++ L3T_LOCK(current_l3page);
++
++ if ( !(l3e_get_flags(*pl3e) & _PAGE_PRESENT) )
+ {
+ /* Confirm the caller isn't trying to create new mappings. */
+ ASSERT(!(nf & _PAGE_PRESENT));
+@@ -5795,9 +5877,13 @@ int modify_xen_mappings(unsigned long s,
+ rc = 0;
+
+ out:
++ L3T_UNLOCK(current_l3page);
+ return rc;
+ }
+
++#undef L3T_LOCK
++#undef L3T_UNLOCK
++
+ #undef flush_area
+
+ int destroy_xen_mappings(unsigned long s, unsigned long e)
diff --git a/xsa346-1.patch b/xsa346-1.patch
new file mode 100644
index 0000000..cd747f7
--- /dev/null
+++ b/xsa346-1.patch
@@ -0,0 +1,49 @@
+IOMMU: suppress "iommu_dont_flush_iotlb" when about to free a page
+
+Deferring flushes to a single, wide range one - as is done when
+handling XENMAPSPACE_gmfn_range - is okay only as long as
+pages don't get freed ahead of the eventual flush. While the only
+function setting the flag (xenmem_add_to_physmap()) suggests by its name
+that it's only mapping new entries, in reality the way
+xenmem_add_to_physmap_one() works means an unmap would happen not only
+for the page being moved (but not freed) but, if the destination GFN is
+populated, also for the page being displaced from that GFN. Collapsing
+the two flushes for this GFN into just one (end even more so deferring
+it to a batched invocation) is not correct.
+
+This is part of XSA-346.
+
+Fixes: cf95b2a9fd5a ("iommu: Introduce per cpu flag (iommu_dont_flush_iotlb) to avoid unnecessary iotlb... ")
+Signed-off-by: Jan Beulich <jbeulich@suse.com>
+Reviewed-by: Paul Durrant <paul@xen.org>
+Acked-by: Julien Grall <jgrall@amazon.com>
+
+--- a/xen/common/memory.c
++++ b/xen/common/memory.c
+@@ -292,6 +292,7 @@ int guest_remove_page(struct domain *d,
+ p2m_type_t p2mt;
+ #endif
+ mfn_t mfn;
++ bool *dont_flush_p, dont_flush;
+ int rc;
+
+ #ifdef CONFIG_X86
+@@ -378,8 +379,18 @@ int guest_remove_page(struct domain *d,
+ return -ENXIO;
+ }
+
++ /*
++ * Since we're likely to free the page below, we need to suspend
++ * xenmem_add_to_physmap()'s suppressing of IOMMU TLB flushes.
++ */
++ dont_flush_p = &this_cpu(iommu_dont_flush_iotlb);
++ dont_flush = *dont_flush_p;
++ *dont_flush_p = false;
++
+ rc = guest_physmap_remove_page(d, _gfn(gmfn), mfn, 0);
+
++ *dont_flush_p = dont_flush;
++
+ /*
+ * With the lack of an IOMMU on some platforms, domains with DMA-capable
+ * device must retrieve the same pfn when the hypercall populate_physmap
diff --git a/xsa346-2.patch b/xsa346-2.patch
new file mode 100644
index 0000000..783d34b
--- /dev/null
+++ b/xsa346-2.patch
@@ -0,0 +1,203 @@
+IOMMU: hold page ref until after deferred TLB flush
+
+When moving around a page via XENMAPSPACE_gmfn_range, deferring the TLB
+flush for the "from" GFN range requires that the page remains allocated
+to the guest until the TLB flush has actually occurred. Otherwise a
+parallel hypercall to remove the page would only flush the TLB for the
+GFN it has been moved to, but not the one is was mapped at originally.
+
+This is part of XSA-346.
+
+Fixes: cf95b2a9fd5a ("iommu: Introduce per cpu flag (iommu_dont_flush_iotlb) to avoid unnecessary iotlb... ")
+Reported-by: Julien Grall <jgrall@amazon.com>
+Signed-off-by: Jan Beulich <jbeulich@suse.com>
+Acked-by: Julien Grall <jgrall@amazon.com>
+
+--- a/xen/arch/arm/mm.c
++++ b/xen/arch/arm/mm.c
+@@ -1407,7 +1407,7 @@ void share_xen_page_with_guest(struct pa
+ int xenmem_add_to_physmap_one(
+ struct domain *d,
+ unsigned int space,
+- union xen_add_to_physmap_batch_extra extra,
++ union add_to_physmap_extra extra,
+ unsigned long idx,
+ gfn_t gfn)
+ {
+@@ -1480,10 +1480,6 @@ int xenmem_add_to_physmap_one(
+ break;
+ }
+ case XENMAPSPACE_dev_mmio:
+- /* extra should be 0. Reserved for future use. */
+- if ( extra.res0 )
+- return -EOPNOTSUPP;
+-
+ rc = map_dev_mmio_region(d, gfn, 1, _mfn(idx));
+ return rc;
+
+--- a/xen/arch/x86/mm.c
++++ b/xen/arch/x86/mm.c
+@@ -4662,7 +4662,7 @@ static int handle_iomem_range(unsigned l
+ int xenmem_add_to_physmap_one(
+ struct domain *d,
+ unsigned int space,
+- union xen_add_to_physmap_batch_extra extra,
++ union add_to_physmap_extra extra,
+ unsigned long idx,
+ gfn_t gpfn)
+ {
+@@ -4746,9 +4746,20 @@ int xenmem_add_to_physmap_one(
+ rc = guest_physmap_add_page(d, gpfn, mfn, PAGE_ORDER_4K);
+
+ put_both:
+- /* In the XENMAPSPACE_gmfn case, we took a ref of the gfn at the top. */
++ /*
++ * In the XENMAPSPACE_gmfn case, we took a ref of the gfn at the top.
++ * We also may need to transfer ownership of the page reference to our
++ * caller.
++ */
+ if ( space == XENMAPSPACE_gmfn )
++ {
+ put_gfn(d, gfn);
++ if ( !rc && extra.ppage )
++ {
++ *extra.ppage = page;
++ page = NULL;
++ }
++ }
+
+ if ( page )
+ put_page(page);
+--- a/xen/common/memory.c
++++ b/xen/common/memory.c
+@@ -814,13 +814,12 @@ int xenmem_add_to_physmap(struct domain
+ {
+ unsigned int done = 0;
+ long rc = 0;
+- union xen_add_to_physmap_batch_extra extra;
++ union add_to_physmap_extra extra = {};
++ struct page_info *pages[16];
+
+ ASSERT(paging_mode_translate(d));
+
+- if ( xatp->space != XENMAPSPACE_gmfn_foreign )
+- extra.res0 = 0;
+- else
++ if ( xatp->space == XENMAPSPACE_gmfn_foreign )
+ extra.foreign_domid = DOMID_INVALID;
+
+ if ( xatp->space != XENMAPSPACE_gmfn_range )
+@@ -835,7 +834,10 @@ int xenmem_add_to_physmap(struct domain
+ xatp->size -= start;
+
+ if ( is_iommu_enabled(d) )
++ {
+ this_cpu(iommu_dont_flush_iotlb) = 1;
++ extra.ppage = &pages[0];
++ }
+
+ while ( xatp->size > done )
+ {
+@@ -847,8 +849,12 @@ int xenmem_add_to_physmap(struct domain
+ xatp->idx++;
+ xatp->gpfn++;
+
++ if ( extra.ppage )
++ ++extra.ppage;
++
+ /* Check for continuation if it's not the last iteration. */
+- if ( xatp->size > ++done && hypercall_preempt_check() )
++ if ( (++done > ARRAY_SIZE(pages) && extra.ppage) ||
++ (xatp->size > done && hypercall_preempt_check()) )
+ {
+ rc = start + done;
+ break;
+@@ -858,6 +864,7 @@ int xenmem_add_to_physmap(struct domain
+ if ( is_iommu_enabled(d) )
+ {
+ int ret;
++ unsigned int i;
+
+ this_cpu(iommu_dont_flush_iotlb) = 0;
+
+@@ -866,6 +873,15 @@ int xenmem_add_to_physmap(struct domain
+ if ( unlikely(ret) && rc >= 0 )
+ rc = ret;
+
++ /*
++ * Now that the IOMMU TLB flush was done for the original GFN, drop
++ * the page references. The 2nd flush below is fine to make later, as
++ * whoever removes the page again from its new GFN will have to do
++ * another flush anyway.
++ */
++ for ( i = 0; i < done; ++i )
++ put_page(pages[i]);
++
+ ret = iommu_iotlb_flush(d, _dfn(xatp->gpfn - done), done,
+ IOMMU_FLUSHF_added | IOMMU_FLUSHF_modified);
+ if ( unlikely(ret) && rc >= 0 )
+@@ -879,6 +895,8 @@ static int xenmem_add_to_physmap_batch(s
+ struct xen_add_to_physmap_batch *xatpb,
+ unsigned int extent)
+ {
++ union add_to_physmap_extra extra = {};
++
+ if ( unlikely(xatpb->size < extent) )
+ return -EILSEQ;
+
+@@ -890,6 +908,19 @@ static int xenmem_add_to_physmap_batch(s
+ !guest_handle_subrange_okay(xatpb->errs, extent, xatpb->size - 1) )
+ return -EFAULT;
+
++ switch ( xatpb->space )
++ {
++ case XENMAPSPACE_dev_mmio:
++ /* res0 is reserved for future use. */
++ if ( xatpb->u.res0 )
++ return -EOPNOTSUPP;
++ break;
++
++ case XENMAPSPACE_gmfn_foreign:
++ extra.foreign_domid = xatpb->u.foreign_domid;
++ break;
++ }
++
+ while ( xatpb->size > extent )
+ {
+ xen_ulong_t idx;
+@@ -902,8 +933,7 @@ static int xenmem_add_to_physmap_batch(s
+ extent, 1)) )
+ return -EFAULT;
+
+- rc = xenmem_add_to_physmap_one(d, xatpb->space,
+- xatpb->u,
++ rc = xenmem_add_to_physmap_one(d, xatpb->space, extra,
+ idx, _gfn(gpfn));
+
+ if ( unlikely(__copy_to_guest_offset(xatpb->errs, extent, &rc, 1)) )
+--- a/xen/include/xen/mm.h
++++ b/xen/include/xen/mm.h
+@@ -588,8 +588,22 @@ void scrub_one_page(struct page_info *);
+ &(d)->xenpage_list : &(d)->page_list)
+ #endif
+
++union add_to_physmap_extra {
++ /*
++ * XENMAPSPACE_gmfn: When deferring TLB flushes, a page reference needs
++ * to be kept until after the flush, so the page can't get removed from
++ * the domain (and re-used for another purpose) beforehand. By passing
++ * non-NULL, the caller of xenmem_add_to_physmap_one() indicates it wants
++ * to have ownership of such a reference transferred in the success case.
++ */
++ struct page_info **ppage;
++
++ /* XENMAPSPACE_gmfn_foreign */
++ domid_t foreign_domid;
++};
++
+ int xenmem_add_to_physmap_one(struct domain *d, unsigned int space,
+- union xen_add_to_physmap_batch_extra extra,
++ union add_to_physmap_extra extra,
+ unsigned long idx, gfn_t gfn);
+
+ int xenmem_add_to_physmap(struct domain *d, struct xen_add_to_physmap *xatp,
diff --git a/xsa347-1.patch b/xsa347-1.patch
new file mode 100644
index 0000000..22acb7c
--- /dev/null
+++ b/xsa347-1.patch
@@ -0,0 +1,148 @@
+AMD/IOMMU: convert amd_iommu_pte from struct to union
+
+This is to add a "raw" counterpart to the bitfield equivalent. Take the
+opportunity and
+- convert fields to bool / unsigned int,
+- drop the naming of the reserved field,
+- shorten the names of the ignored ones.
+
+This is part of XSA-347.
+
+Signed-off-by: Jan Beulich <jbeulich@suse.com>
+Reviewed-by: Andrew Cooper <andrew.cooper3@citrix.com>
+Reviewed-by: Paul Durrant <paul@xen.org>
+
+--- a/xen/drivers/passthrough/amd/iommu_map.c
++++ b/xen/drivers/passthrough/amd/iommu_map.c
+@@ -38,7 +38,7 @@ static unsigned int pfn_to_pde_idx(unsig
+ static unsigned int clear_iommu_pte_present(unsigned long l1_mfn,
+ unsigned long dfn)
+ {
+- struct amd_iommu_pte *table, *pte;
++ union amd_iommu_pte *table, *pte;
+ unsigned int flush_flags;
+
+ table = map_domain_page(_mfn(l1_mfn));
+@@ -52,7 +52,7 @@ static unsigned int clear_iommu_pte_pres
+ return flush_flags;
+ }
+
+-static unsigned int set_iommu_pde_present(struct amd_iommu_pte *pte,
++static unsigned int set_iommu_pde_present(union amd_iommu_pte *pte,
+ unsigned long next_mfn,
+ unsigned int next_level, bool iw,
+ bool ir)
+@@ -87,7 +87,7 @@ static unsigned int set_iommu_pte_presen
+ int pde_level,
+ bool iw, bool ir)
+ {
+- struct amd_iommu_pte *table, *pde;
++ union amd_iommu_pte *table, *pde;
+ unsigned int flush_flags;
+
+ table = map_domain_page(_mfn(pt_mfn));
+@@ -178,7 +178,7 @@ void iommu_dte_set_guest_cr3(struct amd_
+ static int iommu_pde_from_dfn(struct domain *d, unsigned long dfn,
+ unsigned long pt_mfn[], bool map)
+ {
+- struct amd_iommu_pte *pde, *next_table_vaddr;
++ union amd_iommu_pte *pde, *next_table_vaddr;
+ unsigned long next_table_mfn;
+ unsigned int level;
+ struct page_info *table;
+@@ -458,7 +458,7 @@ int __init amd_iommu_quarantine_init(str
+ unsigned long end_gfn =
+ 1ul << (DEFAULT_DOMAIN_ADDRESS_WIDTH - PAGE_SHIFT);
+ unsigned int level = amd_iommu_get_paging_mode(end_gfn);
+- struct amd_iommu_pte *table;
++ union amd_iommu_pte *table;
+
+ if ( hd->arch.root_table )
+ {
+@@ -489,7 +489,7 @@ int __init amd_iommu_quarantine_init(str
+
+ for ( i = 0; i < PTE_PER_TABLE_SIZE; i++ )
+ {
+- struct amd_iommu_pte *pde = &table[i];
++ union amd_iommu_pte *pde = &table[i];
+
+ /*
+ * PDEs are essentially a subset of PTEs, so this function
+--- a/xen/drivers/passthrough/amd/pci_amd_iommu.c
++++ b/xen/drivers/passthrough/amd/pci_amd_iommu.c
+@@ -390,7 +390,7 @@ static void deallocate_next_page_table(s
+
+ static void deallocate_page_table(struct page_info *pg)
+ {
+- struct amd_iommu_pte *table_vaddr;
++ union amd_iommu_pte *table_vaddr;
+ unsigned int index, level = PFN_ORDER(pg);
+
+ PFN_ORDER(pg) = 0;
+@@ -405,7 +405,7 @@ static void deallocate_page_table(struct
+
+ for ( index = 0; index < PTE_PER_TABLE_SIZE; index++ )
+ {
+- struct amd_iommu_pte *pde = &table_vaddr[index];
++ union amd_iommu_pte *pde = &table_vaddr[index];
+
+ if ( pde->mfn && pde->next_level && pde->pr )
+ {
+@@ -557,7 +557,7 @@ static void amd_dump_p2m_table_level(str
+ paddr_t gpa, int indent)
+ {
+ paddr_t address;
+- struct amd_iommu_pte *table_vaddr;
++ const union amd_iommu_pte *table_vaddr;
+ int index;
+
+ if ( level < 1 )
+@@ -573,7 +573,7 @@ static void amd_dump_p2m_table_level(str
+
+ for ( index = 0; index < PTE_PER_TABLE_SIZE; index++ )
+ {
+- struct amd_iommu_pte *pde = &table_vaddr[index];
++ const union amd_iommu_pte *pde = &table_vaddr[index];
+
+ if ( !(index % 2) )
+ process_pending_softirqs();
+--- a/xen/include/asm-x86/hvm/svm/amd-iommu-defs.h
++++ b/xen/include/asm-x86/hvm/svm/amd-iommu-defs.h
+@@ -465,20 +465,23 @@ union amd_iommu_x2apic_control {
+ #define IOMMU_PAGE_TABLE_U32_PER_ENTRY (IOMMU_PAGE_TABLE_ENTRY_SIZE / 4)
+ #define IOMMU_PAGE_TABLE_ALIGNMENT 4096
+
+-struct amd_iommu_pte {
+- uint64_t pr:1;
+- uint64_t ignored0:4;
+- uint64_t a:1;
+- uint64_t d:1;
+- uint64_t ignored1:2;
+- uint64_t next_level:3;
+- uint64_t mfn:40;
+- uint64_t reserved:7;
+- uint64_t u:1;
+- uint64_t fc:1;
+- uint64_t ir:1;
+- uint64_t iw:1;
+- uint64_t ignored2:1;
++union amd_iommu_pte {
++ uint64_t raw;
++ struct {
++ bool pr:1;
++ unsigned int ign0:4;
++ bool a:1;
++ bool d:1;
++ unsigned int ign1:2;
++ unsigned int next_level:3;
++ uint64_t mfn:40;
++ unsigned int :7;
++ bool u:1;
++ bool fc:1;
++ bool ir:1;
++ bool iw:1;
++ unsigned int ign2:1;
++ };
+ };
+
+ /* Paging modes */
diff --git a/xsa347-2.patch b/xsa347-2.patch
new file mode 100644
index 0000000..0a2c7d8
--- /dev/null
+++ b/xsa347-2.patch
@@ -0,0 +1,71 @@
+AMD/IOMMU: update live PTEs atomically
+
+Updating a live PTE bitfield by bitfield risks the compiler re-ordering
+the individual updates as well as splitting individual updates into
+multiple memory writes. Construct the new entry fully in a local
+variable, do the check to determine the flushing needs on the thus
+established new entry, and then write the new entry by a single insn.
+
+Similarly using memset() to clear a PTE is unsafe, as the order of
+writes the function does is, at least in principle, undefined.
+
+This is part of XSA-347.
+
+Signed-off-by: Jan Beulich <jbeulich@suse.com>
+Reviewed-by: Paul Durrant <paul@xen.org>
+
+--- a/xen/drivers/passthrough/amd/iommu_map.c
++++ b/xen/drivers/passthrough/amd/iommu_map.c
+@@ -45,7 +45,7 @@ static unsigned int clear_iommu_pte_pres
+ pte = &table[pfn_to_pde_idx(dfn, 1)];
+
+ flush_flags = pte->pr ? IOMMU_FLUSHF_modified : 0;
+- memset(pte, 0, sizeof(*pte));
++ write_atomic(&pte->raw, 0);
+
+ unmap_domain_page(table);
+
+@@ -57,26 +57,30 @@ static unsigned int set_iommu_pde_presen
+ unsigned int next_level, bool iw,
+ bool ir)
+ {
++ union amd_iommu_pte new = {}, old;
+ unsigned int flush_flags = IOMMU_FLUSHF_added;
+
+- if ( pte->pr &&
+- (pte->mfn != next_mfn ||
+- pte->iw != iw ||
+- pte->ir != ir ||
+- pte->next_level != next_level) )
+- flush_flags |= IOMMU_FLUSHF_modified;
+-
+ /*
+ * FC bit should be enabled in PTE, this helps to solve potential
+ * issues with ATS devices
+ */
+- pte->fc = !next_level;
++ new.fc = !next_level;
++
++ new.mfn = next_mfn;
++ new.iw = iw;
++ new.ir = ir;
++ new.next_level = next_level;
++ new.pr = true;
++
++ old.raw = read_atomic(&pte->raw);
++ old.ign0 = 0;
++ old.ign1 = 0;
++ old.ign2 = 0;
++
++ if ( old.pr && old.raw != new.raw )
++ flush_flags |= IOMMU_FLUSHF_modified;
+
+- pte->mfn = next_mfn;
+- pte->iw = iw;
+- pte->ir = ir;
+- pte->next_level = next_level;
+- pte->pr = 1;
++ write_atomic(&pte->raw, new.raw);
+
+ return flush_flags;
+ }
diff --git a/xsa347-3.patch b/xsa347-3.patch
new file mode 100644
index 0000000..a203089
--- /dev/null
+++ b/xsa347-3.patch
@@ -0,0 +1,58 @@
+AMD/IOMMU: ensure suitable ordering of DTE modifications
+
+DMA and interrupt translation should be enabled only after other
+applicable DTE fields have been written. Similarly when disabling
+translation or when moving a device between domains, translation should
+first be disabled, before other entry fields get modified. Note however
+that the "moving" aspect doesn't apply to the interrupt remapping side,
+as domain specifics are maintained in the IRTEs here, not the DTE. We
+also never disable interrupt remapping once it got enabled for a device
+(the respective argument passed is always the immutable iommu_intremap).
+
+This is part of XSA-347.
+
+Signed-off-by: Jan Beulich <jbeulich@suse.com>
+Reviewed-by: Paul Durrant <paul@xen.org>
+
+--- a/xen/drivers/passthrough/amd/iommu_map.c
++++ b/xen/drivers/passthrough/amd/iommu_map.c
+@@ -107,11 +107,18 @@ void amd_iommu_set_root_page_table(struc
+ uint64_t root_ptr, uint16_t domain_id,
+ uint8_t paging_mode, bool valid)
+ {
++ if ( valid || dte->v )
++ {
++ dte->tv = false;
++ dte->v = true;
++ smp_wmb();
++ }
+ dte->domain_id = domain_id;
+ dte->pt_root = paddr_to_pfn(root_ptr);
+ dte->iw = true;
+ dte->ir = true;
+ dte->paging_mode = paging_mode;
++ smp_wmb();
+ dte->tv = true;
+ dte->v = valid;
+ }
+@@ -134,6 +141,7 @@ void amd_iommu_set_intremap_table(
+ }
+
+ dte->ig = false; /* unmapped interrupts result in i/o page faults */
++ smp_wmb();
+ dte->iv = valid;
+ }
+
+--- a/xen/drivers/passthrough/amd/pci_amd_iommu.c
++++ b/xen/drivers/passthrough/amd/pci_amd_iommu.c
+@@ -120,7 +120,10 @@ static void amd_iommu_setup_domain_devic
+ /* Undo what amd_iommu_disable_domain_device() may have done. */
+ ivrs_dev = &get_ivrs_mappings(iommu->seg)[req_id];
+ if ( dte->it_root )
++ {
+ dte->int_ctl = IOMMU_DEV_TABLE_INT_CONTROL_TRANSLATED;
++ smp_wmb();
++ }
+ dte->iv = iommu_intremap;
+ dte->ex = ivrs_dev->dte_allow_exclusion;
+ dte->sys_mgt = MASK_EXTR(ivrs_dev->device_flags, ACPI_IVHD_SYSTEM_MGMT);