diff options
-rw-r--r-- | arch/i386/kernel/head.S | 12 | ||||
-rw-r--r-- | drivers/pnp/pnpbios/bioscalls.c | 5 | ||||
-rw-r--r-- | include/asm-i386/system.h | 2 |
3 files changed, 11 insertions, 8 deletions
diff --git a/arch/i386/kernel/head.S b/arch/i386/kernel/head.S index 37b599fa4d18..58d2746670b7 100644 --- a/arch/i386/kernel/head.S +++ b/arch/i386/kernel/head.S | |||
@@ -504,12 +504,12 @@ ENTRY(cpu_gdt_table) | |||
504 | .quad 0x0000000000000000 /* 0x80 TSS descriptor */ | 504 | .quad 0x0000000000000000 /* 0x80 TSS descriptor */ |
505 | .quad 0x0000000000000000 /* 0x88 LDT descriptor */ | 505 | .quad 0x0000000000000000 /* 0x88 LDT descriptor */ |
506 | 506 | ||
507 | /* Segments used for calling PnP BIOS */ | 507 | /* Segments used for calling PnP BIOS have byte granularity */ |
508 | .quad 0x00c09a0000000000 /* 0x90 32-bit code */ | 508 | .quad 0x00409a0000000000 /* 0x90 32-bit code */ |
509 | .quad 0x00809a0000000000 /* 0x98 16-bit code */ | 509 | .quad 0x00009a0000000000 /* 0x98 16-bit code */ |
510 | .quad 0x0080920000000000 /* 0xa0 16-bit data */ | 510 | .quad 0x0000920000000000 /* 0xa0 16-bit data */ |
511 | .quad 0x0080920000000000 /* 0xa8 16-bit data */ | 511 | .quad 0x0000920000000000 /* 0xa8 16-bit data */ |
512 | .quad 0x0080920000000000 /* 0xb0 16-bit data */ | 512 | .quad 0x0000920000000000 /* 0xb0 16-bit data */ |
513 | 513 | ||
514 | /* | 514 | /* |
515 | * The APM segments have byte granularity and their bases | 515 | * The APM segments have byte granularity and their bases |
diff --git a/drivers/pnp/pnpbios/bioscalls.c b/drivers/pnp/pnpbios/bioscalls.c index 37bacfcdbc5d..a72126180e97 100644 --- a/drivers/pnp/pnpbios/bioscalls.c +++ b/drivers/pnp/pnpbios/bioscalls.c | |||
@@ -283,12 +283,15 @@ int pnp_bios_dev_node_info(struct pnp_dev_node_info *data) | |||
283 | static int __pnp_bios_get_dev_node(u8 *nodenum, char boot, struct pnp_bios_node *data) | 283 | static int __pnp_bios_get_dev_node(u8 *nodenum, char boot, struct pnp_bios_node *data) |
284 | { | 284 | { |
285 | u16 status; | 285 | u16 status; |
286 | u16 tmp_nodenum; | ||
286 | if (!pnp_bios_present()) | 287 | if (!pnp_bios_present()) |
287 | return PNP_FUNCTION_NOT_SUPPORTED; | 288 | return PNP_FUNCTION_NOT_SUPPORTED; |
288 | if ( !boot && pnpbios_dont_use_current_config ) | 289 | if ( !boot && pnpbios_dont_use_current_config ) |
289 | return PNP_FUNCTION_NOT_SUPPORTED; | 290 | return PNP_FUNCTION_NOT_SUPPORTED; |
291 | tmp_nodenum = *nodenum; | ||
290 | status = call_pnp_bios(PNP_GET_SYS_DEV_NODE, 0, PNP_TS1, 0, PNP_TS2, boot ? 2 : 1, PNP_DS, 0, | 292 | status = call_pnp_bios(PNP_GET_SYS_DEV_NODE, 0, PNP_TS1, 0, PNP_TS2, boot ? 2 : 1, PNP_DS, 0, |
291 | nodenum, sizeof(char), data, 65536); | 293 | &tmp_nodenum, sizeof(tmp_nodenum), data, 65536); |
294 | *nodenum = tmp_nodenum; | ||
292 | return status; | 295 | return status; |
293 | } | 296 | } |
294 | 297 | ||
diff --git a/include/asm-i386/system.h b/include/asm-i386/system.h index 24cc0c8fe341..9c0593b7a94e 100644 --- a/include/asm-i386/system.h +++ b/include/asm-i386/system.h | |||
@@ -54,7 +54,7 @@ __asm__ __volatile__ ("movw %%dx,%1\n\t" \ | |||
54 | ); } while(0) | 54 | ); } while(0) |
55 | 55 | ||
56 | #define set_base(ldt,base) _set_base( ((char *)&(ldt)) , (base) ) | 56 | #define set_base(ldt,base) _set_base( ((char *)&(ldt)) , (base) ) |
57 | #define set_limit(ldt,limit) _set_limit( ((char *)&(ldt)) , ((limit)-1)>>12 ) | 57 | #define set_limit(ldt,limit) _set_limit( ((char *)&(ldt)) , ((limit)-1) ) |
58 | 58 | ||
59 | /* | 59 | /* |
60 | * Load a segment. Fall back on loading the zero | 60 | * Load a segment. Fall back on loading the zero |