From e35bd48969f381d1f1de92f402669c5b95698cba Mon Sep 17 00:00:00 2001 From: Felix Kuehling Date: Tue, 19 Sep 2017 16:11:30 -0400 Subject: [PATCH 1858/4131] drm/amd: Avoid using x86-specific _BITOPS_LONG_SHIFT MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: Felix Kuehling Acked-by: Christian König --- drivers/gpu/drm/amd/include/linux/chash.h | 22 +++++++++++++++------- 1 file changed, 15 insertions(+), 7 deletions(-) diff --git a/drivers/gpu/drm/amd/include/linux/chash.h b/drivers/gpu/drm/amd/include/linux/chash.h index c89b92b..6dc1599 100644 --- a/drivers/gpu/drm/amd/include/linux/chash.h +++ b/drivers/gpu/drm/amd/include/linux/chash.h @@ -27,7 +27,15 @@ #include #include #include -#include +#include + +#if BITS_PER_LONG == 32 +# define _CHASH_LONG_SHIFT 5 +#elif BITS_PER_LONG == 64 +# define _CHASH_LONG_SHIFT 6 +#else +# error "Unexpected BITS_PER_LONG" +#endif struct __chash_table { u8 bits; @@ -283,31 +291,31 @@ struct chash_iter { static inline bool chash_iter_is_valid(const struct chash_iter iter) { BUG_ON((unsigned)iter.slot >= (1 << iter.table->bits)); - return !!(iter.table->valid_bitmap[iter.slot >> _BITOPS_LONG_SHIFT] & + return !!(iter.table->valid_bitmap[iter.slot >> _CHASH_LONG_SHIFT] & iter.mask); } static inline bool chash_iter_is_empty(const struct chash_iter iter) { BUG_ON((unsigned)iter.slot >= (1 << iter.table->bits)); - return !(iter.table->occup_bitmap[iter.slot >> _BITOPS_LONG_SHIFT] & + return !(iter.table->occup_bitmap[iter.slot >> _CHASH_LONG_SHIFT] & iter.mask); } static inline void chash_iter_set_valid(const struct chash_iter iter) { BUG_ON((unsigned)iter.slot >= (1 << iter.table->bits)); - iter.table->valid_bitmap[iter.slot >> _BITOPS_LONG_SHIFT] |= iter.mask; - iter.table->occup_bitmap[iter.slot >> _BITOPS_LONG_SHIFT] |= iter.mask; + iter.table->valid_bitmap[iter.slot >> _CHASH_LONG_SHIFT] |= iter.mask; + iter.table->occup_bitmap[iter.slot >> _CHASH_LONG_SHIFT] |= iter.mask; } static inline void chash_iter_set_invalid(const struct chash_iter iter) { BUG_ON((unsigned)iter.slot >= (1 << iter.table->bits)); - iter.table->valid_bitmap[iter.slot >> _BITOPS_LONG_SHIFT] &= ~iter.mask; + iter.table->valid_bitmap[iter.slot >> _CHASH_LONG_SHIFT] &= ~iter.mask; } static inline void chash_iter_set_empty(const struct chash_iter iter) { BUG_ON((unsigned)iter.slot >= (1 << iter.table->bits)); - iter.table->occup_bitmap[iter.slot >> _BITOPS_LONG_SHIFT] &= ~iter.mask; + iter.table->occup_bitmap[iter.slot >> _CHASH_LONG_SHIFT] &= ~iter.mask; } static inline u32 chash_iter_key32(const struct chash_iter iter) -- 2.7.4