Loading drivers/power/qcom/msm-core.c +4 −1 Original line number Original line Diff line number Diff line Loading @@ -409,9 +409,10 @@ static int update_userspace_power(struct sched_params __user *argp) if (!sp) if (!sp) return -ENOMEM; return -ENOMEM; mutex_lock(&policy_update_mutex); sp->power = allocate_2d_array_uint32_t(node->sp->num_of_freqs); sp->power = allocate_2d_array_uint32_t(node->sp->num_of_freqs); if (IS_ERR_OR_NULL(sp->power)) { if (IS_ERR_OR_NULL(sp->power)) { mutex_unlock(&policy_update_mutex); ret = PTR_ERR(sp->power); ret = PTR_ERR(sp->power); kfree(sp); kfree(sp); return ret; return ret; Loading Loading @@ -455,6 +456,7 @@ static int update_userspace_power(struct sched_params __user *argp) } } } } spin_unlock(&update_lock); spin_unlock(&update_lock); mutex_unlock(&policy_update_mutex); for_each_possible_cpu(cpu) { for_each_possible_cpu(cpu) { if (!pdata_valid[cpu]) if (!pdata_valid[cpu]) Loading @@ -468,6 +470,7 @@ static int update_userspace_power(struct sched_params __user *argp) return 0; return 0; failed: failed: mutex_unlock(&policy_update_mutex); for (i = 0; i < TEMP_DATA_POINTS; i++) for (i = 0; i < TEMP_DATA_POINTS; i++) kfree(sp->power[i]); kfree(sp->power[i]); kfree(sp->power); kfree(sp->power); Loading Loading
drivers/power/qcom/msm-core.c +4 −1 Original line number Original line Diff line number Diff line Loading @@ -409,9 +409,10 @@ static int update_userspace_power(struct sched_params __user *argp) if (!sp) if (!sp) return -ENOMEM; return -ENOMEM; mutex_lock(&policy_update_mutex); sp->power = allocate_2d_array_uint32_t(node->sp->num_of_freqs); sp->power = allocate_2d_array_uint32_t(node->sp->num_of_freqs); if (IS_ERR_OR_NULL(sp->power)) { if (IS_ERR_OR_NULL(sp->power)) { mutex_unlock(&policy_update_mutex); ret = PTR_ERR(sp->power); ret = PTR_ERR(sp->power); kfree(sp); kfree(sp); return ret; return ret; Loading Loading @@ -455,6 +456,7 @@ static int update_userspace_power(struct sched_params __user *argp) } } } } spin_unlock(&update_lock); spin_unlock(&update_lock); mutex_unlock(&policy_update_mutex); for_each_possible_cpu(cpu) { for_each_possible_cpu(cpu) { if (!pdata_valid[cpu]) if (!pdata_valid[cpu]) Loading @@ -468,6 +470,7 @@ static int update_userspace_power(struct sched_params __user *argp) return 0; return 0; failed: failed: mutex_unlock(&policy_update_mutex); for (i = 0; i < TEMP_DATA_POINTS; i++) for (i = 0; i < TEMP_DATA_POINTS; i++) kfree(sp->power[i]); kfree(sp->power[i]); kfree(sp->power); kfree(sp->power); Loading