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

From: H. Peter Anvin
Date: Fri May 04 2007 - 11:47:01 EST


Jeremy Fitzhardinge wrote:
>
> So if we reload using a constant selector, then that will break under
> Xen. But if we do a:
>
> mov %cs, %eax
> mov %eax, %ds
> // etc
>
> sequence then it should be fine. This will work even for loading %ss,
> since the %cs CPL will equal the RPL needed for %ss.

In 32-bit mode? Surely you're joking, Mr. Feynman!

In protected mode, you *must* have different descriptor values for the
code segment as opposed to the data segments, at least if you ever want
to write anything to the data segments!

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.

-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/