Re: [PATCH] riscv: mm: abort uaccess retries upon fatal signal

2020-12-30 Thread Pekka Enberg
On Wed, Dec 30, 2020 at 4:40 PM  wrote:
> From: Guo Ren 
>
> Pick up the patch from the 'Link' made by Mark Rutland. Keep the
> same with x86, arm, arm64, arc, sh, power.
>
> Link: 
> https://lore.kernel.org/linux-arm-kernel/1499782763-31418-1-git-send-email-mark.rutl...@arm.com/
> Signed-off-by: Guo Ren 
> Cc: Mark Rutland 
> Cc: Pekka Enberg 
> Cc: Palmer Dabbelt 

Reviewed-by: Pekka Enberg 


[PATCH] riscv: mm: abort uaccess retries upon fatal signal

2020-12-30 Thread guoren
From: Guo Ren 

Pick up the patch from the 'Link' made by Mark Rutland. Keep the
same with x86, arm, arm64, arc, sh, power.

Link: 
https://lore.kernel.org/linux-arm-kernel/1499782763-31418-1-git-send-email-mark.rutl...@arm.com/
Signed-off-by: Guo Ren 
Cc: Mark Rutland 
Cc: Pekka Enberg 
Cc: Palmer Dabbelt 
---
 arch/riscv/mm/fault.c | 5 -
 1 file changed, 4 insertions(+), 1 deletion(-)

diff --git a/arch/riscv/mm/fault.c b/arch/riscv/mm/fault.c
index 3c8b9e4..7f5f45b 100644
--- a/arch/riscv/mm/fault.c
+++ b/arch/riscv/mm/fault.c
@@ -280,8 +280,11 @@ asmlinkage void do_page_fault(struct pt_regs *regs)
 * signal first. We do not need to release the mmap_lock because it
 * would already be released in __lock_page_or_retry in mm/filemap.c.
 */
-   if (fault_signal_pending(fault, regs))
+   if (fault_signal_pending(fault, regs)) {
+   if (!user_mode(regs))
+   no_context(regs, addr);
return;
+   }
 
if (unlikely((fault & VM_FAULT_RETRY) && (flags & 
FAULT_FLAG_ALLOW_RETRY))) {
flags |= FAULT_FLAG_TRIED;
-- 
2.7.4