From 989412bbd2835f1475d1528846693eddbac744c8 Mon Sep 17 00:00:00 2001 From: Linus Torvalds Date: Thu, 22 Mar 2012 15:58:27 -0700 Subject: [PATCH] vfs: tidy up fs/namei.c byte-repeat word constants 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 --- fs/namei.c | 13 ++++--------- 1 file changed, 4 insertions(+), 9 deletions(-) diff --git a/fs/namei.c b/fs/namei.c index bd313d680d34..99a34717b2b0 100644 --- a/fs/namei.c +++ b/fs/namei.c @@ -1455,15 +1455,10 @@ unsigned int full_name_hash(const unsigned char *name, unsigned int len) } 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) -- 2.45.2