Messages in this thread | | | Date | Fri, 13 Jul 2007 12:35:53 -0400 | From | Chuck Ebbert <> | Subject | Re: x86 setup code rewrite in C - revised |
| |
On 07/13/2007 10:25 AM, Etienne Lorrain wrote:
[ Added back cc:'s]
> On Thu, 12 Jul 2007, Linus Torvalds wrote: >> On Thu, 12 Jul 2007, Andrew Morton wrote: >>> This code has been in -mm since 11 May, as git-newsetup.patch. It has >>> caused (for what it is) astonishingly few problems. Maybe a couple of >>> build glitches and one runtime failure, all quickly fixed. >>> >>> I'd say it's ready. >> Ok. That makes it easy. I'll just merge it. >> >> Linus > > Have fun, this code: > - do not open the fast A20 gate before checking if the slow A20 gate is open or closed. > - uses in asm("") inputs which may or may not be set by the compiler in the stack, > after modifying the stack pointer in the asm block: at least has_eflag() > - The VGA recalc has the same bug as the assembly version where a VGA write protected > register is written (Overflow register) without setting the enable bit (see VGA docs). > - Does not save and restore %ds when printing a char on the screen (%ds is destroyed > only when the content of the screen scroll - only for some video cards) > - Has a "dn" for outl() which sliped in instead of "dN" > and probably few other problems - just seen those by reading the patches (the asm("") > are inlined in the C code - I find it more difficult to check). > > Also, I do not know if "m" is right in here: > static inline u8 rdfs8(addr_t addr) > { > u8 v; > asm("movb %%fs:%1,%0" : "=r" (v) : "m" (*(u8 *)addr)); > return v; > } > > I may repeat me, but to find these kind of problems, it is very nice to have an ELF > file to do a readelf/objdump -D -m i8086 (even after final link). - To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/
| |