Commit 8ddf83fe authored by Linus Torvalds's avatar Linus Torvalds
Browse files

Merge branch 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/hpa/linux-2.6-x86setup

* 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/hpa/linux-2.6-x86setup:
  [x86 setup] EDD: Fix the computation of the MBR sector buffer
  [x86 setup] Newline after setup signature failure message
  x86 boot code comments typos
parents 0d6caa17 ff659d13
...@@ -2,7 +2,7 @@ ...@@ -2,7 +2,7 @@
* code16gcc.h * code16gcc.h
* *
* This file is -include'd when compiling 16-bit C code. * This file is -include'd when compiling 16-bit C code.
* Note: this asm() needs to be emitted before gcc omits any code. * Note: this asm() needs to be emitted before gcc emits any code.
* Depending on gcc version, this requires -fno-unit-at-a-time or * Depending on gcc version, this requires -fno-unit-at-a-time or
* -fno-toplevel-reorder. * -fno-toplevel-reorder.
* *
......
...@@ -72,17 +72,18 @@ static u32 read_mbr_sig(u8 devno, struct edd_info *ei) ...@@ -72,17 +72,18 @@ static u32 read_mbr_sig(u8 devno, struct edd_info *ei)
u32 mbrsig; u32 mbrsig;
u32 buf_base, mbr_base; u32 buf_base, mbr_base;
extern char _end[]; extern char _end[];
static char mbr_buf[1024];
sector_size = ei->params.bytes_per_sector; sector_size = ei->params.bytes_per_sector;
if (!sector_size) if (!sector_size)
sector_size = 512; /* Best available guess */ sector_size = 512; /* Best available guess */
/* Produce a naturally aligned buffer on the heap */
buf_base = (ds() << 4) + (u32)&_end; buf_base = (ds() << 4) + (u32)&_end;
mbr_base = (buf_base+sector_size-1) & ~(sector_size-1); mbr_base = (buf_base+sector_size-1) & ~(sector_size-1);
mbrbuf_ptr = mbr_buf + (mbr_base-buf_base); mbrbuf_ptr = _end + (mbr_base-buf_base);
mbrbuf_end = mbrbuf_ptr + sector_size; mbrbuf_end = mbrbuf_ptr + sector_size;
/* Make sure we actually have space on the heap... */
if (!(boot_params.hdr.loadflags & CAN_USE_HEAP)) if (!(boot_params.hdr.loadflags & CAN_USE_HEAP))
return 0; return 0;
if (mbrbuf_end > (char *)(size_t)boot_params.hdr.heap_end_ptr) if (mbrbuf_end > (char *)(size_t)boot_params.hdr.heap_end_ptr)
......
...@@ -225,7 +225,7 @@ start_of_setup: ...@@ -225,7 +225,7 @@ start_of_setup:
int $0x13 int $0x13
#endif #endif
# We will have entired with %cs = %ds+0x20, normalize %cs so # We will have entered with %cs = %ds+0x20, normalize %cs so
# it is on par with the other segments. # it is on par with the other segments.
pushw %ds pushw %ds
pushw $setup2 pushw $setup2
...@@ -280,4 +280,4 @@ die: ...@@ -280,4 +280,4 @@ die:
.section ".initdata", "a" .section ".initdata", "a"
setup_corrupt: setup_corrupt:
.byte 7 .byte 7
.string "No setup signature found..." .string "No setup signature found...\n"
...@@ -80,7 +80,7 @@ static void move_kernel_around(void) ...@@ -80,7 +80,7 @@ static void move_kernel_around(void)
*/ */
static void mask_all_interrupts(void) static void mask_all_interrupts(void)
{ {
outb(0xff, 0xa1); /* Mask all interrupts on the seconday PIC */ outb(0xff, 0xa1); /* Mask all interrupts on the secondary PIC */
io_delay(); io_delay();
outb(0xfb, 0x21); /* Mask all but cascade on the primary PIC */ outb(0xfb, 0x21); /* Mask all but cascade on the primary PIC */
io_delay(); io_delay();
......
...@@ -44,7 +44,7 @@ static int set_bios_mode(u8 mode) ...@@ -44,7 +44,7 @@ static int set_bios_mode(u8 mode)
: "+a" (ax) : "+a" (ax)
: : "ebx", "ecx", "edx", "esi", "edi"); : : "ebx", "ecx", "edx", "esi", "edi");
do_restore = 1; /* Assume video contents was lost */ do_restore = 1; /* Assume video contents were lost */
new_mode = ax & 0x7f; /* Not all BIOSes are clean with the top bit */ new_mode = ax & 0x7f; /* Not all BIOSes are clean with the top bit */
if (new_mode == mode) if (new_mode == mode)
......
Markdown is supported
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment