21.01.2021 14:30, Viresh Kumar пишет:
> @@ -1952,9 +1930,16 @@ void dev_pm_opp_put_regulators(struct opp_table 
> *opp_table)
>       for (i = opp_table->regulator_count - 1; i >= 0; i--)
>               regulator_put(opp_table->regulators[i]);
>  
> -     _free_set_opp_data(opp_table);
> +     mutex_lock(&opp_table->lock);
> +     if (opp_table->set_opp_data) {
> +             opp_table->set_opp_data->old_opp.supplies = NULL;
> +             opp_table->set_opp_data->new_opp.supplies = NULL;
> +     }
> +     mutex_unlock(&opp_table->lock);
>  
> +     kfree(opp_table->sod_supplies);
>       kfree(opp_table->regulators);
> +     opp_table->sod_supplies = NULL;
>       opp_table->regulators = NULL;
>       opp_table->regulator_count = -1;

The sod_supplies should be unset under the lock.

Reply via email to