Re: [RFC PATCH 3/3] boot bzImages under paravirt

From: H. Peter Anvin
Date: Fri May 04 2007 - 12:44:52 EST


Jeremy Fitzhardinge wrote:
> H. Peter Anvin wrote:
>> In 32-bit mode? Surely you're joking, Mr. Feynman!
>>
>
> Right, yes.
>
>> What's worse, reloading segments here might be highly unsafe, if the
>> memory previously occupied by the GDT has been overwritten. Keep in
>> mind the GDT is touched on a segment *load*, not on a segment *access*;
>> in areas such as booting that can be a huge difference.
>>
>
> Yep, suits me. I'm happy for the code to assume that at least %cs and
> %ds are sane; I guess %ss too. We could copy %ds into %[efg]s if we
> want to be sure (since I could imagine a bootloader leaving them in a
> less defined state).

No, we shouldn't. %es should be assumed set up (this is 32-bit code,
after all!), and %fs and %gs should not be used.

> But if the gdt could be missing altogether, then, yes, we should not
> touch them at all.

Exactly. Not relying on a set-up GDT is the safest option, IMNSHO.

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