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 2d057a4..4214119 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;
 }