Merge "soc: qcom: Fix identified corner cases."

This commit is contained in:
Linux Build Service Account 2019-01-26 02:20:51 -08:00 committed by Gerrit - the friendly Code Review server
commit 09b1cf72e2

View file

@ -154,6 +154,7 @@ static void early_domain_work(struct work_struct *work)
msleep(delay); msleep(delay);
delay = (delay > max_delay ? max_delay : delay + 20); delay = (delay > max_delay ? max_delay : delay + 20);
} }
early_domain_enabled = false;
free_reserved_lk_mem(core_data->lk_pool_paddr, core_data->lk_pool_size); free_reserved_lk_mem(core_data->lk_pool_paddr, core_data->lk_pool_size);
free_reserved_lk_mem(core_data->early_domain_shm, free_reserved_lk_mem(core_data->early_domain_shm,
core_data->early_domain_shm_size); core_data->early_domain_shm_size);
@ -176,10 +177,11 @@ static int early_domain_cpu_notifier(struct notifier_block *self,
cpu = (long)hcpu; cpu = (long)hcpu;
switch (action & ~CPU_TASKS_FROZEN) { switch (action & ~CPU_TASKS_FROZEN) {
case CPU_UP_PREPARE: case CPU_UP_PREPARE:
if (cpumask_test_cpu(cpu, &core_data->cpumask)) if (cpumask_test_cpu(cpu, &core_data->cpumask)) {
pr_err("Early domain services are running on cpu%d\n" pr_err("Early domain services are running on cpu%d\n"
, cpu); , cpu);
break; break;
}
default: default:
notifier = NOTIFY_OK; notifier = NOTIFY_OK;
break; break;
@ -195,7 +197,7 @@ static int init_early_domain_data(struct early_domain_core *core_data)
cpumask_clear(&core_data->cpumask); cpumask_clear(&core_data->cpumask);
cpumask = (unsigned long)core_data->pdata->cpumask; cpumask = (unsigned long)core_data->pdata->cpumask;
for_each_set_bit(cpu, &cpumask, sizeof(cpumask_t)) for_each_set_bit(cpu, &cpumask, sizeof(cpumask))
cpumask_set_cpu(cpu, &core_data->cpumask); cpumask_set_cpu(cpu, &core_data->cpumask);
memset(&core_data->ed_qos_request, 0, memset(&core_data->ed_qos_request, 0,
@ -325,6 +327,7 @@ static int early_domain_remove(struct platform_device *pdev)
pm_qos_remove_request(&core_data->ed_qos_request); pm_qos_remove_request(&core_data->ed_qos_request);
__pm_relax(&core_data->ed_wake_lock); __pm_relax(&core_data->ed_wake_lock);
unregister_cpu_notifier(&core_data->ed_notifier); unregister_cpu_notifier(&core_data->ed_notifier);
early_domain_enabled = false;
kfree(core_data); kfree(core_data);
return 0; return 0;
} }