diff options
Diffstat (limited to 'drivers/pnp/pnpbios')
-rw-r--r-- | drivers/pnp/pnpbios/bioscalls.c | 21 |
1 files changed, 11 insertions, 10 deletions
diff --git a/drivers/pnp/pnpbios/bioscalls.c b/drivers/pnp/pnpbios/bioscalls.c index 7e6b5a3b3281..45ad3e9cc362 100644 --- a/drivers/pnp/pnpbios/bioscalls.c +++ b/drivers/pnp/pnpbios/bioscalls.c | |||
@@ -55,9 +55,9 @@ __asm__(".text \n" | |||
55 | 55 | ||
56 | #define Q2_SET_SEL(cpu, selname, address, size) \ | 56 | #define Q2_SET_SEL(cpu, selname, address, size) \ |
57 | do { \ | 57 | do { \ |
58 | struct desc_struct *gdt = get_cpu_gdt_table((cpu)); \ | 58 | struct desc_struct *gdt = get_cpu_gdt_table((cpu)); \ |
59 | set_base(gdt[(selname) >> 3], (u32)(address)); \ | 59 | set_desc_base(&gdt[(selname) >> 3], (u32)(address)); \ |
60 | set_limit(gdt[(selname) >> 3], size); \ | 60 | set_desc_limit(&gdt[(selname) >> 3], (size) - 1); \ |
61 | } while(0) | 61 | } while(0) |
62 | 62 | ||
63 | static struct desc_struct bad_bios_desc; | 63 | static struct desc_struct bad_bios_desc; |
@@ -479,16 +479,17 @@ void pnpbios_calls_init(union pnp_bios_install_struct *header) | |||
479 | bad_bios_desc.a = 0; | 479 | bad_bios_desc.a = 0; |
480 | bad_bios_desc.b = 0x00409200; | 480 | bad_bios_desc.b = 0x00409200; |
481 | 481 | ||
482 | set_base(bad_bios_desc, __va((unsigned long)0x40 << 4)); | 482 | set_desc_base(&bad_bios_desc, (unsigned long)__va(0x40UL << 4)); |
483 | _set_limit((char *)&bad_bios_desc, 4095 - (0x40 << 4)); | 483 | set_desc_limit(&bad_bios_desc, 4095 - (0x40 << 4)); |
484 | for_each_possible_cpu(i) { | 484 | for_each_possible_cpu(i) { |
485 | struct desc_struct *gdt = get_cpu_gdt_table(i); | 485 | struct desc_struct *gdt = get_cpu_gdt_table(i); |
486 | if (!gdt) | 486 | if (!gdt) |
487 | continue; | 487 | continue; |
488 | set_base(gdt[GDT_ENTRY_PNPBIOS_CS32], &pnp_bios_callfunc); | 488 | set_desc_base(&gdt[GDT_ENTRY_PNPBIOS_CS32], |
489 | set_base(gdt[GDT_ENTRY_PNPBIOS_CS16], | 489 | (unsigned long)&pnp_bios_callfunc); |
490 | __va(header->fields.pm16cseg)); | 490 | set_desc_base(&gdt[GDT_ENTRY_PNPBIOS_CS16], |
491 | set_base(gdt[GDT_ENTRY_PNPBIOS_DS], | 491 | (unsigned long)__va(header->fields.pm16cseg)); |
492 | __va(header->fields.pm16dseg)); | 492 | set_desc_base(&gdt[GDT_ENTRY_PNPBIOS_DS], |
493 | (unsigned long)__va(header->fields.pm16dseg)); | ||
493 | } | 494 | } |
494 | } | 495 | } |