From: Brendan Jackman Date: Mon, 23 Mar 2026 14:25:07 +0000 (+0000) Subject: x86: Update comment about pgd_list X-Git-Url: http://git.ipfire.org/gitweb/index.cgi?a=commitdiff_plain;h=952ac097ce98901c608cdced012f89a90367401e;p=thirdparty%2Fkernel%2Flinux.git x86: Update comment about pgd_list This venerable comment got detached from its context when the code moved in commit 394158559d4c ("x86: move all the pgd_list handling to one place"). Put it back next to its context. It was originally on pgd_list_add() but it actually describes pgd_list so put it there. While moving it, update it to strip away stale and superfluous info. pageattr.c doesn't exist any more. pgd_list is now required for all x86 architectures. Also be slightly more precise about what PGDs are in this list. [ dhansen: tweak and trim the updated comment a bit ] Signed-off-by: Brendan Jackman Signed-off-by: Dave Hansen Link: https://patch.msgid.link/20260323-pgd_list-comment-v2-1-77ccf2dc77e8@google.com --- diff --git a/arch/x86/mm/fault.c b/arch/x86/mm/fault.c index 63de8e8684f23..250942ef60bb3 100644 --- a/arch/x86/mm/fault.c +++ b/arch/x86/mm/fault.c @@ -169,6 +169,11 @@ is_prefetch(struct pt_regs *regs, unsigned long error_code, unsigned long addr) } DEFINE_SPINLOCK(pgd_lock); +/* + * List of all process' PGD pages (excluding init_mm and some other special + * system-wide PGDs). Mainly used to keep the kernel portion of the address + * space in sync across mms. + */ LIST_HEAD(pgd_list); #ifdef CONFIG_X86_32 diff --git a/arch/x86/mm/pgtable.c b/arch/x86/mm/pgtable.c index da7f0a03cf90c..f32facdb30354 100644 --- a/arch/x86/mm/pgtable.c +++ b/arch/x86/mm/pgtable.c @@ -99,17 +99,6 @@ static void pgd_dtor(pgd_t *pgd) spin_unlock(&pgd_lock); } -/* - * List of all pgd's needed for non-PAE so it can invalidate entries - * in both cached and uncached pgd's; not needed for PAE since the - * kernel pmd is shared. If PAE were not to share the pmd a similar - * tactic would be needed. This is essentially codepath-based locking - * against pageattr.c; it is the unique case in which a valid change - * of kernel pagetables can't be lazily synchronized by vmalloc faults. - * vmalloc faults work because attached pagetables are never freed. - * -- nyc - */ - #ifdef CONFIG_X86_PAE /* * In PAE mode, we need to do a cr3 reload (=tlb flush) when