Login
[x]
Log in using an account from:
Fedora Account System
Red Hat Associate
Red Hat Customer
Or login using a Red Hat Bugzilla account
Forgot Password
Login:
Hide Forgot
Create an Account
Red Hat Bugzilla – Attachment 303657 Details for
Bug 442949
F-9 xen pv_ops : unimplemented failsafe_callback() called while running prelink
[?]
New
Simple Search
Advanced Search
My Links
Browse
Requests
Reports
Current State
Search
Tabular reports
Graphical reports
Duplicates
Other Reports
User Changes
Plotly Reports
Bug Status
Bug Severity
Non-Defaults
|
Product Dashboard
Help
Page Help!
Bug Writing Guidelines
What's new
Browser Support Policy
5.0.4.rh83 Release notes
FAQ
Guides index
User guide
Web Services
Contact
Legal
This site requires JavaScript to be enabled to function correctly, please enable it.
[patch]
clear %fs when loading new TLS descriptors (2/2)
fs-descriptor-clear-2.patch (text/plain), 2.03 KB, created by
Eduardo Habkost
on 2008-04-24 16:10:37 UTC
(
hide
)
Description:
clear %fs when loading new TLS descriptors (2/2)
Filename:
MIME Type:
Creator:
Eduardo Habkost
Created:
2008-04-24 16:10:37 UTC
Size:
2.03 KB
patch
obsolete
>commit 5ccfa2809516aa50beb9bd54c2e2d4a367c7ea6e >Author: Eduardo Habkost <ehabkost@redhat.com> >Date: Mon Apr 7 15:48:00 2008 -0300 > > xen-64: Clear %fs on xen_load_tls() > > We need to do this, otherwise we can get a GPF on hypercall return > after TLS descriptor is cleared but %fs is still pointing to it. > > Signed-off-by: Eduardo Habkost <ehabkost@redhat.com> > >diff --git a/arch/x86/xen/enlighten.c b/arch/x86/xen/enlighten.c >index 5151b0f..bbee2f0 100644 >--- a/arch/x86/xen/enlighten.c >+++ b/arch/x86/xen/enlighten.c >@@ -385,7 +385,6 @@ static void xen_load_tls(struct thread_struct *t, unsigned int cpu) > > xen_mc_issue(PARAVIRT_LAZY_CPU); > >-#ifdef CONFIG_X86_32 > /* > * XXX sleazy hack: If we're being called in a lazy-cpu zone, > * it means we're in a context switch, and %gs has just been >@@ -395,20 +394,22 @@ static void xen_load_tls(struct thread_struct *t, unsigned int cpu) > * loaded properly. This will go away as soon as Xen has been > * modified to not save/restore %gs for normal hypercalls. > * >- * This hack is not used on x86_64, because: >- * - For %gs: x86_64 gs points to KERNEL_GS_BASE (and uses it for PDA >- * references), so we must not zero %gs on x86_64 >- * - For %fs: x86_64 may have %fs pointing to TLS descriptors, but >- * __switch_to() reads %fs after load_TLS(). We can't clear it >+ * On x86_64, this hack is not used for %gs, because gs points >+ * to KERNEL_GS_BASE (and uses it for PDA references), so we >+ * must not zero %gs on x86_64 > * >- * FIXME: we need to be sure we don't _need_ the hack on x86_64. >- * Can we get a #GP when switch back from the hypervisor if >- * TLS descriptor is cleared but %fs still points to it? >+ * For x86_64, we need to zero %fs, otherwise we may >+ * get an exception between the new %fs descriptor being >+ * loaded and %fs being effectively cleared at __switch_to(). > */ > if (paravirt_get_lazy_mode() == PARAVIRT_LAZY_CPU) { >+#ifdef CONFIG_X86_64 >+ loadsegment(fs, 0); >+#endif >+#ifdef CONFIG_X86_32 > loadsegment(gs, 0); >- } > #endif >+ } > } > > #ifdef CONFIG_X86_64
You cannot view the attachment while viewing its details because your browser does not support IFRAMEs.
View the attachment on a separate page
.
View Attachment As Diff
View Attachment As Raw
Actions:
View
|
Diff
Attachments on
bug 442949
:
302798
|
303656
| 303657