Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 7249b79f authored by Catalin Marinas's avatar Catalin Marinas
Browse files

arm64: Do not flush the D-cache for anonymous pages



The D-cache on AArch64 is VIPT non-aliasing, so there is no need to
flush it for anonymous pages.

Signed-off-by: default avatarCatalin Marinas <catalin.marinas@arm.com>
Reported-by: default avatarWill Deacon <will.deacon@arm.com>
Acked-by: default avatarWill Deacon <will.deacon@arm.com>
parent b5b6c9e9
Loading
Loading
Loading
Loading
+3 −5
Original line number Diff line number Diff line
@@ -77,14 +77,12 @@ void __flush_dcache_page(struct page *page)

void __sync_icache_dcache(pte_t pte, unsigned long addr)
{
	unsigned long pfn;
	struct page *page;
	struct page *page = pte_page(pte);

	pfn = pte_pfn(pte);
	if (!pfn_valid(pfn))
	/* no flushing needed for anonymous pages */
	if (!page_mapping(page))
		return;

	page = pfn_to_page(pfn);
	if (!test_and_set_bit(PG_dcache_clean, &page->flags)) {
		__flush_dcache_page(page);
		__flush_icache_all();
+0 −1
Original line number Diff line number Diff line
@@ -339,7 +339,6 @@ void __init paging_init(void)
	bootmem_init();

	empty_zero_page = virt_to_page(zero_page);
	__flush_dcache_page(empty_zero_page);

	/*
	 * TTBR0 is only used for the identity mapping at this stage. Make it