|
|
|
|
|
|
|
|
|
|
xen-devel
Re: [Xen-devel] 64-bit failsafe callback
On 27 Mar 2006, at 22:57, Jan Beulich wrote:
We're, while porting the kernel code back to SLES9, running into a
case where the
failsafe callback gets entered. Looking at that code we don't seem to
be able to
understand how it is actually expected to work. That code, out of
load_segments,
stores the selectors (including one or more that failed) into the
(extended) frame
for the kernel to pick them up. The kernel code, however, simply
re-does the load
of these selectors - how can that be expected to work any better than
in the
hypervisor? Further, the kernel blindly loads fs and gs, without
caring to destroy
their base addresses and, even more importantly, its own ability to
access the PDA.
Xen allows the kernel to do something smarter if it wants, but the
correct thing in Linux is to simply zero invalid selectors, so that's
what the failsafe callback handler does. The reload into %gs is indeed
bogus -- it should instead
HYPERVISOR_set_segment_base(SEGBASE_GS_USER_SEL, gs).
-- Keir
_______________________________________________
Xen-devel mailing list
Xen-devel@xxxxxxxxxxxxxxxxxxx
http://lists.xensource.com/xen-devel
|
|
|
|
|