Received: by 2002:ad5:474a:0:0:0:0:0 with SMTP id i10csp4972021imu; Mon, 12 Nov 2018 22:03:38 -0800 (PST) X-Google-Smtp-Source: AJdET5fPM1NV/xz4ChkkJqP6nLTWeHkzbax5Ri2pESRKrVI1MaV/4xPszgLKIJScj+9MGPlL/yHy X-Received: by 2002:a17:902:107:: with SMTP id 7-v6mr3821531plb.267.1542089018559; Mon, 12 Nov 2018 22:03:38 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1542089018; cv=none; d=google.com; s=arc-20160816; b=OGHhnHkHJovT1hgoiitkcWRhdHi2So/UkLkx7bCWUMnH/1QT0FZbUcR2/7OrDvCFW9 /rWEhvnXir7URrFel5psbipQeOuTFuvlMJxrEmYhXM5hzsotdq79sKBad+UIx8UXuAFC U8TXX4TMkBLLGrPB/5sQG//vTTW5CtHpoXZt3ktVCWtE90eU1Dumhf87gUHB7XY53H99 Nbk+HSLzHsVr81EqfD2tEof2RGLRoC0QepTWCMybZVaWWJ5PN8PxGMBjF8iOgsRXMJbd VtQMbt/mK/b4Bg1//sEYvdIHw4tzbk3hJwybfRb7aUYW0dBOznibtb54O1uqAafZcUMV ALxQ== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:sender:references:in-reply-to:message-id:date :subject:cc:to:from:dkim-signature; bh=3NFiHPRqzVvCJBskTfDhM59dnkOEKHA4ZVeC1oGiaHs=; b=qbIAhkIHuZpgASfioJ1mQmhcQBBIR+wHh40wgzZ/92vw1nGhe0pdxJcVAG4HRNEmOt ho4RBdVx8f8/idkqfMbkpmwmzzHcQZ5bAuSIFUIb+q3/xKtXGw0XlfqCYoyiXtLsp2si Yn/WtljT+j8MeyC6ROA4Bg582HFDCBpLGZCYoD8PzwYuf2dm2Fwt+jc2KuDxJmTDMass 18gtDnpmHvtLv87sZQLc8t/v1Nzw0fmh13q6TXjuMQcdrnd4QL526u+zNhYRpmNyzBzU EDUXpO2HwRomdWUh5iDR/GXnvKmQ43qa69PK+srAX89+K9xNxFDBVxaYh7YoY99vVnDp kxfA== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@kernel.org header.s=default header.b=KZqysGkK; spf=pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=kernel.org Return-Path: Received: from vger.kernel.org (vger.kernel.org. [209.132.180.67]) by mx.google.com with ESMTP id m198si6869987pga.98.2018.11.12.22.03.23; Mon, 12 Nov 2018 22:03:38 -0800 (PST) Received-SPF: pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) client-ip=209.132.180.67; Authentication-Results: mx.google.com; dkim=pass header.i=@kernel.org header.s=default header.b=KZqysGkK; spf=pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=kernel.org Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1732090AbeKMPrh (ORCPT + 99 others); Tue, 13 Nov 2018 10:47:37 -0500 Received: from mail.kernel.org ([198.145.29.99]:33348 "EHLO mail.kernel.org" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1727535AbeKMPrf (ORCPT ); Tue, 13 Nov 2018 10:47:35 -0500 Received: from sasha-vm.mshome.net (unknown [64.114.255.114]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by mail.kernel.org (Postfix) with ESMTPSA id D10672250E; Tue, 13 Nov 2018 05:51:07 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=default; t=1542088267; bh=JBcLTfaqVPeFRK6ciiLJqd6dMYAQpd+DEE7QOU6ER9Q=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=KZqysGkKAIpPBa3Xv91JDPu9tDnjtYYJfkbyXVPGQZ95KMFTIpqIc8fj/qfCGwCZH ts6LYL0F7CQLedyXrcNZRr+I+JhLSkmhZSJ/klHu2gDh8reh4MyP2Th58/5aeu7gIe +ILqtDSjm9e+tyQLrjZhRjXkpbPfta20lobT9cV8= From: Sasha Levin To: stable@vger.kernel.org, linux-kernel@vger.kernel.org Cc: Huazhong Tan , "David S . Miller" , Sasha Levin , netdev@vger.kernel.org Subject: [PATCH AUTOSEL 4.18 09/39] net: hns3: bugfix for the initialization of command queue's spin lock Date: Tue, 13 Nov 2018 00:50:23 -0500 Message-Id: <20181113055053.78352-9-sashal@kernel.org> X-Mailer: git-send-email 2.17.1 In-Reply-To: <20181113055053.78352-1-sashal@kernel.org> References: <20181113055053.78352-1-sashal@kernel.org> Sender: linux-kernel-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org From: Huazhong Tan [ Upstream commit b2f74dbaf12bf59ff35d451005b3cdee78232ff0 ] The spin lock of the command queue only need to be initialized once when the driver initializes the command queue. It is not necessary to initialize the spin lock when resetting. At the same time, the modification of the queue member should be performed after acquiring the lock. Fixes: 3efb960f056d ("net: hns3: Refactor the initialization of command queue") Signed-off-by: Huazhong Tan Signed-off-by: David S. Miller Signed-off-by: Sasha Levin --- .../net/ethernet/hisilicon/hns3/hns3pf/hclge_cmd.c | 14 ++++++++++---- 1 file changed, 10 insertions(+), 4 deletions(-) diff --git a/drivers/net/ethernet/hisilicon/hns3/hns3pf/hclge_cmd.c b/drivers/net/ethernet/hisilicon/hns3/hns3pf/hclge_cmd.c index c36d64710fa6..fda9d64bc6e9 100644 --- a/drivers/net/ethernet/hisilicon/hns3/hns3pf/hclge_cmd.c +++ b/drivers/net/ethernet/hisilicon/hns3/hns3pf/hclge_cmd.c @@ -326,6 +326,10 @@ int hclge_cmd_queue_init(struct hclge_dev *hdev) { int ret; + /* Setup the lock for command queue */ + spin_lock_init(&hdev->hw.cmq.csq.lock); + spin_lock_init(&hdev->hw.cmq.crq.lock); + /* Setup the queue entries for use cmd queue */ hdev->hw.cmq.csq.desc_num = HCLGE_NIC_CMQ_DESC_NUM; hdev->hw.cmq.crq.desc_num = HCLGE_NIC_CMQ_DESC_NUM; @@ -359,17 +363,19 @@ int hclge_cmd_init(struct hclge_dev *hdev) u32 version; int ret; + spin_lock_bh(&hdev->hw.cmq.csq.lock); + spin_lock_bh(&hdev->hw.cmq.crq.lock); + hdev->hw.cmq.csq.next_to_clean = 0; hdev->hw.cmq.csq.next_to_use = 0; hdev->hw.cmq.crq.next_to_clean = 0; hdev->hw.cmq.crq.next_to_use = 0; - /* Setup the lock for command queue */ - spin_lock_init(&hdev->hw.cmq.csq.lock); - spin_lock_init(&hdev->hw.cmq.crq.lock); - hclge_cmd_init_regs(&hdev->hw); + spin_unlock_bh(&hdev->hw.cmq.crq.lock); + spin_unlock_bh(&hdev->hw.cmq.csq.lock); + ret = hclge_cmd_query_firmware_version(&hdev->hw, &version); if (ret) { dev_err(&hdev->pdev->dev, -- 2.17.1