summaryrefslogtreecommitdiffstats
path: root/system/xen/xsa/xsa303-0001-xen-arm32-entry-Split-__DEFINE_ENTRY_TRAP-in-two.patch
diff options
context:
space:
mode:
Diffstat (limited to 'system/xen/xsa/xsa303-0001-xen-arm32-entry-Split-__DEFINE_ENTRY_TRAP-in-two.patch')
-rw-r--r--system/xen/xsa/xsa303-0001-xen-arm32-entry-Split-__DEFINE_ENTRY_TRAP-in-two.patch74
1 files changed, 0 insertions, 74 deletions
diff --git a/system/xen/xsa/xsa303-0001-xen-arm32-entry-Split-__DEFINE_ENTRY_TRAP-in-two.patch b/system/xen/xsa/xsa303-0001-xen-arm32-entry-Split-__DEFINE_ENTRY_TRAP-in-two.patch
deleted file mode 100644
index afb1096c1d..0000000000
--- a/system/xen/xsa/xsa303-0001-xen-arm32-entry-Split-__DEFINE_ENTRY_TRAP-in-two.patch
+++ /dev/null
@@ -1,74 +0,0 @@
-From c8cb33fa64c9ccbfa2a494a9dad2e0a763c09176 Mon Sep 17 00:00:00 2001
-From: Julien Grall <julien.grall@arm.com>
-Date: Tue, 1 Oct 2019 13:07:53 +0100
-Subject: [PATCH 1/4] xen/arm32: entry: Split __DEFINE_ENTRY_TRAP in two
-
-The preprocessing macro __DEFINE_ENTRY_TRAP is used to generate trap
-entry function. While the macro is fairly small today, follow-up patches
-will increase the size signicantly.
-
-In general, assembly macros are more readable as they allow you to name
-parameters and avoid '\'. So the actual implementation of the trap is
-now switched to an assembly macro.
-
-This is part of XSA-303.
-
-Reported-by: Julien Grall <Julien.Grall@arm.com>
-Signed-off-by: Julien Grall <julien.grall@arm.com>
-Reviewed-by: Stefano Stabellini <sstabellini@kernel.org>
-Reviewed-by: Andre Przywara <andre.przywara@arm.com>
----
- xen/arch/arm/arm32/entry.S | 34 +++++++++++++++++++---------------
- 1 file changed, 19 insertions(+), 15 deletions(-)
-
-diff --git a/xen/arch/arm/arm32/entry.S b/xen/arch/arm/arm32/entry.S
-index 0b4cd19abd..4a762e04f1 100644
---- a/xen/arch/arm/arm32/entry.S
-+++ b/xen/arch/arm/arm32/entry.S
-@@ -126,24 +126,28 @@ abort_guest_exit_end:
- skip_check:
- mov pc, lr
-
--/*
-- * Macro to define trap entry. The iflags corresponds to the list of
-- * interrupts (Asynchronous Abort, IRQ, FIQ) to unmask.
-- */
-+ /*
-+ * Macro to define trap entry. The iflags corresponds to the list of
-+ * interrupts (Asynchronous Abort, IRQ, FIQ) to unmask.
-+ */
-+ .macro vector trap, iflags
-+ SAVE_ALL
-+ cpsie \iflags
-+ adr lr, return_from_trap
-+ mov r0, sp
-+ /*
-+ * Save the stack pointer in r11. It will be restored after the
-+ * trap has been handled (see return_from_trap).
-+ */
-+ mov r11, sp
-+ bic sp, #7 /* Align the stack pointer (noop on guest trap) */
-+ b do_trap_\trap
-+ .endm
-+
- #define __DEFINE_TRAP_ENTRY(trap, iflags) \
- ALIGN; \
- trap_##trap: \
-- SAVE_ALL; \
-- cpsie iflags; \
-- adr lr, return_from_trap; \
-- mov r0, sp; \
-- /* \
-- * Save the stack pointer in r11. It will be restored after the \
-- * trap has been handled (see return_from_trap). \
-- */ \
-- mov r11, sp; \
-- bic sp, #7; /* Align the stack pointer (noop on guest trap) */ \
-- b do_trap_##trap
-+ vector trap, iflags
-
- /* Trap handler which unmask IRQ/Abort, keep FIQ masked */
- #define DEFINE_TRAP_ENTRY(trap) __DEFINE_TRAP_ENTRY(trap, ai)
---
-2.11.0
-