Messages in this thread | | | Subject | Re: [Patch v3 12/13] x86/speculation: Protect non-dumpable processes against Spectre v2 attack | From | Waiman Long <> | Date | Fri, 26 Oct 2018 13:46:26 -0400 |
| |
On 10/17/2018 01:59 PM, Tim Chen wrote: > Mark the non-dumpable processes with TIF_STIBP flag so they will > use STIBP and IBPB defenses against Spectre v2 attack from > processes in user space. > > Signed-off-by: Tim Chen <tim.c.chen@linux.intel.com> > --- > arch/x86/kernel/cpu/bugs.c | 21 +++++++++++++++++++++ > 1 file changed, 21 insertions(+) > > diff --git a/arch/x86/kernel/cpu/bugs.c b/arch/x86/kernel/cpu/bugs.c > index 1d317f2..cc77b9e 100644 > --- a/arch/x86/kernel/cpu/bugs.c > +++ b/arch/x86/kernel/cpu/bugs.c > @@ -14,6 +14,7 @@ > #include <linux/module.h> > #include <linux/nospec.h> > #include <linux/prctl.h> > +#include <linux/sched/coredump.h> > > #include <asm/spec-ctrl.h> > #include <asm/cmdline.h> > @@ -773,6 +774,26 @@ int arch_prctl_spec_ctrl_set(struct task_struct *task, unsigned long which, > } > } > > +void arch_set_dumpable(struct task_struct *tsk, unsigned int value) > +{ > + bool update; > + > + if (!static_branch_unlikely(&spectre_v2_app_lite)) > + return; > + if (!static_cpu_has(X86_FEATURE_STIBP)) > + return; > + if (spectre_v2_app2app_enabled == SPECTRE_V2_APP2APP_NONE) > + return;
The third if above seems to be a subset of the first one. Do you need to do the check one more time?
Cheers, Longman
> + > + if (tsk->mm && value != SUID_DUMP_USER) > + update = !test_and_set_tsk_thread_flag(tsk, TIF_STIBP); > + else > + update = test_and_clear_tsk_thread_flag(tsk, TIF_STIBP); > + > + if (tsk == current && update) > + speculation_ctrl_update_current(); > +} > + > #ifdef CONFIG_SECCOMP > void arch_seccomp_spec_mitigate(struct task_struct *task) > {
| |