mirror of
https://github.com/torvalds/linux.git
synced 2025-12-07 20:06:24 +00:00
sparc64: implement the new page table range API
Add set_ptes(), update_mmu_cache_range(), flush_dcache_folio() and flush_icache_pages(). Convert the PG_dcache_dirty flag from being per-page to per-folio. Link: https://lkml.kernel.org/r/20230802151406.3735276-27-willy@infradead.org Signed-off-by: Matthew Wilcox (Oracle) <willy@infradead.org> Acked-by: Mike Rapoport (IBM) <rppt@kernel.org> Cc: "David S. Miller" <davem@davemloft.net> Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
This commit is contained in:
committed by
Andrew Morton
parent
665f640294
commit
1a10a44dfc
@@ -35,20 +35,26 @@ void flush_icache_range(unsigned long start, unsigned long end);
|
||||
void __flush_icache_page(unsigned long);
|
||||
|
||||
void __flush_dcache_page(void *addr, int flush_icache);
|
||||
void flush_dcache_page_impl(struct page *page);
|
||||
void flush_dcache_folio_impl(struct folio *folio);
|
||||
#ifdef CONFIG_SMP
|
||||
void smp_flush_dcache_page_impl(struct page *page, int cpu);
|
||||
void flush_dcache_page_all(struct mm_struct *mm, struct page *page);
|
||||
void smp_flush_dcache_folio_impl(struct folio *folio, int cpu);
|
||||
void flush_dcache_folio_all(struct mm_struct *mm, struct folio *folio);
|
||||
#else
|
||||
#define smp_flush_dcache_page_impl(page,cpu) flush_dcache_page_impl(page)
|
||||
#define flush_dcache_page_all(mm,page) flush_dcache_page_impl(page)
|
||||
#define smp_flush_dcache_folio_impl(folio, cpu) flush_dcache_folio_impl(folio)
|
||||
#define flush_dcache_folio_all(mm, folio) flush_dcache_folio_impl(folio)
|
||||
#endif
|
||||
|
||||
void __flush_dcache_range(unsigned long start, unsigned long end);
|
||||
#define ARCH_IMPLEMENTS_FLUSH_DCACHE_PAGE 1
|
||||
void flush_dcache_page(struct page *page);
|
||||
void flush_dcache_folio(struct folio *folio);
|
||||
#define flush_dcache_folio flush_dcache_folio
|
||||
static inline void flush_dcache_page(struct page *page)
|
||||
{
|
||||
flush_dcache_folio(page_folio(page));
|
||||
}
|
||||
|
||||
#define flush_icache_page(vma, pg) do { } while(0)
|
||||
#define flush_icache_pages(vma, pg, nr) do { } while(0)
|
||||
|
||||
void flush_ptrace_access(struct vm_area_struct *, struct page *,
|
||||
unsigned long uaddr, void *kaddr,
|
||||
|
||||
Reference in New Issue
Block a user