|
@@ -22,31 +22,38 @@
|
|
|
#include "cpu.h"
|
|
|
|
|
|
DEFINE_PER_CPU(struct gdt_page, gdt_page) = { .gdt = {
|
|
|
- [GDT_ENTRY_KERNEL_CS] = { 0x0000ffff, 0x00cf9a00 },
|
|
|
- [GDT_ENTRY_KERNEL_DS] = { 0x0000ffff, 0x00cf9200 },
|
|
|
- [GDT_ENTRY_DEFAULT_USER_CS] = { 0x0000ffff, 0x00cffa00 },
|
|
|
- [GDT_ENTRY_DEFAULT_USER_DS] = { 0x0000ffff, 0x00cff200 },
|
|
|
+ [GDT_ENTRY_KERNEL_CS] = { { { 0x0000ffff, 0x00cf9a00 } } },
|
|
|
+ [GDT_ENTRY_KERNEL_DS] = { { { 0x0000ffff, 0x00cf9200 } } },
|
|
|
+ [GDT_ENTRY_DEFAULT_USER_CS] = { { { 0x0000ffff, 0x00cffa00 } } },
|
|
|
+ [GDT_ENTRY_DEFAULT_USER_DS] = { { { 0x0000ffff, 0x00cff200 } } },
|
|
|
/*
|
|
|
* Segments used for calling PnP BIOS have byte granularity.
|
|
|
* They code segments and data segments have fixed 64k limits,
|
|
|
* the transfer segment sizes are set at run time.
|
|
|
*/
|
|
|
- [GDT_ENTRY_PNPBIOS_CS32] = { 0x0000ffff, 0x00409a00 },/* 32-bit code */
|
|
|
- [GDT_ENTRY_PNPBIOS_CS16] = { 0x0000ffff, 0x00009a00 },/* 16-bit code */
|
|
|
- [GDT_ENTRY_PNPBIOS_DS] = { 0x0000ffff, 0x00009200 }, /* 16-bit data */
|
|
|
- [GDT_ENTRY_PNPBIOS_TS1] = { 0x00000000, 0x00009200 },/* 16-bit data */
|
|
|
- [GDT_ENTRY_PNPBIOS_TS2] = { 0x00000000, 0x00009200 },/* 16-bit data */
|
|
|
+ /* 32-bit code */
|
|
|
+ [GDT_ENTRY_PNPBIOS_CS32] = { { { 0x0000ffff, 0x00409a00 } } },
|
|
|
+ /* 16-bit code */
|
|
|
+ [GDT_ENTRY_PNPBIOS_CS16] = { { { 0x0000ffff, 0x00009a00 } } },
|
|
|
+ /* 16-bit data */
|
|
|
+ [GDT_ENTRY_PNPBIOS_DS] = { { { 0x0000ffff, 0x00009200 } } },
|
|
|
+ /* 16-bit data */
|
|
|
+ [GDT_ENTRY_PNPBIOS_TS1] = { { { 0x00000000, 0x00009200 } } },
|
|
|
+ /* 16-bit data */
|
|
|
+ [GDT_ENTRY_PNPBIOS_TS2] = { { { 0x00000000, 0x00009200 } } },
|
|
|
/*
|
|
|
* The APM segments have byte granularity and their bases
|
|
|
* are set at run time. All have 64k limits.
|
|
|
*/
|
|
|
- [GDT_ENTRY_APMBIOS_BASE] = { 0x0000ffff, 0x00409a00 },/* 32-bit code */
|
|
|
+ /* 32-bit code */
|
|
|
+ [GDT_ENTRY_APMBIOS_BASE] = { { { 0x0000ffff, 0x00409a00 } } },
|
|
|
/* 16-bit code */
|
|
|
- [GDT_ENTRY_APMBIOS_BASE+1] = { 0x0000ffff, 0x00009a00 },
|
|
|
- [GDT_ENTRY_APMBIOS_BASE+2] = { 0x0000ffff, 0x00409200 }, /* data */
|
|
|
+ [GDT_ENTRY_APMBIOS_BASE+1] = { { { 0x0000ffff, 0x00009a00 } } },
|
|
|
+ /* data */
|
|
|
+ [GDT_ENTRY_APMBIOS_BASE+2] = { { { 0x0000ffff, 0x00409200 } } },
|
|
|
|
|
|
- [GDT_ENTRY_ESPFIX_SS] = { 0x00000000, 0x00c09200 },
|
|
|
- [GDT_ENTRY_PERCPU] = { 0x00000000, 0x00000000 },
|
|
|
+ [GDT_ENTRY_ESPFIX_SS] = { { { 0x00000000, 0x00c09200 } } },
|
|
|
+ [GDT_ENTRY_PERCPU] = { { { 0x00000000, 0x00000000 } } },
|
|
|
} };
|
|
|
EXPORT_PER_CPU_SYMBOL_GPL(gdt_page);
|
|
|
|