From: Mark Brown Date: Thu, 15 May 2014 10:42:57 +0000 (+0100) Subject: Merge remote-tracking branch 'lsk/v3.10/topic/arm64-lts' into lsk-v3.10-arm64-misc X-Git-Tag: firefly_0821_release~3680^2~35^2~1^2~124 X-Git-Url: http://demsky.eecs.uci.edu/git/?a=commitdiff_plain;h=1a4f98ef5fe1d2e9a0eb45ee03b415495d1ea406;p=firefly-linux-kernel-4.4.55.git Merge remote-tracking branch 'lsk/v3.10/topic/arm64-lts' into lsk-v3.10-arm64-misc --- 1a4f98ef5fe1d2e9a0eb45ee03b415495d1ea406 diff --cc arch/arm64/mm/flush.c index d3751b5f7f07,7c716634a671..e4193e3adc7f --- a/arch/arm64/mm/flush.c +++ b/arch/arm64/mm/flush.c @@@ -70,18 -70,21 +70,16 @@@ void copy_to_user_page(struct vm_area_s #endif } -void __flush_dcache_page(struct page *page) -{ - __flush_dcache_area(page_address(page), PAGE_SIZE); -} - 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_dcache_area(page_address(page), PAGE_SIZE); __flush_icache_all(); } else if (icache_is_aivivt()) { __flush_icache_all();