Received: by 2002:a25:4158:0:0:0:0:0 with SMTP id o85csp465486yba; Wed, 24 Apr 2019 04:31:43 -0700 (PDT) X-Google-Smtp-Source: APXvYqwsZKTo7fwde33CXSUaH8aCkmeJm2V4wB1wpUsj7qIU/MuLt//EsrI15V3kWbfvA/MUg7BP X-Received: by 2002:a62:4281:: with SMTP id h1mr3394260pfd.162.1556105503377; Wed, 24 Apr 2019 04:31:43 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1556105503; cv=none; d=google.com; s=arc-20160816; b=aEfDaZHSeroVfkYGnw0XHDZq3ZX+Xg+z4UcKcrFJzltkJvHs5uhBa/7GgiF0NEhwQR 8jqUaS9drLzZsh4Ve+Nf16yas/A6cRkHlQTs4OT842e6CyNYK+5K1QKm1AH2jS42EZ2U tHW4A0sWBDIJI1YoJmwq4Qp3cZ97xqKz6dOqzWodQEVB0RpUo/Y5FbVeuoX1xrJGyY8b mr8a1eBp1TfmucBkUzDvsvYnAvXVNOj+blfcuF+dxBaJU5QmdRBGL6h4mM7xZ6cRmNRK H65S9j+VTwqW0gTUJTtpO0SIREDnHE5mue4rghT8y1MLU6qygQKmJ14E1pxl6FL4St1d 7ftg== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:sender:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from; bh=9eZkgL3o8s8l3Ek+jI321Gq8AfuG6KZ9w2du79yEfcs=; b=ny7FTSpsPVFUNZ3HcqF813eMp6KcvsNZz7OKG1jMFoKxs0twGks/8/BkieQleLLdcn kjbW6qs9LryfJGe1DaknhIh3vl1Pi2Eb3htkAD7OrdLpSgjtFQMzOkfeGmnetW1Oosr8 eDT0YJBVMVPisAXACcuxXHOGySqztZyJOunlIegJ/wMyYL4dxxHImdX81YheF5Zlv/RF 4qj2X6GhntVWcLXgYQ1p9MVvZ5i+kFJIC3TxVWIq1ryjbBHMdICTg7uji9Howj/lU/MA uO7E9h1ebCAIFECRulUQFZh1eaKJRhZK/PiKh6iDQx2Jg2IpUTDYQqJpqw2hhJTT+2hl Nrfg== ARC-Authentication-Results: i=1; mx.google.com; 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 Return-Path: Received: from vger.kernel.org (vger.kernel.org. [209.132.180.67]) by mx.google.com with ESMTP id c12si17561502pgj.461.2019.04.24.04.31.27; Wed, 24 Apr 2019 04:31:43 -0700 (PDT) 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; 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 Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1729235AbfDXLHS (ORCPT + 99 others); Wed, 24 Apr 2019 07:07:18 -0400 Received: from szxga07-in.huawei.com ([45.249.212.35]:37532 "EHLO huawei.com" rhost-flags-OK-OK-OK-FAIL) by vger.kernel.org with ESMTP id S1728802AbfDXLG4 (ORCPT ); Wed, 24 Apr 2019 07:06:56 -0400 Received: from DGGEMS402-HUB.china.huawei.com (unknown [172.30.72.58]) by Forcepoint Email with ESMTP id B397E317007D3AFDAE85; Wed, 24 Apr 2019 19:06:51 +0800 (CST) Received: from localhost.localdomain (10.67.212.132) by DGGEMS402-HUB.china.huawei.com (10.3.19.202) with Microsoft SMTP Server id 14.3.439.0; Wed, 24 Apr 2019 19:06:42 +0800 From: Huazhong Tan To: CC: , , , , , , Huazhong Tan , Peng Li Subject: [PATCH V2 net-next 06/12] net: hns3: use a reserved byte to identify need_resp flag Date: Wed, 24 Apr 2019 19:05:25 +0800 Message-ID: <1556103931-64031-7-git-send-email-tanhuazhong@huawei.com> X-Mailer: git-send-email 2.7.4 In-Reply-To: <1556103931-64031-1-git-send-email-tanhuazhong@huawei.com> References: <1556103931-64031-1-git-send-email-tanhuazhong@huawei.com> MIME-Version: 1.0 Content-Type: text/plain X-Originating-IP: [10.67.212.132] X-CFilter-Loop: Reflected Sender: linux-kernel-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org This patch uses a reserved byte in the hclge_mbx_vf_to_pf_cmd to save the need_resp flag, so when PF received the mailbox, it can use it to decise whether send a response to VF. For hclge_set_vf_uc_mac_addr(), it should use mbx_need_resp flag to decide whether send response to VF. Signed-off-by: Huazhong Tan Signed-off-by: Peng Li --- drivers/net/ethernet/hisilicon/hns3/hclge_mbx.h | 5 ++++- drivers/net/ethernet/hisilicon/hns3/hns3pf/hclge_mbx.c | 7 +++---- drivers/net/ethernet/hisilicon/hns3/hns3vf/hclgevf_mbx.c | 2 ++ 3 files changed, 9 insertions(+), 5 deletions(-) diff --git a/drivers/net/ethernet/hisilicon/hns3/hclge_mbx.h b/drivers/net/ethernet/hisilicon/hns3/hclge_mbx.h index 8b6191f..83e19c6 100644 --- a/drivers/net/ethernet/hisilicon/hns3/hclge_mbx.h +++ b/drivers/net/ethernet/hisilicon/hns3/hclge_mbx.h @@ -84,12 +84,15 @@ struct hclgevf_mbx_resp_status { struct hclge_mbx_vf_to_pf_cmd { u8 rsv; u8 mbx_src_vfid; /* Auto filled by IMP */ - u8 rsv1[2]; + u8 mbx_need_resp; + u8 rsv1[1]; u8 msg_len; u8 rsv2[3]; u8 msg[HCLGE_MBX_MAX_MSG_SIZE]; }; +#define HCLGE_MBX_NEED_RESP_BIT BIT(0) + struct hclge_mbx_pf_to_vf_cmd { u8 dest_vfid; u8 rsv[3]; diff --git a/drivers/net/ethernet/hisilicon/hns3/hns3pf/hclge_mbx.c b/drivers/net/ethernet/hisilicon/hns3/hns3pf/hclge_mbx.c index 24386bd..fe48c56 100644 --- a/drivers/net/ethernet/hisilicon/hns3/hns3pf/hclge_mbx.c +++ b/drivers/net/ethernet/hisilicon/hns3/hns3pf/hclge_mbx.c @@ -212,8 +212,7 @@ static int hclge_set_vf_promisc_mode(struct hclge_vport *vport, } static int hclge_set_vf_uc_mac_addr(struct hclge_vport *vport, - struct hclge_mbx_vf_to_pf_cmd *mbx_req, - bool gen_resp) + struct hclge_mbx_vf_to_pf_cmd *mbx_req) { const u8 *mac_addr = (const u8 *)(&mbx_req->msg[2]); struct hclge_dev *hdev = vport->back; @@ -249,7 +248,7 @@ static int hclge_set_vf_uc_mac_addr(struct hclge_vport *vport, return -EIO; } - if (gen_resp) + if (mbx_req->mbx_need_resp & HCLGE_MBX_NEED_RESP_BIT) hclge_gen_resp_to_vf(vport, mbx_req, status, NULL, 0); return 0; @@ -597,7 +596,7 @@ void hclge_mbx_handler(struct hclge_dev *hdev) ret); break; case HCLGE_MBX_SET_UNICAST: - ret = hclge_set_vf_uc_mac_addr(vport, req, true); + ret = hclge_set_vf_uc_mac_addr(vport, req); if (ret) dev_err(&hdev->pdev->dev, "PF fail(%d) to set VF UC MAC Addr\n", diff --git a/drivers/net/ethernet/hisilicon/hns3/hns3vf/hclgevf_mbx.c b/drivers/net/ethernet/hisilicon/hns3/hns3vf/hclgevf_mbx.c index 3c22639..30f2e93 100644 --- a/drivers/net/ethernet/hisilicon/hns3/hns3vf/hclgevf_mbx.c +++ b/drivers/net/ethernet/hisilicon/hns3/hns3vf/hclgevf_mbx.c @@ -98,6 +98,8 @@ int hclgevf_send_mbx_msg(struct hclgevf_dev *hdev, u16 code, u16 subcode, } hclgevf_cmd_setup_basic_desc(&desc, HCLGEVF_OPC_MBX_VF_TO_PF, false); + req->mbx_need_resp |= need_resp ? HCLGE_MBX_NEED_RESP_BIT : + ~HCLGE_MBX_NEED_RESP_BIT; req->msg[0] = code; req->msg[1] = subcode; memcpy(&req->msg[2], msg_data, msg_len); -- 2.7.4