Re: [tip:x86/urgent] x86: Make sure IDT is page aligned

From: Yinghai Lu
Date: Wed Jul 17 2013 - 14:57:19 EST


On Tue, Jul 16, 2013 at 3:33 PM, tip-bot for Kees Cook <tipbot@xxxxxxxxx> wrote:
> Commit-ID: 4df05f361937ee86e5a8c9ead8aeb6a19ea9b7d7
> Gitweb: http://git.kernel.org/tip/4df05f361937ee86e5a8c9ead8aeb6a19ea9b7d7
> Author: Kees Cook <keescook@xxxxxxxxxxxx>
> AuthorDate: Tue, 16 Jul 2013 11:34:41 -0700
> Committer: H. Peter Anvin <hpa@xxxxxxxxxxxxxxx>
> CommitDate: Tue, 16 Jul 2013 15:14:48 -0700
>
> x86: Make sure IDT is page aligned
>
> Since the IDT is referenced from a fixmap, make sure it is page aligned.
> Merge with 32-bit one, since it was already aligned to deal with F00F
> bug. Since bss is cleared before IDT setup, it can live there. This also
> moves the other *_idt_table variables into common locations.
>
> This avoids the risk of the IDT ever being moved in the bss and having
> the mapping be offset, resulting in calling incorrect handlers. In the
> current upstream kernel this is not a manifested bug, but heavily patched
> kernels (such as those using the PaX patch series) did encounter this bug.
>
> The tables other than idt_table technically do not need to be page
> aligned, at least not at the current time, but using a common
> declaration avoids mistakes. On 64 bits the table is exactly one page
> long, anyway.
>
> Signed-off-by: Kees Cook <keescook@xxxxxxxxxxxx>
> Link: http://lkml.kernel.org/r/20130716183441.GA14232@xxxxxxxxxxxxxxx
> Reported-by: PaX Team <pageexec@xxxxxxxxx>
> Signed-off-by: H. Peter Anvin <hpa@xxxxxxxxxxxxxxx>

Hi, Peter,

Any reason for why following changelog get dropped?

---
v5:
- add comments to all IDTs about alignment reasoning, suggested by Linus
v4:
- rework using __page_aligned_bss, suggested by Yinghai LU
- move all the other IDT variables as well, suggested by HPA
v3:
- merge 32-bit and 64-bit idt_table definition
v2:
- 32-bit was already aligned
---

That at least would help us to check if you apply the right version.

Yinghai
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/