* FAILED: patch "[PATCH] powerpc/32: Fix again csum_partial_copy_generic()" failed to apply to 4.7-stable tree @ 2016-09-22 12:45 gregkh 2016-09-22 13:03 ` Christophe Leroy 0 siblings, 1 reply; 4+ messages in thread From: gregkh @ 2016-09-22 12:45 UTC (permalink / raw) To: christophe.leroy, alessio.bogani, mpe; +Cc: stable The patch below does not apply to the 4.7-stable tree. If someone wants it applied there, or to any other stable or longterm tree, then please email the backport, including the original git commit id to <stable@vger.kernel.org>. thanks, greg k-h ------------------ original commit in Linus's tree ------------------ >From 8540571e01f973d321b0821f4f32ed6e9ae8263c Mon Sep 17 00:00:00 2001 From: Christophe Leroy <christophe.leroy@c-s.fr> Date: Fri, 26 Aug 2016 16:45:13 +0200 Subject: [PATCH] powerpc/32: Fix again csum_partial_copy_generic() Commit 7aef4136566b0 ("powerpc32: rewrite csum_partial_copy_generic() based on copy_tofrom_user()") introduced a bug when destination address is odd and len is lower than cacheline size. In that case the resulting csum value doesn't have to be rotated one byte because the cache-aligned copy part is skipped so no alignment is performed. Fixes: 7aef4136566b0 ("powerpc32: rewrite csum_partial_copy_generic() based on copy_tofrom_user()") Cc: stable@vger.kernel.org # v4.6+ Reported-by: Alessio Igor Bogani <alessio.bogani@elettra.eu> Signed-off-by: Christophe Leroy <christophe.leroy@c-s.fr> Tested-by: Alessio Igor Bogani <alessio.bogani@elettra.eu> Signed-off-by: Michael Ellerman <mpe@ellerman.id.au> diff --git a/arch/powerpc/lib/checksum_32.S b/arch/powerpc/lib/checksum_32.S index 0a57fe6d49cc..aa8214f30c92 100644 --- a/arch/powerpc/lib/checksum_32.S +++ b/arch/powerpc/lib/checksum_32.S @@ -127,18 +127,19 @@ _GLOBAL(csum_partial_copy_generic) stw r7,12(r1) stw r8,8(r1) - rlwinm r0,r4,3,0x8 - rlwnm r6,r6,r0,0,31 /* odd destination address: rotate one byte */ - cmplwi cr7,r0,0 /* is destination address even ? */ addic r12,r6,0 addi r6,r4,-4 neg r0,r4 addi r4,r3,-4 andi. r0,r0,CACHELINE_MASK /* # bytes to start of cache line */ + crset 4*cr7+eq beq 58f cmplw 0,r5,r0 /* is this more than total to do? */ blt 63f /* if not much to do */ + rlwinm r7,r6,3,0x8 + rlwnm r12,r12,r7,0,31 /* odd destination address: rotate one byte */ + cmplwi cr7,r7,0 /* is destination address even ? */ andi. r8,r0,3 /* get it word-aligned first */ mtctr r8 beq+ 61f ^ permalink raw reply related [flat|nested] 4+ messages in thread
* Re: FAILED: patch "[PATCH] powerpc/32: Fix again csum_partial_copy_generic()" failed to apply to 4.7-stable tree 2016-09-22 12:45 FAILED: patch "[PATCH] powerpc/32: Fix again csum_partial_copy_generic()" failed to apply to 4.7-stable tree gregkh @ 2016-09-22 13:03 ` Christophe Leroy 2016-09-22 13:18 ` Christophe Leroy 2016-09-22 13:42 ` Greg KH 0 siblings, 2 replies; 4+ messages in thread From: Christophe Leroy @ 2016-09-22 13:03 UTC (permalink / raw) To: gregkh, alessio.bogani, mpe; +Cc: stable Hi Greg, The reason it doesn't apply is probably that it first requires commit 1bc8b816cb8058c31f61fe78442f10a43209e582 ("powerpc/32: Fix csum_partial_copy_generic()") Thanks, Christophe Le 22/09/2016 � 14:45, gregkh@linuxfoundation.org a �crit : > > The patch below does not apply to the 4.7-stable tree. > If someone wants it applied there, or to any other stable or longterm > tree, then please email the backport, including the original git commit > id to <stable@vger.kernel.org>. > > thanks, > > greg k-h > > ------------------ original commit in Linus's tree ------------------ > > From 8540571e01f973d321b0821f4f32ed6e9ae8263c Mon Sep 17 00:00:00 2001 > From: Christophe Leroy <christophe.leroy@c-s.fr> > Date: Fri, 26 Aug 2016 16:45:13 +0200 > Subject: [PATCH] powerpc/32: Fix again csum_partial_copy_generic() > > Commit 7aef4136566b0 ("powerpc32: rewrite csum_partial_copy_generic() > based on copy_tofrom_user()") introduced a bug when destination address > is odd and len is lower than cacheline size. > > In that case the resulting csum value doesn't have to be rotated one > byte because the cache-aligned copy part is skipped so no alignment > is performed. > > Fixes: 7aef4136566b0 ("powerpc32: rewrite csum_partial_copy_generic() based on copy_tofrom_user()") > Cc: stable@vger.kernel.org # v4.6+ > Reported-by: Alessio Igor Bogani <alessio.bogani@elettra.eu> > Signed-off-by: Christophe Leroy <christophe.leroy@c-s.fr> > Tested-by: Alessio Igor Bogani <alessio.bogani@elettra.eu> > Signed-off-by: Michael Ellerman <mpe@ellerman.id.au> > > diff --git a/arch/powerpc/lib/checksum_32.S b/arch/powerpc/lib/checksum_32.S > index 0a57fe6d49cc..aa8214f30c92 100644 > --- a/arch/powerpc/lib/checksum_32.S > +++ b/arch/powerpc/lib/checksum_32.S > @@ -127,18 +127,19 @@ _GLOBAL(csum_partial_copy_generic) > stw r7,12(r1) > stw r8,8(r1) > > - rlwinm r0,r4,3,0x8 > - rlwnm r6,r6,r0,0,31 /* odd destination address: rotate one byte */ > - cmplwi cr7,r0,0 /* is destination address even ? */ > addic r12,r6,0 > addi r6,r4,-4 > neg r0,r4 > addi r4,r3,-4 > andi. r0,r0,CACHELINE_MASK /* # bytes to start of cache line */ > + crset 4*cr7+eq > beq 58f > > cmplw 0,r5,r0 /* is this more than total to do? */ > blt 63f /* if not much to do */ > + rlwinm r7,r6,3,0x8 > + rlwnm r12,r12,r7,0,31 /* odd destination address: rotate one byte */ > + cmplwi cr7,r7,0 /* is destination address even ? */ > andi. r8,r0,3 /* get it word-aligned first */ > mtctr r8 > beq+ 61f > ^ permalink raw reply [flat|nested] 4+ messages in thread
* Re: FAILED: patch "[PATCH] powerpc/32: Fix again csum_partial_copy_generic()" failed to apply to 4.7-stable tree 2016-09-22 13:03 ` Christophe Leroy @ 2016-09-22 13:18 ` Christophe Leroy 2016-09-22 13:42 ` Greg KH 1 sibling, 0 replies; 4+ messages in thread From: Christophe Leroy @ 2016-09-22 13:18 UTC (permalink / raw) To: gregkh, alessio.bogani, mpe; +Cc: stable Hi again Greg, I confirm as shown below, it works as soon as you apply both patches: [root@localhost linux-next]# git checkout v4.7 Extraction des fichiers: 100% (15698/15698), fait. Note: checking out 'v4.7'. You are in 'detached HEAD' state. You can look around, make experimental changes and commit them, and you can discard any commits you make in this state without impacting any branches by performing another checkout. If you want to create a new branch to retain commits you create, you may do so (now or later) by using -b with the checkout command again. Example: git checkout -b new_branch_name HEAD est maintenant sur 523d939... Linux 4.7 [root@localhost linux-next]# git cherry-pick 1bc8b816cb8058c31f61fe78442f10a43209e582 [HEAD d�tach�e 0b55e54] powerpc/32: Fix csum_partial_copy_generic() Date: Tue Aug 2 10:07:05 2016 +0200 1 file changed, 4 insertions(+), 3 deletions(-) [root@localhost linux-next]# git cherry-pick 8540571e01f973d321b0821f4f32ed6e9ae8263c [HEAD d�tach�e 8707ecd] powerpc/32: Fix again csum_partial_copy_generic() Date: Fri Aug 26 16:45:13 2016 +0200 1 file changed, 4 insertions(+), 3 deletions(-) [root@localhost linux-next]# Christophe Le 22/09/2016 � 15:03, Christophe Leroy a �crit : > Hi Greg, > > The reason it doesn't apply is probably that it first requires commit > 1bc8b816cb8058c31f61fe78442f10a43209e582 ("powerpc/32: Fix > csum_partial_copy_generic()") > > Thanks, > Christophe > > Le 22/09/2016 � 14:45, gregkh@linuxfoundation.org a �crit : >> >> The patch below does not apply to the 4.7-stable tree. >> If someone wants it applied there, or to any other stable or longterm >> tree, then please email the backport, including the original git commit >> id to <stable@vger.kernel.org>. >> >> thanks, >> >> greg k-h >> >> ------------------ original commit in Linus's tree ------------------ >> >> From 8540571e01f973d321b0821f4f32ed6e9ae8263c Mon Sep 17 00:00:00 2001 >> From: Christophe Leroy <christophe.leroy@c-s.fr> >> Date: Fri, 26 Aug 2016 16:45:13 +0200 >> Subject: [PATCH] powerpc/32: Fix again csum_partial_copy_generic() >> >> Commit 7aef4136566b0 ("powerpc32: rewrite csum_partial_copy_generic() >> based on copy_tofrom_user()") introduced a bug when destination address >> is odd and len is lower than cacheline size. >> >> In that case the resulting csum value doesn't have to be rotated one >> byte because the cache-aligned copy part is skipped so no alignment >> is performed. >> >> Fixes: 7aef4136566b0 ("powerpc32: rewrite csum_partial_copy_generic() >> based on copy_tofrom_user()") >> Cc: stable@vger.kernel.org # v4.6+ >> Reported-by: Alessio Igor Bogani <alessio.bogani@elettra.eu> >> Signed-off-by: Christophe Leroy <christophe.leroy@c-s.fr> >> Tested-by: Alessio Igor Bogani <alessio.bogani@elettra.eu> >> Signed-off-by: Michael Ellerman <mpe@ellerman.id.au> >> >> diff --git a/arch/powerpc/lib/checksum_32.S >> b/arch/powerpc/lib/checksum_32.S >> index 0a57fe6d49cc..aa8214f30c92 100644 >> --- a/arch/powerpc/lib/checksum_32.S >> +++ b/arch/powerpc/lib/checksum_32.S >> @@ -127,18 +127,19 @@ _GLOBAL(csum_partial_copy_generic) >> stw r7,12(r1) >> stw r8,8(r1) >> >> - rlwinm r0,r4,3,0x8 >> - rlwnm r6,r6,r0,0,31 /* odd destination address: rotate one >> byte */ >> - cmplwi cr7,r0,0 /* is destination address even ? */ >> addic r12,r6,0 >> addi r6,r4,-4 >> neg r0,r4 >> addi r4,r3,-4 >> andi. r0,r0,CACHELINE_MASK /* # bytes to start of cache >> line */ >> + crset 4*cr7+eq >> beq 58f >> >> cmplw 0,r5,r0 /* is this more than total to do? */ >> blt 63f /* if not much to do */ >> + rlwinm r7,r6,3,0x8 >> + rlwnm r12,r12,r7,0,31 /* odd destination address: rotate >> one byte */ >> + cmplwi cr7,r7,0 /* is destination address even ? */ >> andi. r8,r0,3 /* get it word-aligned first */ >> mtctr r8 >> beq+ 61f >> ^ permalink raw reply [flat|nested] 4+ messages in thread
* Re: FAILED: patch "[PATCH] powerpc/32: Fix again csum_partial_copy_generic()" failed to apply to 4.7-stable tree 2016-09-22 13:03 ` Christophe Leroy 2016-09-22 13:18 ` Christophe Leroy @ 2016-09-22 13:42 ` Greg KH 1 sibling, 0 replies; 4+ messages in thread From: Greg KH @ 2016-09-22 13:42 UTC (permalink / raw) To: Christophe Leroy; +Cc: alessio.bogani, mpe, stable On Thu, Sep 22, 2016 at 03:03:11PM +0200, Christophe Leroy wrote: > Hi Greg, > > The reason it doesn't apply is probably that it first requires commit > 1bc8b816cb8058c31f61fe78442f10a43209e582 ("powerpc/32: Fix > csum_partial_copy_generic()") Thanks, that worked. greg k-h ^ permalink raw reply [flat|nested] 4+ messages in thread
end of thread, other threads:[~2016-09-22 13:44 UTC | newest] Thread overview: 4+ messages (download: mbox.gz follow: Atom feed -- links below jump to the message on this page -- 2016-09-22 12:45 FAILED: patch "[PATCH] powerpc/32: Fix again csum_partial_copy_generic()" failed to apply to 4.7-stable tree gregkh 2016-09-22 13:03 ` Christophe Leroy 2016-09-22 13:18 ` Christophe Leroy 2016-09-22 13:42 ` Greg KH
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).