Messages in this thread Patch in this message | | | Date | Sat, 13 Nov 1999 13:04:26 -0500 (EST) | From | Chris Noe <> | Subject | Re: [FIX] 2.3.28 broke `make bzdisk' |
| |
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/
| |