Re: [PATCH] arm64: mm: Pass origial fault address to handle_mm_fault()

From: Catalin Marinas
Date: Mon Jun 14 2021 - 11:42:45 EST


On Mon, Jun 14, 2021 at 08:27:01PM +0800, Gavin Shan wrote:
> Currently, the lower bits of fault address is cleared before it's
> passed to handle_mm_fault(). It's unnecessary since generic code
> does same thing since the commit 1a29d85eb0f19 ("mm: use vmf->address
> instead of of vmf->virtual_address").
>
> This passes the original fault address to handle_mm_fault() in case
> the generic code needs to know the exact fault address.
>
> Signed-off-by: Gavin Shan <gshan@xxxxxxxxxx>
> ---
> arch/arm64/mm/fault.c | 2 +-
> 1 file changed, 1 insertion(+), 1 deletion(-)
>
> diff --git a/arch/arm64/mm/fault.c b/arch/arm64/mm/fault.c
> index 871c82ab0a30..e2883237216d 100644
> --- a/arch/arm64/mm/fault.c
> +++ b/arch/arm64/mm/fault.c
> @@ -504,7 +504,7 @@ static vm_fault_t __do_page_fault(struct mm_struct *mm, unsigned long addr,
> */
> if (!(vma->vm_flags & vm_flags))
> return VM_FAULT_BADACCESS;
> - return handle_mm_fault(vma, addr & PAGE_MASK, mm_flags, regs);
> + return handle_mm_fault(vma, addr, mm_flags, regs);

This seems to match most of the other architectures (arch/arm also masks
out the bottom bits). So:

Acked-by: Catalin Marinas <catalin.marinas@xxxxxxx>