aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--tools/power/x86/intel-speed-select/isst-config.c12
-rw-r--r--tools/power/x86/intel-speed-select/isst-daemon.c2
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 a60b0893b4dc..f02de7e112f7 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 c5d978ecc443..0699137c0901 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;
}