On Tue, Jan 14, 2020 at 9:08 PM Vineet Gupta [off-list ref] wrote:
quoted hunk ↗ jump to hunk
diff --git a/arch/arc/include/asm/word-at-a-time.h b/arch/arc/include/asm/word-at-a-time.h
new file mode 100644
index 000000000000..00e92be70987
--- /dev/null
+++ b/arch/arc/include/asm/word-at-a-time.h
@@ -0,0 +1,49 @@
+/* SPDX-License-Identifier: GPL-2.0-only */
+/*
+ * Copyright (C) 2020 Synopsys Inc.
+ */
+#ifndef __ASM_ARC_WORD_AT_A_TIME_H
+#define __ASM_ARC_WORD_AT_A_TIME_H
+
+#ifdef __LITTLE_ENDIAN__
+
+#include <linux/kernel.h>
+
+struct word_at_a_time {
+ const unsigned long one_bits, high_bits;
+};
What's wrong with the generic version on little-endian? Any
chance you can find a way to make it work as well for you as
this copy?
+static inline unsigned long find_zero(unsigned long mask)
+{
+#ifdef CONFIG_64BIT
+ return fls64(mask) >> 3;
+#else
+ return fls(mask) >> 3;
+#endif
The CONFIG_64BIT check not be needed, unless you are adding
support for 64-bit ARC really soon.
Arnd