From: Heiko Carstens Date: Wed, 23 Oct 2024 17:36:40 +0000 (+0200) Subject: s390/mm: Cleanup fault error handling X-Git-Tag: v6.13-rc1~206^2~50 X-Git-Url: http://git.ipfire.org/?a=commitdiff_plain;h=a5600f05d3d7a80be23a8905fdc128abd586c786;p=thirdparty%2Fkernel%2Flinux.git s390/mm: Cleanup fault error handling Combine the two VM_FAULT_ERROR checks in do_exception() and move them to the exit path, similar to x86. Also remove a random blank line. Suggested-by: Gerald Schaefer Reviewed-by: Gerald Schaefer Signed-off-by: Heiko Carstens --- diff --git a/arch/s390/mm/fault.c b/arch/s390/mm/fault.c index 8bd2b8d64273e..94cb2e0920755 100644 --- a/arch/s390/mm/fault.c +++ b/arch/s390/mm/fault.c @@ -293,14 +293,11 @@ static void do_exception(struct pt_regs *regs, int access) vma_end_read(vma); if (!(fault & VM_FAULT_RETRY)) { count_vm_vma_lock_event(VMA_LOCK_SUCCESS); - if (unlikely(fault & VM_FAULT_ERROR)) - goto error; - return; + goto done; } count_vm_vma_lock_event(VMA_LOCK_RETRY); if (fault & VM_FAULT_MAJOR) flags |= FAULT_FLAG_TRIED; - /* Quick path to respond to signals */ if (fault_signal_pending(fault, regs)) { if (!user_mode(regs)) @@ -323,17 +320,14 @@ retry: /* The fault is fully completed (including releasing mmap lock) */ if (fault & VM_FAULT_COMPLETED) return; - if (unlikely(fault & VM_FAULT_ERROR)) { - mmap_read_unlock(mm); - goto error; - } if (fault & VM_FAULT_RETRY) { flags |= FAULT_FLAG_TRIED; goto retry; } mmap_read_unlock(mm); - return; -error: +done: + if (!(fault & VM_FAULT_ERROR)) + return; if (fault & VM_FAULT_OOM) { if (!user_mode(regs)) handle_fault_error_nolock(regs, 0);