Commit e1c06d23 authored by Gabriele Paoloni's avatar Gabriele Paoloni Committed by Borislav Petkov

x86/mce: Rename kill_it to kill_current_task

Currently, if an MCE happens in user-mode or while the kernel is copying
data from user space, 'kill_it' is used to check if execution of the
interrupted task can be recovered or not; the flag name however is not
very meaningful, hence rename it to match its goal.

 [ bp: Massage commit message, rename the queue_task_work() arg too. ]
Signed-off-by: default avatarGabriele Paoloni <gabriele.paoloni@intel.com>
Signed-off-by: default avatarBorislav Petkov <bp@suse.de>
Link: https://lkml.kernel.org/r/20201127161819.3106432-6-gabriele.paoloni@intel.com
parent d5b38e3d
...@@ -1266,14 +1266,14 @@ static void kill_me_maybe(struct callback_head *cb) ...@@ -1266,14 +1266,14 @@ static void kill_me_maybe(struct callback_head *cb)
} }
} }
static void queue_task_work(struct mce *m, int kill_it) static void queue_task_work(struct mce *m, int kill_current_task)
{ {
current->mce_addr = m->addr; current->mce_addr = m->addr;
current->mce_kflags = m->kflags; current->mce_kflags = m->kflags;
current->mce_ripv = !!(m->mcgstatus & MCG_STATUS_RIPV); current->mce_ripv = !!(m->mcgstatus & MCG_STATUS_RIPV);
current->mce_whole_page = whole_page(m); current->mce_whole_page = whole_page(m);
if (kill_it) if (kill_current_task)
current->mce_kill_me.func = kill_me_now; current->mce_kill_me.func = kill_me_now;
else else
current->mce_kill_me.func = kill_me_maybe; current->mce_kill_me.func = kill_me_maybe;
...@@ -1321,10 +1321,10 @@ noinstr void do_machine_check(struct pt_regs *regs) ...@@ -1321,10 +1321,10 @@ noinstr void do_machine_check(struct pt_regs *regs)
int no_way_out = 0; int no_way_out = 0;
/* /*
* If kill_it gets set, there might be a way to recover from this * If kill_current_task is not set, there might be a way to recover from this
* error. * error.
*/ */
int kill_it = 0; int kill_current_task = 0;
/* /*
* MCEs are always local on AMD. Same is determined by MCG_STATUS_LMCES * MCEs are always local on AMD. Same is determined by MCG_STATUS_LMCES
...@@ -1351,7 +1351,7 @@ noinstr void do_machine_check(struct pt_regs *regs) ...@@ -1351,7 +1351,7 @@ noinstr void do_machine_check(struct pt_regs *regs)
* severity is MCE_AR_SEVERITY we have other options. * severity is MCE_AR_SEVERITY we have other options.
*/ */
if (!(m.mcgstatus & MCG_STATUS_RIPV)) if (!(m.mcgstatus & MCG_STATUS_RIPV))
kill_it = (cfg->tolerant == 3) ? 0 : 1; kill_current_task = (cfg->tolerant == 3) ? 0 : 1;
/* /*
* Check if this MCE is signaled to only this logical processor, * Check if this MCE is signaled to only this logical processor,
* on Intel, Zhaoxin only. * on Intel, Zhaoxin only.
...@@ -1406,7 +1406,7 @@ noinstr void do_machine_check(struct pt_regs *regs) ...@@ -1406,7 +1406,7 @@ noinstr void do_machine_check(struct pt_regs *regs)
} }
} }
if (worst != MCE_AR_SEVERITY && !kill_it) if (worst != MCE_AR_SEVERITY && !kill_current_task)
goto out; goto out;
/* Fault was in user mode and we need to take some action */ /* Fault was in user mode and we need to take some action */
...@@ -1414,7 +1414,7 @@ noinstr void do_machine_check(struct pt_regs *regs) ...@@ -1414,7 +1414,7 @@ noinstr void do_machine_check(struct pt_regs *regs)
/* If this triggers there is no way to recover. Die hard. */ /* If this triggers there is no way to recover. Die hard. */
BUG_ON(!on_thread_stack() || !user_mode(regs)); BUG_ON(!on_thread_stack() || !user_mode(regs));
queue_task_work(&m, kill_it); queue_task_work(&m, kill_current_task);
} else { } else {
/* /*
...@@ -1432,7 +1432,7 @@ noinstr void do_machine_check(struct pt_regs *regs) ...@@ -1432,7 +1432,7 @@ noinstr void do_machine_check(struct pt_regs *regs)
} }
if (m.kflags & MCE_IN_KERNEL_COPYIN) if (m.kflags & MCE_IN_KERNEL_COPYIN)
queue_task_work(&m, kill_it); queue_task_work(&m, kill_current_task);
} }
out: out:
mce_wrmsrl(MSR_IA32_MCG_STATUS, 0); mce_wrmsrl(MSR_IA32_MCG_STATUS, 0);
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment