stable.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
* [PATCH v5 1/6] powerpc: Allow flush_icache_range to work across ranges >4GB
       [not found] <20191104023305.9581-1-alastair@au1.ibm.com>
@ 2019-11-04  2:32 ` Alastair D'Silva
  2019-11-04 19:43   ` Segher Boessenkool
  2019-11-14  9:08   ` Michael Ellerman
  2019-11-04  2:32 ` [PATCH v5 2/6] powerpc: Allow 64bit VDSO __kernel_sync_dicache " Alastair D'Silva
  1 sibling, 2 replies; 6+ messages in thread
From: Alastair D'Silva @ 2019-11-04  2:32 UTC (permalink / raw)
  To: alastair
  Cc: stable, Benjamin Herrenschmidt, Paul Mackerras, Michael Ellerman,
	Christophe Leroy, Allison Randal, Greg Kroah-Hartman, Qian Cai,
	Thomas Gleixner, Nicholas Piggin, Andrew Morton,
	David Hildenbrand, linuxppc-dev, linux-kernel

From: Alastair D'Silva <alastair@d-silva.org>

When calling flush_icache_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>
Cc: stable@vger.kernel.org
---
 arch/powerpc/kernel/misc_64.S | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

diff --git a/arch/powerpc/kernel/misc_64.S b/arch/powerpc/kernel/misc_64.S
index b55a7b4cb543..9bc0aa9aeb65 100644
--- a/arch/powerpc/kernel/misc_64.S
+++ b/arch/powerpc/kernel/misc_64.S
@@ -82,7 +82,7 @@ END_FTR_SECTION_IFSET(CPU_FTR_COHERENT_ICACHE)
 	subf	r8,r6,r4		/* compute length */
 	add	r8,r8,r5		/* ensure we get enough */
 	lwz	r9,DCACHEL1LOGBLOCKSIZE(r10)	/* Get log-2 of cache block size */
-	srw.	r8,r8,r9		/* compute line count */
+	srd.	r8,r8,r9		/* compute line count */
 	beqlr				/* nothing to do? */
 	mtctr	r8
 1:	dcbst	0,r6
@@ -98,7 +98,7 @@ END_FTR_SECTION_IFSET(CPU_FTR_COHERENT_ICACHE)
 	subf	r8,r6,r4		/* compute length */
 	add	r8,r8,r5
 	lwz	r9,ICACHEL1LOGBLOCKSIZE(r10)	/* Get log-2 of Icache block size */
-	srw.	r8,r8,r9		/* compute line count */
+	srd.	r8,r8,r9		/* compute line count */
 	beqlr				/* nothing to do? */
 	mtctr	r8
 2:	icbi	0,r6
-- 
2.21.0


^ permalink raw reply related	[flat|nested] 6+ messages in thread

* [PATCH v5 2/6] powerpc: Allow 64bit VDSO __kernel_sync_dicache to work across ranges >4GB
       [not found] <20191104023305.9581-1-alastair@au1.ibm.com>
  2019-11-04  2:32 ` [PATCH v5 1/6] powerpc: Allow flush_icache_range to work across ranges >4GB Alastair D'Silva
@ 2019-11-04  2:32 ` Alastair D'Silva
  1 sibling, 0 replies; 6+ messages in thread
From: Alastair D'Silva @ 2019-11-04  2:32 UTC (permalink / raw)
  To: alastair
  Cc: stable, Benjamin Herrenschmidt, Paul Mackerras, Michael Ellerman,
	Christophe Leroy, Thomas Gleixner, Allison Randal, Qian Cai,
	Nicholas Piggin, Greg Kroah-Hartman, Andrew Morton,
	David Hildenbrand, linuxppc-dev, linux-kernel

From: Alastair D'Silva <alastair@d-silva.org>

When calling __kernel_sync_dicache 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>
Cc: stable@vger.kernel.org
---
 arch/powerpc/kernel/vdso64/cacheflush.S | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

diff --git a/arch/powerpc/kernel/vdso64/cacheflush.S b/arch/powerpc/kernel/vdso64/cacheflush.S
index 3f92561a64c4..526f5ba2593e 100644
--- a/arch/powerpc/kernel/vdso64/cacheflush.S
+++ b/arch/powerpc/kernel/vdso64/cacheflush.S
@@ -35,7 +35,7 @@ V_FUNCTION_BEGIN(__kernel_sync_dicache)
 	subf	r8,r6,r4		/* compute length */
 	add	r8,r8,r5		/* ensure we get enough */
 	lwz	r9,CFG_DCACHE_LOGBLOCKSZ(r10)
-	srw.	r8,r8,r9		/* compute line count */
+	srd.	r8,r8,r9		/* compute line count */
 	crclr	cr0*4+so
 	beqlr				/* nothing to do? */
 	mtctr	r8
@@ -52,7 +52,7 @@ V_FUNCTION_BEGIN(__kernel_sync_dicache)
 	subf	r8,r6,r4		/* compute length */
 	add	r8,r8,r5
 	lwz	r9,CFG_ICACHE_LOGBLOCKSZ(r10)
-	srw.	r8,r8,r9		/* compute line count */
+	srd.	r8,r8,r9		/* compute line count */
 	crclr	cr0*4+so
 	beqlr				/* nothing to do? */
 	mtctr	r8
-- 
2.21.0


^ permalink raw reply related	[flat|nested] 6+ messages in thread

* Re: [PATCH v5 1/6] powerpc: Allow flush_icache_range to work across ranges >4GB
  2019-11-04  2:32 ` [PATCH v5 1/6] powerpc: Allow flush_icache_range to work across ranges >4GB Alastair D'Silva
@ 2019-11-04 19:43   ` Segher Boessenkool
  2019-11-05  6:04     ` Christophe Leroy
  2019-11-14  9:08   ` Michael Ellerman
  1 sibling, 1 reply; 6+ messages in thread
