From 704831fe1f1f02e41ab7440a6f6c2c390ec183b1 Mon Sep 17 00:00:00 2001 From: Nico Weber Date: Wed, 13 Jan 2021 08:30:11 -0500 Subject: [PATCH] Revert "Hwasan InitPrctl check for error using internal_iserror" This reverts commit 1854594b80b444dc21b830b51e53e05d38fc7d60. See https://reviews.llvm.org/D94425#2495621 --- compiler-rt/lib/hwasan/hwasan_linux.cpp | 10 ++++------ 1 file changed, 4 insertions(+), 6 deletions(-) diff --git a/compiler-rt/lib/hwasan/hwasan_linux.cpp b/compiler-rt/lib/hwasan/hwasan_linux.cpp index 793fd2f..e99926d 100644 --- a/compiler-rt/lib/hwasan/hwasan_linux.cpp +++ b/compiler-rt/lib/hwasan/hwasan_linux.cpp @@ -119,10 +119,8 @@ void InitPrctl() { #define PR_GET_TAGGED_ADDR_CTRL 56 #define PR_TAGGED_ADDR_ENABLE (1UL << 0) // Check we're running on a kernel that can use the tagged address ABI. - int local_errno = 0; - if (internal_iserror(internal_prctl(PR_GET_TAGGED_ADDR_CTRL, 0, 0, 0, 0), - &local_errno) && - local_errno == EINVAL) { + if (internal_prctl(PR_GET_TAGGED_ADDR_CTRL, 0, 0, 0, 0) == (uptr)-1 && + errno == EINVAL) { #if SANITIZER_ANDROID // Some older Android kernels have the tagged pointer ABI on // unconditionally, and hence don't have the tagged-addr prctl while still @@ -139,8 +137,8 @@ void InitPrctl() { } // Turn on the tagged address ABI. - if (internal_iserror(internal_prctl(PR_SET_TAGGED_ADDR_CTRL, - PR_TAGGED_ADDR_ENABLE, 0, 0, 0)) || + if (internal_prctl(PR_SET_TAGGED_ADDR_CTRL, PR_TAGGED_ADDR_ENABLE, 0, 0, 0) == + (uptr)-1 || !internal_prctl(PR_GET_TAGGED_ADDR_CTRL, 0, 0, 0, 0)) { Printf( "FATAL: HWAddressSanitizer failed to enable tagged address syscall " -- 2.7.4