| From: "Matthew Wilcox (Oracle)" <willy@infradead.org> |
| Subject: sparc32: remove custom definition of mk_pte() |
| Date: Wed, 2 Apr 2025 19:16:57 +0100 |
| |
| Instead of defining pfn_pte() in terms of mk_pte(), make pfn_pte() the |
| base implementation. That lets us use the generic definition of mk_pte(). |
| |
| Link: https://lkml.kernel.org/r/20250402181709.2386022-4-willy@infradead.org |
| Signed-off-by: Matthew Wilcox (Oracle) <willy@infradead.org> |
| Cc: Zi Yan <ziy@nvidia.com> |
| Cc: "David S. Miller" <davem@davemloft.net> |
| Cc: Andreas Larsson <andreas@gaisler.com> |
| Cc: Alexander Gordeev <agordeev@linux.ibm.com> |
| Cc: Anton Ivanov <anton.ivanov@cambridgegreys.com> |
| Cc: Dave Hansen <dave.hansen@linux.intel.com> |
| Cc: David Hildenbrand <david@redhat.com> |
| Cc: Geert Uytterhoeven <geert@linux-m68k.org> |
| Cc: Johannes Berg <johannes@sipsolutions.net> |
| Cc: Muchun Song <muchun.song@linux.dev> |
| Cc: Richard Weinberger <richard@nod.at> |
| Cc: <x86@kernel.org> |
| Signed-off-by: Andrew Morton <akpm@linux-foundation.org> |
| --- |
| |
| arch/sparc/include/asm/pgtable_32.h | 15 +++++---------- |
| 1 file changed, 5 insertions(+), 10 deletions(-) |
| |
| --- a/arch/sparc/include/asm/pgtable_32.h~sparc32-remove-custom-definition-of-mk_pte |
| +++ a/arch/sparc/include/asm/pgtable_32.h |
| @@ -255,7 +255,11 @@ static inline pte_t pte_mkyoung(pte_t pt |
| } |
| |
| #define PFN_PTE_SHIFT (PAGE_SHIFT - 4) |
| -#define pfn_pte(pfn, prot) mk_pte(pfn_to_page(pfn), prot) |
| + |
| +static inline pte_t pfn_pte(unsigned long pfn, pgprot_t pgprot) |
| +{ |
| + return __pte((pfn << PFN_PTE_SHIFT) | pgprot_val(pgprot)); |
| +} |
| |
| static inline unsigned long pte_pfn(pte_t pte) |
| { |
| @@ -272,15 +276,6 @@ static inline unsigned long pte_pfn(pte_ |
| |
| #define pte_page(pte) pfn_to_page(pte_pfn(pte)) |
| |
| -/* |
| - * Conversion functions: convert a page and protection to a page entry, |
| - * and a page entry and page directory to the page they refer to. |
| - */ |
| -static inline pte_t mk_pte(struct page *page, pgprot_t pgprot) |
| -{ |
| - return __pte((page_to_pfn(page) << (PAGE_SHIFT-4)) | pgprot_val(pgprot)); |
| -} |
| - |
| static inline pte_t mk_pte_phys(unsigned long page, pgprot_t pgprot) |
| { |
| return __pte(((page) >> 4) | pgprot_val(pgprot)); |
| _ |