From 3ba6a27566a53030b3013f9f841ba5889a344cb8 Mon Sep 17 00:00:00 2001 From: Zhang Rui Date: Sat, 20 Aug 2022 23:58:24 +0800 Subject: [PATCH] tools/power/x86/intel-speed-select: Enforce isst_id value 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 Signed-off-by: Srinivas Pandruvada --- tools/power/x86/intel-speed-select/isst-config.c | 12 +++++++++--- tools/power/x86/intel-speed-select/isst-daemon.c | 2 +- 2 files changed, 10 insertions(+), 4 deletions(-) diff --git a/tools/power/x86/intel-speed-select/isst-config.c b/tools/power/x86/intel-speed-select/isst-config.c index a60b089..f02de7e 100644 --- a/tools/power/x86/intel-speed-select/isst-config.c +++ b/tools/power/x86/intel-speed-select/isst-config.c @@ -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) diff --git a/tools/power/x86/intel-speed-select/isst-daemon.c b/tools/power/x86/intel-speed-select/isst-daemon.c index c5d978e..0699137 100644 --- a/tools/power/x86/intel-speed-select/isst-daemon.c +++ b/tools/power/x86/intel-speed-select/isst-daemon.c @@ -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; } -- 2.7.4