This is a note to let you know that I've just added the patch titled crypto: algif_skcipher - Load TX SG list after waiting to the 4.4-stable tree which can be found at: http://www.kernel.org/git/?p=linux/kernel/git/stable/stable-queue.git;a=summary The filename of the patch is: crypto-algif_skcipher-load-tx-sg-list-after-waiting.patch and it can be found in the queue-4.4 subdirectory. If you, or anyone else, feels it should not be added to the stable tree, please let <stable@xxxxxxxxxxxxxxx> know about it. >From 4f0414e54e4d1893c6f08260693f8ef84c929293 Mon Sep 17 00:00:00 2001 From: Herbert Xu <herbert@xxxxxxxxxxxxxxxxxxx> Date: Mon, 18 Jan 2016 18:46:10 +0800 Subject: crypto: algif_skcipher - Load TX SG list after waiting From: Herbert Xu <herbert@xxxxxxxxxxxxxxxxxxx> commit 4f0414e54e4d1893c6f08260693f8ef84c929293 upstream. We need to load the TX SG list in sendmsg(2) after waiting for incoming data, not before. Reported-by: Dmitry Vyukov <dvyukov@xxxxxxxxxx> Signed-off-by: Herbert Xu <herbert@xxxxxxxxxxxxxxxxxxx> Tested-by: Dmitry Vyukov <dvyukov@xxxxxxxxxx> Signed-off-by: Greg Kroah-Hartman <gregkh@xxxxxxxxxxxxxxxxxxx> --- crypto/algif_skcipher.c | 14 +++++++------- 1 file changed, 7 insertions(+), 7 deletions(-) --- a/crypto/algif_skcipher.c +++ b/crypto/algif_skcipher.c @@ -647,13 +647,6 @@ static int skcipher_recvmsg_sync(struct lock_sock(sk); while (msg_data_left(msg)) { - sgl = list_first_entry(&ctx->tsgl, - struct skcipher_sg_list, list); - sg = sgl->sg; - - while (!sg->length) - sg++; - if (!ctx->used) { err = skcipher_wait_for_data(sk, flags); if (err) @@ -674,6 +667,13 @@ static int skcipher_recvmsg_sync(struct if (!used) goto free; + sgl = list_first_entry(&ctx->tsgl, + struct skcipher_sg_list, list); + sg = sgl->sg; + + while (!sg->length) + sg++; + skcipher_request_set_crypt(&ctx->req, sg, ctx->rsgl.sg, used, ctx->iv); Patches currently in stable-queue which might be from herbert@xxxxxxxxxxxxxxxxxxx are queue-4.4/crypto-af_alg-disallow-bind-setkey-...-after-accept-2.patch queue-4.4/crypto-crc32c-fix-crc32c-soft-dependency.patch queue-4.4/crypto-af_alg-forbid-bind-2-when-nokey-child-sockets-are-present.patch queue-4.4/crypto-algif_hash-fix-race-condition-in-hash_check_key.patch queue-4.4/crypto-skcipher-add-crypto_skcipher_has_setkey.patch queue-4.4/crypto-chacha20-ssse3-align-stack-pointer-to-64-bytes.patch queue-4.4/crypto-algif_skcipher-add-key-check-exception-for-cipher_null.patch queue-4.4/crypto-algif_hash-remove-custom-release-parent-function.patch queue-4.4/crypto-algif_skcipher-load-tx-sg-list-after-waiting.patch queue-4.4/crypto-algif_skcipher-require-setkey-before-accept-2.patch queue-4.4/crypto-algif_skcipher-add-nokey-compatibility-path.patch queue-4.4/crypto-shash-fix-has_key-setting.patch queue-4.4/crypto-algif_skcipher-remove-custom-release-parent-function.patch queue-4.4/crypto-af_alg-allow-af_af_alg_release_parent-to-be-called-on-nokey-path.patch queue-4.4/crypto-hash-add-crypto_ahash_has_setkey.patch queue-4.4/crypto-af_alg-add-nokey-compatibility-path.patch queue-4.4/crypto-sun4i-ss-add-missing-statesize.patch queue-4.4/crypto-algif_hash-require-setkey-before-accept-2.patch queue-4.4/crypto-algif_skcipher-sendmsg-sg-marking-is-off-by-one.patch queue-4.4/crypto-algif_skcipher-fix-race-condition-in-skcipher_check_key.patch queue-4.4/crypto-caam-make-write-transactions-bufferable-on-ppc-platforms.patch queue-4.4/crypto-af_alg-fix-socket-double-free-when-accept-fails.patch -- To unsubscribe from this list: send the line "unsubscribe stable" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html