Re: [PATCH] x86/cacheinfo: fix a -Wtype-limits warning

From: Sean Christopherson
Date: Wed Jun 05 2019 - 16:11:09 EST


On Wed, Jun 05, 2019 at 03:40:54PM -0400, Qian Cai wrote:
> cpuinfo_x86.x86_model is an unsigned type, so compares it against zero
> will generate a compilation warning,
>
> arch/x86/kernel/cpu/cacheinfo.c: In function
> 'cacheinfo_amd_init_llc_id':
> arch/x86/kernel/cpu/cacheinfo.c:662:19: warning: comparison is always
> true due to limited range of data type [-Wtype-limits]
>
> Signed-off-by: Qian Cai <cai@xxxxxx>
> ---
> arch/x86/kernel/cpu/cacheinfo.c | 3 +--
> 1 file changed, 1 insertion(+), 2 deletions(-)
>
> diff --git a/arch/x86/kernel/cpu/cacheinfo.c b/arch/x86/kernel/cpu/cacheinfo.c
> index 395d46f78582..c7503be92f35 100644
> --- a/arch/x86/kernel/cpu/cacheinfo.c
> +++ b/arch/x86/kernel/cpu/cacheinfo.c
> @@ -658,8 +658,7 @@ void cacheinfo_amd_init_llc_id(struct cpuinfo_x86 *c, int cpu, u8 node_id)
> if (c->x86 < 0x17) {
> /* LLC is at the node level. */
> per_cpu(cpu_llc_id, cpu) = node_id;
> - } else if (c->x86 == 0x17 &&
> - c->x86_model >= 0 && c->x86_model <= 0x1F) {
> + } else if (c->x86 == 0x17 && c->x86_model <= 0x1F) {

Might be worth calling out in the changelog that 'c->x86 == 0x17' is true
if and only if c->x86_model was explicitly set by cpu_detect(), i.e. the
patch is correct even if the original intent was a misguided attempt to
check that x86_model has been set.

Fixes: 68091ee7ac3c ("x86/CPU/AMD: Calculate last level cache ID from number of sharing threads")
Reviewed-by: Sean Christopherson <sean.j.christopherson@xxxxxxxxx>

> /*
> * LLC is at the core complex level.
> * Core complex ID is ApicId[3] for these processors.
> --
> 1.8.3.1
>