tools/power/x86/intel-speed-select: Enforce isst_id value
authorZhang Rui <rui.zhang@intel.com>
Sat, 20 Aug 2022 15:58:24 +0000 (23:58 +0800)
committerSrinivas Pandruvada <srinivas.pandruvada@linux.intel.com>
Thu, 15 Sep 2022 18:16:05 +0000 (11:16 -0700)
Enforce the pkg/die value in struct isst_id are either -1 or a valid
value.

This helps avoid inconsistent or redundant checks.

Signed-off-by: Zhang Rui <rui.zhang@intel.com>
Signed-off-by: Srinivas Pandruvada <srinivas.pandruvada@linux.intel.com>
tools/power/x86/intel-speed-select/isst-config.c
tools/power/x86/intel-speed-select/isst-daemon.c

index a60b089..f02de7e 100644 (file)
@@ -362,8 +362,14 @@ static int get_physical_die_id(int cpu)
 void set_isst_id(struct isst_id *id, int cpu)
 {
        id->cpu = cpu;
+
        id->pkg = get_physical_package_id(cpu);
+       if (id < 0 || id->pkg >= MAX_PACKAGE_COUNT)
+               id->pkg = -1;
+
        id->die = get_physical_die_id(cpu);
+       if (id < 0 || id->die >= MAX_DIE_PER_PACKAGE)
+               id->die = -1;
 }
 
 int is_cpu_in_power_domain(int cpu, struct isst_id *id)
@@ -614,10 +620,10 @@ int get_max_punit_core_id(struct isst_id *id)
 
 int get_cpu_count(struct isst_id *id)
 {
-       if (id->pkg < MAX_PACKAGE_COUNT && id->die < MAX_DIE_PER_PACKAGE)
-               return cpu_cnt[id->pkg][id->die];
+       if (id->pkg < 0 || id->die < 0)
+               return 0;
 
-       return 0;
+       return cpu_cnt[id->pkg][id->die];
 }
 
 static void set_cpu_target_cpu_mask(void)
index c5d978e..0699137 100644 (file)
@@ -39,7 +39,7 @@ void process_level_change(struct isst_id *id)
        time_t tm;
        int ret;
 
-       if (id->pkg >= MAX_PACKAGE_COUNT || id->die >= MAX_DIE_PER_PACKAGE) {
+       if (id->pkg < 0 || id->die < 0) {
                debug_printf("Invalid package/die info for cpu:%d\n", id->cpu);
                return;
        }