From: Anatoly Burakov Date: Fri, 2 Apr 2021 09:26:44 +0000 (+0000) Subject: power: fix P-state base frequency handling X-Git-Url: http://git.droids-corp.org/?a=commitdiff_plain;h=8a5febaac4f7;p=dpdk.git power: fix P-state base frequency handling Previous fix for base frequency handling in pstate mode introduced a couple of issues: - When base_frequency file does not exist, it simply bails out because of what appears to be accidental addition of FOPEN_OR_ERR_RET. This is incorrect, as absence of this file is not fatal and is in fact expected on kernel versions earlier than 5.3 - When base_frequency file does exist, it gets opened, but never gets closed, resulting in a resource leak Both issues also manifest themselves as Coverity defects (dead code, and a resource leak), so this fix addresses both. Coverity issue: 369693, 369694 Bugzilla ID: 668 Fixes: 4db9587bbf72 ("power: check sysfs base frequency") Signed-off-by: Anatoly Burakov Acked-by: Reshma Pattan --- diff --git a/lib/librte_power/power_pstate_cpufreq.c b/lib/librte_power/power_pstate_cpufreq.c index 8a1fffaed5..c4639e4b8a 100644 --- a/lib/librte_power/power_pstate_cpufreq.c +++ b/lib/librte_power/power_pstate_cpufreq.c @@ -206,7 +206,6 @@ power_init_for_setting_freq(struct pstate_power_info *pi) pi->lcore_id); f_base = fopen(fullpath_base, "r"); - FOPEN_OR_ERR_RET(f_base, -1); if (f_base == NULL) { /* No sysfs base_frequency, that's OK, continue without */ base_ratio = 0; @@ -221,6 +220,7 @@ power_init_for_setting_freq(struct pstate_power_info *pi) base_ratio = strtoul(buf_base, NULL, POWER_CONVERT_TO_DECIMAL) / BUS_FREQ; + fclose(f_base); } /* Add MSR read to detect turbo status */