arm64: vdso: Remove redundant calls to flush_dcache_page()
authorWill Deacon <will@kernel.org>
Thu, 18 Mar 2021 17:07:35 +0000 (17:07 +0000)
committerCatalin Marinas <catalin.marinas@arm.com>
Wed, 24 Mar 2021 16:48:41 +0000 (16:48 +0000)
flush_dcache_page() ensures that the 'PG_dcache_clean' flag for its
'page' argument is clear so that cache maintenance will be performed
if the page is mapped into userspace with execute permissions.

Newly allocated pages have this flag clear, so there is no need to call
flush_dcache_page() for the compat vdso or signal pages. Remove the
redundant calls.

Signed-off-by: Will Deacon <will@kernel.org>
Reviewed-by: Vincenzo Frascino <vincenzo.frascino@arm.com>
Link: https://lore.kernel.org/r/20210318170738.7756-3-will@kernel.org
Signed-off-by: Catalin Marinas <catalin.marinas@arm.com>
arch/arm64/kernel/vdso.c

index 2d057a4dc787cf4071795e788e606f18e4898913..421411981dc3c316fc56df51e9b0debe93c40b10 100644 (file)
@@ -306,7 +306,6 @@ static int aarch32_alloc_kuser_vdso_page(void)
        memcpy((void *)(vdso_page + 0x1000 - kuser_sz), __kuser_helper_start,
               kuser_sz);
        aarch32_vectors_page = virt_to_page(vdso_page);
-       flush_dcache_page(aarch32_vectors_page);
        return 0;
 }
 
@@ -322,7 +321,6 @@ static int aarch32_alloc_sigpage(void)
 
        memcpy((void *)sigpage, __aarch32_sigret_code_start, sigret_sz);
        aarch32_sig_page = virt_to_page(sigpage);
-       flush_dcache_page(aarch32_sig_page);
        return 0;
 }