summaryrefslogtreecommitdiff
path: root/5f046cfd-x86-introduce-alternative_2.patch
diff options
context:
space:
mode:
Diffstat (limited to '5f046cfd-x86-introduce-alternative_2.patch')
-rw-r--r--5f046cfd-x86-introduce-alternative_2.patch28
1 files changed, 28 insertions, 0 deletions
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.
+ *