Message ID | 20230214162515.184827-1-bjorn@kernel.org (mailing list archive) |
---|---|
State | Not Applicable |
Delegated to: | BPF |
Headers | show |
Series | riscv, mm: Perform BPF exhandler fixup on page fault | expand |
Hello: This patch was applied to riscv/linux.git (for-next) by Palmer Dabbelt <palmer@rivosinc.com>: On Tue, 14 Feb 2023 17:25:15 +0100 you wrote: > From: Björn Töpel <bjorn@rivosinc.com> > > Commit 21855cac82d3 ("riscv/mm: Prevent kernel module to access user > memory without uaccess routines") added early exits/deaths for page > faults stemming from accesses to user-space without using proper > uaccess routines (where sstatus.SUM is set). > > [...] Here is the summary with links: - riscv, mm: Perform BPF exhandler fixup on page fault https://git.kernel.org/riscv/c/416721ff05fd You are awesome, thank you!
diff --git a/arch/riscv/mm/fault.c b/arch/riscv/mm/fault.c index d86f7cebd4a7..eb0774d9c03b 100644 --- a/arch/riscv/mm/fault.c +++ b/arch/riscv/mm/fault.c @@ -267,10 +267,12 @@ asmlinkage void do_page_fault(struct pt_regs *regs) if (user_mode(regs)) flags |= FAULT_FLAG_USER; - if (!user_mode(regs) && addr < TASK_SIZE && - unlikely(!(regs->status & SR_SUM))) - die_kernel_fault("access to user memory without uaccess routines", - addr, regs); + if (!user_mode(regs) && addr < TASK_SIZE && unlikely(!(regs->status & SR_SUM))) { + if (fixup_exception(regs)) + return; + + die_kernel_fault("access to user memory without uaccess routines", addr, regs); + } perf_sw_event(PERF_COUNT_SW_PAGE_FAULTS, 1, regs, addr);