From: Cyrill Gorcunov on
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 ;)

> + }
> + }
> + 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/