The locre ID in cpufreq power must be enabled core in application.
Use rte_lcore_is_enabled to verify lcore_id.

Fixes: 6f987b594fa6 ("power: refactor core power management")
Cc: [email protected]

Signed-off-by: Huisong Li <[email protected]>
---
 drivers/power/kvm_vm/kvm_vm.c | 12 ++++++------
 1 file changed, 6 insertions(+), 6 deletions(-)

diff --git a/drivers/power/kvm_vm/kvm_vm.c b/drivers/power/kvm_vm/kvm_vm.c
index 5754a441cd..816863da7a 100644
--- a/drivers/power/kvm_vm/kvm_vm.c
+++ b/drivers/power/kvm_vm/kvm_vm.c
@@ -24,11 +24,11 @@ power_kvm_vm_check_supported(void)
 int
 power_kvm_vm_init(unsigned int lcore_id)
 {
-       if (lcore_id >= RTE_MAX_LCORE) {
-               POWER_LOG(ERR, "Core(%u) is out of range 0...%d",
-                               lcore_id, RTE_MAX_LCORE-1);
+       if (!rte_lcore_is_enabled(lcore_id)) {
+               POWER_LOG(ERR, "lcore id %u is not enabled", lcore_id);
                return -1;
        }
+
        pkt[lcore_id].command = RTE_POWER_CPU_POWER;
        pkt[lcore_id].resource_id = lcore_id;
        return guest_channel_host_connect(FD_PATH, lcore_id);
@@ -73,11 +73,11 @@ send_msg(unsigned int lcore_id, uint32_t scale_direction)
 {
        int ret;
 
-       if (lcore_id >= RTE_MAX_LCORE) {
-               POWER_LOG(ERR, "Core(%u) is out of range 0...%d",
-                               lcore_id, RTE_MAX_LCORE-1);
+       if (!rte_lcore_is_enabled(lcore_id)) {
+               POWER_LOG(ERR, "lcore id %u is not enabled", lcore_id);
                return -1;
        }
+
        pkt[lcore_id].unit = scale_direction;
        ret = guest_channel_send_msg(&pkt[lcore_id], lcore_id);
        if (ret == 0)
-- 
2.33.0

Reply via email to