All of lore.kernel.org
 help / color / mirror / Atom feed
* [PATCH] Choose retpoline only when it is safe to use
@ 2018-02-06  8:43 Zhenzhong Duan
  2018-02-06  8:59 ` Andrew Cooper
  0 siblings, 1 reply; 4+ messages in thread
From: Zhenzhong Duan @ 2018-02-06  8:43 UTC (permalink / raw)
  To: JBeulich, andrew.cooper3; +Cc: Boris Ostrovsky, Xen-Devel, Srinivas REDDY Eeda

When ( ibrs && thunk == THUNK_DEFAULT && !retpoline_safe() ) is true,
thunk is set to THUNK_JMP rather than THUNK_RETPOLINE.

When (!ibrs && thunk == THUNK_DEFAULT && !retpoline_safe() ) is true,
we should do the same.

Signed-off-by: Zhenzhong Duan <zhenzhong.duan@oracle.com>
---
 xen/arch/x86/spec_ctrl.c |    4 ++--
 1 files changed, 2 insertions(+), 2 deletions(-)

diff --git a/xen/arch/x86/spec_ctrl.c b/xen/arch/x86/spec_ctrl.c
index f10ffbf..ab4b244 100644
--- a/xen/arch/x86/spec_ctrl.c
+++ b/xen/arch/x86/spec_ctrl.c
@@ -247,10 +247,10 @@ void __init init_speculation_mitigations(void)
 
     /*
      * If there are still no thunk preferences, the compiled default is
-     * actually retpoline, and it is better than nothing.
+     * actually retpoline, and it is better than nothing if it's retpoline safe.
      */
     if ( thunk == THUNK_DEFAULT )
-        thunk = THUNK_RETPOLINE;
+        thunk = retpoline_safe() ? THUNK_RETPOLINE : THUNK_JMP;
 
     /* Apply the chosen settings. */
     if ( thunk == THUNK_LFENCE )
-- 
1.7.3

_______________________________________________
Xen-devel mailing list
Xen-devel@lists.xenproject.org
https://lists.xenproject.org/mailman/listinfo/xen-devel

^ permalink raw reply related	[flat|nested] 4+ messages in thread

end of thread, other threads:[~2018-02-06  9:20 UTC | newest]

Thread overview: 4+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2018-02-06  8:43 [PATCH] Choose retpoline only when it is safe to use Zhenzhong Duan
2018-02-06  8:59 ` Andrew Cooper
2018-02-06  9:13   ` Zhenzhong Duan
2018-02-06  9:20     ` Andrew Cooper

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.