From patchwork Thu Sep 6 16:11:40 2018 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Vakul Garg X-Patchwork-Id: 967070 X-Patchwork-Delegate: davem@davemloft.net Return-Path: X-Original-To: patchwork-incoming-netdev@ozlabs.org Delivered-To: patchwork-incoming-netdev@ozlabs.org Authentication-Results: ozlabs.org; spf=none (mailfrom) smtp.mailfrom=vger.kernel.org (client-ip=209.132.180.67; helo=vger.kernel.org; envelope-from=netdev-owner@vger.kernel.org; receiver=) Authentication-Results: ozlabs.org; dmarc=pass (p=none dis=none) header.from=nxp.com Authentication-Results: ozlabs.org; dkim=pass (1024-bit key; unprotected) header.d=nxp.com header.i=@nxp.com header.b="c0Xf9BKR"; dkim-atps=neutral Received: from vger.kernel.org (vger.kernel.org [209.132.180.67]) by ozlabs.org (Postfix) with ESMTP id 425lvR56gXz9s4Z for ; Fri, 7 Sep 2018 02:12:03 +1000 (AEST) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1726597AbeIFUsN (ORCPT ); Thu, 6 Sep 2018 16:48:13 -0400 Received: from mail-eopbgr00076.outbound.protection.outlook.com ([40.107.0.76]:39149 "EHLO EUR02-AM5-obe.outbound.protection.outlook.com" rhost-flags-OK-OK-OK-FAIL) by vger.kernel.org with ESMTP id S1726284AbeIFUsN (ORCPT ); Thu, 6 Sep 2018 16:48:13 -0400 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=nxp.com; s=selector1; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=KZSRRe+hkVtoiVWc7q0l6iO3BTD1BI8z0vEETR14lwI=; b=c0Xf9BKRNntV5Y4OhOk/BJL9uUwY9hXw4qmzw7MYb5YcAXMhYqknlkSzP30kmanwTmslrOh028Gez6DdTW/lb0QOJc7+XxQsMIfxagg+gyzI/NUCBVOF1pcH06wu04UR5Im/Gik01hcszmXaLEiNl67H5VMNMomFBwJeqrYdbyU= Authentication-Results: spf=none (sender IP is ) smtp.mailfrom=vakul.garg@nxp.com; Received: from lti.ap.freescale.net (14.143.30.134) by DB7PR04MB4250.eurprd04.prod.outlook.com (2603:10a6:5:27::24) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.1101.13; Thu, 6 Sep 2018 16:11:54 +0000 From: Vakul Garg To: netdev@vger.kernel.org Cc: borisp@mellanox.com, aviadye@mellanox.com, davejwatson@fb.com, davem@davemloft.net, doronrk@fb.com, Vakul Garg Subject: [PATCH net-next, net v2] net/tls: Set count of SG entries if sk_alloc_sg returns -ENOSPC Date: Thu, 6 Sep 2018 21:41:40 +0530 Message-Id: <20180906161140.14710-1-vakul.garg@nxp.com> X-Mailer: git-send-email 2.13.6 MIME-Version: 1.0 X-Originating-IP: [14.143.30.134] X-ClientProxiedBy: BMXPR01CA0044.INDPRD01.PROD.OUTLOOK.COM (2603:1096:b00:c::30) To DB7PR04MB4250.eurprd04.prod.outlook.com (2603:10a6:5:27::24) X-MS-PublicTrafficType: Email X-MS-Office365-Filtering-Correlation-Id: 2c1a27d7-1ab9-4818-a07c-08d614137770 X-MS-Office365-Filtering-HT: Tenant X-Microsoft-Antispam: BCL:0; PCL:0; RULEID:(7020095)(4652040)(8989137)(4534165)(7168020)(4627221)(201703031133081)(201702281549075)(8990107)(5600074)(711020)(4618075)(2017052603328)(7153060)(7193020); SRVR:DB7PR04MB4250; X-Microsoft-Exchange-Diagnostics: 1; DB7PR04MB4250; 3:cXF+cW+4uZI7YK2f96L8JPjH7HrPBmTBX5aBRHtT8Qm2BWs70JtWLCi3MzOluF8Y1obOKcMGpcTCQCntqEZaRQLM9ReZ7ZeYqjuZyD5gpR3OcDgEdjElugKaOAZ4EyIvIsLIJWI5KCDp8hw9D1CEC0rW/9LOziqjhvHL7QpeJqS/ayyM7z71eHQEguMkxW7YqV8CA6pQXIjP271ctBE1JWj3fdxTSF8c6DhgQzRg0XhPMYpTjENWSiHjYPAxdbSa; 25:gRMxCW0hrVoHo0Z2noSzmKuadOFH2X1p/tlagIAx0JC/XuA7jCoekvpgSQPNzyePg/E/YQP6lnpm1Dkz8hIbd/iIAV6zEvxaSCIuUG6XkxEm5OJTxR/7LL61UyuGVWVPiKWU9umlytXuNZcLYmwe/zidyNrOCqZKRFYBoYORyMQyesjww475uFtUPxfHcbnBqgt5zrUCy4RgjxSRCvJgjUw+UbaSYklHMEw+wqL42jK00eY8GPMtePG5wI7VkbNh3R/qIvztsuUpG+hyVnw2yUYdO/cQzkn2C+gQPLw8OYCrfxTjUjbYbfbRNpJLM6wHkLztrCxkVprDnjKKztXHqQ==; 31:R6Jkc4I/mpQYCBMzdbw2idTXG4fAqsgfBu6I9n2PQLwIVb/d6FwBe0E8qCWsqfOEvT9Pdv3BJ5sOzkbjDevXxS6P1n6dAj502uaW9DbPothR9ltG0s6DnY2AoF3a+w81NubhnsMmUkLTgw1R4jAXpiSjF0Fw64HSPuiJJI57DSsWEPGTkxWzW/7RsLSButmOrsSJHmvzEMH+jeDpH0MQr0+GzF9B3YfUMv8elytUXRc= X-MS-TrafficTypeDiagnostic: DB7PR04MB4250: X-Microsoft-Exchange-Diagnostics: 1; DB7PR04MB4250; 20:LKxu4mvm1k+GUs3eQXy8RUYcDctM8Nk6x6sADmfinxer9G0ig2qzIOSiqHq3XqAjr7IGuEEwnvbXt0IkipDiSjtspgUKPcVTqDIk06HYWQ2EMWzs+eiqd15lRTxMtMk0BFMANWNpcGIor7SKb9smaHrwuQtksZiZMnIxRWY5hvwbI8+b2fNftG7ZpDBXT5mWBs3E4u2jFy+iMlv2O4Ojr74ZTMmjuHKaY+XA/tHRc9fDOp8xf9y/0dKddVenmpVWPyo+UbfEKP81Fo0/lIKugfg3rOusenGRishM80Vef3Izp8pN44Vajt7vzzOlcr2GHLUn7w8ydlkvTjQqSk34QZMnh6LbR6TK7ghivspLRK7T6tREjGODLBKAOvwoX5CQ1CcRsOhMdooiIugYHTk71eG2vxnSj4zm2lDE7HNYR7w0VQAqigpSrE9diAUDynaweTC4fet3xunEORMAVU34sFCP0LqtkLKYFBgv9IaOOpuje5VVZhWN+73JqFdTuxUw; 4:vwczZxTNb2M4uvBA39ipOhrBPsR23p6oT8cm9bdx67nKbwGa+rd4M5GLIZEzbOAU5sQvKLshKQdJ/jZUuP7qEwoT1AVgT/KIkIeiawrMgQkACJV81zX4nSjVUOWzMZyNTdMXU4SniCqOWgt5rlLBgHJtcsuwS3llJHlUMf0nhyRgUiDl4InKst2VIfcMH9gwM5p07RvtXIcjdYWyuXVhvu2vnkk9dtw57iViFrR+/WaAYe7EGJJ31v74icTgZ6zn7HhF7tUeO6uyojwpvMJ1+dUtfKX165vHyzhEUq+M2Bp5C3iHoyqJ+PAo1AU6GYcHRjYpTO7I2OcOOykpZn5PltFly35fKE1eMGr+u95c/Ic= X-Microsoft-Antispam-PRVS: X-Exchange-Antispam-Report-Test: UriScan:(131327999870524)(185117386973197); X-MS-Exchange-SenderADCheck: 1 X-Exchange-Antispam-Report-CFA-Test: BCL:0; PCL:0; RULEID:(8211001083)(6040522)(2401047)(8121501046)(5005006)(823301075)(10201501046)(93006095)(93001095)(3002001)(3231311)(944501410)(52105095)(6055026)(149027)(150027)(6041310)(20161123558120)(201703131423095)(201702281528075)(20161123555045)(201703061421075)(201703061406153)(20161123564045)(20161123562045)(20161123560045)(201708071742011)(7699016); SRVR:DB7PR04MB4250; BCL:0; PCL:0; RULEID:; SRVR:DB7PR04MB4250; X-Forefront-PRVS: 0787459938 X-Forefront-Antispam-Report: SFV:NSPM; SFS:(10009020)(376002)(346002)(366004)(39860400002)(396003)(136003)(199004)(189003)(106356001)(105586002)(4326008)(44832011)(53936002)(86362001)(486006)(16526019)(50466002)(36756003)(26005)(50226002)(2351001)(48376002)(6666003)(6916009)(51416003)(5660300001)(52116002)(6512007)(956004)(316002)(2616005)(16586007)(68736007)(2361001)(14444005)(97736004)(476003)(186003)(47776003)(7736002)(305945005)(5009440100003)(1076002)(3846002)(2906002)(478600001)(81166006)(81156014)(6116002)(386003)(8936002)(6506007)(6486002)(66066001)(25786009)(55236004)(8676002)(110426005); DIR:OUT; SFP:1101; SCL:1; SRVR:DB7PR04MB4250; H:lti.ap.freescale.net; FPR:; SPF:None; LANG:en; PTR:InfoNoRecords; A:1; MX:1; Received-SPF: None (protection.outlook.com: nxp.com does not designate permitted sender hosts) X-Microsoft-Exchange-Diagnostics: 1; DB7PR04MB4250; 23:T3jcgjS8TpulRJnpowd/3mBYEF32M/kRc16aJDI5HgQTZ2UuBJzW5VTqdlr7TDEv8uM+QIYrUzSr7bEX0445b6jCXQxNOeb4+fAOemewITlFhlZiW/fYgubZnaO5W+D8vlmkcrgHcbDdmU9xgbBeEkA6DrMlrRAs1A+XrLFm4Aqhfo+5OJpp2evfAkgdh8gZmI++53lwmOqNKmYZ/gkNdD9/BczA0HfwzCKAzNu7iAaiRgUOcMIK79EOk/KEkU8CA5LrHqYMEwaph7nm1R3eGShPd0r5Nbmwi82a+XWn00ZF6j2D2bNNJPRBWqO9M0YoNLZbrBgq0hvoZ53fiQaGXZz56t3eEBkh0kBJWLQbk5suboyDvs/zRg6pWzmpHCuMrI4rowMcXXqcr19Aaks0rJLd4lxyrX618qt3zO4NQyWIgK7PJrK5mjxXBK0ekKamQoMSnxczEB75wS47Gt6fko4qSWJ5SRc4j0g8ylzRoSHiQwwatSxarbqsTzD9TaenSqvRB+0J2wjU22iP6Ty6BVQ2J+tmlax/l/QxHpt5WjyOrsnMtfCM2Q9YG/YNdcp+KsMyqG1VW5Nlq6YTphZZ3R13+MJVeIaftNbp90xNRdD+BlIgOwNyXsaMHarL5EJckIr6Go8aPMw6uIIGfP2gkofaCstll3sEylNg7+2TQ8+LoIB1lS7YQLo45kU7hZJtL8tQ+AtExgeuzlT4Rst8IYmEhlCK5lEAFqo3umuuMLKnG60wFAmD56pV8kBCDAKxa4WFiEP1id0opA8EwiCjgoSs38SXjI8trVCTTP549ql6P9vQaSXqXF2+eu2uukUbWxe328DDydsS5iVHKUxDGZ1QpN5Amnwo0rm2d8aSe+36LPrFmFfZCeKe6HSL6i8tnmXaRXXv3ZBkw8tQKzibOqLuaAZSl+nJjnIn5FMpWnCTlYSXIq/llljwiuRQcAebHuMpVi6wi3X3jT7iOGPm18tyt7GbWmXIU17RbfKmKYtrRkhv9YrHPtjff5BVOe6eqMzpsaAnpwQ4TEEZDcGSZKdtSz700L9QZfLO/IRKCmffvZQmthdRTdzc30ptqcd6xNnxBb5FeeTn4tTvJDjiiKEe3WSpaog7gldO+3dkaQYptK5vl17QYIRv9zFOthxSMqmFfDgwBsmqUL2YUxKONj5LydoVmhoTKSaVpE2XEPww6UGRBlFpNz8FFBxuWHSveYei6mf6bgmYFaYdlVFWK4yNe0SonblGKYBbCEo2V0gchpYd4MLULEbTyOn+5mu9lM+VE79PEaSxe8hsSqJZBA== X-Microsoft-Antispam-Message-Info: PGdxvLOsv3W60rkbBSMdpZNNv31Xn7LsmvCYXO5gExSqv8k/lhQ4wA93mc9+y11OmhpmEWoNAHfix586a+axshpHr8JjT03z3Trqr23QaMjG/qaO/pkiQTFg/o6FrDY2jG4O+hfJOtdX7OMpz7lVHeffoercFGZqOSmNVxcDSJ+PO7hiew41d/eVcGvKCfMSEVrogZ+ZQrcb1i4/7GEh0O/HW8Xf1ekgjp2wxJNbEiFSuBmeRtT0Yp7AYD8I0vuLS+eDheB5MZNRBeMWdcPYhQcDUDJKZGUHnXgKwNfwjcG0SDFT1J9346lV3uW6AF3fd51A8TySflaHyVx1Mf84r1utfjkq52T5lgQLmj+KlZ8= X-Microsoft-Exchange-Diagnostics: 1; DB7PR04MB4250; 6:udAzk7XeODYH9Yb5VtiVipY32UNSSxaJZ7uuJ++BausEKe9EHdRjKqjXfZ8O5hoVSC5oC9TwxjcZLmL3J1U0Xz4BGSyQLnxK3JjImp7uezlnvPE1vXhoMoYulOG4HG2BJbk3PVmd5ifnbhaxW4CrAZIQrHMQ6epNnFQvzuPUf0fE2p9GAHhtdX5Faw3uRhtKc9buwZR2kd+y238KaUVZSwaVKqai2oQi+846AnOGjv2kz9htt0ZHX+YzxCYiI2of7IbjELSnvOubmZZ2onB7OUh+KnLL7bkZIW7bDFluqQa3Ol7f3sn07ZzSKzB0HeYkCoAUoXEfAcp2YJ0S0/yMKJ+xDbdmeGxXCEDWYHeyZaqOjDbMbZ0gOyEArJxT80Elrf4q/PiJIezKv8wow0XEikXzCOhcYDB9CxmtMmCn1nHVpvjxo/xwrjP6Phou5Aj/bvzHXPLQAne/bKoIZ+VDzg==; 5:CN1HvGFrFexjmly3Z8tZJ71Xx1dx6sjUZQ2NKfoSf3i8TvO2B71G8LBe2KvTOfaQNin2gg14uJ9HAFyAgRCSjcwuUV7Lip4dDLKLflBwXeSnypbnFOyzXsmu+6aPLYKrx6HDwsTDquBa3uhdoA+Su6dLDuTBBaVJsXwBDIccZhc=; 7:cV9Livb3sZD8j3jLwFI2jWHmr8MX7CZmQeQeyYDs6SRc6Ni1DALD0fyVy6RBJ0cQ79koVVR+tljLrPMgRzxSaEHWbLAEgx/02VRvRauXGZDRkGVvcNpFl0wObEWwy2yZc9IqD7pPKh46Vhm9mrDshQpN0zG+xe7E5rXCYHeM4oiMeXgZRO/ij9tZcz4ZLYYM71W9lj1cid3AbS/ydFSqN1+ViiAu9mgGpFk4twwxJ1ZhoygvvWlRJaF3bHrmGP6H SpamDiagnosticOutput: 1:99 SpamDiagnosticMetadata: NSPM X-OriginatorOrg: nxp.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 06 Sep 2018 16:11:54.6401 (UTC) X-MS-Exchange-CrossTenant-Network-Message-Id: 2c1a27d7-1ab9-4818-a07c-08d614137770 X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-CrossTenant-Id: 686ea1d3-bc2b-4c6f-a92c-d99c5c301635 X-MS-Exchange-Transport-CrossTenantHeadersStamped: DB7PR04MB4250 Sender: netdev-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: netdev@vger.kernel.org tls_sw_sendmsg() allocates plaintext and encrypted SG entries using function sk_alloc_sg(). In case the number of SG entries hit MAX_SKB_FRAGS, sk_alloc_sg() returns -ENOSPC and sets the variable for current SG index to '0'. This leads to calling of function tls_push_record() with 'sg_encrypted_num_elem = 0' and later causes kernel crash. To fix this, set the number of SG elements to the number of elements in plaintext/encrypted SG arrays in case sk_alloc_sg() returns -ENOSPC. Fixes: 3c4d7559159b ("tls: kernel TLS support") Signed-off-by: Vakul Garg --- Changes since v1: - Added 'Fixes:' tag. - Marking that patch applies to both 'net-next' & 'net' branches - Resending after correcting system time. - No code changes as such net/tls/tls_sw.c | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/net/tls/tls_sw.c b/net/tls/tls_sw.c index be4f2e990f9f..2dad3dc7be60 100644 --- a/net/tls/tls_sw.c +++ b/net/tls/tls_sw.c @@ -263,6 +263,9 @@ static int alloc_encrypted_sg(struct sock *sk, int len) &ctx->sg_encrypted_num_elem, &ctx->sg_encrypted_size, 0); + if (rc == -ENOSPC) + ctx->sg_encrypted_num_elem = ARRAY_SIZE(ctx->sg_encrypted_data); + return rc; } @@ -276,6 +279,9 @@ static int alloc_plaintext_sg(struct sock *sk, int len) &ctx->sg_plaintext_num_elem, &ctx->sg_plaintext_size, tls_ctx->pending_open_record_frags); + if (rc == -ENOSPC) + ctx->sg_plaintext_num_elem = ARRAY_SIZE(ctx->sg_plaintext_data); + return rc; }