[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] Re: [Xen-devel] [PATCH] cpufreq: error path fixes
On 14/10/2011 08:24, "Jan Beulich" <JBeulich@xxxxxxxx> wrote: > This fixes an actual bug (failure to exit from a function after an > allocation failure), an inconsistency (not removing the cpufreq_dom > list member upon failure), and a latent bug (not clearing the current > governor upon governor initialization failure when there was no old > one; latent because the only current code path leading to this > situation frees the policy upon failure and hence the governor not > getting cleared is benign). > > Signed-off-by: Jan Beulich <jbeulich@xxxxxxxx> Acked-by: Keir Fraser <keir@xxxxxxx> > --- a/xen/drivers/cpufreq/cpufreq.c > +++ b/xen/drivers/cpufreq/cpufreq.c > @@ -176,8 +176,10 @@ int cpufreq_add_cpu(unsigned int cpu) > > if (!domexist || hw_all) { > policy = xzalloc(struct cpufreq_policy); > - if (!policy) > + if (!policy) { > ret = -ENOMEM; > + goto err0; > + } > > policy->cpu = cpu; > per_cpu(cpufreq_cpu_policy, cpu) = policy; > @@ -186,7 +188,7 @@ int cpufreq_add_cpu(unsigned int cpu) > if (ret) { > xfree(policy); > per_cpu(cpufreq_cpu_policy, cpu) = NULL; > - return ret; > + goto err0; > } > if (cpufreq_verbose) > printk("CPU %u initialization completed\n", cpu); > @@ -243,7 +245,7 @@ err1: > cpufreq_driver->exit(policy); > xfree(policy); > } > - > +err0: > if (cpus_empty(cpufreq_dom->map)) { > list_del(&cpufreq_dom->node); > xfree(cpufreq_dom); > --- a/xen/drivers/cpufreq/utility.c > +++ b/xen/drivers/cpufreq/utility.c > @@ -458,8 +458,8 @@ int __cpufreq_set_policy(struct cpufreq_ > data->governor->name); > > /* new governor failed, so re-start old one */ > + data->governor = old_gov; > if (old_gov) { > - data->governor = old_gov; > __cpufreq_governor(data, CPUFREQ_GOV_START); > printk(KERN_WARNING "Still stay at %s governor\n", > data->governor->name); > > > > > _______________________________________________ > Xen-devel mailing list > Xen-devel@xxxxxxxxxxxxxxxxxxx > http://lists.xensource.com/xen-devel _______________________________________________ Xen-devel mailing list Xen-devel@xxxxxxxxxxxxxxxxxxx http://lists.xensource.com/xen-devel
|
Lists.xenproject.org is hosted with RackSpace, monitoring our |