Re: [FIX] 2.3.28 broke `make bzdisk'

Chris Noe (stiker@northlink.com)
Sat, 13 Nov 1999 13:04:26 -0500 (EST)


On Sat, 13 Nov 1999, Mikael Pettersson wrote:

> 2.3.28 broke `make bzdisk' for i386. At boot, `Loading'
> is displayed and then everything halts.
>
> The cause is this patch to arch/i386/boot/Makefile:
> ===snip===
> --- v2.3.27/linux/arch/i386/boot/Makefile Fri Oct 22 13:21:45 1999
> +++ linux/arch/i386/boot/Makefile Thu Nov 11 19:11:18 1999
> @@ -51,11 +51,11 @@
> bootsect.s: bootsect.S Makefile $(BOOT_INCL)
> $(CPP) -traditional $(SVGA_MODE) $(RAMDISK) $< -o $@
>
> -bbootsect: bbootsect.o
> - $(LD) -Ttext 0x0 -s -oformat binary $< -o $@
> +bbootsect: bbootsect.o bsetup.o
> + $(LD) -Ttext 0x0 -R bsetup.o -s -oformat binary $< -o $@
>
> bbootsect.o: bbootsect.s
> - $(AS) --defsym bootsect_kludge=0x220 -o $@ $<
> + $(AS) -o $@ $<
>
> bbootsect.s: bootsect.S Makefile $(BOOT_INCL)
> $(CPP) -D__BIG_KERNEL__ -traditional $(SVGA_MODE) $(RAMDISK) $< -o $@
> ===snip===
> This may look reasonable, but it contains a horrible bug.

If only this hunk is looked at, yes it is wrong.

Damn, I just looked at the 2.3.28 patch and it looks like Linus missed
merging this next, monumentally important hunk. :)

Take a look at it and you'll see that we call bootsect_kludge at an
offset of 0x20, as you mentioned but we now call it as an offset from the
$SETUPSEG segment, which already takes into account the 0x200 bytes of the
bootsect code.

Please apply if using bzImages + 2.3.28.

Chris Noe
(stiker@northlink.com)

diff -u --recursive --new-file linux-2.3.26/arch/i386/boot/bootsect.S linux/arch/i386/boot/bootsect.S
--- linux-2.3.26/arch/i386/boot/bootsect.S Wed Nov 10 19:28:49 1999
+++ linux/arch/i386/boot/bootsect.S Wed Nov 10 18:21:07 1999
@@ -247,7 +247,9 @@
xorw %bx, %bx # bx is starting address within segment
rp_read:
#ifdef __BIG_KERNEL__
- lcall bootsect_kludge # in setup.S
+ pushw $SETUPSEG
+ popw %gs
+ lcall %gs:bootsect_kludge # in setup.S
#else
movw %es, %ax
subw $SYSSEG, %ax

-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@vger.rutgers.edu
Please read the FAQ at http://www.tux.org/lkml/