vfs: tidy up fs/namei.c byte-repeat word constants
authorLinus Torvalds <torvalds@linux-foundation.org>
Thu, 22 Mar 2012 22:58:27 +0000 (15:58 -0700)
committerLinus Torvalds <torvalds@linux-foundation.org>
Thu, 22 Mar 2012 22:58:27 +0000 (15:58 -0700)
In commit commit 1de5b41cd3b2 ("fs/namei.c: fix warnings on 32-bit")
Andrew said that there must be a tidier way of doing this.

This is that tidier way.

Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
fs/namei.c

index bd313d6..99a3471 100644 (file)
@@ -1455,15 +1455,10 @@ done:
 }
 EXPORT_SYMBOL(full_name_hash);
 
-#ifdef CONFIG_64BIT
-#define ONEBYTES       0x0101010101010101ul
-#define SLASHBYTES     0x2f2f2f2f2f2f2f2ful
-#define HIGHBITS       0x8080808080808080ul
-#else
-#define ONEBYTES       0x01010101ul
-#define SLASHBYTES     0x2f2f2f2ful
-#define HIGHBITS       0x80808080ul
-#endif
+#define REPEAT_BYTE(x) ((~0ul / 0xff) * (x))
+#define ONEBYTES       REPEAT_BYTE(0x01)
+#define SLASHBYTES     REPEAT_BYTE('/')
+#define HIGHBITS       REPEAT_BYTE(0x80)
 
 /* Return the high bit set in the first byte that is a zero */
 static inline unsigned long has_zero(unsigned long a)