]> git.ipfire.org Git - thirdparty/kernel/stable-queue.git/commitdiff
4.14-stable patches
authorGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Tue, 27 Aug 2019 06:19:23 +0000 (08:19 +0200)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Tue, 27 Aug 2019 06:19:23 +0000 (08:19 +0200)
added patches:
powerpc-allow-flush_-inval_-dcache_range-to-work-across-ranges-4gb.patch

queue-4.14/powerpc-allow-flush_-inval_-dcache_range-to-work-across-ranges-4gb.patch [new file with mode: 0644]
queue-4.14/series

diff --git a/queue-4.14/powerpc-allow-flush_-inval_-dcache_range-to-work-across-ranges-4gb.patch b/queue-4.14/powerpc-allow-flush_-inval_-dcache_range-to-work-across-ranges-4gb.patch
new file mode 100644 (file)
index 0000000..6ab089c
--- /dev/null
@@ -0,0 +1,54 @@
+From alastair@au1.ibm.com  Tue Aug 27 08:18:42 2019
+From: "Alastair D'Silva" <alastair@au1.ibm.com>
+Date: Wed, 21 Aug 2019 10:19:27 +1000
+Subject: powerpc: Allow flush_(inval_)dcache_range to work across ranges >4GB
+To: alastair@d-silva.org
+Cc: stable@vger.kernel.org, Benjamin Herrenschmidt <benh@kernel.crashing.org>, Paul Mackerras <paulus@samba.org>, Michael Ellerman <mpe@ellerman.id.au>, Thomas Gleixner <tglx@linutronix.de>, Greg Kroah-Hartman <gregkh@linuxfoundation.org>, Allison Randal <allison@lohutok.net>, linuxppc-dev@lists.ozlabs.org, linux-kernel@vger.kernel.org
+Message-ID: <20190821001929.4253-1-alastair@au1.ibm.com>
+
+
+From: Alastair D'Silva <alastair@d-silva.org>
+
+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 |    4 ++--
+ 1 file changed, 2 insertions(+), 2 deletions(-)
+
+--- a/arch/powerpc/kernel/misc_64.S
++++ b/arch/powerpc/kernel/misc_64.S
+@@ -134,7 +134,7 @@ _GLOBAL_TOC(flush_dcache_range)
+       subf    r8,r6,r4                /* compute length */
+       add     r8,r8,r5                /* ensure we get enough */
+       lwz     r9,DCACHEL1LOGBLOCKSIZE(r10)    /* Get log-2 of dcache block size */
+-      srw.    r8,r8,r9                /* compute line count */
++      srd.    r8,r8,r9                /* compute line count */
+       beqlr                           /* nothing to do? */
+       mtctr   r8
+ 0:    dcbst   0,r6
+@@ -190,7 +190,7 @@ _GLOBAL(flush_inval_dcache_range)
+       subf    r8,r6,r4                /* compute length */
+       add     r8,r8,r5                /* ensure we get enough */
+       lwz     r9,DCACHEL1LOGBLOCKSIZE(r10)/* Get log-2 of dcache block size */
+-      srw.    r8,r8,r9                /* compute line count */
++      srd.    r8,r8,r9                /* compute line count */
+       beqlr                           /* nothing to do? */
+       sync
+       isync
index 669671ebdd3f12681ddaa8387bcd0827d733ef1a..8b9e56b3ee15085748b16f54161d4cb34815bd35 100644 (file)
@@ -59,3 +59,4 @@ mm-zsmalloc.c-migration-can-leave-pages-in-zs_empty-indefinitely.patch
 mm-zsmalloc.c-fix-race-condition-in-zs_destroy_pool.patch
 xfs-fix-missing-ilock-unlock-when-xfs_setattr_nonsize-fails-due-to-edquot.patch
 dm-zoned-fix-potential-null-dereference-in-dmz_do_re.patch
+powerpc-allow-flush_-inval_-dcache_range-to-work-across-ranges-4gb.patch