From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from out4-smtp.messagingengine.com (out4-smtp.messagingengine.com [66.111.4.28]) by dpdk.org (Postfix) with ESMTP id 6C0D9237 for ; Tue, 21 Nov 2017 14:20:18 +0100 (CET) Received: from compute1.internal (compute1.nyi.internal [10.202.2.41]) by mailout.nyi.internal (Postfix) with ESMTP id 4BB8020AAF; Tue, 21 Nov 2017 08:20:18 -0500 (EST) Received: from frontend2 ([10.202.2.161]) by compute1.internal (MEProxy); Tue, 21 Nov 2017 08:20:18 -0500 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=fridaylinux.org; h=cc:date:from:in-reply-to:message-id:references:subject:to :x-me-sender:x-me-sender:x-sasl-enc; s=fm1; bh=dieSxryzeis3tLk+S Y9jvEgys5J8l2lktKi2/djiuyg=; b=uFjw19fRXes11ev0eWVcg9nOd4kLIN04m kyZZm692eDU5fik+DI+b445bsqEVAeBQ2GgP8gWUdMcvjERxBlHOE7mUl8WMmR7A hZ+/D2DHQDZplLB+asG1rLU863C1STd2MiJPh+e1KrHzFpzwuOqM1Dx8FVNRJiT6 xdX6QhkPO/ejNkPGT5RK/DX0e3l2E9tbpX+wPNq/DNE2LB4MJ3Gf+LkRX3b0RyeB 1Ap3rB4hI0QlV2CEE8aWSDM6FJrpUt1hAkDqrUIMbxuP9P7r0gY33paPsVS1yumY ZOU751Z0I+E8fiAWpfHUTr2IspnBXpESQYi/WBJSIfof7A7S5GB0w== DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d= messagingengine.com; h=cc:date:from:in-reply-to:message-id :references:subject:to:x-me-sender:x-me-sender:x-sasl-enc; s= fm1; bh=dieSxryzeis3tLk+SY9jvEgys5J8l2lktKi2/djiuyg=; b=fovuS9h4 besowgdsJ22LvahCGj1pvxykGt7F4EZ9hxIg0ge6Ooi7D3M4FA7n9KofnMY4RzTn FIgTg9oSD8qZe9r/4SytuOr7HGW1nOQk347fR1kNo6r4UDk6VLMyEB5gZSp0l1f/ aauKHjjs2VWDKae/kMCvgoHHetxlBG7ayXHwgphg0CubzvvgQCQFZ6IPwC7S1Ipk cuQD9bCO5vuZCAtEtSjgCf7JK59qxNwvtlHIn9qORfLuXlsd+f/oqw6IzFYEbpgO nkT6LcB5kWlp3ErLcoJInHn5XfrhbuzXrdMBEY/8jzKDC7ZVEhaHTPQGDTc5IM4j QyMsp4iYPdqzfA== X-ME-Sender: Received: from localhost.localdomain (unknown [180.158.62.0]) by mail.messagingengine.com (Postfix) with ESMTPA id D0564243B9; Tue, 21 Nov 2017 08:20:13 -0500 (EST) From: Yuanhan Liu To: Matan Azrad Cc: Nelio Laranjeiro , dpdk stable Date: Tue, 21 Nov 2017 21:15:57 +0800 Message-Id: <1511270333-31002-15-git-send-email-yliu@fridaylinux.org> X-Mailer: git-send-email 2.7.4 In-Reply-To: <1511270333-31002-1-git-send-email-yliu@fridaylinux.org> References: <1511270333-31002-1-git-send-email-yliu@fridaylinux.org> Subject: [dpdk-stable] patch 'net/mlx5: fix locking in xstats functions' has been queued to stable release 17.08.1 X-BeenThere: stable@dpdk.org X-Mailman-Version: 2.1.15 Precedence: list List-Id: patches for DPDK stable branches List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 21 Nov 2017 13:20:19 -0000 Hi, FYI, your patch has been queued to stable release 17.08.1 Note it hasn't been pushed to http://dpdk.org/browse/dpdk-stable yet. It will be pushed if I get no objections before 11/24/17. So please shout if anyone has objections. Thanks. --yliu --- >>From ff974a02615e64f641edb872122054cc140f19c3 Mon Sep 17 00:00:00 2001 From: Matan Azrad Date: Mon, 14 Aug 2017 14:32:24 +0300 Subject: [PATCH] net/mlx5: fix locking in xstats functions [ upstream commit b5743da31eba03cdc7abae3295f8ba852919c4a3 ] The corrupted code didn't unlock the spinlock in xstats get and reset functions error flow. Hence, if these errors happened, 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 Acked-by: Nelio Laranjeiro --- 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