lkml.org 
[lkml]   [2019]   [Sep]   [26]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    Patch in this message
    /
    From
    Subject[PATCH v5 06/16] arm64/mm: Use helper fault_signal_pending()
    Date
    Let the arm64 fault handling to use the new fault_signal_pending()
    helper, by moving the signal handling out of the retry logic.

    Signed-off-by: Peter Xu <peterx@redhat.com>
    ---
    arch/arm64/mm/fault.c | 19 +++++++------------
    1 file changed, 7 insertions(+), 12 deletions(-)

    diff --git a/arch/arm64/mm/fault.c b/arch/arm64/mm/fault.c
    index cfd65b63f36f..4a695a44fb05 100644
    --- a/arch/arm64/mm/fault.c
    +++ b/arch/arm64/mm/fault.c
    @@ -477,19 +477,14 @@ static int __kprobes do_page_fault(unsigned long addr, unsigned int esr,
    fault = __do_page_fault(mm, addr, mm_flags, vm_flags);
    major |= fault & VM_FAULT_MAJOR;

    - if (fault & VM_FAULT_RETRY) {
    - /*
    - * If we need to retry but a fatal signal is pending,
    - * handle the signal first. We do not need to release
    - * the mmap_sem because it would already be released
    - * in __lock_page_or_retry in mm/filemap.c.
    - */
    - if (fatal_signal_pending(current)) {
    - if (!user_mode(regs))
    - goto no_context;
    - return 0;
    - }
    + /* Quick path to respond to signals */
    + if (fault_signal_pending(fault, regs)) {
    + if (!user_mode(regs))
    + goto no_context;
    + return 0;
    + }

    + if (fault & VM_FAULT_RETRY) {
    /*
    * Clear FAULT_FLAG_ALLOW_RETRY to avoid any risk of
    * starvation.
    --
    2.21.0
    \
     
     \ /
      Last update: 2019-09-26 11:40    [W:4.143 / U:0.096 seconds]
    ©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site