Merge "drivers: cpuidle: lpm-levels: check for valid LPM stats"

This commit is contained in:
qctecmdr 2020-05-18 07:55:00 -07:00 • committed by Gerrit - the friendly Code Review server
commit ec45186e15

View file

@ -1016,7 +1016,8 @@ static void cluster_prepare(struct lpm_cluster *cluster,
if (cluster_configure(cluster, i, from_idle, predicted))
goto failed;
cluster->stats->sleep_time = start_time;
if (!IS_ERR_OR_NULL(cluster->stats))
cluster->stats->sleep_time = start_time;
cluster_prepare(cluster->parent, &cluster->num_children_in_sync, i,
from_idle, start_time);
@ -1024,7 +1025,8 @@ static void cluster_prepare(struct lpm_cluster *cluster,
return;
failed:
spin_unlock(&cluster->sync_lock);
cluster->stats->sleep_time = 0;
if (!IS_ERR_OR_NULL(cluster->stats))
cluster->stats->sleep_time = 0;
}
static void cluster_unprepare(struct lpm_cluster *cluster,
@ -1063,7 +1065,7 @@ static void cluster_unprepare(struct lpm_cluster *cluster,
if (!first_cpu || cluster->last_level == cluster->default_level)
goto unlock_return;
if (cluster->stats->sleep_time)
if (!IS_ERR_OR_NULL(cluster->stats) && cluster->stats->sleep_time)
cluster->stats->sleep_time = end_time -
cluster->stats->sleep_time;
lpm_stats_cluster_exit(cluster->stats, cluster->last_level, success);
@ -1481,6 +1483,9 @@ static void register_cluster_lpm_stats(struct lpm_cluster *cl,
cl->stats = lpm_stats_config_level(cl->cluster_name, level_name,
cl->nlevels, parent ? parent->stats : NULL, NULL);
if (IS_ERR_OR_NULL(cl->stats))
pr_info("Cluster (%s) stats not registered\n",
cl->cluster_name);
kfree(level_name);