38 lines
1.3 KiB
Diff
38 lines
1.3 KiB
Diff
From: Ben Hutchings <ben@decadent.org.uk>
|
|
Date: Wed, 21 Sep 2011 04:55:14 +0100
|
|
Subject: [PATCH] x86-32: Fix alignment of alternative instruction entries
|
|
|
|
The altinstruction_entry macro was originally used only on x86-64,
|
|
and assumed 64-bit pointers and alignment.
|
|
|
|
Commit b4ca46e4e82a0a5976fe5eab85be585d75f8202f ("x86-32: Fix boot
|
|
with CONFIG_X86_INVD_BUG") introduced a use of the macro on x86-32.
|
|
Before this, the 64-bit pointers had been replaced by 32-bit offsets,
|
|
so it worked - in at least one case. However, the alignment is still
|
|
wrong for x86-32, which can result in zero-padding between entries and
|
|
a BUG in apply_alternatives.
|
|
|
|
Reported-by: Andres Salomon <dilinger@queued.net>
|
|
References: http://bugs.debian.org/640964
|
|
Signed-off-by: Ben Hutchings <ben@decadent.org.uk>
|
|
---
|
|
arch/x86/include/asm/alternative-asm.h | 2 +-
|
|
1 files changed, 1 insertions(+), 1 deletions(-)
|
|
|
|
diff --git a/arch/x86/include/asm/alternative-asm.h b/arch/x86/include/asm/alternative-asm.h
|
|
index 4554cc6..d00dc2a 100644
|
|
--- a/arch/x86/include/asm/alternative-asm.h
|
|
+++ b/arch/x86/include/asm/alternative-asm.h
|
|
@@ -16,7 +16,7 @@
|
|
#endif
|
|
|
|
.macro altinstruction_entry orig alt feature orig_len alt_len
|
|
- .align 8
|
|
+ _ASM_ALIGN
|
|
.long \orig - .
|
|
.long \alt - .
|
|
.word \feature
|
|
--
|
|
1.7.5.4
|
|
|