Re: [bug report] arch_topology: Build cacheinfo from primary CPU

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



Hello Dan,
The 'levels' and 'split_levels' variables are initialized through their
addresses when necessary, so I believe the warning can be ignored.

If you still want to have the variables initialized, please let me know and I
will send a patch,

Regards,
Pierre

On 1/23/23 16:07, Dan Carpenter wrote:
Hello Pierre Gondois,

The patch 5944ce092b97: "arch_topology: Build cacheinfo from primary
CPU" from Jan 4, 2023, leads to the following Smatch static checker
warning:

drivers/base/cacheinfo.c:440 fetch_cache_info()	error: uninitialized symbol 'levels'.
drivers/base/cacheinfo.c:447 fetch_cache_info() error: uninitialized symbol 'split_levels'.

drivers/base/cacheinfo.c
     424 int fetch_cache_info(unsigned int cpu)
     425 {
     426         struct cpu_cacheinfo *this_cpu_ci;
     427         unsigned int levels, split_levels;
     428         int ret;
     429
     430         if (acpi_disabled) {
     431                 ret = init_of_cache_level(cpu);
     432                 if (ret < 0)
     433                         return ret;
     434         } else {
     435                 ret = acpi_get_cache_info(cpu, &levels, &split_levels);
     436                 if (ret < 0)
     437                         return ret;

Apparently, I must have CONFIG_ACPI_PPTT disabled.

     438
     439                 this_cpu_ci = get_cpu_cacheinfo(cpu);
--> 440                 this_cpu_ci->num_levels = levels;
                                                   ^^^^^^
Unititialized.

     441                 /*
     442                  * This assumes that:
     443                  * - there cannot be any split caches (data/instruction)
     444                  *   above a unified cache
     445                  * - data/instruction caches come by pair
     446                  */
     447                 this_cpu_ci->num_leaves = levels + split_levels;
     448         }
     449         if (!cache_leaves(cpu))
     450                 return -ENOENT;
     451
     452         return allocate_cache_info(cpu);
     453 }

regards,
dan carpenter



[Index of Archives]     [Linux IBM ACPI]     [Linux Power Management]     [Linux Kernel]     [Linux Laptop]     [Kernel Newbies]     [Share Photos]     [Security]     [Netfilter]     [Bugtraq]     [Yosemite News]     [MIPS Linux]     [ARM Linux]     [Linux Security]     [Linux RAID]     [Samba]     [Video 4 Linux]     [Device Mapper]     [Linux Resources]
  Powered by Linux