Message ID | 1502710344-28013-1-git-send-email-matan@mellanox.com (mailing list archive) |
---|---|
State | Accepted, archived |
Delegated to: | Ferruh Yigit |
Headers |
Return-Path: <dev-bounces@dpdk.org> X-Original-To: patchwork@dpdk.org Delivered-To: patchwork@dpdk.org Received: from [92.243.14.124] (localhost [IPv6:::1]) by dpdk.org (Postfix) with ESMTP id 114C57CF8; Mon, 14 Aug 2017 13:32:43 +0200 (CEST) Received: from EUR03-VE1-obe.outbound.protection.outlook.com (mail-eopbgr50074.outbound.protection.outlook.com [40.107.5.74]) by dpdk.org (Postfix) with ESMTP id F12787CF6; Mon, 14 Aug 2017 13:32:41 +0200 (CEST) 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=rwPfd3z96qUKzyp27WJ0Lkz6mB8+4nIB/NehBqsil5Y=; b=xZTai+fiDLtslEsggyltWdCO2DjlsGUnDQ27t8IUIqCCMxePIIZ58uq3vhrrT4YtZ/yWJ6YLMhq6hSYyCbmJiMCNUzl3XGQZc3tr/KlyJQ5HT4UvlHW++cZTlWU8JjXKwrvjL8npVh9KqWbG0B7Kby7UwMqkS9q9e6bCDXpJ+mY= Authentication-Results: spf=none (sender IP is ) smtp.mailfrom=matan@mellanox.com; Received: from mellanox.com (37.142.13.130) by HE1PR0502MB3050.eurprd05.prod.outlook.com (2603:10a6:3:d9::15) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA384_P256) id 15.1.1341.21; Mon, 14 Aug 2017 11:32:37 +0000 From: Matan Azrad <matan@mellanox.com> To: Adrien Mazarguil <adrien.mazarguil@6wind.com>, Nelio Laranjeiro <nelio.laranjeiro@6wind.com> Cc: dev@dpdk.org, Shahaf Shuler <shahafs@mellanox.com>, stable@dpdk.org Date: Mon, 14 Aug 2017 14:32:24 +0300 Message-Id: <1502710344-28013-1-git-send-email-matan@mellanox.com> X-Mailer: git-send-email 2.7.4 MIME-Version: 1.0 Content-Type: text/plain X-Originating-IP: [37.142.13.130] X-ClientProxiedBy: VI1PR08CA0138.eurprd08.prod.outlook.com (2603:10a6:800:d5::16) To HE1PR0502MB3050.eurprd05.prod.outlook.com (2603:10a6:3:d9::15) X-MS-PublicTrafficType: Email X-MS-Office365-Filtering-Correlation-Id: 96cfeac1-25d4-4bb9-aca4-08d4e3082b19 X-MS-Office365-Filtering-HT: Tenant X-Microsoft-Antispam: UriScan:; BCL:0; PCL:0; RULEID:(300000500095)(300135000095)(300000501095)(300135300095)(22001)(300000502095)(300135100095)(2017030254152)(48565401081)(300000503095)(300135400095)(201703131423075)(201703031133081)(201702281549075)(300000504095)(300135200095)(300000505095)(300135600095)(300000506095)(300135500095); SRVR:HE1PR0502MB3050; X-Microsoft-Exchange-Diagnostics: 1; HE1PR0502MB3050; 3:6MjxboxQTsrlB+kQvA7ACsX7s+nH047e0CZ0/VxzbbG19Lrkdw9TGGorJumCi5Su7W+1Tp3kyegAJ9fj+ChklXpYY2VYpH62CD+WpeTs0xi2hlQ7zZcpcWjhaY9szadTc/scUVp7wR+/g2ygELq4VEfu/07scdlHaoTU90wvMMyZzKAwG3VFT+dcwLgLqe3OGuaHnwEQ9/f6hOdkao1MLA8N/tqwyp8LdzmhoNoZWEkfqQvGA+HZxSZx2RiHzDRn; 25:c2PikYMxaWhudDS5vYELhNSx/eapYA9gPsz5X5MUrE0NPnBnLfkbMEZlyBTDxkWHEQvH1zx5iik8Sd0S3VK7xiAFb+KFxkZPA4Q1QRciGkbF+BfT0+KyJalig4u3NFOfHIHlGWutbQenx/nvy3sJnCCYNXJK9qziVryP2WMBAiYin7/qgUcIA5FTjp193ifoguoSfvhR2FiO/8RJx8Z4uWmq74AGQuLIVlC/sAnzibYL5OG777pnr+6FHVdKiAz22exVxdEkXO6Xm148ijQ5fujDLmKdKogE6X2zRLErUzxkRnTozoxhzkOi4LKFlMzX3i6RjSZPWrfkFGdcQXnOiw==; 31:ep4NKqQf31LgHG2ks4ECvzQ2HlfBKvV0L9bNyNaIwtdyD0/aodhjzGhchYzh4h7BKLwX4jnZplz58cgDHxE6rMH6iGomDjPRTeb2w/ury4nfWyyHdzxcHjWVZdSgnejRVplAm/ie5328PBAvmeoRFDIzjRuFnBPjI0FnSrMVqvkD3Y38HR5ETCc8pregUDaVbGccCVBn1dBFBNn0HuKVAwfy8tiwlcN/s8S3cAZKSNk= X-MS-TrafficTypeDiagnostic: HE1PR0502MB3050: X-LD-Processed: a652971c-7d2e-4d9b-a6a4-d149256f461b,ExtAddr X-Microsoft-Exchange-Diagnostics: 1; HE1PR0502MB3050; 20:mv8Dy39fwokStEV0MXQNZVlRARWdqMq35RFVOxbYPCXRkupbizCYZREi3h/I/2lA2ASP/+WAGOIYj7gfRMki8FD2R7hF3rMV9rJAhOkjofTdH/wuc7/uLga8WPFX/GaY5PpPFc3RUWd8eifBZRT9Z0lXVa0pGUwo0/n8zTKWVJOPcssEEI9+UAkSsE6YJR1seuYU8lhC+oKtc7ykjPhe3cmgXlYi6sr7Efrc4c/QgpviO2zvig3fSBHkAq0hc+k7wPfW/XIt+Xg5jkw2sHzu+yw7gSEMli9iWEr9J9O+eGjpRe38IK8f5qPFAoEsz94scLW0gEHC2nLiffR9At8NRDKfg3DG3NWTHDnqMZca591avkCQoRiFY6Cf5B9CzbylnG8JCSUavDtsPyLjO7FPU6VIYV/ylP+abyAwm+scZuUP7STVzrvzap8psrKZWN1ZpnGqcEWWrjwsSXpaiz2tKFbB7lRRzsAo90Xm3bJer73Z/a1DR6kC8nlCIv01dtJi; 4:MpHgSxDX6FBS989cefFcSpXi68x2aZey/Bi06NUthea3pkP4aPAADmqOOTxAJRzwrHB6bNLNWgt8LxjASMaEG2EkwYAzSe3DwTofUJ6H4jBLB7LjG4k7fPS9nOhK/Z6rPW0XFzmsICFUi6L+wJ0G8YdMjjcIOBMcKO8qZYFPV9AQwQL9nN57riPiT8BYeyQ+uYvIEeTkimRkmAOL+ortDPvWky9GyVufB/3fQRlCf65FxlbplUN0Fk+kfR3Jv3S4 X-Exchange-Antispam-Report-Test: UriScan:; X-Microsoft-Antispam-PRVS: <HE1PR0502MB3050E421AC94E4449F754467D28C0@HE1PR0502MB3050.eurprd05.prod.outlook.com> X-Exchange-Antispam-Report-CFA-Test: BCL:0; PCL:0; RULEID:(100000700101)(100105000095)(100000701101)(100105300095)(100000702101)(100105100095)(6040450)(601004)(2401047)(8121501046)(5005006)(10201501046)(3002001)(100000703101)(100105400095)(93006095)(93001095)(6055026)(6041248)(20161123562025)(20161123564025)(20161123560025)(20161123555025)(20161123558100)(201703131423075)(201702281528075)(201703061421075)(201703061406153)(6072148)(201708071742011)(100000704101)(100105200095)(100000705101)(100105500095); SRVR:HE1PR0502MB3050; BCL:0; PCL:0; RULEID:(100000800101)(100110000095)(100000801101)(100110300095)(100000802101)(100110100095)(100000803101)(100110400095)(100000804101)(100110200095)(100000805101)(100110500095); SRVR:HE1PR0502MB3050; X-Forefront-PRVS: 039975700A X-Forefront-Antispam-Report: SFV:NSPM; SFS:(10009020)(4630300001)(7370300001)(6009001)(199003)(189002)(3846002)(6666003)(6116002)(478600001)(36756003)(50226002)(50466002)(305945005)(7736002)(21086003)(5660300001)(33646002)(189998001)(101416001)(97736004)(25786009)(66066001)(47776003)(48376002)(69596002)(5003940100001)(81166006)(4326008)(81156014)(8676002)(55016002)(68736007)(2906002)(33026002)(86362001)(53936002)(50986999)(105586002)(106356001)(7350300001)(42186005); DIR:OUT; SFP:1101; SCL:1; SRVR:HE1PR0502MB3050; H:mellanox.com; FPR:; SPF:None; PTR:InfoNoRecords; A:1; MX:1; LANG:en; Received-SPF: None (protection.outlook.com: mellanox.com does not designate permitted sender hosts) X-Microsoft-Exchange-Diagnostics: =?us-ascii?Q?1; HE1PR0502MB3050; 23:HBAvuKt/vAWoaCxoXcAGD3HxSlqn7Ahyb7xAhKY?= XeksBfvJuqu4DHCqTfMFralaFWaJHQOi5HfPZ0QrhgOTmiMkK3Cz83wKw8mn3UOLILmybB/DClJXEFQfZkAOnnILAEyKslGJ5BzRegOIFSRLFbItzKAm+81oITaMddLldrdyGT2Kn9EFwD67RfVie8Gcw8oSFEMIaoxgFGf+Jfp4rFb5W0Xth1MLUv/mwo63d8jxndADe9DV2JBpkxVGwjwNOBbRRGP3UVgWoxtsr28+Q60sPdki0Bc+6aJiL7uiwu+/uXBmm+0mUMifxyNq7ReYSVRa6repwVkCvERlJEDKdzW7NeeIKf2ofPBShe5Sbvm/CnZpbNVXavFRFeH7b5BQPYxrJDvmAABZEIHftcv5NnEJQpWBh6g+5iaPB6syDm+wBfK2SaHfilrqtuX7qdIBoTsFdtp6BbOBCJFQCvh/Wl6mend9YZyr8yZvG04H1t2EvHFVRYCCvwx/NoVXmn3eHAEO6upVI4aULzLHZcy+iNCflEysyo1nis8J5JE1gynkrm+I3ktZ8k0k3VAKbAHDztNWRYjfVnMZ81yVywZ8+shHD05ixRs/+OQ2iYewcmNcwiaBvCU6w9ItLhhOv9n2hmP/PBEFoKGtJqo6i6ugaqQn5ts59KLiJibDKdV/MVFBmwMih8KyXRietLxMDL7BGdMXNUQM6zf+jrMibYrM9qCfxP0OeJQeva99aFKOoHsilxYh11tpxkxQ6AKjkmwz39jehZPFnrQ8hY/I+xeQzzme1kb2C/gjoyujHGY/ywMEHaKT1uzsRpalSSZNBZfT4qbROuhEpo/MTfgkbL27NYYTdbkOuJL3weLcFFcHGcZq4t4jePKRr85Vjxii0/zijQM4H9/WncfyFufBAhzETHtxE6z27qNAxUFT8gYNnz0ZyJ4xBNsPgpTUZc5ySyDSb9jQPQYL/XyJmlCO94yIMfytQXxsLbFIYVlBU9wEjEKUw4rjSYLf5jq8qjMGknDbN5Fu8DFVdor0jJRZp14QvVw== X-Microsoft-Exchange-Diagnostics: 1; HE1PR0502MB3050; 6:rhUwiAn9RPYTMPPGxSYx+2Jq7gkJfvN1DC4Je0BetVMrMefdiYDm0GsNdcl+m1sgvTv4Y2uiN7EFv2gjwp9MrCan924E4n8WIyCWd8neBq8/Z1ZurAXKDneClfW47DYVxGqz+G1c+Fj/dHGeuuTS+bSBibzO85haetMoSwvwVtBjPqvpYnhX5haqwHLpG/iq+zGaBm5z2oqiBHzRgmZ1e9a4y8iFmMG08a00TwYmYs83bht5dU1e1rOwp2aXXCKTAfVPcjMSMXowF8hdGtovOKT7t9p/JxLcELTOuY/2voiyGiKV2gCLBMjTnSdk3DZY/ahZjgv89O5nRDDj7t00IQ==; 5:dt+7of2bB48CjSRPRLrxHik6pCqH66Z2blJ7ef9yNVu1WV09dbLc/3h01AHSQEw6BTDCmtpiypL4+N4W5e0aSdjvwJ6QWLFMQubbGHDF4QuNIxJiKz4qgoprUXZ1QXjWrRLf9potC86OKDoSesImdg==; 24:mbjGYARK7kDc8Fqf0KfUmbwWyC4uhF1V4ovLPCyriJ4CcpsfxMefhOU3Cjg+IdNd8UORH1BOf6PMuyuwcaEeEVwVdaqVrqWgql31o9LKGcU=; 7:pMtkJCiQIqfI57w0b3smAdNecJNFVk13jSIgARrGDJZ4ubJbhWXd+tuD1lJHMzLr0dR5xZxCd/usTyhEhIqk/5zek5zocMh/z0lyhjKEN8F0fFcRKneDdfX5dqd3Eb4M4UvvPmeDnmBbxlVDPb/K9X3JVoVzdoI5HJfhqY6WSWrxFzW9mjLdEpYmNDI5tm7VpzSzrGnyRzlwVt6MQIxbo99r4IG2CVrHk6OKHpjFmX4= SpamDiagnosticOutput: 1:99 SpamDiagnosticMetadata: NSPM X-OriginatorOrg: Mellanox.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 14 Aug 2017 11:32:37.7647 (UTC) X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-Transport-CrossTenantHeadersStamped: HE1PR0502MB3050 Subject: [dpdk-dev] [PATCH] net/mlx5: fix xstats functions unlock missing X-BeenThere: dev@dpdk.org X-Mailman-Version: 2.1.15 Precedence: list List-Id: DPDK patches and discussions <dev.dpdk.org> List-Unsubscribe: <http://dpdk.org/ml/options/dev>, <mailto:dev-request@dpdk.org?subject=unsubscribe> List-Archive: <http://dpdk.org/ml/archives/dev/> List-Post: <mailto:dev@dpdk.org> List-Help: <mailto:dev-request@dpdk.org?subject=help> List-Subscribe: <http://dpdk.org/ml/listinfo/dev>, <mailto:dev-request@dpdk.org?subject=subscribe> Errors-To: dev-bounces@dpdk.org Sender: "dev" <dev-bounces@dpdk.org> |
Checks
Context | Check | Description |
---|---|---|
ci/checkpatch | success | coding style OK |
ci/Intel-compilation | success | Compilation OK |
Commit Message
Matan Azrad
Aug. 14, 2017, 11:32 a.m. UTC
The corrupted code didn't unlock the spinlock in xstats
get and reset functions error flow.
Hence, if these errors happaned, the device spinlock was
left locked and many mlx5 device functionalities were blocked.
The fix unlocks the spinlock in the missed places.
Fixes: e62bc9e70608 ("net/mlx5: fix extended statistics")
Signed-off-by: Matan Azrad <matan@mellanox.com>
Cc: stable@dpdk.org
---
drivers/net/mlx5/mlx5_stats.c | 7 +++++--
1 file changed, 5 insertions(+), 2 deletions(-)
Comments
On Mon, Aug 14, 2017 at 02:32:24PM +0300, Matan Azrad wrote: > The corrupted code didn't unlock the spinlock in xstats > get and reset functions error flow. > > Hence, if these errors happaned, the device spinlock was > left locked and many mlx5 device functionalities were blocked. > > The fix unlocks the spinlock in the missed places. > > Fixes: e62bc9e70608 ("net/mlx5: fix extended statistics") > > Signed-off-by: Matan Azrad <matan@mellanox.com> > Cc: stable@dpdk.org > --- > drivers/net/mlx5/mlx5_stats.c | 7 +++++-- > 1 file changed, 5 insertions(+), 2 deletions(-) > > diff --git a/drivers/net/mlx5/mlx5_stats.c b/drivers/net/mlx5/mlx5_stats.c > index 703f48c..33997af 100644 > --- a/drivers/net/mlx5/mlx5_stats.c > +++ b/drivers/net/mlx5/mlx5_stats.c > @@ -442,8 +442,10 @@ mlx5_xstats_get(struct rte_eth_dev *dev, > > priv_lock(priv); > stats_n = priv_ethtool_get_stats_n(priv); > - if (stats_n < 0) > + if (stats_n < 0) { > + priv_unlock(priv); > return -1; > + } > if (xstats_ctrl->stats_n != stats_n) > priv_xstats_init(priv); > ret = priv_xstats_get(priv, stats); > @@ -468,10 +470,11 @@ mlx5_xstats_reset(struct rte_eth_dev *dev) > priv_lock(priv); > stats_n = priv_ethtool_get_stats_n(priv); > if (stats_n < 0) > - return; > + goto unlock; > if (xstats_ctrl->stats_n != stats_n) > priv_xstats_init(priv); > priv_xstats_reset(priv); > +unlock: > priv_unlock(priv); > } > > -- > 2.7.4 > Acked-by: Nelio Laranjeiro <nelio.laranjeiro@6wind.com>
On 8/23/2017 4:09 PM, Nélio Laranjeiro wrote: > On Mon, Aug 14, 2017 at 02:32:24PM +0300, Matan Azrad wrote: >> The corrupted code didn't unlock the spinlock in xstats >> get and reset functions error flow. >> >> Hence, if these errors happaned, the device spinlock was >> left locked and many mlx5 device functionalities were blocked. >> >> The fix unlocks the spinlock in the missed places. >> >> Fixes: e62bc9e70608 ("net/mlx5: fix extended statistics") >> Cc: stable@dpdk.org >> >> Signed-off-by: Matan Azrad <matan@mellanox.com> > Acked-by: Nelio Laranjeiro <nelio.laranjeiro@6wind.com> Applied to dpdk-next-net/master, thanks.
diff --git a/drivers/net/mlx5/mlx5_stats.c b/drivers/net/mlx5/mlx5_stats.c index 703f48c..33997af 100644 --- a/drivers/net/mlx5/mlx5_stats.c +++ b/drivers/net/mlx5/mlx5_stats.c @@ -442,8 +442,10 @@ mlx5_xstats_get(struct rte_eth_dev *dev, priv_lock(priv); stats_n = priv_ethtool_get_stats_n(priv); - if (stats_n < 0) + if (stats_n < 0) { + priv_unlock(priv); return -1; + } if (xstats_ctrl->stats_n != stats_n) priv_xstats_init(priv); ret = priv_xstats_get(priv, stats); @@ -468,10 +470,11 @@ mlx5_xstats_reset(struct rte_eth_dev *dev) priv_lock(priv); stats_n = priv_ethtool_get_stats_n(priv); if (stats_n < 0) - return; + goto unlock; if (xstats_ctrl->stats_n != stats_n) priv_xstats_init(priv); priv_xstats_reset(priv); +unlock: priv_unlock(priv); }