lists.openwall.net   lists  /  announce  owl-users  owl-dev  john-users  john-dev  passwdqc-users  yescrypt  popa3d-users  /  oss-security  kernel-hardening  musl  sabotage  tlsify  passwords  /  crypt-dev  xvendor  /  Bugtraq  Full-Disclosure  linux-kernel  linux-netdev  linux-ext4  linux-hardening  linux-cve-announce  PHC 
Open Source and information security mailing list archives
 
Hash Suite: Windows password security audit tool. GUI, reports in PDF.
[<prev] [next>] [thread-next>] [day] [month] [year] [list]
Message-ID: <tencent_503130C3CD56569191396268CF4D12F09A06@qq.com>
Date: Fri,  9 May 2025 14:32:30 +0800
From: Feng Lee <379943137@...com>
To: david@...hat.com,
	baohua@...nel.org,
	21cnbao@...il.com,
	akpm@...ux-foundation.org,
	mingo@...nel.org,
	jgg@...pe.ca,
	jhubbard@...dia.com,
	peterx@...hat.com
Cc: maobibo@...ngson.cn,
	trivial@...nel.org,
	linux-kernel@...r.kernel.org,
	lance.yang@...ux.dev,
	anshuman.khandual@....com,
	Feng Lee <379943137@...com>
Subject: [PATCH v3] mm: remove obsolete pgd_offset_gate()

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>

---
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

Powered by Openwall GNU/*/Linux Powered by OpenVZ