From patchwork Mon Feb 26 16:25:42 2018 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Arkadi Sharshevsky X-Patchwork-Id: 877974 X-Patchwork-Delegate: davem@davemloft.net Return-Path: X-Original-To: patchwork-incoming@ozlabs.org Delivered-To: patchwork-incoming@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=mellanox.com Authentication-Results: ozlabs.org; dkim=pass (1024-bit key; unprotected) header.d=Mellanox.com header.i=@Mellanox.com header.b="lUOA7gZj"; dkim-atps=neutral Received: from vger.kernel.org (vger.kernel.org [209.132.180.67]) by ozlabs.org (Postfix) with ESMTP id 3zqnJB1BDTz9s0v for ; Tue, 27 Feb 2018 03:26:02 +1100 (AEDT) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1752043AbeBZQZ7 (ORCPT ); Mon, 26 Feb 2018 11:25:59 -0500 Received: from mail-he1eur01on0071.outbound.protection.outlook.com ([104.47.0.71]:49121 "EHLO EUR01-HE1-obe.outbound.protection.outlook.com" rhost-flags-OK-OK-OK-FAIL) by vger.kernel.org with ESMTP id S1751334AbeBZQZ5 (ORCPT ); Mon, 26 Feb 2018 11:25:57 -0500 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=Mellanox.com; s=selector1; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version; bh=Xi9T262golZ61OH7BsSKgg4H+rdeTmTR6CN1DGOyGP8=; b=lUOA7gZj5NjWJ+HGZdxpVk+FdyTtKstOcl2QVAIHGy7RZvMSOiNodBcQHGMrC5xVxMKL1C9Kvk+/eGSxCX6DJNUzzYAYCTKmQ6GJ+V6LS3v5rPMoAePGj6OJMyFu7NIcR/Z6fsRjKx3cRBi67L81zBrnuuHOy1ZByKHOf57WKWM= Authentication-Results: spf=none (sender IP is ) smtp.mailfrom=arkadis@mellanox.com; Received: from dev-r-vrt-156.mtr.labs.mlnx (37.142.13.130) by DB6PR0501MB2453.eurprd05.prod.outlook.com (2603:10a6:4:5c::23) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA384_P256) id 15.20.527.15; Mon, 26 Feb 2018 16:25:52 +0000 From: Arkadi Sharshevsky To: netdev@vger.kernel.org Cc: davem@davemloft.net, jiri@resnulli.us, mlxsw@mellanox.com, Arkadi Sharshevsky Subject: [PATCH net-next] devlink: Fix resource coverity errors Date: Mon, 26 Feb 2018 18:25:42 +0200 Message-Id: <1519662342-3761-1-git-send-email-arkadis@mellanox.com> X-Mailer: git-send-email 2.4.11 MIME-Version: 1.0 X-Originating-IP: [37.142.13.130] X-ClientProxiedBy: VI1PR0801CA0072.eurprd08.prod.outlook.com (2603:10a6:800:7d::16) To DB6PR0501MB2453.eurprd05.prod.outlook.com (2603:10a6:4:5c::23) X-MS-PublicTrafficType: Email X-MS-Office365-Filtering-HT: Tenant X-MS-Office365-Filtering-Correlation-Id: a4966f49-9e82-4524-eb5c-08d57d359b7c X-Microsoft-Antispam: UriScan:; BCL:0; PCL:0; RULEID:(7020095)(4652020)(48565401081)(4534165)(4627221)(201703031133081)(201702281549075)(5600026)(4604075)(2017052603307)(7153060)(7193020); SRVR:DB6PR0501MB2453; X-Microsoft-Exchange-Diagnostics: 1; DB6PR0501MB2453; 3:ccL0SPCkBBnAvwVzHuITAraqHSIUBv1EmtSho5Oq+mR0KeX42ECrkfI+iwwe6l7VcKXeohktcWLBZEpHNDX9iw+XtgJuCC/JDj3X37iP7moa+ayVQ4sVYLyAMVU7bwjUVF/7rMT7v3HlK97uo0QTxIlYXxXCL9cPOG+y3nXOWHhe0d7n5RXqDiM2y8CE/ZhTjvb4hGdJ+C4D28ie2r0YZrtljF9jpQyHo9AfqLhNtdwAxhsBTjsy/ODFAiZ0qQ4S; 25:210SnIlQSManLRolAK5zGr12qDK2fqqbX5kqi8nMcLK/EBj3iy9B2s5W/6XoGaydXnJ5PtRIUpd7RugOxytYqSVnxJwb5ghM1l/6u0wX18SwBXrqUItC0jYtQKlqN//R9mor6SMAgERydqJIMTTUR+OMFirunzqmpsbHYhvG0Wn9QadzI0VmfIhnUIQROKdmClhZL2yVXqSwDSpybheCoPlU4G8odsPAGTKfA7i821gAZ8VVQdBku3I0HyJWFaGDpMu51lYK9JbpXlcQFo9SRYjSe1PLRtooabul0zfuq7IUbTDJi1IEl/TWa3FOVmN7bYyX7jpfXiu3qysEpWxQsw==; 31:n41ru9dP9JJBbGIljaqqLdrhdt3PErQy6xcdM1mSeP/DnFfQlcjnKOapSSwwNs0nsR05Vv/pMbTktFAc8+UhMRhpQzINyd9dM7kmBsHembIL3cyvXiRF+6shXxM4FklX7H1Uvl5GF9OWyLSBrza4CRFl83iRiqYImgfB15l2DojnvYrExkL2/nr+XU+7soeWfESl0f3Hsq/HFmaF1NTHMV2t2NRaZpZSNakTkmnjUB0= X-MS-TrafficTypeDiagnostic: DB6PR0501MB2453: X-Microsoft-Exchange-Diagnostics: 1; DB6PR0501MB2453; 20:EBNFA5p24AQe4l3WFzXoGoDFj7VBtjsb01chdk/FrsPvXj5t4VC0euJVlTqJdgjwJZH+r3dYtOXruVY1aR3clHRSlo4GmOh5RDVM2CMJ3v8gfHFII7JhcUzI14TEYBF34Tl1nyDXiDt+QSBpPvbc0xzy93sNeH1YLk2LwMQflaaqb95IPkEB9/UmLwOn9UuMvE6Wt9hJZl8VJ9YQN6lAWJdT/sSmF2f/R8hJErKP4yLnWA7fX1kkcb7NaRCosrZczOGgnxySuMVmVsN92DVNcd+gX8IKbE04vd7/mZrgyWzRI7HHrl9eOWfLA7y//2SdnFEXl5OJl16E4UMGeLePkbI/fNjer2QHd4CDzdlByu/bpVVMsVRFbDdt/9wdXosXKUoZABHkLU65G5TE2fchS8Qs6lP6O0dZBpJVlEoSb8Tzh0sT6QcN9faholcumjXqmMXiJXtxw6RUPXwRRMjSvjv7o+BuORSjaDhK+JFOQOna3J/j0HyUSd4LsDeAeucp; 4:vp7sf2DHuYaKHlx78X+qKIuBGSaDdKFERbofHdenlea3DAFVpTfpJ3SOPQDrGiMwIwHtVzDB8TfSIxc4R/YSKI+JCCb914PKsT0v4VbpXeArXmDQlV8t6rakfzxZrq9GN4ok+OxRpeUyLZB7A3Xg+vxyen4VmOIiWgTUwjAMQWOjegPL4cScdOesKWUUv6Z2BI/Pdhdvk0MiQwcK05kIPjd5wk7Q9xtE0wOlOIzmw5/8QeCnvoWGZkRlAIMfPrjEZ0DiZR7z0IdwD1DdeARXaA== X-Microsoft-Antispam-PRVS: X-Exchange-Antispam-Report-Test: UriScan:; X-Exchange-Antispam-Report-CFA-Test: BCL:0; PCL:0; RULEID:(8211001083)(6040501)(2401047)(8121501046)(5005006)(3002001)(3231220)(944501161)(52105095)(93006095)(93001095)(10201501046)(6055026)(6041288)(20161123558120)(20161123564045)(201703131423095)(201702281528075)(20161123555045)(201703061421075)(201703061406153)(20161123562045)(20161123560045)(6072148)(201708071742011); SRVR:DB6PR0501MB2453; BCL:0; PCL:0; RULEID:; SRVR:DB6PR0501MB2453; X-Forefront-PRVS: 05954A7C45 X-Forefront-Antispam-Report: SFV:NSPM; SFS:(10009020)(346002)(396003)(376002)(39380400002)(366004)(39860400002)(189003)(199004)(6916009)(478600001)(50466002)(16526019)(7736002)(59450400001)(6666003)(97736004)(6486002)(6116002)(3846002)(86362001)(50226002)(2361001)(48376002)(4326008)(386003)(52116002)(51416003)(186003)(68736007)(26005)(6506007)(105586002)(305945005)(53936002)(2351001)(81166006)(2906002)(81156014)(5660300001)(316002)(16586007)(106356001)(47776003)(6512007)(107886003)(8676002)(66066001)(25786009)(8936002)(36756003); DIR:OUT; SFP:1101; SCL:1; SRVR:DB6PR0501MB2453; H:dev-r-vrt-156.mtr.labs.mlnx; FPR:; SPF:None; PTR:InfoNoRecords; MX:1; A:1; LANG:en; Received-SPF: None (protection.outlook.com: mellanox.com does not designate permitted sender hosts) X-Microsoft-Exchange-Diagnostics: 1; DB6PR0501MB2453; 23:3dW9qBFzJO7GFyobTS8Zx32TNi5xNYiD33zh52+cAAwar/Yesj7A8sZbwHFZt+BJ/HB1vU6pH/fZYv748r9nmxa3qDo4BeYTkmmySLM/6hdH+GN+zOC/ULzQsCpwBEZq3jF5gNM+/YaL7YMimIsY6HruHTbAssrBjgza3Th0OJY+hqSFLj2Xes2/Xn0jCdHSe1XeHWPe/GIpEhzBXCRSx9XbmH7E8/CZKAWufF5r0o+uoYkZWl2dsxwO9RGltd1M8EzMw2QB4ijNmdxQu5GqeA4hSAqvQaAl+thNHWwRHiEHE5e0QotZPZ8P2dl5rK9yVnH27pLsOBf7CWFjtydOaIQz+GhaxR0ld+gTlLQsZalU/be+o6hFMfseTP3lpNA3C3Zwq5ITo5CLZES3bqDKA9vh6/RCiedpJReSentQNbu6Awnmtt24f69NdHanGtBLnP/fmectEUBckCh/qNzEL+G5pGDFGPPPtYQWGYoBX7+dW5CAR2CbQEF0nT0HvjZxHuPRz3Sa5DWD452dJnTTE5c4lv9ihecJ3JhP6rrQX/OYSlD14HUurtHNEnCHzQ1NmrUSFQHGEtU9aRyisQMiTH7j73K8dFBy3WsgLMNUWk7Jqw1qQKZJbrtKU0UNjPv48seNCIAsBhXNYDEC8tiFaINtto6i9aSSl4eQXrVxY/J9OE5TRDHTJn4SmVZpRuFcCn9T/Xp3EGbNHh1GcfEaTMlT9vCeBz6YY152nSH2Vqn4a1ZzyvAgJr6EeZta21CBb2uEkXTHxZf16ttUeTiN+4i2ptJJYPDy/OLuezVfhmw3wTiC2TN4awjjSCcx3EUl0PNCP1BEcVxbLvE158XUBSfwcdUBLGgPn/lFgiX5uLM0KLTdWGh10xclkpTaig5OsEFFU1+/yAvgEaf1xY7pJoSTyr24jwoeeGgA9KkGO5kFJjHjIqGLAvjYUY+0OVHFNJ7yinJTMxxPk7Bkulak2Qo7xh94ipg0ACc+YWOtCzfhEdulIKR1BmNzyW+Ofix6wuud9nPe6oiXMcDlQ9Q76xvi7CgSJyDypZqxPJgfxLWdshpspS5lnVy4urTzkd28dOtIj8WlcpGIz40URoMmPSIIioRdbp5Hooi0qyAN5NhhjDeihAwFL/SeJtOBTr/g X-Microsoft-Exchange-Diagnostics: 1; DB6PR0501MB2453; 6:eKcDGoAQQByrqbTgnh7pNsEiMepL2Whg9zixrsBX37asjY+qykDgspLSpBZ3iykuGjF0U788zdvkuhljzP/z4O/7JmK+FGYWjcG74rB7BM7dSrKBkkZFgWUErVXsEmi6hPy3dFHomagTV5vKNgXrR6G/ErVpeMFORbRgCspoJHq2TbXewMSl4yDskGYq8AJ6WceoEGV9nYCLRvL4vUAK7NC91phzqCiudg5XflYKd1JxeAZ0Xcyqx6yMkmz8V8FHQrv+X1I6qnvbfjLsW3G2l86ZwTEXRMsusAvcrCl4sQsVvIuhc8hTWGV6jolEgjW2e3v4QUfAxJAzaMK6QrYMZqbyhxfMf2ZhujDDce+XA2M=; 5:OPCClRVb/zjjR6bOwu0CqrWZ3zJRfFPy8wO7CVC5tdVCAgAbJO19sYsKvsP2AIcv7XbqGkHNyD6tjVhX14lurAcV9PRYknDVGg4fQ+Oq9d3cpB917FM9slNd3SoRtwPILQTu+CiVXyxapirLOjvcAj9tUGoq4ePcRuvNTxarajE=; 24:gEeUBnEjw4KxhSxN4zfK/ia6+KRkVcpGtZmWx4A+LsbSx+Bii+i1CKN4WnitqGnz505oyBWfdRpMxgMOdt/xr0vOhp+Kl26VHlH4fLe7z5w=; 7:YADQdVazfOQqtBev1OQtI+0B9Wo9oO0JRwcnNy7aSMeQ06qWAXsV1zW/jM52RMEHnALzEnSv4bPNfP9gmmUS2SSAwV21BP33xMonvb8yb9ylNgDO80eG1IxLra9t4KA7Ei/k9kPdfnekaTBeMFGPILgUQT6jXpz9ZOPqtE/h4o/zP2NfrJuPQK2AA5MGkiK4SDfoePvN1LpFpfY9K63cJWyg8I2/AOD/dErdxkP5jbYjjnFh9Z1uYlCCscvMweB1 SpamDiagnosticOutput: 1:99 SpamDiagnosticMetadata: NSPM X-OriginatorOrg: Mellanox.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 26 Feb 2018 16:25:52.8187 (UTC) X-MS-Exchange-CrossTenant-Network-Message-Id: a4966f49-9e82-4524-eb5c-08d57d359b7c X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-CrossTenant-Id: a652971c-7d2e-4d9b-a6a4-d149256f461b X-MS-Exchange-Transport-CrossTenantHeadersStamped: DB6PR0501MB2453 Sender: netdev-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: netdev@vger.kernel.org Fix resource coverity errors. Fixes: d9f9b9a4d05f ("devlink: Add support for resource abstraction") Signed-off-by: Arkadi Sharshevsky Acked-by: Jiri Pirko --- net/core/devlink.c | 37 +++++++++++++++++++++---------------- 1 file changed, 21 insertions(+), 16 deletions(-) diff --git a/net/core/devlink.c b/net/core/devlink.c index d6310f7..617a312 100644 --- a/net/core/devlink.c +++ b/net/core/devlink.c @@ -1695,10 +1695,11 @@ static int devlink_dpipe_table_put(struct sk_buff *skb, goto nla_put_failure; if (table->resource_valid) { - nla_put_u64_64bit(skb, DEVLINK_ATTR_DPIPE_TABLE_RESOURCE_ID, - table->resource_id, DEVLINK_ATTR_PAD); - nla_put_u64_64bit(skb, DEVLINK_ATTR_DPIPE_TABLE_RESOURCE_UNITS, - table->resource_units, DEVLINK_ATTR_PAD); + if (nla_put_u64_64bit(skb, DEVLINK_ATTR_DPIPE_TABLE_RESOURCE_ID, + table->resource_id, DEVLINK_ATTR_PAD) || + nla_put_u64_64bit(skb, DEVLINK_ATTR_DPIPE_TABLE_RESOURCE_UNITS, + table->resource_units, DEVLINK_ATTR_PAD)) + goto nla_put_failure; } if (devlink_dpipe_matches_put(table, skb)) goto nla_put_failure; @@ -2394,20 +2395,22 @@ static int devlink_nl_cmd_resource_set(struct sk_buff *skb, return 0; } -static void +static int devlink_resource_size_params_put(struct devlink_resource *resource, struct sk_buff *skb) { struct devlink_resource_size_params *size_params; size_params = resource->size_params; - nla_put_u64_64bit(skb, DEVLINK_ATTR_RESOURCE_SIZE_GRAN, - size_params->size_granularity, DEVLINK_ATTR_PAD); - nla_put_u64_64bit(skb, DEVLINK_ATTR_RESOURCE_SIZE_MAX, - size_params->size_max, DEVLINK_ATTR_PAD); - nla_put_u64_64bit(skb, DEVLINK_ATTR_RESOURCE_SIZE_MIN, - size_params->size_min, DEVLINK_ATTR_PAD); - nla_put_u8(skb, DEVLINK_ATTR_RESOURCE_UNIT, size_params->unit); + if (nla_put_u64_64bit(skb, DEVLINK_ATTR_RESOURCE_SIZE_GRAN, + size_params->size_granularity, DEVLINK_ATTR_PAD) || + nla_put_u64_64bit(skb, DEVLINK_ATTR_RESOURCE_SIZE_MAX, + size_params->size_max, DEVLINK_ATTR_PAD) || + nla_put_u64_64bit(skb, DEVLINK_ATTR_RESOURCE_SIZE_MIN, + size_params->size_min, DEVLINK_ATTR_PAD) || + nla_put_u8(skb, DEVLINK_ATTR_RESOURCE_UNIT, size_params->unit)) + return -EMSGSIZE; + return 0; } static int devlink_resource_put(struct devlink *devlink, struct sk_buff *skb, @@ -2431,10 +2434,12 @@ static int devlink_resource_put(struct devlink *devlink, struct sk_buff *skb, nla_put_u64_64bit(skb, DEVLINK_ATTR_RESOURCE_SIZE_NEW, resource->size_new, DEVLINK_ATTR_PAD); if (resource->resource_ops && resource->resource_ops->occ_get) - nla_put_u64_64bit(skb, DEVLINK_ATTR_RESOURCE_OCC, - resource->resource_ops->occ_get(devlink), - DEVLINK_ATTR_PAD); - devlink_resource_size_params_put(resource, skb); + if (nla_put_u64_64bit(skb, DEVLINK_ATTR_RESOURCE_OCC, + resource->resource_ops->occ_get(devlink), + DEVLINK_ATTR_PAD)) + goto nla_put_failure; + if (devlink_resource_size_params_put(resource, skb)) + goto nla_put_failure; if (list_empty(&resource->resource_list)) goto out;