> +     if (x86_pmu.attr_freeze_on_smi == val)
> +             return count;
> +
> +     mutex_lock(&freeze_on_smi_mutex);

I don't think the mutex is really needed, but if it was it would 
need to include the previous check too to be atomic.

> +
> +     get_online_cpus();
> +
> +     flip_smm_bit(&val);
> +     smp_call_function(flip_smm_bit, &val, 1);
> +
> +     put_online_cpus();

This is on_each_cpu() 

> +
> +     x86_pmu.attr_freeze_on_smi = val;
> +
> +     mutex_unlock(&freeze_on_smi_mutex);


-Andi

Reply via email to