power: return error when environment already set

On attempt to set_env in already initialized state notify
user by returning error that operation cannot be performed.

Signed-off-by: Marcin Hajkowski <marcinx.hajkowski@intel.com>
Acked-by: Anatoly Burakov <anatoly.burakov@intel.com>
This commit is contained in:
Marcin Hajkowski 2019-04-05 18:22:03 +02:00 committed by Thomas Monjalon
parent 92433e3473
commit 5a5f3178d4
2 changed files with 4 additions and 2 deletions

View File

@ -33,8 +33,9 @@ rte_power_set_env(enum power_management_env env)
rte_spinlock_lock(&global_env_cfg_lock); rte_spinlock_lock(&global_env_cfg_lock);
if (global_default_env != PM_ENV_NOT_SET) { if (global_default_env != PM_ENV_NOT_SET) {
RTE_LOG(ERR, POWER, "Power Management Environment already set.\n");
rte_spinlock_unlock(&global_env_cfg_lock); rte_spinlock_unlock(&global_env_cfg_lock);
return 0; return -1;
} }
int ret = 0; int ret = 0;

View File

@ -26,7 +26,8 @@ enum power_management_env {PM_ENV_NOT_SET, PM_ENV_ACPI_CPUFREQ, PM_ENV_KVM_VM,
/** /**
* Set the default power management implementation. If this is not called prior * Set the default power management implementation. If this is not called prior
* to rte_power_init(), then auto-detect of the environment will take place. * to rte_power_init(), then auto-detect of the environment will take place.
* It is thread safe. * It is thread safe. New env can be set only in unitialized state
* (thus rte_power_unset_env must be called if different env was already set).
* *
* @param env * @param env
* env. The environment in which to initialise Power Management for. * env. The environment in which to initialise Power Management for.