Up to [cvs.NetBSD.org] / src / sys / arch / i386 / i386
Request diff between arbitrary revisions
Default branch: MAIN
Current tag: jmcneill-usbmp-base5
Revision 1.21 / (download) - annotate - [select for diffs], Tue Jan 11 12:24:37 2011 UTC (13 years, 2 months ago) by gsutre
Branch: MAIN
CVS Tags: yamt-pagecache-base6,
yamt-pagecache-base5,
yamt-pagecache-base4,
yamt-pagecache-base3,
yamt-pagecache-base2,
yamt-pagecache-base,
uebayasi-xip-base7,
rmind-uvmplock-nbase,
rmind-uvmplock-base,
netbsd-6-base,
netbsd-6-0-RELEASE,
netbsd-6-0-RC2,
netbsd-6-0-RC1,
matt-nb6-plus-nbase,
matt-nb6-plus-base,
matt-nb6-plus,
jym-xensuspend-nbase,
jym-xensuspend-base,
jruoho-x86intr-base,
jruoho-x86intr,
jmcneill-usbmp-pre-base2,
jmcneill-usbmp-base9,
jmcneill-usbmp-base8,
jmcneill-usbmp-base7,
jmcneill-usbmp-base6,
jmcneill-usbmp-base5,
jmcneill-usbmp-base4,
jmcneill-usbmp-base3,
jmcneill-usbmp-base2,
jmcneill-usbmp-base10,
jmcneill-usbmp-base,
jmcneill-usbmp,
jmcneill-audiomp3-base,
jmcneill-audiomp3,
cherry-xenmp-base,
cherry-xenmp,
bouyer-quota2-nbase,
bouyer-quota2-base,
bouyer-quota2
Branch point for: yamt-pagecache,
tls-maxphys,
netbsd-6-0,
netbsd-6
Changes since 1.20: +12 -5
lines
Diff to previous 1.20 (colored)
As said in the comment (lines 327-336), we must make sure that we don't overwrite valid data when moving the symbol and string tables. Assume for instance that the boot-loader left us with: +--------------+ +--------+ +--------------+ | string table | | kernel | | symbol table | +--------------+ +--------+ +--------------+ The new addresses computed by lines 338-359 (here, it's really lines 344-345) will move the tables so that they end up as: +--------+--------------+--------------+ | kernel | symbol table | string table | +--------+--------------+--------------+ The current version (rev. 1.20) will, however, first copy the string table and then the symbol table. But the copy of the string table will overwrite the symbol table (see the pictures). The old code (rev. 1.19) uses the right order of table copy to make sure that we don't overwrite one table when moving the other. Here, we simply restore this behavior. This makes multibooting from GRUB2 work again (for MONOLITHIC). ok jmcneill@