diff options
| author | David S. Miller <davem@davemloft.net> | 2019-10-19 22:51:25 -0700 |
|---|---|---|
| committer | David S. Miller <davem@davemloft.net> | 2019-10-20 10:43:00 -0700 |
| commit | 2f184393e0c2d409c62262f57f2a57efdf9370b8 (patch) | |
| tree | 25b96db2550014d7f888605abfabb67a7f40a5d3 /arch/arm64/include/asm/memory.h | |
| parent | ebcd670d05d54ff8d17a1a51bba1ec1e4069d949 (diff) | |
| parent | 531e93d11470aa2e14e6a3febef50d9bc7bab7a1 (diff) | |
| download | talos-op-linux-2f184393e0c2d409c62262f57f2a57efdf9370b8.tar.gz talos-op-linux-2f184393e0c2d409c62262f57f2a57efdf9370b8.zip | |
Merge git://git.kernel.org/pub/scm/linux/kernel/git/netdev/net
Several cases of overlapping changes which were for the most
part trivially resolvable.
Signed-off-by: David S. Miller <davem@davemloft.net>
Diffstat (limited to 'arch/arm64/include/asm/memory.h')
| -rw-r--r-- | arch/arm64/include/asm/memory.h | 10 |
1 files changed, 8 insertions, 2 deletions
diff --git a/arch/arm64/include/asm/memory.h b/arch/arm64/include/asm/memory.h index b61b50bf68b1..c23c47360664 100644 --- a/arch/arm64/include/asm/memory.h +++ b/arch/arm64/include/asm/memory.h @@ -215,12 +215,18 @@ static inline unsigned long kaslr_offset(void) * up with a tagged userland pointer. Clear the tag to get a sane pointer to * pass on to access_ok(), for instance. */ -#define untagged_addr(addr) \ +#define __untagged_addr(addr) \ ((__force __typeof__(addr))sign_extend64((__force u64)(addr), 55)) +#define untagged_addr(addr) ({ \ + u64 __addr = (__force u64)addr; \ + __addr &= __untagged_addr(__addr); \ + (__force __typeof__(addr))__addr; \ +}) + #ifdef CONFIG_KASAN_SW_TAGS #define __tag_shifted(tag) ((u64)(tag) << 56) -#define __tag_reset(addr) untagged_addr(addr) +#define __tag_reset(addr) __untagged_addr(addr) #define __tag_get(addr) (__u8)((u64)(addr) >> 56) #else #define __tag_shifted(tag) 0UL |

