summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorLiang Ma <liang.j.ma@intel.com>2019-04-08 17:19:16 +0100
committerThomas Monjalon <thomas@monjalon.net>2019-05-09 21:07:55 +0200
commit3d45c3b0f5e10cb426b2cc8eb816af32d8d6e538 (patch)
tree4a1099208a04c9240275c20f8bc43e70a140290b
parentbfbc3a50416419d79c9cbe7868d1e9901919c346 (diff)
downloaddpdk-draft-windows-3d45c3b0f5e10cb426b2cc8eb816af32d8d6e538.zip
dpdk-draft-windows-3d45c3b0f5e10cb426b2cc8eb816af32d8d6e538.tar.gz
dpdk-draft-windows-3d45c3b0f5e10cb426b2cc8eb816af32d8d6e538.tar.xz
power: fix resource leak
Fix the resource leaking issue Coverity issue: 337668 Fixes: b60fd5f8b1ce8f0a2c ("power: add bit for high frequency cores") Signed-off-by: Liang Ma <liang.j.ma@intel.com> Tested-by: David Hunt <david.hunt@intel.com>
-rw-r--r--lib/librte_power/power_pstate_cpufreq.c11
1 files changed, 8 insertions, 3 deletions
diff --git a/lib/librte_power/power_pstate_cpufreq.c b/lib/librte_power/power_pstate_cpufreq.c
index c2c4e8e..44a0b4a 100644
--- a/lib/librte_power/power_pstate_cpufreq.c
+++ b/lib/librte_power/power_pstate_cpufreq.c
@@ -158,6 +158,7 @@ power_init_for_setting_freq(struct pstate_power_info *pi)
char *s_base;
uint32_t base_ratio = 0;
uint64_t max_non_turbo = 0;
+ int ret_val = 0;
snprintf(fullpath_min, sizeof(fullpath_min), POWER_SYSFILE_MIN_FREQ,
pi->lcore_id);
@@ -199,8 +200,10 @@ power_init_for_setting_freq(struct pstate_power_info *pi)
/* Add MSR read to detect turbo status */
- if (power_rdmsr(PLATFORM_INFO, &max_non_turbo, pi->lcore_id) < 0)
- return -1;
+ if (power_rdmsr(PLATFORM_INFO, &max_non_turbo, pi->lcore_id) < 0) {
+ ret_val = -1;
+ goto out;
+ }
max_non_turbo = (max_non_turbo&NON_TURBO_MASK)>>NON_TURBO_OFFSET;
@@ -219,7 +222,9 @@ power_init_for_setting_freq(struct pstate_power_info *pi)
pi->core_base_freq = base_ratio * BUS_FREQ;
out:
- return 0;
+ if (f_base != NULL)
+ fclose(f_base);
+ return ret_val;
}
static int