From 7f15f0fbed656a8e18006bd8451e2059571b9447 Mon Sep 17 00:00:00 2001 From: Anatoly Burakov Date: Fri, 23 Apr 2021 11:01:56 +0000 Subject: [PATCH] power: save original ACPI governor always Currently, when we set the acpi governor to "userspace", we check if it is already set to this value, and if it is, we skip setting it. However, we never save this value anywhere, so that next time we come back and request the governor to be set to its original value, the original value is empty. Fix it by saving the original pstate governor first. While we're at it, replace `strlcpy` with `rte_strscpy`. Fixes: 445c6528b55f ("power: common interface for guest and host") Cc: stable@dpdk.org Signed-off-by: Anatoly Burakov Acked-by: Reshma Pattan --- lib/power/power_acpi_cpufreq.c | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/lib/power/power_acpi_cpufreq.c b/lib/power/power_acpi_cpufreq.c index 84a9d75207..d028a9947f 100644 --- a/lib/power/power_acpi_cpufreq.c +++ b/lib/power/power_acpi_cpufreq.c @@ -152,6 +152,9 @@ power_set_governor_userspace(struct rte_power_info *pi) /* Strip off terminating '\n' */ strtok(buf, "\n"); + /* Save the original governor */ + rte_strscpy(pi->governor_ori, buf, sizeof(pi->governor_ori)); + /* Check if current governor is userspace */ if (strncmp(buf, POWER_GOVERNOR_USERSPACE, sizeof(POWER_GOVERNOR_USERSPACE)) == 0) { @@ -160,8 +163,6 @@ power_set_governor_userspace(struct rte_power_info *pi) "already userspace\n", pi->lcore_id); goto out; } - /* Save the original governor */ - strlcpy(pi->governor_ori, buf, sizeof(pi->governor_ori)); /* Write 'userspace' to the governor */ val = fseek(f, 0, SEEK_SET); -- 2.20.1