On Fri, Jun 17, 2022 at 4:36 AM Peter Zijlstra <peterz@xxxxxxxxxxxxx> wrote: > > On Thu, Jun 16, 2022 at 07:44:40PM +0300, Kirill A. Shutemov wrote: > > Any objection against this variant (was posted in the thread): > > > > #define untagged_addr(mm, addr) ({ \ > > u64 __addr = (__force u64)(addr); \ > > s64 sign = (s64)__addr >> 63; \ > > __addr &= (mm)->context.untag_mask | sign; \ > > (__force __typeof__(addr))__addr; \ > > }) > > > > ? > > Yeah, I suppose that should work fine. Won't the sign bit be put at the wrong place? -- H.J.