Re: [PATCHv3 5/8] x86/uaccess: Provide untagged_addr() and remove tags before address check

From: Peter Zijlstra
Date: Fri Jun 17 2022 - 07:37:06 EST


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.