Since the IDT is referenced from a fixmap, make sure it is page aligned. (32-bit already was, this is only needed on 64-bit.) This avoids the risk of it ever being moved in the bss and having the mapping be offset, resulting in calling incorrect handlers.
Signed-off-by: Kees Cook <keesc...@chromium.org> Reported-by: PaX Team <pagee...@freemail.hu> Cc: sta...@vger.kernel.org --- v2: - 32-bit was already aligned, noted by PaX Team --- arch/x86/kernel/head_64.S | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/arch/x86/kernel/head_64.S b/arch/x86/kernel/head_64.S index 5e4d8a8..77e6d3e 100644 --- a/arch/x86/kernel/head_64.S +++ b/arch/x86/kernel/head_64.S @@ -513,7 +513,7 @@ ENTRY(phys_base) #include "../../x86/xen/xen-head.S" .section .bss, "aw", @nobits - .align L1_CACHE_BYTES + .align PAGE_SIZE ENTRY(idt_table) .skip IDT_ENTRIES * 16 -- 1.7.9.5 -- Kees Cook Chrome OS Security -- To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to majord...@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/