]> git.ipfire.org Git - thirdparty/kernel/stable.git/commit
powerpc: Allow flush_(inval_)dcache_range to work across ranges >4GB
authorAlastair D'Silva <alastair@d-silva.org>
Wed, 21 Aug 2019 00:19:27 +0000 (10:19 +1000)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Thu, 29 Aug 2019 06:26:45 +0000 (08:26 +0200)
commit54de4ef852b644c2eb2741ec338d1750196e3733
tree0ddc2108d01dcbad3ec1ef75b9bbdb551d82382c
parent3d156087598d21db3a099da21dd39226549fbb2c
powerpc: Allow flush_(inval_)dcache_range to work across ranges >4GB

The upstream commit:
22e9c88d486a ("powerpc/64: reuse PPC32 static inline flush_dcache_range()")
has a similar effect, but since it is a rewrite of the assembler to C, is
too invasive for stable. This patch is a minimal fix to address the issue in
assembler.

This patch applies cleanly to v5.2, v4.19 & v4.14.

When calling flush_(inval_)dcache_range with a size >4GB, we were masking
off the upper 32 bits, so we would incorrectly flush a range smaller
than intended.

This patch replaces the 32 bit shifts with 64 bit ones, so that
the full size is accounted for.

Signed-off-by: Alastair D'Silva <alastair@d-silva.org>
Acked-by: Michael Ellerman <mpe@ellerman.id.au>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
arch/powerpc/kernel/misc_64.S