[<prev] [next>] [<thread-prev] [day] [month] [year] [list]
Message-ID: <CAGsJ_4y2hHAsKWR9WLY79d5UDLcai=px+WbgDpoRJrysPqqQOw@mail.gmail.com>
Date: Fri, 9 May 2025 19:55:53 +0800
From: Barry Song <21cnbao@...il.com>
To: Feng Lee <379943137@...com>
Cc: david@...hat.com, akpm@...ux-foundation.org, mingo@...nel.org,
jgg@...pe.ca, jhubbard@...dia.com, peterx@...hat.com, maobibo@...ngson.cn,
trivial@...nel.org, linux-kernel@...r.kernel.org, lance.yang@...ux.dev,
anshuman.khandual@....com
Subject: Re: [PATCH v3] mm: remove obsolete pgd_offset_gate()
On Fri, May 9, 2025 at 2:33 PM Feng Lee <379943137@...com> wrote:
>
> Remove pgd_offset_gate() completely and simply make the single
> caller use pgd_offset().
>
> It appears that the gate area resides in the kernel-mapped segment
> exclusively on IA64. Therefore, removing pgd_offset_k is safe since
> IA64 is now obsolete.
>
> Signed-off-by: Feng Lee <379943137@...com>
You missed including the tags from v2 when sending v3.
These tags were already present in v2 and should have been carried over
to v3:
Reviewed-by: Barry Song <baohua@...nel.org>
Acked-by: David Hildenbrand <david@...hat.com>
>
> ---
> Changes in v3:
> - adopt more precise subject descriptions
> Changes in v2:
> - remove pgd_offset_gate completely
> - remove pgd_offset_k from the get_gate_page function completely
> ---
> include/linux/pgtable.h | 4 ----
> mm/gup.c | 5 +----
> 2 files changed, 1 insertion(+), 8 deletions(-)
>
> diff --git a/include/linux/pgtable.h b/include/linux/pgtable.h
> index b50447ef1c92..f1e890b60460 100644
> --- a/include/linux/pgtable.h
> +++ b/include/linux/pgtable.h
> @@ -1164,10 +1164,6 @@ static inline void arch_swap_restore(swp_entry_t entry, struct folio *folio)
> }
> #endif
>
> -#ifndef __HAVE_ARCH_PGD_OFFSET_GATE
> -#define pgd_offset_gate(mm, addr) pgd_offset(mm, addr)
> -#endif
> -
> #ifndef __HAVE_ARCH_MOVE_PTE
> #define move_pte(pte, old_addr, new_addr) (pte)
> #endif
> diff --git a/mm/gup.c b/mm/gup.c
> index f32168339390..0685403fe510 100644
> --- a/mm/gup.c
> +++ b/mm/gup.c
> @@ -1101,10 +1101,7 @@ static int get_gate_page(struct mm_struct *mm, unsigned long address,
> /* user gate pages are read-only */
> if (gup_flags & FOLL_WRITE)
> return -EFAULT;
> - if (address > TASK_SIZE)
> - pgd = pgd_offset_k(address);
> - else
> - pgd = pgd_offset_gate(mm, address);
> + pgd = pgd_offset(mm, address);
> if (pgd_none(*pgd))
> return -EFAULT;
> p4d = p4d_offset(pgd, address);
> --
> 2.49.0
>
Powered by blists - more mailing lists