Message ID | 1302067772-32104-1-git-send-email-galak@kernel.crashing.org (mailing list archive) |
---|---|
State | Accepted, archived |
Headers | show |
Hi Kumar, On Wed, 6 Apr 2011 00:29:32 -0500 Kumar Gala <galak@kernel.crashing.org> wrote: > > * I'm concerned if its ok to assume 'enum' can handle a 64-bit mask or not. > I'm assuming this is the reason that we use a #define on __powerpc64__ enums are *ints* and therefore 32 bit. gcc can cope, but warns about it (I think). So we must use the #define if any of the included bits are above 2^32.
On Apr 6, 2011, at 12:41 AM, Stephen Rothwell wrote: > Hi Kumar, > > On Wed, 6 Apr 2011 00:29:32 -0500 Kumar Gala <galak@kernel.crashing.org> wrote: >> >> * I'm concerned if its ok to assume 'enum' can handle a 64-bit mask or not. >> I'm assuming this is the reason that we use a #define on __powerpc64__ > > enums are *ints* and therefore 32 bit. gcc can cope, but warns about it > (I think). So we must use the #define if any of the included bits are > above 2^32. Thanks, I'll rework the patch to use #define. - k
diff --git a/arch/powerpc/include/asm/cputable.h b/arch/powerpc/include/asm/cputable.h index be3cdf9..8200e9d 100644 --- a/arch/powerpc/include/asm/cputable.h +++ b/arch/powerpc/include/asm/cputable.h @@ -434,7 +434,7 @@ extern const char *powerpc_base_platform; CPU_FTR_PURR | CPU_FTR_REAL_LE | CPU_FTR_NO_SLBIE_B) #define CPU_FTRS_COMPATIBLE (CPU_FTR_USE_TB | CPU_FTR_PPCAS_ARCH_V2) -#ifdef __powerpc64__ +#if defined(__powerpc64__) && !defined(CONFIG_PPC_BOOK3E) #define CPU_FTRS_POSSIBLE \ (CPU_FTRS_POWER3 | CPU_FTRS_RS64 | CPU_FTRS_POWER4 | \ CPU_FTRS_PPC970 | CPU_FTRS_POWER5 | CPU_FTRS_POWER6 | \ @@ -478,7 +478,7 @@ enum { }; #endif /* __powerpc64__ */ -#ifdef __powerpc64__ +#if defined(__powerpc64__) && !defined(CONFIG_PPC_BOOK3E) #define CPU_FTRS_ALWAYS \ (CPU_FTRS_POWER3 & CPU_FTRS_RS64 & CPU_FTRS_POWER4 & \ CPU_FTRS_PPC970 & CPU_FTRS_POWER5 & CPU_FTRS_POWER6 & \
The CPU_FTRS_POSSIBLE and CPU_FTRS_ALWAYS defines did not encompass e5500 CPU features when built for 64-bit. This causes issues with cpu_has_feature() as it utilizes the POSSIBLE & ALWAYS defines as part of its check. Signed-off-by: Kumar Gala <galak@kernel.crashing.org> --- * I'm concerned if its ok to assume 'enum' can handle a 64-bit mask or not. I'm assuming this is the reason that we use a #define on __powerpc64__ arch/powerpc/include/asm/cputable.h | 4 ++-- 1 files changed, 2 insertions(+), 2 deletions(-)