mirror of
https://github.com/hardkernel/linux.git
synced 2026-06-08 20:07:46 +09:00
parisc: Ensure page alignment in flush functions
commit d755bd2cae upstream.
Matthew Wilcox noticed, that if ARCH_HAS_FLUSH_ON_KUNMAP is defined
(which is the case for PA-RISC), __kunmap_local() calls
kunmap_flush_on_unmap(), which may call the parisc flush functions with
a non-page-aligned address and thus the page might not be fully flushed.
This patch ensures that flush_kernel_dcache_page_asm() and
flush_kernel_dcache_page_asm() will always operate on page-aligned
addresses.
Signed-off-by: Helge Deller <deller@gmx.de>
Cc: <stable@vger.kernel.org> # v6.0+
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
This commit is contained in:
committed by
Greg Kroah-Hartman
parent
b80b7a9bb8
commit
fd02867177
@@ -889,6 +889,7 @@ ENDPROC_CFI(flush_icache_page_asm)
|
|||||||
ENTRY_CFI(flush_kernel_dcache_page_asm)
|
ENTRY_CFI(flush_kernel_dcache_page_asm)
|
||||||
88: ldil L%dcache_stride, %r1
|
88: ldil L%dcache_stride, %r1
|
||||||
ldw R%dcache_stride(%r1), %r23
|
ldw R%dcache_stride(%r1), %r23
|
||||||
|
depi_safe 0, 31,PAGE_SHIFT, %r26 /* Clear any offset bits */
|
||||||
|
|
||||||
#ifdef CONFIG_64BIT
|
#ifdef CONFIG_64BIT
|
||||||
depdi,z 1, 63-PAGE_SHIFT,1, %r25
|
depdi,z 1, 63-PAGE_SHIFT,1, %r25
|
||||||
@@ -925,6 +926,7 @@ ENDPROC_CFI(flush_kernel_dcache_page_asm)
|
|||||||
ENTRY_CFI(purge_kernel_dcache_page_asm)
|
ENTRY_CFI(purge_kernel_dcache_page_asm)
|
||||||
88: ldil L%dcache_stride, %r1
|
88: ldil L%dcache_stride, %r1
|
||||||
ldw R%dcache_stride(%r1), %r23
|
ldw R%dcache_stride(%r1), %r23
|
||||||
|
depi_safe 0, 31,PAGE_SHIFT, %r26 /* Clear any offset bits */
|
||||||
|
|
||||||
#ifdef CONFIG_64BIT
|
#ifdef CONFIG_64BIT
|
||||||
depdi,z 1, 63-PAGE_SHIFT,1, %r25
|
depdi,z 1, 63-PAGE_SHIFT,1, %r25
|
||||||
|
|||||||
Reference in New Issue
Block a user