From: Segher Boessenkool @ 2019-11-04 19:43 UTC (permalink / raw)
  To: Alastair D'Silva
  Cc: alastair, Greg Kroah-Hartman, David Hildenbrand, linux-kernel,
	stable, Paul Mackerras, Nicholas Piggin, Qian Cai,
	Thomas Gleixner, linuxppc-dev, Andrew Morton, Allison Randal

On Mon, Nov 04, 2019 at 01:32:53PM +1100, Alastair D'Silva wrote:
> When calling flush_icache_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.

Please send this separately, to be committed right now?  It is a bug fix,
independent of the rest of the series.


Segher

^ permalink raw reply	[flat|nested] 6+ messages in thread

* Re: [PATCH v5 1/6] powerpc: Allow flush_icache_range to work across ranges >4GB
  2019-11-04 19:43   ` Segher Boessenkool
@ 2019-11-05  6:04     ` Christophe Leroy
  2019-11-06 17:49       ` Segher Boessenkool
  0 siblings, 1 reply; 6+ messages in thread
From: Christophe Leroy @ 2019-11-05  6:04 UTC (permalink / raw)
  To: Segher Boessenkool, Alastair D'Silva
  Cc: David Hildenbrand, Greg Kroah-Hartman, linux-kernel, stable,
	Paul Mackerras, Nicholas Piggin, alastair, Qian Cai,
	Thomas Gleixner, linuxppc-dev, Andrew Morton, Allison Randal



Le 04/11/2019 à 20:43, Segher Boessenkool a écrit :
> On Mon, Nov 04, 2019 at 01:32:53PM +1100, Alastair D'Silva wrote:
>> When calling flush_icache_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.
> 
> Please send this separately, to be committed right now?  It is a bug fix,
> independent of the rest of the series.
> 

Patch 4/6 needs it, as it drops the function.

Or do you mean that the series should drop the assembly at once, and 
this patch should only go into stable ?

But I guess mpe can take this patch alone if he wants to ?

By the way, Patch 2/6 is also a bugfix.

Christophe

^ permalink raw reply	[flat|nested] 6+ messages in thread

* Re: [PATCH v5 1/6] powerpc: Allow flush_icache_range to work across ranges >4GB
  2019-11-05  6:04     ` Christophe Leroy
@ 2019-11-06 17:49       ` Segher Boessenkool
  0 siblings, 0 replies; 6+ messages in thread
From: Segher Boessenkool @ 2019-11-06 17:49 UTC (permalink / raw)
  To: Christophe Leroy
  Cc: Alastair D'Silva, David Hildenbrand, Greg Kroah-Hartman,
	linux-kernel, stable, Paul Mackerras, Nicholas Piggin, alastair,
	Qian Cai, Thomas Gleixner, linuxppc-dev, Andrew Morton,
	Allison Randal

On Tue, Nov 05, 2019 at 07:04:04AM +0100, Christophe Leroy wrote:
> Le 04/11/2019 à 20:43, Segher Boessenkool a écrit :
> >Please send this separately, to be committed right now?  It is a bug fix,
> >independent of the rest of the series.
> 
> Patch 4/6 needs it, as it drops the function.
> 
> Or do you mean that the series should drop the assembly at once, and 
> this patch should only go into stable ?

I meant that you can say these patches (yes, 2/ as well) are bug fixes,
independent of the rest, and they can be picked up immediately, there
is no need to wait for v18 of this series.

> But I guess mpe can take this patch alone if he wants to ?

Yeah, but you can help him do that ;-)


Segher

^ permalink raw reply	[flat|nested] 6+ messages in thread

* Re: [PATCH v5 1/6] powerpc: Allow flush_icache_range to work across ranges >4GB
  2019-11-04  2:32 ` [PATCH v5 1/6] powerpc: Allow flush_icache_range to work across ranges >4GB Alastair D'Silva
  2019-11-04 19:43   ` Segher Boessenkool
@ 2019-11-14  9:08   ` Michael Ellerman
  1 sibling, 0 replies; 6+ messages in thread
From: Michael Ellerman @ 2019-11-14  9:08 UTC (permalink / raw)
  To: Alastair D'Silva, alastair
  Cc: Greg Kroah-Hartman, David Hildenbrand, linux-kernel, stable,
	Paul Mackerras, Nicholas Piggin, Qian Cai, Thomas Gleixner,
	linuxppc-dev, Andrew Morton, Allison Randal

On Mon, 2019-11-04 at 02:32:53 UTC, "Alastair D'Silva" wrote:
> From: Alastair D'Silva <alastair@d-silva.org>
> 
> When calling flush_icache_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>
> Cc: stable@vger.kernel.org

Series applied to powerpc next, thanks.

https://git.kernel.org/powerpc/c/29430fae82073d39b1b881a3cd507416a56a363f

cheers

^ permalink raw reply	[flat|nested] 6+ messages in thread

end of thread, other threads:[~2019-11-14  9:08 UTC | newest]

Thread overview: 6+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
     [not found] <20191104023305.9581-1-alastair@au1.ibm.com>
2019-11-04  2:32 ` [PATCH v5 1/6] powerpc: Allow flush_icache_range to work across ranges >4GB Alastair D'Silva
2019-11-04 19:43   ` Segher Boessenkool
2019-11-05  6:04     ` Christophe Leroy
2019-11-06 17:49       ` Segher Boessenkool
2019-11-14  9:08   ` Michael Ellerman
2019-11-04  2:32 ` [PATCH v5 2/6] powerpc: Allow 64bit VDSO __kernel_sync_dicache " Alastair D'Silva

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).