On 17.01.2018 10:48, Martin Schwidefsky wrote: > Implement nospec_load() and nospec_ptr() for s390 with the new > gmb() barrier between the boundary condition and the load that > may not be done speculatively. > > Acked-by: Christian Borntraeger <borntraeger@xxxxxxxxxx> > Signed-off-by: Martin Schwidefsky <schwidefsky@xxxxxxxxxx> > --- > arch/s390/include/asm/barrier.h | 38 ++++++++++++++++++++++++++++++++++++++ > arch/s390/kernel/alternative.c | 7 +++++++ > 2 files changed, 45 insertions(+) > > diff --git a/arch/s390/include/asm/barrier.h b/arch/s390/include/asm/barrier.h > index 1043260..b8836a6 100644 > --- a/arch/s390/include/asm/barrier.h > +++ b/arch/s390/include/asm/barrier.h > @@ -8,6 +8,8 @@ > #ifndef __ASM_BARRIER_H > #define __ASM_BARRIER_H > > +#include <asm/alternative.h> > + > /* > * Force strict CPU ordering. > * And yes, this is required on UP too when we're talking > @@ -23,6 +25,42 @@ > > #define mb() do { asm volatile(__ASM_BARRIER : : : "memory"); } while (0) > > +static inline void gmb(void) > +{ > + asm volatile( > + ALTERNATIVE("", ".long 0xb2e8f000", 81) > + : : : "memory"); > +} Just to be sure: There are now 2 new facilities: 81 and 82. Is 82 just the virtualization (SIE) support for 81? -- Thanks, David / dhildenb