diff options
Diffstat (limited to 'arch/powerpc/include/asm/cacheflush.h')
| -rw-r--r-- | arch/powerpc/include/asm/cacheflush.h | 14 | 
1 files changed, 10 insertions, 4 deletions
diff --git a/arch/powerpc/include/asm/cacheflush.h b/arch/powerpc/include/asm/cacheflush.h index 7564dd4fd12b..ef7d2de33b89 100644 --- a/arch/powerpc/include/asm/cacheflush.h +++ b/arch/powerpc/include/asm/cacheflush.h @@ -35,13 +35,19 @@ static inline void flush_cache_vmap(unsigned long start, unsigned long end)   * It just marks the page as not i-cache clean.  We do the i-cache   * flush later when the page is given to a user process, if necessary.   */ -static inline void flush_dcache_page(struct page *page) +static inline void flush_dcache_folio(struct folio *folio)  {  	if (cpu_has_feature(CPU_FTR_COHERENT_ICACHE))  		return;  	/* avoid an atomic op if possible */ -	if (test_bit(PG_dcache_clean, &page->flags)) -		clear_bit(PG_dcache_clean, &page->flags); +	if (test_bit(PG_dcache_clean, &folio->flags)) +		clear_bit(PG_dcache_clean, &folio->flags); +} +#define flush_dcache_folio flush_dcache_folio + +static inline void flush_dcache_page(struct page *page) +{ +	flush_dcache_folio(page_folio(page));  }  void flush_icache_range(unsigned long start, unsigned long stop); @@ -51,7 +57,7 @@ void flush_icache_user_page(struct vm_area_struct *vma, struct page *page,  		unsigned long addr, int len);  #define flush_icache_user_page flush_icache_user_page -void flush_dcache_icache_page(struct page *page); +void flush_dcache_icache_folio(struct folio *folio);  /**   * flush_dcache_range(): Write any modified data cache blocks out to memory and  | 
