diff --git a/arch/x86/cpu/start16.S b/arch/x86/cpu/start16.S
index 8b9b327cd48734fbd50b71dbe3d6a238151d7074..6968fda6494998d1d595c9862e64a10a8082a3e1 100644
--- a/arch/x86/cpu/start16.S
+++ b/arch/x86/cpu/start16.S
@@ -70,7 +70,7 @@ idt_ptr:
  * GDT is setup in a safe location in RAM
  */
 gdt_ptr:
-	.word	0x20		/* limit (32 bytes = 4 GDT entries) */
+	.word	0x1f		/* limit (31 bytes = 4 GDT entries - 1) */
 	.long	BOOT_SEG + gdt	/* base */
 
 /* Some CPUs are picky about GDT alignment... */