]> git.kernelconcepts.de Git - karo-tx-linux.git/blobdiff - arch/x86/kernel/cpu/mcheck/mce-inject.c
x86: mce: Serialize mce injection
[karo-tx-linux.git] / arch / x86 / kernel / cpu / mcheck / mce-inject.c
index 753746f6dbd8072f186669d9dd6b43177a19308e..ddc72f8393321de0ca989d2476f7ccd96eed3639 100644 (file)
@@ -78,6 +78,7 @@ static void raise_exception(struct mce *m, struct pt_regs *pregs)
 }
 
 static cpumask_var_t mce_inject_cpumask;
+static DEFINE_MUTEX(mce_inject_mutex);
 
 static int mce_raise_notify(unsigned int cmd, struct pt_regs *regs)
 {
@@ -229,7 +230,10 @@ static ssize_t mce_write(struct file *filp, const char __user *ubuf,
         * so do it a jiffie or two later everywhere.
         */
        schedule_timeout(2);
+
+       mutex_lock(&mce_inject_mutex);
        raise_mce(&m);
+       mutex_unlock(&mce_inject_mutex);
        return usize;
 }