Re: [tip: x86/boot] x86/boot: Fix incorrect startup_gdt_descr.size

From: H. Peter Anvin
Date: Tue Oct 03 2023 - 17:56:34 EST


On October 3, 2023 1:39:57 AM PDT, tip-bot2 for Yuntao Wang <tip-bot2@xxxxxxxxxxxxx> wrote:
>The following commit has been merged into the x86/boot branch of tip:
>
>Commit-ID: 001470fed5959d01faecbd57fcf2f60294da0de1
>Gitweb: https://git.kernel.org/tip/001470fed5959d01faecbd57fcf2f60294da0de1
>Author: Yuntao Wang <ytcoode@xxxxxxxxx>
>AuthorDate: Mon, 07 Aug 2023 16:45:47 +08:00
>Committer: Ingo Molnar <mingo@xxxxxxxxxx>
>CommitterDate: Tue, 03 Oct 2023 10:28:29 +02:00
>
>x86/boot: Fix incorrect startup_gdt_descr.size
>
>Since the size value is added to the base address to yield the last valid
>byte address of the GDT, the current size value of startup_gdt_descr is
>incorrect (too large by one), fix it.
>
>[ mingo: This probably never mattered, because startup_gdt[] is only used
> in a very controlled fashion - but make it consistent nevertheless. ]
>
>Fixes: 866b556efa12 ("x86/head/64: Install startup GDT")
>Signed-off-by: Yuntao Wang <ytcoode@xxxxxxxxx>
>Signed-off-by: Ingo Molnar <mingo@xxxxxxxxxx>
>Cc: "H. Peter Anvin" <hpa@xxxxxxxxx>
>Link: https://lore.kernel.org/r/20230807084547.217390-1-ytcoode@xxxxxxxxx
>---
> arch/x86/kernel/head64.c | 2 +-
> 1 file changed, 1 insertion(+), 1 deletion(-)
>
>diff --git a/arch/x86/kernel/head64.c b/arch/x86/kernel/head64.c
>index 49f7629..bbc2179 100644
>--- a/arch/x86/kernel/head64.c
>+++ b/arch/x86/kernel/head64.c
>@@ -80,7 +80,7 @@ static struct desc_struct startup_gdt[GDT_ENTRIES] = {
> * while the kernel still uses a direct mapping.
> */
> static struct desc_ptr startup_gdt_descr = {
>- .size = sizeof(startup_gdt),
>+ .size = sizeof(startup_gdt)-1,
> .address = 0,
> };
>

Well, it never mattered because there wasn't enough space at the end for an extra entry, but it is still Technically Correct™.