Message ID | d406dfad-4e47-266d-8ab7-bd1e86b2b13b@kernel.dk (mailing list archive) |
---|---|
State | New, archived |
Headers | show |
Series | [v2] arm64: treat PF_IO_WORKER like PF_KTHREAD for mitigations | expand |
On Tue, Mar 28, 2023 at 10:49:03AM -0600, Jens Axboe wrote: > Like PF_KTHREAD, PF_IO_WORKER never exit to userspace. They exist > entirely within the kernel, and hence don't need any task mitigations > applied. > > Signed-off-by: Jens Axboe <axboe@kernel.dk> > > --- > > v2: include ssbs_thread_switch() too As per the comments here - https://lore.kernel.org/all/Y9KWeyy9tAKYDxGA@arm.com/, I think we should update access_ok() as well. Thanks.
diff --git a/arch/arm64/kernel/process.c b/arch/arm64/kernel/process.c index 71d59b5abede..9ce614b2177e 100644 --- a/arch/arm64/kernel/process.c +++ b/arch/arm64/kernel/process.c @@ -445,9 +445,11 @@ static void ssbs_thread_switch(struct task_struct *next) { /* * Nothing to do for kernel threads, but 'regs' may be junk - * (e.g. idle task) so check the flags and bail early. + * (e.g. idle task) so check the flags and bail early. Nothing to do + * for IO worker threads either, as they never transition between + * kernel and userspace. */ - if (unlikely(next->flags & PF_KTHREAD)) + if (unlikely(next->flags & (PF_KTHREAD | PF_IO_WORKER))) return; /* diff --git a/arch/arm64/kernel/proton-pack.c b/arch/arm64/kernel/proton-pack.c index fca9cc6f5581..25a21c3d446c 100644 --- a/arch/arm64/kernel/proton-pack.c +++ b/arch/arm64/kernel/proton-pack.c @@ -654,7 +654,7 @@ static void __update_pstate_ssbs(struct pt_regs *regs, bool state) void spectre_v4_enable_task_mitigation(struct task_struct *tsk) { struct pt_regs *regs = task_pt_regs(tsk); - bool ssbs = false, kthread = tsk->flags & PF_KTHREAD; + bool ssbs = false, kthread = tsk->flags & (PF_KTHREAD | PF_IO_WORKER); if (spectre_v4_mitigations_off()) ssbs = true;
Like PF_KTHREAD, PF_IO_WORKER never exit to userspace. They exist entirely within the kernel, and hence don't need any task mitigations applied. Signed-off-by: Jens Axboe <axboe@kernel.dk> --- v2: include ssbs_thread_switch() too