]> git.kernelconcepts.de Git - karo-tx-linux.git/blobdiff - arch/x86/kernel/cpu/mcheck/mce-inject.c
x86, mce: support more than 256 CPUs in struct mce
[karo-tx-linux.git] / arch / x86 / kernel / cpu / mcheck / mce-inject.c
index 7b3a5428396ace58945ac9a4b4e3ca805b5e51ab..7d858fb4ce676c1855fffbac279914e837a1aa56 100644 (file)
 /* Update fake mce registers on current CPU. */
 static void inject_mce(struct mce *m)
 {
-       struct mce *i = &per_cpu(injectm, m->cpu);
+       struct mce *i = &per_cpu(injectm, m->extcpu);
 
        /* Make sure noone reads partially written injectm */
        i->finished = 0;
        mb();
        m->finished = 0;
        /* First set the fields after finished */
-       i->cpu = m->cpu;
+       i->extcpu = m->extcpu;
        mb();
        /* Now write record in order, finished last (except above) */
        memcpy(i, m, sizeof(struct mce));
@@ -49,7 +49,7 @@ static void raise_mce(unsigned long data)
 {
        struct delayed_mce *dm = (struct delayed_mce *)data;
        struct mce *m = &dm->m;
-       int cpu = m->cpu;
+       int cpu = m->extcpu;
 
        inject_mce(m);
        if (m->status & MCI_STATUS_UC) {
@@ -93,7 +93,7 @@ static ssize_t mce_write(struct file *filp, const char __user *ubuf,
        if (copy_from_user(&m, ubuf, usize))
                return -EFAULT;
 
-       if (m.cpu >= num_possible_cpus() || !cpu_online(m.cpu))
+       if (m.extcpu >= num_possible_cpus() || !cpu_online(m.extcpu))
                return -EINVAL;
 
        dm = kmalloc(sizeof(struct delayed_mce), GFP_KERNEL);
@@ -108,7 +108,7 @@ static ssize_t mce_write(struct file *filp, const char __user *ubuf,
        memcpy(&dm->m, &m, sizeof(struct mce));
        setup_timer(&dm->timer, raise_mce, (unsigned long)dm);
        dm->timer.expires = jiffies + 2;
-       add_timer_on(&dm->timer, m.cpu);
+       add_timer_on(&dm->timer, m.extcpu);
        return usize;
 }