[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] Re: [Xen-devel] [PATCH SpectreV1+L1TF v4 03/11] config: introduce L1TF_LFENCE option
>>> On 23.01.19 at 14:44, <julien.grall@xxxxxxx> wrote: > On 23/01/2019 13:39, Jan Beulich wrote: >>>>> On 23.01.19 at 14:24, <julien.grall@xxxxxxx> wrote: >>> On 23/01/2019 11:51, Norbert Manthey wrote: >>>> --- a/xen/include/xen/nospec.h >>>> +++ b/xen/include/xen/nospec.h >>>> @@ -68,10 +68,18 @@ static inline bool lfence_true(void) { return true; } >>>> #endif >>>> >>>> /* >>>> - * protect evaluation of conditional with respect to speculation >>>> + * allow to protect evaluation of conditional with respect to speculation >>>> on x86 >>>> */ >>>> -#define evaluate_nospec(condition) \ >>>> +#if defined(CONFIG_L1TF_LFENCE_NONE) || !defined(CONFIG_X86) >>>> +#define evaluate_nospec(condition) (condition) >>>> +#elif defined(CONFIG_L1TF_LFENCE_BOTH) >>>> +#define evaluate_nospec(condition) >>>> \ >>>> (((condition) && lfence_true()) || !lfence_true()) >>>> +#elif defined(CONFIG_L1TF_LFENCE_TRUE) >>>> +#define evaluate_nospec(condition) ((condition) && lfence_true()) >>>> +#elif defined(CONFIG_L1TF_LFENCE_INTERMEDIATE) >>>> +#define evaluate_nospec(condition) ({ bool res = (condition); rmb(); res; >>>> }) >>> +#endif >>> >>> None of the configs are defined on Arm, so can this be moved in arch-x86? >> >> To be honest I'd like to avoid introducing asm/nospec.h for the time >> being. > > How about adding them in system.h as we did for array_index_mask_nospec? To tell you the truth, that's where Norbert had it originally. I think that's not the right place though (also for array_index_mask_nospec()). But I'll listen to a majority thinking differently, at least as far as what is currently lfence_true() goes. evaluate_nospec(), otoh, belongs where it is now, I think. Jan _______________________________________________ Xen-devel mailing list Xen-devel@xxxxxxxxxxxxxxxxxxxx https://lists.xenproject.org/mailman/listinfo/xen-devel
|
Lists.xenproject.org is hosted with RackSpace, monitoring our |