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