diff mbox

[3.8.y.z,extended,stable] Patch "crypto: scatterwalk - Set the chain pointer indication bit" has been added to staging queue

Message ID 1387570868-19566-1-git-send-email-kamal@canonical.com
State New
Headers show

Commit Message

Kamal Mostafa Dec. 20, 2013, 8:21 p.m. UTC
This is a note to let you know that I have just added a patch titled

    crypto: scatterwalk - Set the chain pointer indication bit

to the linux-3.8.y-queue branch of the 3.8.y.z extended stable tree 
which can be found at:

 http://kernel.ubuntu.com/git?p=ubuntu/linux.git;a=shortlog;h=refs/heads/linux-3.8.y-queue

This patch is scheduled to be released in version 3.8.13.15.

If you, or anyone else, feels it should not be added to this tree, please 
reply to this email.

For more information about the 3.8.y.z tree, see
https://wiki.ubuntu.com/Kernel/Dev/ExtendedStable

Thanks.
-Kamal

------

From ef845ea48f30c4475934b9e71b5ca3186719e458 Mon Sep 17 00:00:00 2001
From: Tom Lendacky <thomas.lendacky@amd.com>
Date: Tue, 12 Nov 2013 11:46:10 -0600
Subject: crypto: scatterwalk - Set the chain pointer indication bit

commit 41da8b5adba77e22584f8b45f9641504fa885308 upstream.

The scatterwalk_crypto_chain function invokes the scatterwalk_sg_chain
function to chain two scatterlists, but the chain pointer indication
bit is not set.  When the resulting scatterlist is used, for example,
by sg_nents to count the number of scatterlist entries, a segfault occurs
because sg_nents does not follow the chain pointer to the chained scatterlist.

Update scatterwalk_sg_chain to set the chain pointer indication bit as is
done by the sg_chain function.

Signed-off-by: Tom Lendacky <thomas.lendacky@amd.com>
Signed-off-by: Herbert Xu <herbert@gondor.apana.org.au>
Signed-off-by: Kamal Mostafa <kamal@canonical.com>
---
 include/crypto/scatterwalk.h | 1 +
 1 file changed, 1 insertion(+)

--
1.8.3.2

Comments

Kamal Mostafa Dec. 20, 2013, 8:52 p.m. UTC | #1
On Fri, 2013-12-20 at 20:35 +0000, Lendacky, Thomas wrote:
> Hi Kamal,
> 
> Please also include the patch with commit id of 389a5390583a18e45bc4abd4439291abec5e7a63.  It fixes a BUG_ON caused by the below patch when CONFIG_DEBUG_SG is enabled.


Thanks Tom -- queued up that one for 3.8 too.

 -Kamal


> Thanks,
> Tom
> 
> -----Original Message-----
> From: Kamal Mostafa [mailto:kamal@canonical.com] 
> Sent: Friday, December 20, 2013 2:21 PM
> To: Lendacky, Thomas
> Cc: Herbert Xu; Kamal Mostafa; kernel-team@lists.ubuntu.com
> Subject: [3.8.y.z extended stable] Patch "crypto: scatterwalk - Set the chain pointer indication bit" has been added to staging queue
> 
> This is a note to let you know that I have just added a patch titled
> 
>     crypto: scatterwalk - Set the chain pointer indication bit
> 
> to the linux-3.8.y-queue branch of the 3.8.y.z extended stable tree which can be found at:
> 
>  http://kernel.ubuntu.com/git?p=ubuntu/linux.git;a=shortlog;h=refs/heads/linux-3.8.y-queue
> 
> This patch is scheduled to be released in version 3.8.13.15.
> 
> If you, or anyone else, feels it should not be added to this tree, please reply to this email.
> 
> For more information about the 3.8.y.z tree, see https://wiki.ubuntu.com/Kernel/Dev/ExtendedStable
> 
> Thanks.
> -Kamal
> 
> ------
> 
> From ef845ea48f30c4475934b9e71b5ca3186719e458 Mon Sep 17 00:00:00 2001
> From: Tom Lendacky <thomas.lendacky@amd.com>
> Date: Tue, 12 Nov 2013 11:46:10 -0600
> Subject: crypto: scatterwalk - Set the chain pointer indication bit
> 
> commit 41da8b5adba77e22584f8b45f9641504fa885308 upstream.
> 
> The scatterwalk_crypto_chain function invokes the scatterwalk_sg_chain function to chain two scatterlists, but the chain pointer indication bit is not set.  When the resulting scatterlist is used, for example, by sg_nents to count the number of scatterlist entries, a segfault occurs because sg_nents does not follow the chain pointer to the chained scatterlist.
> 
> Update scatterwalk_sg_chain to set the chain pointer indication bit as is done by the sg_chain function.
> 
> Signed-off-by: Tom Lendacky <thomas.lendacky@amd.com>
> Signed-off-by: Herbert Xu <herbert@gondor.apana.org.au>
> Signed-off-by: Kamal Mostafa <kamal@canonical.com>
> ---
>  include/crypto/scatterwalk.h | 1 +
>  1 file changed, 1 insertion(+)
> 
> diff --git a/include/crypto/scatterwalk.h b/include/crypto/scatterwalk.h index 3744d2a..09ef1a0 100644
> --- a/include/crypto/scatterwalk.h
> +++ b/include/crypto/scatterwalk.h
> @@ -36,6 +36,7 @@ static inline void scatterwalk_sg_chain(struct scatterlist *sg1, int num,  {
>  	sg_set_page(&sg1[num - 1], (void *)sg2, 0, 0);
>  	sg1[num - 1].page_link &= ~0x02;
> +	sg1[num - 1].page_link |= 0x01;
>  }
> 
>  static inline struct scatterlist *scatterwalk_sg_next(struct scatterlist *sg)
> --
> 1.8.3.2
> 
> 
>
diff mbox

Patch

diff --git a/include/crypto/scatterwalk.h b/include/crypto/scatterwalk.h
index 3744d2a..09ef1a0 100644
--- a/include/crypto/scatterwalk.h
+++ b/include/crypto/scatterwalk.h
@@ -36,6 +36,7 @@  static inline void scatterwalk_sg_chain(struct scatterlist *sg1, int num,
 {
 	sg_set_page(&sg1[num - 1], (void *)sg2, 0, 0);
 	sg1[num - 1].page_link &= ~0x02;
+	sg1[num - 1].page_link |= 0x01;
 }

 static inline struct scatterlist *scatterwalk_sg_next(struct scatterlist *sg)