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

Lendacky, Thomas Thomas.Lendacky at amd.com
Fri Dec 20 20:35:38 UTC 2013


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

-----Original Message-----
From: Kamal Mostafa [mailto:kamal at canonical.com] 
Sent: Friday, December 20, 2013 2:21 PM
To: Lendacky, Thomas
Cc: Herbert Xu; Kamal Mostafa; kernel-team at 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 at 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 at amd.com>
Signed-off-by: Herbert Xu <herbert at gondor.apana.org.au>
Signed-off-by: Kamal Mostafa <kamal at 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







More information about the kernel-team mailing list