From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from mail-wr1-f45.google.com (mail-wr1-f45.google.com [209.85.221.45]) (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 A8D79330D4C for ; Wed, 27 May 2026 14:04:20 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.221.45 ARC-Seal:i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1779890662; cv=none; b=o+1u91klPgHDV7HpDyTsoK1HBb0y4KCIS9tHX3LGAUm+nyhzYMEaM2YZ4xyQlbPl0WIhnrYhegzuUQ1b7pww0jRkcogywLBEjDfF2/D9sC8Ptl6t/JQkXrhw+OyI2eoNjfFUwOId5mc0L+U8pMUQKQ0LfqG2Ltsl5cV46Q2BiIQ= ARC-Message-Signature:i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1779890662; c=relaxed/simple; bh=ZB/n8D3IScELhW/PGrjnWt6jVqqz+fwvT9xThJTNyDE=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=uMU5dhOtPRErTjxNZaBDDkQ/75YS3OmHmZKXaQF35QJ0ASJ+uG2yS+nOXbdmtPOIBQG34a256SLFFAyAFWwSwMjbvTmHvkDi2vUc8dKtaMOw2Id4iIm+fdP7k6OXSsweksyW7+gpcQFYX+lvGHgCxsxiTleW2twBPchfMdzlH/Y= 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=LAmHNkeu; arc=none smtp.client-ip=209.85.221.45 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="LAmHNkeu" Received: by mail-wr1-f45.google.com with SMTP id ffacd0b85a97d-43d75312379so9981909f8f.1 for ; Wed, 27 May 2026 07:04:20 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20251104; t=1779890659; x=1780495459; 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=fTSySM1IXuxmAttzVws8JAQ2H8JyG4d5fVSSFWyPJsM=; b=LAmHNkeur8VdL5reiX2osw30wlDt8Q+AU4zGIZB/pJlcqMyeZus5DAJcAoKAx585/s IxhsPeiRPqkGHF1JfM2phxtQRLgB1gXTMFet2rKXvhenU8S1CWE2dT2ineNJGh97mEZC sDWBM5t1Oj3YqzzwNAZI64lrihn4+T5hqiu+CANCs1u68XUtwt6cR/08Oee8evFL8aNh 9wbQgmbJ6rJNkmTbiu/l7t4e2qSfhSYG3ygaQWNwxJ3UfUptchc8wZEJv3QfWDJpAkYE U0RBSTaGA37lbxC/nF0gBb9ZY2qtQ8kOsIAeAHS3xkG5oHq9vsHUwAVLiX4zQBryji+J fEIQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1779890659; x=1780495459; 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=fTSySM1IXuxmAttzVws8JAQ2H8JyG4d5fVSSFWyPJsM=; b=LBJdl2BFTnCq28S5z/3a4pRmW+z0ibxWzAgQWSSkV6QQEP/+nnrr31/el5SsmjGw3F mcGwA07SKxNAsRoBNe//hU0gLuj7sTePYcU5TNtXGGeUWJrJ1kUoW+vg6p/5RRPho6S2 qrs2fUWJPFF3qvlcr0+b4Y9aJOXvgUXQK3td2QNE5UJvk3BmrFSeZErlGgeHawG63Vkz OHrSp74mDJDpMrcuv7+mxK0Wh1c+f8TI7lv7KGmniK7fs94O+G5qna73y6XfAyUGtsgJ v2z1b3DJKZ2IUH2tGETSMjfCtPazX9ScgfkyYxH0SNreeFfVzc7eiHwl8dwglKzj6xSX 9MHw== X-Forwarded-Encrypted: i=1; AFNElJ9nYNKheNR+kjaRgExs8rvwCU7kdR+5yqeAEc+jUdtefru6V4Ktd53dpog/N9gP73wwwTS7HZdPpuCCFu0=@vger.kernel.org X-Gm-Message-State: AOJu0YwS2JYQZUlhyo4J/f50uuDY6E3af1qLy2hJu53Wp29R3ENoBrtn Wd2M/lpsSnDFX27VKpinh8lakpQhx1MoSfp0Ykh7+59jerSj0tY4ccbf X-Gm-Gg: Acq92OFudMlwJUawAXfH9WTVDlzLeNUx2bbj6QvIgQWTT+6r9P15Zv52PD/ZHiDabFa dQFbB5UJmVJCQepcyMX8Tqb1CqeldFEPDbGpTAQVSNxNOee5oRLRs82CuIy3u9k6OKBRnFziPK1 Rhz/81V4vWCpssGyUtGAMwjTDooNmPhIpjDfaYhqj3eWPJFQ/UhK+PIMYBlvgGM/YG4k7DYDxiC tGKkKmfrifdIwIIwCI1W6975XNjvH4dG0UdFyrUkcvUNR2IrCKrZV5CCnJ86GQnZAB1LZH4uUwI cr7mwnAZnpslOVMhdVpFdUPglKjwZ8cgemKjUxSr+2KIJ/pp3nY61NFV6q1bLK3zZpZ8aNUcwo8 LGPrLmVvOptDQOBpK1CT9JqjbSYqkFVwjvOH3Afz5txyHezesxNKxJhXkBmxfDHoP8MwM0LsBjF OwkVesYmECqB6r4hS7/any8/P5m6VGBAtywYQ5rTwvMuOUSt3WS41KiAAcbmK+Vl2IWYTGDP2gb pdJnvAYnRzz0nmt9N0zKlJ17wWnDGZPPQ== X-Received: by 2002:a05:6000:2992:10b0:45e:daa9:f34c with SMTP id ffacd0b85a97d-45edaa9f405mr5335873f8f.26.1779890658948; Wed, 27 May 2026 07:04:18 -0700 (PDT) Received: from fedora (cpc92878-cmbg18-2-0-cust539.5-4.cable.virginm.net. [86.16.54.28]) by smtp.googlemail.com with ESMTPSA id ffacd0b85a97d-45edb558f52sm6693771f8f.14.2026.05.27.07.04.18 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 27 May 2026 07:04:18 -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 Subject: [PATCH 7/9] x86/mm: Convert pgd_page_get_mm() to ptdescs Date: Wed, 27 May 2026 15:03:14 +0100 Message-ID: <20260527140316.294621-8-vishal.moola@gmail.com> X-Mailer: git-send-email 2.54.0 In-Reply-To: <20260527140316.294621-1-vishal.moola@gmail.com> References: <20260527140316.294621-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. 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 2187e9cfcefa..20e8a6ddd2df 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 6c72d6668416..4d78c78a0bcc 100644 --- a/arch/x86/mm/fault.c +++ b/arch/x86/mm/fault.c @@ -276,7 +276,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 da7f0a03cf90..070e3d310eca 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