arm64: Optimise the cache flushing for user processes

The AArch64 port used deferred cache flushing for user processes via
flush_dcache_page() and __sync_icache_dcache() (called from
set_pte_at()). Anonymous pages were always flushed in flush_dcache_page.
This patch adds deferred flushing for anonymous pages and also avoids
the I-cache invalidation in __sync_icache_dcache() for clean pages with
VIPT I-cache configurations.

Signed-off-by: Catalin Marinas <catalin.marinas@arm.com>
4 files changed