From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from mail-pf1-f178.google.com (mail-pf1-f178.google.com [209.85.210.178]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 8AA0F42DFE8 for ; Mon, 29 Jun 2026 18:59:06 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.210.178 ARC-Seal:i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1782759551; cv=none; b=p62K9A7Vr9RFdTKNwkt4VJD5ztnPUdxKCsoGmPYNZae4grEx7rplNZeBlUoZQ5QAcHK32pPv8/0TGMummK7h+bjsJRdr/iCIW7FE6WbAx/uA2Dqo7CsiDxAA85ap+ys7UT3CRE+SlD3xRQp2KRzijx+oX2LzUfhx0mIwYp5gS2w= ARC-Message-Signature:i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1782759551; c=relaxed/simple; bh=q2eQdwfLaTlit/NxS3u7TZaCfPPyYS3UkkgknpZNN2k=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=ihp3SDlsOUZ6o0NKwf/oBHHz2jNAzK0jdqIzd9LmAGRWZSooha4cMb2i7r8PySdBbUH6hVtW4wrCTTQN/VcJc6uDlJA/TOCVK8r883X97KqVJcr2LgOFER1hNhguE/WJCariN/J5ZIPKRm1HrCvSgnxzEQ5fz2hrP9X/4inMTV8= ARC-Authentication-Results:i=1; smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=gmail.com; spf=pass smtp.mailfrom=gmail.com; dkim=pass (2048-bit key) header.d=gmail.com header.i=@gmail.com header.b=bDd+tJVv; arc=none smtp.client-ip=209.85.210.178 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=gmail.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=gmail.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=gmail.com header.i=@gmail.com header.b="bDd+tJVv" Received: by mail-pf1-f178.google.com with SMTP id d2e1a72fcca58-845b6d9bf39so1836646b3a.1 for ; Mon, 29 Jun 2026 11:59:06 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20251104; t=1782759546; x=1783364346; darn=vger.kernel.org; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:from:to:cc:subject:date :message-id:reply-to; bh=7ipb9zy/CMdSBlv5dLzabanXHjYoiCYD2Nb/oCjfyVU=; b=bDd+tJVvhboe5qm3m5pk5TK8HSWBN0h5nq5Rg8Bl6Ajrwacz4C6GgIDNWpAiMrcxbC ReaBD01hVEpck7WcTm/AsKlO8/nM/9121r2sBs9kh810uvsFjhz/PnZNMWJTByMlk8Gp FwFGw7CPLr128+JIeDCBpU17MPNg5HffM5rh5pV40aKoFpSHbimaCrC/YRImZAvdB4R9 jP1SmngR/Sk7tpJ7c7V5TqxiFIWkCf+fztwmSIcWo2sfnIssBko9IABlggU7khec6vAc Kxa1Mrg1kKI6tELdn2FqhSS0YTBCMEt3ORhdZu85Xltlsf1wMG/tKxn4WEEp6RFKGo3N AwCQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1782759546; x=1783364346; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-gg:x-gm-message-state:from :to:cc:subject:date:message-id:reply-to; bh=7ipb9zy/CMdSBlv5dLzabanXHjYoiCYD2Nb/oCjfyVU=; b=M9L/UV8w2qKkujmQQ7WhKgX7L5hEcQblWH4+HhDMvW14Y/tb02tC9liIHgBleQ1cp5 eEudU0xdhXuNh+uQ/HGQwtWaQfvyl3BZNCATK2vupYFyuzVHaznfI8PiTZ5h0M6xXo0z t1secGZfGeTs0kc5eXHuiL9tjVhuW2N8NbDJs8sa2kbbuslNEezQ+253jjMIqfQxVSI0 /BPY64rmSGVLQ4wGF5STSSgIKTdkj0NF/kGKIUZTfN4wEigWvF3X42JiRoGL8AQleRre wM2TkTAzOPw9CEMjgY6kaAFjKOfUoXRyaikRIZNt6bF0iFKcCrMgFXiC0SPQMxo+6wGk ebXg== X-Forwarded-Encrypted: i=1; AHgh+RqvTB/6mTIEalHeIf2O47R/rkIi1C9RsX9Mlf08T+SgSrIObWsLrareUcSJzPXo741uhpQULERDSor1K+8=@vger.kernel.org X-Gm-Message-State: AOJu0YydDQ1B0IgyrOLhNJpuHZn1G48rf6+e+7ysPQrzsXww3yy5Y5PK 4hJKpEBmeMRiO0rropWggXYs5whmK76L4NFX7pnX09KKOyDoVPX6s9ii X-Gm-Gg: AfdE7cmoJBOmmB+F285hNMy8ogiuUQN1HsCtFOihL72NVcC9Qag/o0iX2LARBPs5Em6 cqrY1se6ofEBmDIjxTg/6OULDmbuhGIeD8RPoU8D/4eBTEJ9F5R4HvFnYk5zTme67sGS8FHQLNc Q8WczwMIWZUS4ZaGiIFQFF4OWgwX54f2+TEYUjyUCZndfXYoI+D5ghIbEEAERduhU4YltIkeUON pHd1f0MPl52X3UgP/Iq5t/bDI9poRA5Gd5eQPCE/GSDLx9wi7IZV9IksJMRoCfSZOCKGHOJs9IM OfCP/j3turN9IRvehXhyJQKF6MNWJztSCla7/meXI32u0ZBSwtRIWjTua6tuOiiEtxVS6cdXE4Q NiLFcDNJTuTtU+hw1ZilXE9/ld5aXMs4wFStwgYwsSTDaptf1fhkzEMWwaLW/Ives4Jv0iJPL4B usO63foKch9hIq+MxwYV5HN+Nc9KTqokpQ8VdoDVhEU7zJ+3vDp9EN6cYQt4HObKTvt3Uyk2o= X-Received: by 2002:a05:6a00:9081:b0:847:9223:9726 with SMTP id d2e1a72fcca58-8479fe56b4emr318904b3a.18.1782759545854; Mon, 29 Jun 2026 11:59:05 -0700 (PDT) Received: from fedora.hsd1.ca.comcast.net ([2601:644:937c:6c90:6d4e:7b2d:4a39:fb0c]) by smtp.googlemail.com with ESMTPSA id d2e1a72fcca58-8479ff8f959sm223955b3a.3.2026.06.29.11.59.04 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Mon, 29 Jun 2026 11:59:05 -0700 (PDT) From: Vishal Moola To: Dave Hansen , linux-mm@kvack.org, linux-kernel@vger.kernel.org, x86@kernel.org Cc: Mike Rapoport , Lu Baolu , xen-devel@lists.xenproject.org, Thomas Gleixner , Ingo Molnar , Borislav Petkov , "H. Peter Anvin" , Andy Lutomirski , Peter Zijlstra , Juergen Gross , Boris Ostrovsky , Vishal Moola , William Kucharski Subject: [PATCH v2 7/9] x86/mm: Convert pgd_page_get_mm() to ptdescs Date: Mon, 29 Jun 2026 11:57:40 -0700 Message-ID: <20260629185742.126987-8-vishal.moola@gmail.com> X-Mailer: git-send-email 2.54.0 In-Reply-To: <20260629185742.126987-1-vishal.moola@gmail.com> References: <20260629185742.126987-1-vishal.moola@gmail.com> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Transfer-Encoding: 8bit Convert pgd_page_get_mm() to ptdescs. Define struct ptdesc in our pgtable_types so that our declarations recognize ptdesc as an appropriate page table type. Now that all callers are using ptdescs, we can pass in that ptdesc to get the underlying mm_struct. Acked-by: Mike Rapoport (Microsoft) Reviewed-by: William Kucharski Signed-off-by: Vishal Moola --- arch/x86/include/asm/pgtable.h | 2 +- arch/x86/include/asm/pgtable_types.h | 2 +- arch/x86/mm/fault.c | 2 +- arch/x86/mm/init_64.c | 4 ++-- arch/x86/mm/pgtable.c | 4 ++-- 5 files changed, 7 insertions(+), 7 deletions(-) diff --git a/arch/x86/include/asm/pgtable.h b/arch/x86/include/asm/pgtable.h index ac295ca6c92f..dd046f29ec31 100644 --- a/arch/x86/include/asm/pgtable.h +++ b/arch/x86/include/asm/pgtable.h @@ -50,7 +50,7 @@ void ptdump_walk_user_pgd_level_checkwx(void); extern spinlock_t pgd_lock; extern struct list_head pgd_list; -extern struct mm_struct *pgd_page_get_mm(struct page *page); +struct mm_struct *pgd_page_get_mm(struct ptdesc *pt); extern pmdval_t early_pmd_flags; diff --git a/arch/x86/include/asm/pgtable_types.h b/arch/x86/include/asm/pgtable_types.h index 2ec250ba467e..95c7f453db17 100644 --- a/arch/x86/include/asm/pgtable_types.h +++ b/arch/x86/include/asm/pgtable_types.h @@ -512,7 +512,7 @@ static inline pgprot_t pgprot_large_2_4k(pgprot_t pgprot) return __pgprot(protval_large_2_4k(pgprot_val(pgprot))); } - +struct ptdesc; typedef struct page *pgtable_t; extern pteval_t __supported_pte_mask; diff --git a/arch/x86/mm/fault.c b/arch/x86/mm/fault.c index c31ffeac0714..aa88370ce739 100644 --- a/arch/x86/mm/fault.c +++ b/arch/x86/mm/fault.c @@ -282,7 +282,7 @@ void arch_sync_kernel_mappings(unsigned long start, unsigned long end) spinlock_t *pgt_lock; /* the pgt_lock only for Xen */ - pgt_lock = &pgd_page_get_mm(ptdesc_page(ptdesc))->page_table_lock; + pgt_lock = &pgd_page_get_mm(ptdesc)->page_table_lock; spin_lock(pgt_lock); vmalloc_sync_one(ptdesc_address(ptdesc), addr); diff --git a/arch/x86/mm/init_64.c b/arch/x86/mm/init_64.c index a6ccb83f2d26..a49be75dd713 100644 --- a/arch/x86/mm/init_64.c +++ b/arch/x86/mm/init_64.c @@ -152,7 +152,7 @@ static void sync_global_pgds_l5(unsigned long start, unsigned long end) pgd = (pgd_t *)ptdesc_address(ptdesc) + pgd_index(addr); /* the pgt_lock only for Xen */ - pgt_lock = &pgd_page_get_mm(ptdesc_page(ptdesc))->page_table_lock; + pgt_lock = &pgd_page_get_mm(ptdesc)->page_table_lock; spin_lock(pgt_lock); if (!pgd_none(*pgd_ref) && !pgd_none(*pgd)) @@ -195,7 +195,7 @@ static void sync_global_pgds_l4(unsigned long start, unsigned long end) pgd = (pgd_t *)ptdesc_address(ptdesc) + pgd_index(addr); p4d = p4d_offset(pgd, addr); /* the pgt_lock only for Xen */ - pgt_lock = &pgd_page_get_mm(ptdesc_page(ptdesc))->page_table_lock; + pgt_lock = &pgd_page_get_mm(ptdesc)->page_table_lock; spin_lock(pgt_lock); if (!p4d_none(*p4d_ref) && !p4d_none(*p4d)) diff --git a/arch/x86/mm/pgtable.c b/arch/x86/mm/pgtable.c index f32facdb3035..cb03f5a2b243 100644 --- a/arch/x86/mm/pgtable.c +++ b/arch/x86/mm/pgtable.c @@ -74,9 +74,9 @@ static void pgd_set_mm(pgd_t *pgd, struct mm_struct *mm) virt_to_ptdesc(pgd)->pt_mm = mm; } -struct mm_struct *pgd_page_get_mm(struct page *page) +struct mm_struct *pgd_page_get_mm(struct ptdesc *pt) { - return page_ptdesc(page)->pt_mm; + return pt->pt_mm; } static void pgd_ctor(struct mm_struct *mm, pgd_t *pgd) -- 2.54.0