From: Lin Ming on
On Wed, 2010-05-19 at 02:38 +0800, Cyrill Gorcunov wrote:
> On Wed, May 19, 2010 at 01:45:02AM +0000, Lin Ming wrote:
> ...
> > +int perf_event_register_pmu(struct pmu *pmu)
> > +{
> > + struct pmu *tmp;
> > + int ret = 1;
> > +
> > + rcu_read_lock();
> > + list_for_each_entry_rcu(tmp, &pmus, entry) {
> > + if (tmp->id == pmu->id) {
> > + ret = 0;
> > + goto err;
>
> Hi Ming, is it supposed to get out in locked state?
> I mean imbalanced rcu_read_lock somehow suspicicous ;)

Ah, yes, that's real bug.
I'll fix it.

Thanks for review.

>
> > + }
> > + }
> > + rcu_read_unlock();
> > +
> > + spin_lock(&pmus_lock);
> > + list_add_tail_rcu(&pmu->entry, &pmus);
> > + spin_unlock(&pmus_lock);
> > +
> > +err:
> > + return ret;
> > +}
> > +
> ...
>
> -- Cyrill

--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo(a)vger.kernel.org
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/