On Tue, 2025-01-21 at 10:45 +0100, Peter Zijlstra wrote: > On Sun, Jan 19, 2025 at 09:40:13PM -0500, Rik van Riel wrote: > > > > > +static inline void __invlpgb(unsigned long asid, unsigned long > > pcid, > > + unsigned long addr, u16 extra_count, > > + bool pmd_stride, unsigned long flags) > > +{ > > + u32 edx = (pcid << 16) | asid; > > + u32 ecx = (pmd_stride << 31) | extra_count; > > + u64 rax = addr | flags; > > + > > + /* INVLPGB; supported in binutils >= 2.36. */ > > + asm volatile(".byte 0x0f, 0x01, 0xfe" : : "a" (rax), "c" > > (ecx), "d" (edx)); > > +} > > So asid is always 0 (for now), but I'd feel better if that was a u16 > argument, less chance funnies when someone starts using it. > > We should probably mask or WARN on addr having low bits set, and > flags > should then be a u8 or something. Done and done. Thank you for the suggestions. -- All Rights Reversed.