summaryrefslogtreecommitdiffstats
path: root/tools/testing/selftests/powerpc/primitives
diff options
context:
space:
mode:
authorMichael Ellerman <mpe@ellerman.id.au>2015-10-12 15:28:57 +1100
committerMichael Ellerman <mpe@ellerman.id.au>2015-10-13 15:08:37 +1100
commitabb39bc792aa8e9143e78a39ec13d7de1391f4b4 (patch)
tree14473279e495bc74e1c89c2f0ba0c6291fffd871 /tools/testing/selftests/powerpc/primitives
parentf2dd80ecca5f06b46134f2bd811f046c503c756c (diff)
downloadlinux-abb39bc792aa8e9143e78a39ec13d7de1391f4b4.tar.gz
linux-abb39bc792aa8e9143e78a39ec13d7de1391f4b4.tar.bz2
linux-abb39bc792aa8e9143e78a39ec13d7de1391f4b4.zip
selftests/powerpc: Fix build failure of load_unaligned_zeropad test
Commit 7a5692e6e533 ("arch/powerpc: provide zero_bytemask() for big-endian") added a call to __fls() in our word-at-a-time.h. That was fine for the kernel build but missed the fact that we also use word-at-a-time.h in a userspace test. Pulling in the kernel version of __fls() gets messy, so just define our own, it's unlikely to change often. Fixes: 7a5692e6e533 ("arch/powerpc: provide zero_bytemask() for big-endian") Signed-off-by: Michael Ellerman <mpe@ellerman.id.au>
Diffstat (limited to 'tools/testing/selftests/powerpc/primitives')
-rw-r--r--tools/testing/selftests/powerpc/primitives/load_unaligned_zeropad.c9
1 files changed, 9 insertions, 0 deletions
diff --git a/tools/testing/selftests/powerpc/primitives/load_unaligned_zeropad.c b/tools/testing/selftests/powerpc/primitives/load_unaligned_zeropad.c
index d1b647509596..6cae06117b55 100644
--- a/tools/testing/selftests/powerpc/primitives/load_unaligned_zeropad.c
+++ b/tools/testing/selftests/powerpc/primitives/load_unaligned_zeropad.c
@@ -25,10 +25,19 @@
#define FIXUP_SECTION ".ex_fixup"
+static inline unsigned long __fls(unsigned long x);
+
#include "word-at-a-time.h"
#include "utils.h"
+static inline unsigned long __fls(unsigned long x)
+{
+ int lz;
+
+ asm (PPC_CNTLZL "%0,%1" : "=r" (lz) : "r" (x));
+ return sizeof(unsigned long) - 1 - lz;
+}
static int page_size;
static char *mem_region;