* [PATCH net-next 00/12] code optimizations & bugfixes for HNS3 driver
@ 2019-05-28 9:02 Huazhong Tan
2019-05-28 9:02 ` [PATCH net-next 01/12] net: hns3: fix compile warning without CONFIG_RFS_ACCEL Huazhong Tan
` (12 more replies)
0 siblings, 13 replies; 35+ messages in thread
From: Huazhong Tan @ 2019-05-28 9:02 UTC (permalink / raw)
To: davem
Cc: netdev, linux-kernel, salil.mehta, yisen.zhuang, linuxarm, Huazhong Tan
This patch-set includes code optimizations and bugfixes for the HNS3
ethernet controller driver.
[patch 1/12] fixes a compile warning reported by kbuild test robot.
[patch 2/12] fixes HNS3_RXD_GRO_SIZE_M macro definition error.
[patch 3/12] adds a debugfs command to dump firmware information.
[patch 4/12 - 10/12] adds some code optimizaions and cleanups for
reset and driver unloading.
[patch 11/12 - 12/12] adds two bugfixes.
Huazhong Tan (9):
net: hns3: use HCLGE_STATE_NIC_REGISTERED to indicate PF NIC client
has registered
net: hns3: use HCLGE_STATE_ROCE_REGISTERED to indicate PF ROCE client
has registered
net: hns3: use HCLGEVF_STATE_NIC_REGISTERED to indicate VF NIC client
has registered
net: hns3: modify hclge_init_client_instance()
net: hns3: modify hclgevf_init_client_instance()
net: hns3: add handshake with hardware while doing reset
net: hns3: stop schedule reset service while unloading driver
net: hns3: adjust hns3_uninit_phy()'s location in the
hns3_client_uninit()
net: hns3: fix a memory leak issue for
hclge_map_unmap_ring_to_vf_vector
Jian Shen (1):
net: hns3: fix compile warning without CONFIG_RFS_ACCEL
Yunsheng Lin (1):
net: hns3: fix for HNS3_RXD_GRO_SIZE_M macro
Zhongzhu Liu (1):
net: hns3: add support for dump firmware statistics by debugfs
drivers/net/ethernet/hisilicon/hns3/hns3_debugfs.c | 1 +
drivers/net/ethernet/hisilicon/hns3/hns3_enet.c | 4 +-
drivers/net/ethernet/hisilicon/hns3/hns3_enet.h | 2 +-
.../net/ethernet/hisilicon/hns3/hns3pf/hclge_cmd.c | 6 +-
.../net/ethernet/hisilicon/hns3/hns3pf/hclge_cmd.h | 8 ++
.../ethernet/hisilicon/hns3/hns3pf/hclge_debugfs.c | 57 +++++++++++
.../ethernet/hisilicon/hns3/hns3pf/hclge_main.c | 110 ++++++++++++++-------
.../ethernet/hisilicon/hns3/hns3pf/hclge_main.h | 2 +
.../net/ethernet/hisilicon/hns3/hns3pf/hclge_mbx.c | 4 +-
.../ethernet/hisilicon/hns3/hns3vf/hclgevf_cmd.c | 2 -
.../ethernet/hisilicon/hns3/hns3vf/hclgevf_main.c | 95 ++++++++++++------
.../ethernet/hisilicon/hns3/hns3vf/hclgevf_main.h | 2 +
12 files changed, 213 insertions(+), 80 deletions(-)
--
2.7.4
^ permalink raw reply [flat|nested] 35+ messages in thread
* [PATCH net-next 01/12] net: hns3: fix compile warning without CONFIG_RFS_ACCEL
2019-05-28 9:02 [PATCH net-next 00/12] code optimizations & bugfixes for HNS3 driver Huazhong Tan
@ 2019-05-28 9:02 ` Huazhong Tan
2019-05-28 9:02 ` [PATCH net-next 02/12] net: hns3: fix for HNS3_RXD_GRO_SIZE_M macro Huazhong Tan
` (11 subsequent siblings)
12 siblings, 0 replies; 35+ messages in thread
From: Huazhong Tan @ 2019-05-28 9:02 UTC (permalink / raw)
To: davem
Cc: netdev, linux-kernel, salil.mehta, yisen.zhuang, linuxarm,
Jian Shen, Huazhong Tan
From: Jian Shen <shenjian15@huawei.com>
The ifdef condition of function hclge_add_fd_entry_by_arfs() is
unnecessary. It may cause compile warning when CONFIG_RFS_ACCEL
is not chosen. This patch fixes it by removing the ifdef condition.
Fixes: d93ed94fbeaf ("net: hns3: add aRFS support for PF")
Reported-by: kbuild test robot <lkp@intel.com>
Signed-off-by: Jian Shen <shenjian15@huawei.com>
Signed-off-by: Huazhong Tan <tanhuazhong@huawei.com>
---
drivers/net/ethernet/hisilicon/hns3/hns3pf/hclge_main.c | 2 --
1 file changed, 2 deletions(-)
diff --git a/drivers/net/ethernet/hisilicon/hns3/hns3pf/hclge_main.c b/drivers/net/ethernet/hisilicon/hns3/hns3pf/hclge_main.c
index a3fba7b..fb0dc18 100644
--- a/drivers/net/ethernet/hisilicon/hns3/hns3pf/hclge_main.c
+++ b/drivers/net/ethernet/hisilicon/hns3/hns3pf/hclge_main.c
@@ -5682,7 +5682,6 @@ static void hclge_fd_build_arfs_rule(const struct hclge_fd_rule_tuples *tuples,
static int hclge_add_fd_entry_by_arfs(struct hnae3_handle *handle, u16 queue_id,
u16 flow_id, struct flow_keys *fkeys)
{
-#ifdef CONFIG_RFS_ACCEL
struct hclge_vport *vport = hclge_get_vport(handle);
struct hclge_fd_rule_tuples new_tuples;
struct hclge_dev *hdev = vport->back;
@@ -5758,7 +5757,6 @@ static int hclge_add_fd_entry_by_arfs(struct hnae3_handle *handle, u16 queue_id,
}
return rule->location;
-#endif
}
static void hclge_rfs_filter_expire(struct hclge_dev *hdev)
--
2.7.4
^ permalink raw reply related [flat|nested] 35+ messages in thread
* [PATCH net-next 02/12] net: hns3: fix for HNS3_RXD_GRO_SIZE_M macro
2019-05-28 9:02 [PATCH net-next 00/12] code optimizations & bugfixes for HNS3 driver Huazhong Tan
2019-05-28 9:02 ` [PATCH net-next 01/12] net: hns3: fix compile warning without CONFIG_RFS_ACCEL Huazhong Tan
@ 2019-05-28 9:02 ` Huazhong Tan
2019-05-28 9:02 ` [PATCH net-next 03/12] net: hns3: add support for dump firmware statistics by debugfs Huazhong Tan
` (10 subsequent siblings)
12 siblings, 0 replies; 35+ messages in thread
From: Huazhong Tan @ 2019-05-28 9:02 UTC (permalink / raw)
To: davem
Cc: netdev, linux-kernel, salil.mehta, yisen.zhuang, linuxarm,
Yunsheng Lin, Huazhong Tan
From: Yunsheng Lin <linyunsheng@huawei.com>
According to hardware user menual, the GRO_SIZE is 14 bits width,
the HNS3_RXD_GRO_SIZE_M is 10 bits width now, which may cause
hardware GRO received packet error problem.
Fixes: a6d53b97a2e7 ("net: hns3: Adds GRO params to SKB for the stack")
Signed-off-by: Yunsheng Lin <linyunsheng@huawei.com>
Signed-off-by: Huazhong Tan <tanhuazhong@huawei.com>
---
drivers/net/ethernet/hisilicon/hns3/hns3_enet.h | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/drivers/net/ethernet/hisilicon/hns3/hns3_enet.h b/drivers/net/ethernet/hisilicon/hns3/hns3_enet.h
index c14480f..408efd5 100644
--- a/drivers/net/ethernet/hisilicon/hns3/hns3_enet.h
+++ b/drivers/net/ethernet/hisilicon/hns3/hns3_enet.h
@@ -145,7 +145,7 @@ enum hns3_nic_state {
#define HNS3_RXD_TSIND_M (0x7 << HNS3_RXD_TSIND_S)
#define HNS3_RXD_LKBK_B 15
#define HNS3_RXD_GRO_SIZE_S 16
-#define HNS3_RXD_GRO_SIZE_M (0x3ff << HNS3_RXD_GRO_SIZE_S)
+#define HNS3_RXD_GRO_SIZE_M (0x3fff << HNS3_RXD_GRO_SIZE_S)
#define HNS3_TXD_L3T_S 0
#define HNS3_TXD_L3T_M (0x3 << HNS3_TXD_L3T_S)
--
2.7.4
^ permalink raw reply related [flat|nested] 35+ messages in thread
* [PATCH net-next 03/12] net: hns3: add support for dump firmware statistics by debugfs
2019-05-28 9:02 [PATCH net-next 00/12] code optimizations & bugfixes for HNS3 driver Huazhong Tan
2019-05-28 9:02 ` [PATCH net-next 01/12] net: hns3: fix compile warning without CONFIG_RFS_ACCEL Huazhong Tan
2019-05-28 9:02 ` [PATCH net-next 02/12] net: hns3: fix for HNS3_RXD_GRO_SIZE_M macro Huazhong Tan
@ 2019-05-28 9:02 ` Huazhong Tan
2019-05-28 9:02 ` [PATCH net-next 04/12] net: hns3: use HCLGE_STATE_NIC_REGISTERED to indicate PF NIC client has registered Huazhong Tan
` (9 subsequent siblings)
12 siblings, 0 replies; 35+ messages in thread
From: Huazhong Tan @ 2019-05-28 9:02 UTC (permalink / raw)
To: davem
Cc: netdev, linux-kernel, salil.mehta, yisen.zhuang, linuxarm,
Zhongzhu Liu, Peng Li, Huazhong Tan
From: Zhongzhu Liu <liuzhongzhu@huawei.com>
This patch prints firmware statistics information.
debugfs command:
echo dump m7 info > cmd
estuary:/dbg/hns3/0000:7d:00.0$ echo dump m7 info > cmd
[ 172.577240] hns3 0000:7d:00.0: 0x00000000 0x00000000 0x00000000
[ 172.583471] hns3 0000:7d:00.0: 0x00000000 0x00000000 0x00000000
[ 172.589552] hns3 0000:7d:00.0: 0x00000030 0x00000000 0x00000000
[ 172.595632] hns3 0000:7d:00.0: 0x00000000 0x00000000 0x00000000
estuary:/dbg/hns3/0000:7d:00.0$
Signed-off-by: Zhongzhu Liu <liuzhongzhu@huawei.com>
Signed-off-by: Peng Li <lipeng321@huawei.com>
Signed-off-by: Huazhong Tan <tanhuazhong@huawei.com>
---
drivers/net/ethernet/hisilicon/hns3/hns3_debugfs.c | 1 +
.../net/ethernet/hisilicon/hns3/hns3pf/hclge_cmd.h | 8 +++
.../ethernet/hisilicon/hns3/hns3pf/hclge_debugfs.c | 57 ++++++++++++++++++++++
3 files changed, 66 insertions(+)
diff --git a/drivers/net/ethernet/hisilicon/hns3/hns3_debugfs.c b/drivers/net/ethernet/hisilicon/hns3/hns3_debugfs.c
index fc4917a..30354fa 100644
--- a/drivers/net/ethernet/hisilicon/hns3/hns3_debugfs.c
+++ b/drivers/net/ethernet/hisilicon/hns3/hns3_debugfs.c
@@ -252,6 +252,7 @@ static void hns3_dbg_help(struct hnae3_handle *h)
dev_info(&h->pdev->dev, "dump qos buf cfg\n");
dev_info(&h->pdev->dev, "dump mng tbl\n");
dev_info(&h->pdev->dev, "dump reset info\n");
+ dev_info(&h->pdev->dev, "dump m7 info\n");
dev_info(&h->pdev->dev, "dump ncl_config <offset> <length>(in hex)\n");
dev_info(&h->pdev->dev, "dump mac tnl status\n");
diff --git a/drivers/net/ethernet/hisilicon/hns3/hns3pf/hclge_cmd.h b/drivers/net/ethernet/hisilicon/hns3/hns3pf/hclge_cmd.h
index d79a209..61cb10d 100644
--- a/drivers/net/ethernet/hisilicon/hns3/hns3pf/hclge_cmd.h
+++ b/drivers/net/ethernet/hisilicon/hns3/hns3pf/hclge_cmd.h
@@ -243,6 +243,9 @@ enum hclge_opcode_type {
/* NCL config command */
HCLGE_OPC_QUERY_NCL_CONFIG = 0x7011,
+ /* M7 stats command */
+ HCLGE_OPC_M7_STATS_BD = 0x7012,
+ HCLGE_OPC_M7_STATS_INFO = 0x7013,
/* SFP command */
HCLGE_OPC_GET_SFP_INFO = 0x7104,
@@ -970,6 +973,11 @@ struct hclge_fd_ad_config_cmd {
u8 rsv2[8];
};
+struct hclge_get_m7_bd_cmd {
+ __le32 bd_num;
+ u8 rsv[20];
+};
+
int hclge_cmd_init(struct hclge_dev *hdev);
static inline void hclge_write_reg(void __iomem *base, u32 reg, u32 value)
{
diff --git a/drivers/net/ethernet/hisilicon/hns3/hns3pf/hclge_debugfs.c b/drivers/net/ethernet/hisilicon/hns3/hns3pf/hclge_debugfs.c
index a9ffb57..ed1f533 100644
--- a/drivers/net/ethernet/hisilicon/hns3/hns3pf/hclge_debugfs.c
+++ b/drivers/net/ethernet/hisilicon/hns3/hns3pf/hclge_debugfs.c
@@ -921,6 +921,61 @@ static void hclge_dbg_dump_rst_info(struct hclge_dev *hdev)
hdev->rst_stats.reset_cnt);
}
+void hclge_dbg_get_m7_stats_info(struct hclge_dev *hdev)
+{
+ struct hclge_desc *desc_src, *desc_tmp;
+ struct hclge_get_m7_bd_cmd *req;
+ struct hclge_desc desc;
+ u32 bd_num, buf_len;
+ int ret, i;
+
+ hclge_cmd_setup_basic_desc(&desc, HCLGE_OPC_M7_STATS_BD, true);
+
+ req = (struct hclge_get_m7_bd_cmd *)desc.data;
+ ret = hclge_cmd_send(&hdev->hw, &desc, 1);
+ if (ret) {
+ dev_err(&hdev->pdev->dev,
+ "get firmware statistics bd number failed, ret=%d\n",
+ ret);
+ return;
+ }
+
+ bd_num = le32_to_cpu(req->bd_num);
+
+ buf_len = sizeof(struct hclge_desc) * bd_num;
+ desc_src = kzalloc(buf_len, GFP_KERNEL);
+ if (!desc_src) {
+ dev_err(&hdev->pdev->dev,
+ "allocate desc for get_m7_stats failed\n");
+ return;
+ }
+
+ desc_tmp = desc_src;
+ ret = hclge_dbg_cmd_send(hdev, desc_tmp, 0, bd_num,
+ HCLGE_OPC_M7_STATS_INFO);
+ if (ret) {
+ kfree(desc_src);
+ dev_err(&hdev->pdev->dev,
+ "get firmware statistics failed, ret=%d\n", ret);
+ return;
+ }
+
+ for (i = 0; i < bd_num; i++) {
+ dev_info(&hdev->pdev->dev, "0x%08x 0x%08x 0x%08x\n",
+ le32_to_cpu(desc_tmp->data[0]),
+ le32_to_cpu(desc_tmp->data[1]),
+ le32_to_cpu(desc_tmp->data[2]));
+ dev_info(&hdev->pdev->dev, "0x%08x 0x%08x 0x%08x\n",
+ le32_to_cpu(desc_tmp->data[3]),
+ le32_to_cpu(desc_tmp->data[4]),
+ le32_to_cpu(desc_tmp->data[5]));
+
+ desc_tmp++;
+ }
+
+ kfree(desc_src);
+}
+
/* hclge_dbg_dump_ncl_config: print specified range of NCL_CONFIG file
* @hdev: pointer to struct hclge_dev
* @cmd_buf: string that contains offset and length
@@ -1029,6 +1084,8 @@ int hclge_dbg_run_cmd(struct hnae3_handle *handle, char *cmd_buf)
hclge_dbg_dump_reg_cmd(hdev, cmd_buf);
} else if (strncmp(cmd_buf, "dump reset info", 15) == 0) {
hclge_dbg_dump_rst_info(hdev);
+ } else if (strncmp(cmd_buf, "dump m7 info", 12) == 0) {
+ hclge_dbg_get_m7_stats_info(hdev);
} else if (strncmp(cmd_buf, "dump ncl_config", 15) == 0) {
hclge_dbg_dump_ncl_config(hdev,
&cmd_buf[sizeof("dump ncl_config")]);
--
2.7.4
^ permalink raw reply related [flat|nested] 35+ messages in thread
* [PATCH net-next 04/12] net: hns3: use HCLGE_STATE_NIC_REGISTERED to indicate PF NIC client has registered
2019-05-28 9:02 [PATCH net-next 00/12] code optimizations & bugfixes for HNS3 driver Huazhong Tan
` (2 preceding siblings ...)
2019-05-28 9:02 ` [PATCH net-next 03/12] net: hns3: add support for dump firmware statistics by debugfs Huazhong Tan
@ 2019-05-28 9:02 ` Huazhong Tan
2019-05-28 9:02 ` [PATCH net-next 05/12] net: hns3: use HCLGE_STATE_ROCE_REGISTERED to indicate PF ROCE " Huazhong Tan
` (8 subsequent siblings)
12 siblings, 0 replies; 35+ messages in thread
From: Huazhong Tan @ 2019-05-28 9:02 UTC (permalink / raw)
To: davem
Cc: netdev, linux-kernel, salil.mehta, yisen.zhuang, linuxarm,
Huazhong Tan, Peng Li
When PF NIC client's init_instance() succeeds, it means this client
has been registered successfully, so we use HCLGE_STATE_NIC_REGISTERED
to indicate that. And before calling PF NIC client's uninit_instance(),
we clear this state.
So any operation of PF NIC client from HCLGE is not allowed if this
state is not set.
Signed-off-by: Huazhong Tan <tanhuazhong@huawei.com>
Signed-off-by: Peng Li <lipeng321@huawei.com>
---
drivers/net/ethernet/hisilicon/hns3/hns3pf/hclge_main.c | 6 ++++++
drivers/net/ethernet/hisilicon/hns3/hns3pf/hclge_main.h | 1 +
2 files changed, 7 insertions(+)
diff --git a/drivers/net/ethernet/hisilicon/hns3/hns3pf/hclge_main.c b/drivers/net/ethernet/hisilicon/hns3/hns3pf/hclge_main.c
index fb0dc18..87c5cb0 100644
--- a/drivers/net/ethernet/hisilicon/hns3/hns3pf/hclge_main.c
+++ b/drivers/net/ethernet/hisilicon/hns3/hns3pf/hclge_main.c
@@ -2873,6 +2873,10 @@ int hclge_notify_client(struct hclge_dev *hdev,
struct hnae3_client *client = hdev->nic_client;
u16 i;
+ if (!test_bit(HCLGE_STATE_NIC_REGISTERED, &hdev->state) ||
+ !client)
+ return 0;
+
if (!client->ops->reset_notify)
return -EOPNOTSUPP;
@@ -8184,6 +8188,7 @@ static int hclge_init_client_instance(struct hnae3_client *client,
goto clear_nic;
hnae3_set_client_init_flag(client, ae_dev, 1);
+ set_bit(HCLGE_STATE_NIC_REGISTERED, &hdev->state);
if (netif_msg_drv(&hdev->vport->nic))
hclge_info_show(hdev);
@@ -8270,6 +8275,7 @@ static void hclge_uninit_client_instance(struct hnae3_client *client,
if (client->type == HNAE3_CLIENT_ROCE)
return;
if (hdev->nic_client && client->ops->uninit_instance) {
+ clear_bit(HCLGE_STATE_NIC_REGISTERED, &hdev->state);
client->ops->uninit_instance(&vport->nic, 0);
hdev->nic_client = NULL;
vport->nic.client = NULL;
diff --git a/drivers/net/ethernet/hisilicon/hns3/hns3pf/hclge_main.h b/drivers/net/ethernet/hisilicon/hns3/hns3pf/hclge_main.h
index c770390..43901ff 100644
--- a/drivers/net/ethernet/hisilicon/hns3/hns3pf/hclge_main.h
+++ b/drivers/net/ethernet/hisilicon/hns3/hns3pf/hclge_main.h
@@ -201,6 +201,7 @@ enum HCLGE_DEV_STATE {
HCLGE_STATE_DOWN,
HCLGE_STATE_DISABLED,
HCLGE_STATE_REMOVING,
+ HCLGE_STATE_NIC_REGISTERED,
HCLGE_STATE_SERVICE_INITED,
HCLGE_STATE_SERVICE_SCHED,
HCLGE_STATE_RST_SERVICE_SCHED,
--
2.7.4
^ permalink raw reply related [flat|nested] 35+ messages in thread
* [PATCH net-next 05/12] net: hns3: use HCLGE_STATE_ROCE_REGISTERED to indicate PF ROCE client has registered
2019-05-28 9:02 [PATCH net-next 00/12] code optimizations & bugfixes for HNS3 driver Huazhong Tan
` (3 preceding siblings ...)
2019-05-28 9:02 ` [PATCH net-next 04/12] net: hns3: use HCLGE_STATE_NIC_REGISTERED to indicate PF NIC client has registered Huazhong Tan
@ 2019-05-28 9:02 ` Huazhong Tan
2019-05-28 9:02 ` [PATCH net-next 06/12] net: hns3: use HCLGEVF_STATE_NIC_REGISTERED to indicate VF NIC " Huazhong Tan
` (7 subsequent siblings)
12 siblings, 0 replies; 35+ messages in thread
From: Huazhong Tan @ 2019-05-28 9:02 UTC (permalink / raw)
To: davem
Cc: netdev, linux-kernel, salil.mehta, yisen.zhuang, linuxarm,
Huazhong Tan, Peng Li
When PF ROCE client's init_instance() succeeds, it means this client
has been registered successfully, so we use HCLGE_STATE_ROCE_REGISTERED
to indicate that. And before calling PF ROCE client's uninit_instance(),
we clear this state.
So any operation of the ROCE client from HCLGE is not allowed if this
state is not set.
Signed-off-by: Huazhong Tan <tanhuazhong@huawei.com>
Signed-off-by: Peng Li <lipeng321@huawei.com>
---
drivers/net/ethernet/hisilicon/hns3/hns3pf/hclge_main.c | 8 +++++++-
drivers/net/ethernet/hisilicon/hns3/hns3pf/hclge_main.h | 1 +
2 files changed, 8 insertions(+), 1 deletion(-)
diff --git a/drivers/net/ethernet/hisilicon/hns3/hns3pf/hclge_main.c b/drivers/net/ethernet/hisilicon/hns3/hns3pf/hclge_main.c
index 87c5cb0..02a0698 100644
--- a/drivers/net/ethernet/hisilicon/hns3/hns3pf/hclge_main.c
+++ b/drivers/net/ethernet/hisilicon/hns3/hns3pf/hclge_main.c
@@ -2902,7 +2902,8 @@ static int hclge_notify_roce_client(struct hclge_dev *hdev,
int ret = 0;
u16 i;
- if (!client)
+ if (!test_bit(HCLGE_STATE_ROCE_REGISTERED, &hdev->state) ||
+ !client)
return 0;
if (!client->ops->reset_notify)
@@ -8205,6 +8206,8 @@ static int hclge_init_client_instance(struct hnae3_client *client,
if (ret)
goto clear_roce;
+ set_bit(HCLGE_STATE_ROCE_REGISTERED,
+ &hdev->state);
hnae3_set_client_init_flag(hdev->roce_client,
ae_dev, 1);
}
@@ -8236,6 +8239,8 @@ static int hclge_init_client_instance(struct hnae3_client *client,
if (ret)
goto clear_roce;
+ set_bit(HCLGE_STATE_ROCE_REGISTERED,
+ &hdev->state);
hnae3_set_client_init_flag(client, ae_dev, 1);
}
@@ -8267,6 +8272,7 @@ static void hclge_uninit_client_instance(struct hnae3_client *client,
for (i = 0; i < hdev->num_vmdq_vport + 1; i++) {
vport = &hdev->vport[i];
if (hdev->roce_client) {
+ clear_bit(HCLGE_STATE_ROCE_REGISTERED, &hdev->state);
hdev->roce_client->ops->uninit_instance(&vport->roce,
0);
hdev->roce_client = NULL;
diff --git a/drivers/net/ethernet/hisilicon/hns3/hns3pf/hclge_main.h b/drivers/net/ethernet/hisilicon/hns3/hns3pf/hclge_main.h
index 43901ff..2b3bc95 100644
--- a/drivers/net/ethernet/hisilicon/hns3/hns3pf/hclge_main.h
+++ b/drivers/net/ethernet/hisilicon/hns3/hns3pf/hclge_main.h
@@ -202,6 +202,7 @@ enum HCLGE_DEV_STATE {
HCLGE_STATE_DISABLED,
HCLGE_STATE_REMOVING,
HCLGE_STATE_NIC_REGISTERED,
+ HCLGE_STATE_ROCE_REGISTERED,
HCLGE_STATE_SERVICE_INITED,
HCLGE_STATE_SERVICE_SCHED,
HCLGE_STATE_RST_SERVICE_SCHED,
--
2.7.4
^ permalink raw reply related [flat|nested] 35+ messages in thread
* [PATCH net-next 06/12] net: hns3: use HCLGEVF_STATE_NIC_REGISTERED to indicate VF NIC client has registered
2019-05-28 9:02 [PATCH net-next 00/12] code optimizations & bugfixes for HNS3 driver Huazhong Tan
` (4 preceding siblings ...)
2019-05-28 9:02 ` [PATCH net-next 05/12] net: hns3: use HCLGE_STATE_ROCE_REGISTERED to indicate PF ROCE " Huazhong Tan
@ 2019-05-28 9:02 ` Huazhong Tan
2019-05-28 9:02 ` [PATCH net-next 07/12] net: hns3: modify hclge_init_client_instance() Huazhong Tan
` (6 subsequent siblings)
12 siblings, 0 replies; 35+ messages in thread
From: Huazhong Tan @ 2019-05-28 9:02 UTC (permalink / raw)
To: davem
Cc: netdev, linux-kernel, salil.mehta, yisen.zhuang, linuxarm,
Huazhong Tan, Peng Li
When VF NIC client's init_instance() succeeds, it means this client
has been registered successfully, so we use HCLGEVF_STATE_NIC_REGISTERED
to indicate that. And before calling VF NIC client's uninit_instance(),
we clear this state.
So any operation of VF NIC client from HCLGEVF is not allowed if this
state is not set.
Signed-off-by: Huazhong Tan <tanhuazhong@huawei.com>
Signed-off-by: Peng Li <lipeng321@huawei.com>
---
drivers/net/ethernet/hisilicon/hns3/hns3vf/hclgevf_main.c | 7 +++++++
drivers/net/ethernet/hisilicon/hns3/hns3vf/hclgevf_main.h | 1 +
2 files changed, 8 insertions(+)
diff --git a/drivers/net/ethernet/hisilicon/hns3/hns3vf/hclgevf_main.c b/drivers/net/ethernet/hisilicon/hns3/hns3vf/hclgevf_main.c
index 5d53467..8b3f8fd 100644
--- a/drivers/net/ethernet/hisilicon/hns3/hns3vf/hclgevf_main.c
+++ b/drivers/net/ethernet/hisilicon/hns3/hns3vf/hclgevf_main.c
@@ -1306,6 +1306,10 @@ static int hclgevf_notify_client(struct hclgevf_dev *hdev,
struct hnae3_handle *handle = &hdev->nic;
int ret;
+ if (!test_bit(HCLGEVF_STATE_NIC_REGISTERED, &hdev->state) ||
+ !client)
+ return 0;
+
if (!client->ops->reset_notify)
return -EOPNOTSUPP;
@@ -2265,6 +2269,7 @@ static int hclgevf_init_client_instance(struct hnae3_client *client,
goto clear_nic;
hnae3_set_client_init_flag(client, ae_dev, 1);
+ set_bit(HCLGEVF_STATE_NIC_REGISTERED, &hdev->state);
if (netif_msg_drv(&hdev->nic))
hclgevf_info_show(hdev);
@@ -2342,6 +2347,8 @@ static void hclgevf_uninit_client_instance(struct hnae3_client *client,
/* un-init nic/unic, if this was not called by roce client */
if (client->ops->uninit_instance && hdev->nic_client &&
client->type != HNAE3_CLIENT_ROCE) {
+ clear_bit(HCLGEVF_STATE_NIC_REGISTERED, &hdev->state);
+
client->ops->uninit_instance(&hdev->nic, 0);
hdev->nic_client = NULL;
hdev->nic.client = NULL;
diff --git a/drivers/net/ethernet/hisilicon/hns3/hns3vf/hclgevf_main.h b/drivers/net/ethernet/hisilicon/hns3/hns3vf/hclgevf_main.h
index cc52f54..eab1095 100644
--- a/drivers/net/ethernet/hisilicon/hns3/hns3vf/hclgevf_main.h
+++ b/drivers/net/ethernet/hisilicon/hns3/hns3vf/hclgevf_main.h
@@ -130,6 +130,7 @@ enum hclgevf_states {
HCLGEVF_STATE_DOWN,
HCLGEVF_STATE_DISABLED,
HCLGEVF_STATE_IRQ_INITED,
+ HCLGEVF_STATE_NIC_REGISTERED,
/* task states */
HCLGEVF_STATE_SERVICE_SCHED,
HCLGEVF_STATE_RST_SERVICE_SCHED,
--
2.7.4
^ permalink raw reply related [flat|nested] 35+ messages in thread
* [PATCH net-next 07/12] net: hns3: modify hclge_init_client_instance()
2019-05-28 9:02 [PATCH net-next 00/12] code optimizations & bugfixes for HNS3 driver Huazhong Tan
` (5 preceding siblings ...)
2019-05-28 9:02 ` [PATCH net-next 06/12] net: hns3: use HCLGEVF_STATE_NIC_REGISTERED to indicate VF NIC " Huazhong Tan
@ 2019-05-28 9:02 ` Huazhong Tan
2019-05-28 9:02 ` [PATCH net-next 08/12] net: hns3: modify hclgevf_init_client_instance() Huazhong Tan
` (5 subsequent siblings)
12 siblings, 0 replies; 35+ messages in thread
From: Huazhong Tan @ 2019-05-28 9:02 UTC (permalink / raw)
To: davem
Cc: netdev, linux-kernel, salil.mehta, yisen.zhuang, linuxarm,
Huazhong Tan, Peng Li
hclge_init_client_instance() is a little bloated and there is
some duplicated code. This patch adds some cleanup for it.
Signed-off-by: Huazhong Tan <tanhuazhong@huawei.com>
Signed-off-by: Peng Li <lipeng321@huawei.com>
---
.../ethernet/hisilicon/hns3/hns3pf/hclge_main.c | 90 +++++++++++++---------
1 file changed, 53 insertions(+), 37 deletions(-)
diff --git a/drivers/net/ethernet/hisilicon/hns3/hns3pf/hclge_main.c b/drivers/net/ethernet/hisilicon/hns3/hns3pf/hclge_main.c
index 02a0698..b7106a5 100644
--- a/drivers/net/ethernet/hisilicon/hns3/hns3pf/hclge_main.c
+++ b/drivers/net/ethernet/hisilicon/hns3/hns3pf/hclge_main.c
@@ -8169,6 +8169,52 @@ static void hclge_info_show(struct hclge_dev *hdev)
dev_info(dev, "PF info end.\n");
}
+static int hclge_init_nic_client_instance(struct hnae3_ae_dev *ae_dev,
+ struct hclge_vport *vport)
+{
+ struct hnae3_client *client = vport->nic.client;
+ struct hclge_dev *hdev = ae_dev->priv;
+ int ret;
+
+ ret = client->ops->init_instance(&vport->nic);
+ if (ret)
+ return ret;
+
+ set_bit(HCLGE_STATE_NIC_REGISTERED, &hdev->state);
+ hnae3_set_client_init_flag(client, ae_dev, 1);
+
+ if (netif_msg_drv(&hdev->vport->nic))
+ hclge_info_show(hdev);
+
+ return 0;
+}
+
+static int hclge_init_roce_client_instance(struct hnae3_ae_dev *ae_dev,
+ struct hclge_vport *vport)
+{
+ struct hnae3_client *client = vport->roce.client;
+ struct hclge_dev *hdev = ae_dev->priv;
+ int ret;
+
+ if (!hnae3_dev_roce_supported(hdev) || !hdev->roce_client ||
+ !hdev->nic_client)
+ return 0;
+
+ client = hdev->roce_client;
+ ret = hclge_init_roce_base_info(vport);
+ if (ret)
+ return ret;
+
+ ret = client->ops->init_instance(&vport->roce);
+ if (ret)
+ return ret;
+
+ set_bit(HCLGE_STATE_ROCE_REGISTERED, &hdev->state);
+ hnae3_set_client_init_flag(client, ae_dev, 1);
+
+ return 0;
+}
+
static int hclge_init_client_instance(struct hnae3_client *client,
struct hnae3_ae_dev *ae_dev)
{
@@ -8184,33 +8230,13 @@ static int hclge_init_client_instance(struct hnae3_client *client,
hdev->nic_client = client;
vport->nic.client = client;
- ret = client->ops->init_instance(&vport->nic);
+ ret = hclge_init_nic_client_instance(ae_dev, vport);
if (ret)
goto clear_nic;
- hnae3_set_client_init_flag(client, ae_dev, 1);
- set_bit(HCLGE_STATE_NIC_REGISTERED, &hdev->state);
-
- if (netif_msg_drv(&hdev->vport->nic))
- hclge_info_show(hdev);
-
- if (hdev->roce_client &&
- hnae3_dev_roce_supported(hdev)) {
- struct hnae3_client *rc = hdev->roce_client;
-
- ret = hclge_init_roce_base_info(vport);
- if (ret)
- goto clear_roce;
-
- ret = rc->ops->init_instance(&vport->roce);
- if (ret)
- goto clear_roce;
-
- set_bit(HCLGE_STATE_ROCE_REGISTERED,
- &hdev->state);
- hnae3_set_client_init_flag(hdev->roce_client,
- ae_dev, 1);
- }
+ ret = hclge_init_roce_client_instance(ae_dev, vport);
+ if (ret)
+ goto clear_roce;
break;
case HNAE3_CLIENT_UNIC:
@@ -8230,19 +8256,9 @@ static int hclge_init_client_instance(struct hnae3_client *client,
vport->roce.client = client;
}
- if (hdev->roce_client && hdev->nic_client) {
- ret = hclge_init_roce_base_info(vport);
- if (ret)
- goto clear_roce;
-
- ret = client->ops->init_instance(&vport->roce);
- if (ret)
- goto clear_roce;
-
- set_bit(HCLGE_STATE_ROCE_REGISTERED,
- &hdev->state);
- hnae3_set_client_init_flag(client, ae_dev, 1);
- }
+ ret = hclge_init_roce_client_instance(ae_dev, vport);
+ if (ret)
+ goto clear_roce;
break;
default:
--
2.7.4
^ permalink raw reply related [flat|nested] 35+ messages in thread
* [PATCH net-next 08/12] net: hns3: modify hclgevf_init_client_instance()
2019-05-28 9:02 [PATCH net-next 00/12] code optimizations & bugfixes for HNS3 driver Huazhong Tan
` (6 preceding siblings ...)
2019-05-28 9:02 ` [PATCH net-next 07/12] net: hns3: modify hclge_init_client_instance() Huazhong Tan
@ 2019-05-28 9:02 ` Huazhong Tan
2019-05-28 9:02 ` [PATCH net-next 09/12] net: hns3: add handshake with hardware while doing reset Huazhong Tan
` (4 subsequent siblings)
12 siblings, 0 replies; 35+ messages in thread
From: Huazhong Tan @ 2019-05-28 9:02 UTC (permalink / raw)
To: davem
Cc: netdev, linux-kernel, salil.mehta, yisen.zhuang, linuxarm,
Huazhong Tan, Peng Li
hclgevf_init_client_instance() is a little bloated and there is
some duplicated code. This patch adds some cleanup for it.
Signed-off-by: Huazhong Tan <tanhuazhong@huawei.com>
Signed-off-by: Peng Li <lipeng321@huawei.com>
---
.../ethernet/hisilicon/hns3/hns3vf/hclgevf_main.c | 79 ++++++++++++++--------
1 file changed, 50 insertions(+), 29 deletions(-)
diff --git a/drivers/net/ethernet/hisilicon/hns3/hns3vf/hclgevf_main.c b/drivers/net/ethernet/hisilicon/hns3/hns3vf/hclgevf_main.c
index 8b3f8fd..9d5a4f8 100644
--- a/drivers/net/ethernet/hisilicon/hns3/hns3vf/hclgevf_main.c
+++ b/drivers/net/ethernet/hisilicon/hns3/hns3vf/hclgevf_main.c
@@ -2253,6 +2253,48 @@ static void hclgevf_info_show(struct hclgevf_dev *hdev)
dev_info(dev, "VF info end.\n");
}
+static int hclgevf_init_nic_client_instance(struct hnae3_ae_dev *ae_dev,
+ struct hnae3_client *client)
+{
+ struct hclgevf_dev *hdev = ae_dev->priv;
+ int ret;
+
+ ret = client->ops->init_instance(&hdev->nic);
+ if (ret)
+ return ret;
+
+ set_bit(HCLGEVF_STATE_NIC_REGISTERED, &hdev->state);
+ hnae3_set_client_init_flag(client, ae_dev, 1);
+
+ if (netif_msg_drv(&hdev->nic))
+ hclgevf_info_show(hdev);
+
+ return 0;
+}
+
+static int hclgevf_init_roce_client_instance(struct hnae3_ae_dev *ae_dev,
+ struct hnae3_client *client)
+{
+ struct hclgevf_dev *hdev = ae_dev->priv;
+ int ret;
+
+ if (!hnae3_dev_roce_supported(hdev) || !hdev->roce_client ||
+ !hdev->nic_client)
+ return 0;
+
+ ret = hclgevf_init_roce_base_info(hdev);
+ if (ret)
+ return ret;
+
+ ret = client->ops->init_instance(&hdev->roce);
+ if (ret)
+ return ret;
+
+ hnae3_set_client_init_flag(client, ae_dev, 1);
+
+ return 0;
+}
+
static int hclgevf_init_client_instance(struct hnae3_client *client,
struct hnae3_ae_dev *ae_dev)
{
@@ -2264,29 +2306,15 @@ static int hclgevf_init_client_instance(struct hnae3_client *client,
hdev->nic_client = client;
hdev->nic.client = client;
- ret = client->ops->init_instance(&hdev->nic);
+ ret = hclgevf_init_nic_client_instance(ae_dev, client);
if (ret)
goto clear_nic;
- hnae3_set_client_init_flag(client, ae_dev, 1);
- set_bit(HCLGEVF_STATE_NIC_REGISTERED, &hdev->state);
-
- if (netif_msg_drv(&hdev->nic))
- hclgevf_info_show(hdev);
-
- if (hdev->roce_client && hnae3_dev_roce_supported(hdev)) {
- struct hnae3_client *rc = hdev->roce_client;
-
- ret = hclgevf_init_roce_base_info(hdev);
- if (ret)
- goto clear_roce;
- ret = rc->ops->init_instance(&hdev->roce);
- if (ret)
- goto clear_roce;
+ ret = hclgevf_init_roce_client_instance(ae_dev,
+ hdev->roce_client);
+ if (ret)
+ goto clear_roce;
- hnae3_set_client_init_flag(hdev->roce_client, ae_dev,
- 1);
- }
break;
case HNAE3_CLIENT_UNIC:
hdev->nic_client = client;
@@ -2304,17 +2332,10 @@ static int hclgevf_init_client_instance(struct hnae3_client *client,
hdev->roce.client = client;
}
- if (hdev->roce_client && hdev->nic_client) {
- ret = hclgevf_init_roce_base_info(hdev);
- if (ret)
- goto clear_roce;
-
- ret = client->ops->init_instance(&hdev->roce);
- if (ret)
- goto clear_roce;
- }
+ ret = hclgevf_init_roce_client_instance(ae_dev, client);
+ if (ret)
+ goto clear_roce;
- hnae3_set_client_init_flag(client, ae_dev, 1);
break;
default:
return -EINVAL;
--
2.7.4
^ permalink raw reply related [flat|nested] 35+ messages in thread
* [PATCH net-next 09/12] net: hns3: add handshake with hardware while doing reset
2019-05-28 9:02 [PATCH net-next 00/12] code optimizations & bugfixes for HNS3 driver Huazhong Tan
` (7 preceding siblings ...)
2019-05-28 9:02 ` [PATCH net-next 08/12] net: hns3: modify hclgevf_init_client_instance() Huazhong Tan
@ 2019-05-28 9:02 ` Huazhong Tan
2019-05-28 9:03 ` [PATCH net-next 10/12] net: hns3: stop schedule reset service while unloading driver Huazhong Tan
` (3 subsequent siblings)
12 siblings, 0 replies; 35+ messages in thread
From: Huazhong Tan @ 2019-05-28 9:02 UTC (permalink / raw)
To: davem
Cc: netdev, linux-kernel, salil.mehta, yisen.zhuang, linuxarm,
Huazhong Tan, Peng Li
When reset happens, the hardware reset should begin after the
driver has finished its preparatory work, otherwise it may cause
some hardware error.
Before Hardware's reset, it will wait for the driver to write
bit HCLGE_NIC_CMQ_ENABLE of register HCLGE_NIC_CSQ_DEPTH_REG
to 1, while the driver finishes its preparatory work will do that.
BTW, since some cases this register will be cleared, so it needs
some sync time before driver's writing.
Signed-off-by: Huazhong Tan <tanhuazhong@huawei.com>
Signed-off-by: Peng Li <lipeng321@huawei.com>
---
drivers/net/ethernet/hisilicon/hns3/hns3pf/hclge_cmd.c | 6 ++----
drivers/net/ethernet/hisilicon/hns3/hns3pf/hclge_main.c | 10 ++++++++--
drivers/net/ethernet/hisilicon/hns3/hns3vf/hclgevf_cmd.c | 2 --
drivers/net/ethernet/hisilicon/hns3/hns3vf/hclgevf_main.c | 7 ++++++-
4 files changed, 16 insertions(+), 9 deletions(-)
diff --git a/drivers/net/ethernet/hisilicon/hns3/hns3pf/hclge_cmd.c b/drivers/net/ethernet/hisilicon/hns3/hns3pf/hclge_cmd.c
index fbd904e..e532905 100644
--- a/drivers/net/ethernet/hisilicon/hns3/hns3pf/hclge_cmd.c
+++ b/drivers/net/ethernet/hisilicon/hns3/hns3pf/hclge_cmd.c
@@ -110,8 +110,7 @@ static void hclge_cmd_config_regs(struct hclge_cmq_ring *ring)
hclge_write_dev(hw, HCLGE_NIC_CSQ_BASEADDR_H_REG,
upper_32_bits(dma));
hclge_write_dev(hw, HCLGE_NIC_CSQ_DEPTH_REG,
- (ring->desc_num >> HCLGE_NIC_CMQ_DESC_NUM_S) |
- HCLGE_NIC_CMQ_ENABLE);
+ ring->desc_num >> HCLGE_NIC_CMQ_DESC_NUM_S);
hclge_write_dev(hw, HCLGE_NIC_CSQ_HEAD_REG, 0);
hclge_write_dev(hw, HCLGE_NIC_CSQ_TAIL_REG, 0);
} else {
@@ -120,8 +119,7 @@ static void hclge_cmd_config_regs(struct hclge_cmq_ring *ring)
hclge_write_dev(hw, HCLGE_NIC_CRQ_BASEADDR_H_REG,
upper_32_bits(dma));
hclge_write_dev(hw, HCLGE_NIC_CRQ_DEPTH_REG,
- (ring->desc_num >> HCLGE_NIC_CMQ_DESC_NUM_S) |
- HCLGE_NIC_CMQ_ENABLE);
+ ring->desc_num >> HCLGE_NIC_CMQ_DESC_NUM_S);
hclge_write_dev(hw, HCLGE_NIC_CRQ_HEAD_REG, 0);
hclge_write_dev(hw, HCLGE_NIC_CRQ_TAIL_REG, 0);
}
diff --git a/drivers/net/ethernet/hisilicon/hns3/hns3pf/hclge_main.c b/drivers/net/ethernet/hisilicon/hns3/hns3pf/hclge_main.c
index b7106a5..a563815 100644
--- a/drivers/net/ethernet/hisilicon/hns3/hns3pf/hclge_main.c
+++ b/drivers/net/ethernet/hisilicon/hns3/hns3pf/hclge_main.c
@@ -3197,6 +3197,8 @@ static int hclge_reset_prepare_down(struct hclge_dev *hdev)
static int hclge_reset_prepare_wait(struct hclge_dev *hdev)
{
+#define HCLGE_RESET_SYNC_TIME 100
+
u32 reg_val;
int ret = 0;
@@ -3205,7 +3207,7 @@ static int hclge_reset_prepare_wait(struct hclge_dev *hdev)
/* There is no mechanism for PF to know if VF has stopped IO
* for now, just wait 100 ms for VF to stop IO
*/
- msleep(100);
+ msleep(HCLGE_RESET_SYNC_TIME);
ret = hclge_func_reset_cmd(hdev, 0);
if (ret) {
dev_err(&hdev->pdev->dev,
@@ -3225,7 +3227,7 @@ static int hclge_reset_prepare_wait(struct hclge_dev *hdev)
/* There is no mechanism for PF to know if VF has stopped IO
* for now, just wait 100 ms for VF to stop IO
*/
- msleep(100);
+ msleep(HCLGE_RESET_SYNC_TIME);
set_bit(HCLGE_STATE_CMD_DISABLE, &hdev->state);
set_bit(HNAE3_FLR_DOWN, &hdev->flr_state);
hdev->rst_stats.flr_rst_cnt++;
@@ -3239,6 +3241,10 @@ static int hclge_reset_prepare_wait(struct hclge_dev *hdev)
break;
}
+ /* inform hardware that preparatory work is done */
+ msleep(HCLGE_RESET_SYNC_TIME);
+ hclge_write_dev(&hdev->hw, HCLGE_NIC_CSQ_DEPTH_REG,
+ HCLGE_NIC_CMQ_ENABLE);
dev_info(&hdev->pdev->dev, "prepare wait ok\n");
return ret;
diff --git a/drivers/net/ethernet/hisilicon/hns3/hns3vf/hclgevf_cmd.c b/drivers/net/ethernet/hisilicon/hns3/hns3vf/hclgevf_cmd.c
index 71f356f..e1588c0 100644
--- a/drivers/net/ethernet/hisilicon/hns3/hns3vf/hclgevf_cmd.c
+++ b/drivers/net/ethernet/hisilicon/hns3/hns3vf/hclgevf_cmd.c
@@ -98,7 +98,6 @@ static void hclgevf_cmd_config_regs(struct hclgevf_cmq_ring *ring)
hclgevf_write_dev(hw, HCLGEVF_NIC_CSQ_BASEADDR_H_REG, reg_val);
reg_val = (ring->desc_num >> HCLGEVF_NIC_CMQ_DESC_NUM_S);
- reg_val |= HCLGEVF_NIC_CMQ_ENABLE;
hclgevf_write_dev(hw, HCLGEVF_NIC_CSQ_DEPTH_REG, reg_val);
hclgevf_write_dev(hw, HCLGEVF_NIC_CSQ_HEAD_REG, 0);
@@ -110,7 +109,6 @@ static void hclgevf_cmd_config_regs(struct hclgevf_cmq_ring *ring)
hclgevf_write_dev(hw, HCLGEVF_NIC_CRQ_BASEADDR_H_REG, reg_val);
reg_val = (ring->desc_num >> HCLGEVF_NIC_CMQ_DESC_NUM_S);
- reg_val |= HCLGEVF_NIC_CMQ_ENABLE;
hclgevf_write_dev(hw, HCLGEVF_NIC_CRQ_DEPTH_REG, reg_val);
hclgevf_write_dev(hw, HCLGEVF_NIC_CRQ_HEAD_REG, 0);
diff --git a/drivers/net/ethernet/hisilicon/hns3/hns3vf/hclgevf_main.c b/drivers/net/ethernet/hisilicon/hns3/hns3vf/hclgevf_main.c
index 9d5a4f8..ee1eeca 100644
--- a/drivers/net/ethernet/hisilicon/hns3/hns3vf/hclgevf_main.c
+++ b/drivers/net/ethernet/hisilicon/hns3/hns3vf/hclgevf_main.c
@@ -1414,6 +1414,8 @@ static int hclgevf_reset_stack(struct hclgevf_dev *hdev)
static int hclgevf_reset_prepare_wait(struct hclgevf_dev *hdev)
{
+#define HCLGEVF_RESET_SYNC_TIME 100
+
int ret = 0;
switch (hdev->reset_type) {
@@ -1431,7 +1433,10 @@ static int hclgevf_reset_prepare_wait(struct hclgevf_dev *hdev)
}
set_bit(HCLGEVF_STATE_CMD_DISABLE, &hdev->state);
-
+ /* inform hardware that preparatory work is done */
+ msleep(HCLGEVF_RESET_SYNC_TIME);
+ hclgevf_write_dev(&hdev->hw, HCLGEVF_NIC_CSQ_DEPTH_REG,
+ HCLGEVF_NIC_CMQ_ENABLE);
dev_info(&hdev->pdev->dev, "prepare reset(%d) wait done, ret:%d\n",
hdev->reset_type, ret);
--
2.7.4
^ permalink raw reply related [flat|nested] 35+ messages in thread
* [PATCH net-next 10/12] net: hns3: stop schedule reset service while unloading driver
2019-05-28 9:02 [PATCH net-next 00/12] code optimizations & bugfixes for HNS3 driver Huazhong Tan
` (8 preceding siblings ...)
2019-05-28 9:02 ` [PATCH net-next 09/12] net: hns3: add handshake with hardware while doing reset Huazhong Tan
@ 2019-05-28 9:03 ` Huazhong Tan
2019-05-28 9:03 ` [PATCH net-next 11/12] net: hns3: adjust hns3_uninit_phy()'s location in the hns3_client_uninit() Huazhong Tan
` (2 subsequent siblings)
12 siblings, 0 replies; 35+ messages in thread
From: Huazhong Tan @ 2019-05-28 9:03 UTC (permalink / raw)
To: davem
Cc: netdev, linux-kernel, salil.mehta, yisen.zhuang, linuxarm,
Huazhong Tan, Peng Li
When unloading driver, the reset task should not be scheduled
anymore. If disable IRQ before cancel ongoing reset task,
the IRQ may be re-enabled by the reset task.
This patch uses HCLGE_STATE_REMOVING/HCLGEVF_STATE_REMOVING
flag to indicate that the driver is unloading, and we should
stop new coming reset service to be scheduled, otherwise,
reset service will access some resource which has been freed
by unloading.
Signed-off-by: Huazhong Tan <tanhuazhong@huawei.com>
Signed-off-by: Peng Li <lipeng321@huawei.com>
---
drivers/net/ethernet/hisilicon/hns3/hns3pf/hclge_main.c | 4 +++-
drivers/net/ethernet/hisilicon/hns3/hns3vf/hclgevf_main.c | 4 +++-
drivers/net/ethernet/hisilicon/hns3/hns3vf/hclgevf_main.h | 1 +
3 files changed, 7 insertions(+), 2 deletions(-)
diff --git a/drivers/net/ethernet/hisilicon/hns3/hns3pf/hclge_main.c b/drivers/net/ethernet/hisilicon/hns3/hns3pf/hclge_main.c
index a563815..0545f38 100644
--- a/drivers/net/ethernet/hisilicon/hns3/hns3pf/hclge_main.c
+++ b/drivers/net/ethernet/hisilicon/hns3/hns3pf/hclge_main.c
@@ -2427,7 +2427,8 @@ static void hclge_mbx_task_schedule(struct hclge_dev *hdev)
static void hclge_reset_task_schedule(struct hclge_dev *hdev)
{
- if (!test_and_set_bit(HCLGE_STATE_RST_SERVICE_SCHED, &hdev->state))
+ if (!test_bit(HCLGE_STATE_REMOVING, &hdev->state) &&
+ !test_and_set_bit(HCLGE_STATE_RST_SERVICE_SCHED, &hdev->state))
schedule_work(&hdev->rst_service_task);
}
@@ -8385,6 +8386,7 @@ static void hclge_state_init(struct hclge_dev *hdev)
static void hclge_state_uninit(struct hclge_dev *hdev)
{
set_bit(HCLGE_STATE_DOWN, &hdev->state);
+ set_bit(HCLGE_STATE_REMOVING, &hdev->state);
if (hdev->service_timer.function)
del_timer_sync(&hdev->service_timer);
diff --git a/drivers/net/ethernet/hisilicon/hns3/hns3vf/hclgevf_main.c b/drivers/net/ethernet/hisilicon/hns3/hns3vf/hclgevf_main.c
index ee1eeca..87a619d 100644
--- a/drivers/net/ethernet/hisilicon/hns3/hns3vf/hclgevf_main.c
+++ b/drivers/net/ethernet/hisilicon/hns3/hns3vf/hclgevf_main.c
@@ -1621,7 +1621,8 @@ static void hclgevf_get_misc_vector(struct hclgevf_dev *hdev)
void hclgevf_reset_task_schedule(struct hclgevf_dev *hdev)
{
- if (!test_bit(HCLGEVF_STATE_RST_SERVICE_SCHED, &hdev->state)) {
+ if (!test_bit(HCLGEVF_STATE_RST_SERVICE_SCHED, &hdev->state) &&
+ !test_bit(HCLGEVF_STATE_REMOVING, &hdev->state)) {
set_bit(HCLGEVF_STATE_RST_SERVICE_SCHED, &hdev->state);
schedule_work(&hdev->rst_service_task);
}
@@ -2132,6 +2133,7 @@ static void hclgevf_state_init(struct hclgevf_dev *hdev)
static void hclgevf_state_uninit(struct hclgevf_dev *hdev)
{
set_bit(HCLGEVF_STATE_DOWN, &hdev->state);
+ set_bit(HCLGEVF_STATE_REMOVING, &hdev->state);
if (hdev->keep_alive_timer.function)
del_timer_sync(&hdev->keep_alive_timer);
diff --git a/drivers/net/ethernet/hisilicon/hns3/hns3vf/hclgevf_main.h b/drivers/net/ethernet/hisilicon/hns3/hns3vf/hclgevf_main.h
index eab1095..a7fbd38 100644
--- a/drivers/net/ethernet/hisilicon/hns3/hns3vf/hclgevf_main.h
+++ b/drivers/net/ethernet/hisilicon/hns3/hns3vf/hclgevf_main.h
@@ -130,6 +130,7 @@ enum hclgevf_states {
HCLGEVF_STATE_DOWN,
HCLGEVF_STATE_DISABLED,
HCLGEVF_STATE_IRQ_INITED,
+ HCLGEVF_STATE_REMOVING,
HCLGEVF_STATE_NIC_REGISTERED,
/* task states */
HCLGEVF_STATE_SERVICE_SCHED,
--
2.7.4
^ permalink raw reply related [flat|nested] 35+ messages in thread
* [PATCH net-next 11/12] net: hns3: adjust hns3_uninit_phy()'s location in the hns3_client_uninit()
2019-05-28 9:02 [PATCH net-next 00/12] code optimizations & bugfixes for HNS3 driver Huazhong Tan
` (9 preceding siblings ...)
2019-05-28 9:03 ` [PATCH net-next 10/12] net: hns3: stop schedule reset service while unloading driver Huazhong Tan
@ 2019-05-28 9:03 ` Huazhong Tan
2019-05-28 9:03 ` [PATCH net-next 12/12] net: hns3: fix a memory leak issue for hclge_map_unmap_ring_to_vf_vector Huazhong Tan
2019-05-29 0:39 ` [PATCH net-next 00/12] code optimizations & bugfixes for HNS3 driver David Miller
12 siblings, 0 replies; 35+ messages in thread
From: Huazhong Tan @ 2019-05-28 9:03 UTC (permalink / raw)
To: davem
Cc: netdev, linux-kernel, salil.mehta, yisen.zhuang, linuxarm,
Huazhong Tan, Peng Li
hns3_uninit_phy() should be called before checking
HNS3_NIC_STATE_INITED flags, otherwise when this checking fails,
there is nobody to call hns3_uninit_phy().
Fixes: c8a8045b2d0a ("net: hns3: Fix NULL deref when unloading driver")
Signed-off-by: Huazhong Tan <tanhuazhong@huawei.com>
Signed-off-by: Peng Li <lipeng321@huawei.com>
---
drivers/net/ethernet/hisilicon/hns3/hns3_enet.c | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)
diff --git a/drivers/net/ethernet/hisilicon/hns3/hns3_enet.c b/drivers/net/ethernet/hisilicon/hns3/hns3_enet.c
index 5e12705..f6dc305 100644
--- a/drivers/net/ethernet/hisilicon/hns3/hns3_enet.c
+++ b/drivers/net/ethernet/hisilicon/hns3/hns3_enet.c
@@ -3901,6 +3901,8 @@ static void hns3_client_uninit(struct hnae3_handle *handle, bool reset)
hns3_client_stop(handle);
+ hns3_uninit_phy(netdev);
+
if (!test_and_clear_bit(HNS3_NIC_STATE_INITED, &priv->state)) {
netdev_warn(netdev, "already uninitialized\n");
goto out_netdev_free;
@@ -3910,8 +3912,6 @@ static void hns3_client_uninit(struct hnae3_handle *handle, bool reset)
hns3_force_clear_all_rx_ring(handle);
- hns3_uninit_phy(netdev);
-
hns3_nic_uninit_vector_data(priv);
ret = hns3_nic_dealloc_vector_data(priv);
--
2.7.4
^ permalink raw reply related [flat|nested] 35+ messages in thread
* [PATCH net-next 12/12] net: hns3: fix a memory leak issue for hclge_map_unmap_ring_to_vf_vector
2019-05-28 9:02 [PATCH net-next 00/12] code optimizations & bugfixes for HNS3 driver Huazhong Tan
` (10 preceding siblings ...)
2019-05-28 9:03 ` [PATCH net-next 11/12] net: hns3: adjust hns3_uninit_phy()'s location in the hns3_client_uninit() Huazhong Tan
@ 2019-05-28 9:03 ` Huazhong Tan
2019-05-29 0:39 ` [PATCH net-next 00/12] code optimizations & bugfixes for HNS3 driver David Miller
12 siblings, 0 replies; 35+ messages in thread
From: Huazhong Tan @ 2019-05-28 9:03 UTC (permalink / raw)
To: davem
Cc: netdev, linux-kernel, salil.mehta, yisen.zhuang, linuxarm,
Huazhong Tan, Peng Li
When hclge_bind_ring_with_vector() fails,
hclge_map_unmap_ring_to_vf_vector() returns the error
directly, so nobody will free the memory allocated by
hclge_get_ring_chain_from_mbx().
So hclge_free_vector_ring_chain() should be called no matter
hclge_bind_ring_with_vector() fails or not.
Fixes: 84e095d64ed9 ("net: hns3: Change PF to add ring-vect binding & resetQ to mailbox")
Signed-off-by: Huazhong Tan <tanhuazhong@huawei.com>
Signed-off-by: Peng Li <lipeng321@huawei.com>
---
drivers/net/ethernet/hisilicon/hns3/hns3pf/hclge_mbx.c | 4 +---
1 file changed, 1 insertion(+), 3 deletions(-)
diff --git a/drivers/net/ethernet/hisilicon/hns3/hns3pf/hclge_mbx.c b/drivers/net/ethernet/hisilicon/hns3/hns3pf/hclge_mbx.c
index 0e04e63..d20f017 100644
--- a/drivers/net/ethernet/hisilicon/hns3/hns3pf/hclge_mbx.c
+++ b/drivers/net/ethernet/hisilicon/hns3/hns3pf/hclge_mbx.c
@@ -192,12 +192,10 @@ static int hclge_map_unmap_ring_to_vf_vector(struct hclge_vport *vport, bool en,
return ret;
ret = hclge_bind_ring_with_vector(vport, vector_id, en, &ring_chain);
- if (ret)
- return ret;
hclge_free_vector_ring_chain(&ring_chain);
- return 0;
+ return ret;
}
static int hclge_set_vf_promisc_mode(struct hclge_vport *vport,
--
2.7.4
^ permalink raw reply related [flat|nested] 35+ messages in thread
* Re: [PATCH net-next 00/12] code optimizations & bugfixes for HNS3 driver
2019-05-28 9:02 [PATCH net-next 00/12] code optimizations & bugfixes for HNS3 driver Huazhong Tan
` (11 preceding siblings ...)
2019-05-28 9:03 ` [PATCH net-next 12/12] net: hns3: fix a memory leak issue for hclge_map_unmap_ring_to_vf_vector Huazhong Tan
@ 2019-05-29 0:39 ` David Miller
12 siblings, 0 replies; 35+ messages in thread
From: David Miller @ 2019-05-29 0:39 UTC (permalink / raw)
To: tanhuazhong; +Cc: netdev, linux-kernel, salil.mehta, yisen.zhuang, linuxarm
From: Huazhong Tan <tanhuazhong@huawei.com>
Date: Tue, 28 May 2019 17:02:50 +0800
> This patch-set includes code optimizations and bugfixes for the HNS3
> ethernet controller driver.
>
> [patch 1/12] fixes a compile warning reported by kbuild test robot.
>
> [patch 2/12] fixes HNS3_RXD_GRO_SIZE_M macro definition error.
>
> [patch 3/12] adds a debugfs command to dump firmware information.
>
> [patch 4/12 - 10/12] adds some code optimizaions and cleanups for
> reset and driver unloading.
>
> [patch 11/12 - 12/12] adds two bugfixes.
Series applied, thanks.
^ permalink raw reply [flat|nested] 35+ messages in thread
* Re: [PATCH net-next 00/12] code optimizations & bugfixes for HNS3 driver
2019-06-01 0:18 ` David Miller
@ 2019-06-03 1:42 ` tanhuazhong
0 siblings, 0 replies; 35+ messages in thread
From: tanhuazhong @ 2019-06-03 1:42 UTC (permalink / raw)
To: David Miller; +Cc: netdev, linux-kernel, salil.mehta, yisen.zhuang, linuxarm
On 2019/6/1 8:18, David Miller wrote:
> From: David Miller <davem@davemloft.net>
> Date: Fri, 31 May 2019 17:15:29 -0700 (PDT)
>
>> From: Huazhong Tan <tanhuazhong@huawei.com>
>> Date: Fri, 31 May 2019 16:54:46 +0800
>>
>>> This patch-set includes code optimizations and bugfixes for the HNS3
>>> ethernet controller driver.
>>>
>>> [patch 1/12] removes the redundant core reset type
>>>
>>> [patch 2/12 - 3/12] fixes two VLAN related issues
>>>
>>> [patch 4/12] fixes a TM issue
>>>
>>> [patch 5/12 - 12/12] includes some patches related to RAS & MSI-X error
>>
>> Series applied.
>
> I reverted, you need to actually build test the infiniband side of your
> driver.
>
> drivers/infiniband/hw/hns/hns_roce_hw_v2.c: In function ‘hns_roce_v2_msix_interrupt_abn’:
> drivers/infiniband/hw/hns/hns_roce_hw_v2.c:5032:14: warning: passing argument 2 of ‘ops->set_default_reset_request’ makes pointer from integer without a cast [-Wint-conversion]
> HNAE3_FUNC_RESET);
> ^~~~~~~~~~~~~~~~
> drivers/infiniband/hw/hns/hns_roce_hw_v2.c:5032:14: note: expected ‘long unsigned int *’ but argument is of type ‘int’
> C-c C-cmake[5]: *** Deleting file 'drivers/net/wireless/ath/carl9170/cmd.o'
>
Sorry, I will remove [10/12 - 11/12] for V2, these two patches needs to
modify HNS's infiniband driver at the same time, so they will be
upstreamed later with the infiniband's one.
^ permalink raw reply [flat|nested] 35+ messages in thread
* Re: [PATCH net-next 00/12] code optimizations & bugfixes for HNS3 driver
2019-06-01 0:15 ` David Miller
@ 2019-06-01 0:18 ` David Miller
2019-06-03 1:42 ` tanhuazhong
0 siblings, 1 reply; 35+ messages in thread
From: David Miller @ 2019-06-01 0:18 UTC (permalink / raw)
To: tanhuazhong; +Cc: netdev, linux-kernel, salil.mehta, yisen.zhuang, linuxarm
From: David Miller <davem@davemloft.net>
Date: Fri, 31 May 2019 17:15:29 -0700 (PDT)
> From: Huazhong Tan <tanhuazhong@huawei.com>
> Date: Fri, 31 May 2019 16:54:46 +0800
>
>> This patch-set includes code optimizations and bugfixes for the HNS3
>> ethernet controller driver.
>>
>> [patch 1/12] removes the redundant core reset type
>>
>> [patch 2/12 - 3/12] fixes two VLAN related issues
>>
>> [patch 4/12] fixes a TM issue
>>
>> [patch 5/12 - 12/12] includes some patches related to RAS & MSI-X error
>
> Series applied.
I reverted, you need to actually build test the infiniband side of your
driver.
drivers/infiniband/hw/hns/hns_roce_hw_v2.c: In function ‘hns_roce_v2_msix_interrupt_abn’:
drivers/infiniband/hw/hns/hns_roce_hw_v2.c:5032:14: warning: passing argument 2 of ‘ops->set_default_reset_request’ makes pointer from integer without a cast [-Wint-conversion]
HNAE3_FUNC_RESET);
^~~~~~~~~~~~~~~~
drivers/infiniband/hw/hns/hns_roce_hw_v2.c:5032:14: note: expected ‘long unsigned int *’ but argument is of type ‘int’
C-c C-cmake[5]: *** Deleting file 'drivers/net/wireless/ath/carl9170/cmd.o'
^ permalink raw reply [flat|nested] 35+ messages in thread
* Re: [PATCH net-next 00/12] code optimizations & bugfixes for HNS3 driver
2019-05-31 8:54 Huazhong Tan
@ 2019-06-01 0:15 ` David Miller
2019-06-01 0:18 ` David Miller
0 siblings, 1 reply; 35+ messages in thread
From: David Miller @ 2019-06-01 0:15 UTC (permalink / raw)
To: tanhuazhong; +Cc: netdev, linux-kernel, salil.mehta, yisen.zhuang, linuxarm
From: Huazhong Tan <tanhuazhong@huawei.com>
Date: Fri, 31 May 2019 16:54:46 +0800
> This patch-set includes code optimizations and bugfixes for the HNS3
> ethernet controller driver.
>
> [patch 1/12] removes the redundant core reset type
>
> [patch 2/12 - 3/12] fixes two VLAN related issues
>
> [patch 4/12] fixes a TM issue
>
> [patch 5/12 - 12/12] includes some patches related to RAS & MSI-X error
Series applied.
^ permalink raw reply [flat|nested] 35+ messages in thread
* [PATCH net-next 00/12] code optimizations & bugfixes for HNS3 driver
@ 2019-05-31 8:54 Huazhong Tan
2019-06-01 0:15 ` David Miller
0 siblings, 1 reply; 35+ messages in thread
From: Huazhong Tan @ 2019-05-31 8:54 UTC (permalink / raw)
To: davem
Cc: netdev, linux-kernel, salil.mehta, yisen.zhuang, linuxarm, Huazhong Tan
This patch-set includes code optimizations and bugfixes for the HNS3
ethernet controller driver.
[patch 1/12] removes the redundant core reset type
[patch 2/12 - 3/12] fixes two VLAN related issues
[patch 4/12] fixes a TM issue
[patch 5/12 - 12/12] includes some patches related to RAS & MSI-X error
Huazhong Tan (1):
net: hns3: remove redundant core reset
Jian Shen (2):
net: hns3: don't configure new VLAN ID into VF VLAN table when it's
full
net: hns3: fix VLAN filter restore issue after reset
Shiju Jose (2):
net: hns3: delay setting of reset level for HW errors until slot_reset
is called
net: hns3: fix avoid unnecessary resetting for the H/W errors which do
not require reset
Weihang Li (6):
net: hns3: add a check to pointer in error_detected and slot_reset
net: hns3: set ops to null when unregister ad_dev
net: hns3: add handling of two bits in MAC tunnel interrupts
net: hns3: remove setting bit of reset_requests when handling mac
tunnel interrupts
net: hns3: add opcode about query and clear RAS & MSI-X to special
opcode
net: hns3: delay and separate enabling of NIC and ROCE HW errors
Yunsheng Lin (1):
net: hns3: set the port shaper according to MAC speed
drivers/net/ethernet/hisilicon/hns3/hnae3.c | 2 +
drivers/net/ethernet/hisilicon/hns3/hnae3.h | 10 +-
drivers/net/ethernet/hisilicon/hns3/hns3_enet.c | 55 +---
drivers/net/ethernet/hisilicon/hns3/hns3_enet.h | 1 -
.../net/ethernet/hisilicon/hns3/hns3pf/hclge_cmd.c | 6 +-
.../ethernet/hisilicon/hns3/hns3pf/hclge_debugfs.c | 2 +-
.../net/ethernet/hisilicon/hns3/hns3pf/hclge_err.c | 351 ++++++++-------------
.../net/ethernet/hisilicon/hns3/hns3pf/hclge_err.h | 9 +-
.../ethernet/hisilicon/hns3/hns3pf/hclge_main.c | 137 +++++---
.../ethernet/hisilicon/hns3/hns3pf/hclge_main.h | 1 +
.../net/ethernet/hisilicon/hns3/hns3pf/hclge_tm.c | 2 +-
.../ethernet/hisilicon/hns3/hns3vf/hclgevf_main.c | 12 +-
12 files changed, 268 insertions(+), 320 deletions(-)
--
2.7.4
^ permalink raw reply [flat|nested] 35+ messages in thread
* Re: [PATCH net-next 00/12] code optimizations & bugfixes for HNS3 driver
2019-04-24 3:21 Huazhong Tan
@ 2019-04-24 6:27 ` tanhuazhong
0 siblings, 0 replies; 35+ messages in thread
From: tanhuazhong @ 2019-04-24 6:27 UTC (permalink / raw)
To: davem; +Cc: netdev, linux-kernel, salil.mehta, yisen.zhuang, linuxarm, nhorman
Sorry, please ignore this patchset. I will send V2 to fix something else.
On 2019/4/24 11:21, Huazhong Tan wrote:
> This patch-set includes code optimizations and bugfixes for the HNS3
> ethernet controller driver.
>
> [patch 1/12 - 3/12] fixes some bugs about the IO path
>
> [patch 4/12 - 6/12] includes some optimization and bugfixes
> about mailbox message handling
>
> [patch 7/12 - 12/12] adds misc code optimizations and bugfixes.
>
> Huazhong Tan (7):
> net: hns3: stop sending keep alive msg when VF command queue needs
> reinit
> net: hns3: use atomic_t replace u32 for arq's count
> net: hns3: use a reserved byte to identify need_resp flag
> net: hns3: not reset TQP in the DOWN while VF resetting
> net: hns3: stop schedule reset service while unloading driver
> net: hns3: fix pause configure fail problem
> net: hns3: prevent double free in hns3_put_ring_config()
>
> Weihang Li (1):
> net: hns3: remove reset after command send failed
>
> Yunsheng Lin (3):
> net: hns3: fix data race between ring->next_to_clean
> net: hns3: fix for TX clean num when cleaning TX BD
> net: hns3: handle the BD info on the last BD of the packet
>
> liuzhongzhu (1):
> net: hns3: extend the loopback state acquisition time
>
> drivers/net/ethernet/hisilicon/hns3/hclge_mbx.h | 7 ++-
> drivers/net/ethernet/hisilicon/hns3/hns3_enet.c | 65 +++++++++++++---------
> drivers/net/ethernet/hisilicon/hns3/hns3_enet.h | 7 ++-
> .../net/ethernet/hisilicon/hns3/hns3pf/hclge_err.c | 10 ----
> .../ethernet/hisilicon/hns3/hns3pf/hclge_main.c | 8 ++-
> .../net/ethernet/hisilicon/hns3/hns3pf/hclge_mbx.c | 7 +--
> .../net/ethernet/hisilicon/hns3/hns3pf/hclge_tm.c | 5 +-
> .../ethernet/hisilicon/hns3/hns3vf/hclgevf_cmd.c | 2 +-
> .../ethernet/hisilicon/hns3/hns3vf/hclgevf_main.c | 12 ++--
> .../ethernet/hisilicon/hns3/hns3vf/hclgevf_main.h | 1 +
> .../ethernet/hisilicon/hns3/hns3vf/hclgevf_mbx.c | 9 ++-
> 11 files changed, 76 insertions(+), 57 deletions(-)
>
^ permalink raw reply [flat|nested] 35+ messages in thread
* [PATCH net-next 00/12] code optimizations & bugfixes for HNS3 driver
@ 2019-04-24 3:21 Huazhong Tan
2019-04-24 6:27 ` tanhuazhong
0 siblings, 1 reply; 35+ messages in thread
From: Huazhong Tan @ 2019-04-24 3:21 UTC (permalink / raw)
To: davem
Cc: netdev, linux-kernel, salil.mehta, yisen.zhuang, linuxarm,
nhorman, Huazhong Tan
This patch-set includes code optimizations and bugfixes for the HNS3
ethernet controller driver.
[patch 1/12 - 3/12] fixes some bugs about the IO path
[patch 4/12 - 6/12] includes some optimization and bugfixes
about mailbox message handling
[patch 7/12 - 12/12] adds misc code optimizations and bugfixes.
Huazhong Tan (7):
net: hns3: stop sending keep alive msg when VF command queue needs
reinit
net: hns3: use atomic_t replace u32 for arq's count
net: hns3: use a reserved byte to identify need_resp flag
net: hns3: not reset TQP in the DOWN while VF resetting
net: hns3: stop schedule reset service while unloading driver
net: hns3: fix pause configure fail problem
net: hns3: prevent double free in hns3_put_ring_config()
Weihang Li (1):
net: hns3: remove reset after command send failed
Yunsheng Lin (3):
net: hns3: fix data race between ring->next_to_clean
net: hns3: fix for TX clean num when cleaning TX BD
net: hns3: handle the BD info on the last BD of the packet
liuzhongzhu (1):
net: hns3: extend the loopback state acquisition time
drivers/net/ethernet/hisilicon/hns3/hclge_mbx.h | 7 ++-
drivers/net/ethernet/hisilicon/hns3/hns3_enet.c | 65 +++++++++++++---------
drivers/net/ethernet/hisilicon/hns3/hns3_enet.h | 7 ++-
.../net/ethernet/hisilicon/hns3/hns3pf/hclge_err.c | 10 ----
.../ethernet/hisilicon/hns3/hns3pf/hclge_main.c | 8 ++-
.../net/ethernet/hisilicon/hns3/hns3pf/hclge_mbx.c | 7 +--
.../net/ethernet/hisilicon/hns3/hns3pf/hclge_tm.c | 5 +-
.../ethernet/hisilicon/hns3/hns3vf/hclgevf_cmd.c | 2 +-
.../ethernet/hisilicon/hns3/hns3vf/hclgevf_main.c | 12 ++--
.../ethernet/hisilicon/hns3/hns3vf/hclgevf_main.h | 1 +
.../ethernet/hisilicon/hns3/hns3vf/hclgevf_mbx.c | 9 ++-
11 files changed, 76 insertions(+), 57 deletions(-)
--
2.7.4
^ permalink raw reply [flat|nested] 35+ messages in thread
* [PATCH net-next 00/12] code optimizations & bugfixes for HNS3 driver
@ 2019-04-11 12:25 Huazhong Tan
0 siblings, 0 replies; 35+ messages in thread
From: Huazhong Tan @ 2019-04-11 12:25 UTC (permalink / raw)
To: davem
Cc: netdev, linux-kernel, salil.mehta, yisen.zhuang, linuxarm, Huazhong Tan
This patchset includes bugfixes and code optimizations for
the HNS3 ethernet controller driver.
Jian Shen (5):
net: hns3: fix VLAN initialization to be compatible with port base
insert VLAN
net: hns3: fix VLAN offload handle for VLAN inserted by port
net: hns3: fix set port based VLAN for PF
net: hns3: fix set port based VLAN issue for VF
net: hns3: do not initialize MDIO bus when PHY is inexistent
Peng Li (2):
net: hns3: free the pending skb when clean RX ring
net: hns3: code optimization for command queue' spin lock
Weihang Li (1):
net: hns3: set dividual reset level for all RAS and MSI-X errors
Yunsheng Lin (4):
net: hns3: minor refactor for hns3_rx_checksum
net: hns3: add hns3_gro_complete for HW GRO process
net: hns3: always assume no drop TC for performance reason
net: hns3: divide shared buffer between TC
drivers/net/ethernet/hisilicon/hns3/hclge_mbx.h | 3 +
drivers/net/ethernet/hisilicon/hns3/hnae3.h | 9 +
drivers/net/ethernet/hisilicon/hns3/hns3_enet.c | 266 ++++--
.../net/ethernet/hisilicon/hns3/hns3pf/hclge_cmd.c | 4 +-
.../net/ethernet/hisilicon/hns3/hns3pf/hclge_err.c | 956 +++++++++++++--------
.../net/ethernet/hisilicon/hns3/hns3pf/hclge_err.h | 1 +
.../ethernet/hisilicon/hns3/hns3pf/hclge_main.c | 341 ++++++--
.../ethernet/hisilicon/hns3/hns3pf/hclge_main.h | 29 +-
.../net/ethernet/hisilicon/hns3/hns3pf/hclge_mbx.c | 41 +-
.../ethernet/hisilicon/hns3/hns3pf/hclge_mdio.c | 8 +-
.../ethernet/hisilicon/hns3/hns3vf/hclgevf_cmd.c | 4 +-
.../ethernet/hisilicon/hns3/hns3vf/hclgevf_main.c | 51 ++
.../ethernet/hisilicon/hns3/hns3vf/hclgevf_main.h | 2 +
.../ethernet/hisilicon/hns3/hns3vf/hclgevf_mbx.c | 11 +-
14 files changed, 1205 insertions(+), 521 deletions(-)
--
2.7.4
^ permalink raw reply [flat|nested] 35+ messages in thread
* Re: [PATCH net-next 00/12] code optimizations & bugfixes for HNS3 driver
2019-04-06 7:43 Huazhong Tan
@ 2019-04-08 22:31 ` David Miller
0 siblings, 0 replies; 35+ messages in thread
From: David Miller @ 2019-04-08 22:31 UTC (permalink / raw)
To: tanhuazhong; +Cc: netdev, linux-kernel, salil.mehta, yisen.zhuang, linuxarm
From: Huazhong Tan <tanhuazhong@huawei.com>
Date: Sat, 6 Apr 2019 15:43:24 +0800
> This patchset includes bugfixes and code optimizations for
> the HNS3 ethernet controller driver.
Series applied, thanks.
^ permalink raw reply [flat|nested] 35+ messages in thread
* [PATCH net-next 00/12] code optimizations & bugfixes for HNS3 driver
@ 2019-04-06 7:43 Huazhong Tan
2019-04-08 22:31 ` David Miller
0 siblings, 1 reply; 35+ messages in thread
From: Huazhong Tan @ 2019-04-06 7:43 UTC (permalink / raw)
To: davem
Cc: netdev, linux-kernel, salil.mehta, yisen.zhuang, linuxarm, Huazhong Tan
This patchset includes bugfixes and code optimizations for
the HNS3 ethernet controller driver.
Huazhong Tan (12):
net: hns3: set vport alive state to default while resetting
net: hns3: set up the vport alive state while reinitializing
net: hns3: not reset vport who not alive when PF reset
net: hns3: adjust the timing of hns3_client_stop when unloading
net: hns3: deactive the reset timer when reset successfully
net: hns3: ignore lower-level new coming reset
net: hns3: do not request reset when hardware resetting
net: hns3: handle pending reset while reset fail
net: hns3: stop mailbox handling when command queue need re-init
net: hns3: add error handler for initializing command queue
net: hns3: remove resetting check in hclgevf_reset_task_schedule
net: hns3: fix keep_alive_timer not stop problem
drivers/net/ethernet/hisilicon/hns3/hns3_enet.c | 12 ++++++++++--
.../net/ethernet/hisilicon/hns3/hns3pf/hclge_cmd.c | 11 ++++++++---
.../ethernet/hisilicon/hns3/hns3pf/hclge_main.c | 22 +++++++++++++++++++---
.../ethernet/hisilicon/hns3/hns3vf/hclgevf_cmd.c | 11 ++++++++---
.../ethernet/hisilicon/hns3/hns3vf/hclgevf_main.c | 17 ++++++++++++++---
5 files changed, 59 insertions(+), 14 deletions(-)
--
2.7.4
^ permalink raw reply [flat|nested] 35+ messages in thread
* [PATCH net-next 00/12] code optimizations & bugfixes for HNS3 driver
@ 2019-04-03 3:07 Huazhong Tan
0 siblings, 0 replies; 35+ messages in thread
From: Huazhong Tan @ 2019-04-03 3:07 UTC (permalink / raw)
To: davem
Cc: netdev, linux-kernel, salil.mehta, yisen.zhuang, linuxarm, Huazhong Tan
This patchset includes bugfixes and code optimizations for
the HNS3 ethernet controller driver.
Huazhong Tan (4):
net: hns3: simplify hclgevf_cmd_csq_clean
net: hns3: check resetting status in hns3_get_stats()
net: hns3: prevent change MTU when resetting
net: hns3: modify HNS3_NIC_STATE_INITED flag in
hns3_reset_notify_uninit_enet
Jian Shen (2):
net: hns3: add protect when handling mac addr list
net: hns3: split function hnae3_match_n_instantiate()
Peng Li (2):
net: hns3: check 1000M half for hns3_ethtool_ops.set_link_ksettings
net: hns3: return 0 and print warning when hit duplicate MAC
Yonglong Liu (1):
net: hns3: reduce resources use in kdump kernel
Yunsheng Lin (2):
net: hns3: minor optimization for ring_space
net: hns3: minor optimization for datapath
liuzhongzhu (1):
net: hns3: modify the VF network port media type acquisition method
drivers/net/ethernet/hisilicon/hns3/hclge_mbx.h | 1 +
drivers/net/ethernet/hisilicon/hns3/hnae3.c | 40 +++++++++++----------
drivers/net/ethernet/hisilicon/hns3/hns3_enet.c | 41 +++++++++++++++++-----
drivers/net/ethernet/hisilicon/hns3/hns3_enet.h | 15 +++-----
drivers/net/ethernet/hisilicon/hns3/hns3_ethtool.c | 9 +++++
.../ethernet/hisilicon/hns3/hns3pf/hclge_main.c | 30 ++++++++++++++--
.../net/ethernet/hisilicon/hns3/hns3pf/hclge_mbx.c | 23 +++++++++---
.../ethernet/hisilicon/hns3/hns3vf/hclgevf_cmd.c | 35 ++++++++++++------
.../ethernet/hisilicon/hns3/hns3vf/hclgevf_main.c | 23 ++++++++++++
.../ethernet/hisilicon/hns3/hns3vf/hclgevf_mbx.c | 1 -
10 files changed, 163 insertions(+), 55 deletions(-)
--
2.7.4
^ permalink raw reply [flat|nested] 35+ messages in thread
* Re: [Patch net-next 00/12] code optimizations & bugfixes for HNS3 driver
2019-02-23 9:22 [Patch " Huazhong Tan
@ 2019-02-25 6:10 ` David Miller
0 siblings, 0 replies; 35+ messages in thread
From: David Miller @ 2019-02-25 6:10 UTC (permalink / raw)
To: tanhuazhong; +Cc: netdev, linux-kernel, salil.mehta, yisen.zhuang, linuxarm
From: Huazhong Tan <tanhuazhong@huawei.com>
Date: Sat, 23 Feb 2019 17:22:07 +0800
> This patchset includes bugfixes and code optimizations for
> the HNS3 ethernet controller driver.
Series applied, thanks.
^ permalink raw reply [flat|nested] 35+ messages in thread
* [Patch net-next 00/12] code optimizations & bugfixes for HNS3 driver
@ 2019-02-23 9:22 Huazhong Tan
2019-02-25 6:10 ` David Miller
0 siblings, 1 reply; 35+ messages in thread
From: Huazhong Tan @ 2019-02-23 9:22 UTC (permalink / raw)
To: davem
Cc: netdev, linux-kernel, salil.mehta, yisen.zhuang, linuxarm, Huazhong Tan
This patchset includes bugfixes and code optimizations for
the HNS3 ethernet controller driver.
Huazhong Tan (1):
net: hns3: fix improper error handling for hns3_client_start
Jian Shen (2):
net: hns3: enable VF VLAN filter for each VF when initializing
net: hns3: fix get VF RSS issue
Peng Li (1):
net: hns3: add support to config depth for tx|rx ring separately
Shiju Jose (1):
net: hns3: fix setting of the hns reset_type for rdma hw errors
Yunsheng Lin (7):
net: hns3: add xps setting support for hns3 driver
net: hns3: avoid mult + div op in critical data path
net: hns3: limit some variable scope in critical data path
net: hns3: remove some ops in struct hns3_nic_ops
net: hns3: add unlikely for error handling in data path
net: hns3: replace hnae3_set_bit and hnae3_set_field in data path
net: hns3: remove hnae3_get_bit in data path
drivers/net/ethernet/hisilicon/hns3/hclge_mbx.h | 1 +
drivers/net/ethernet/hisilicon/hns3/hnae3.h | 10 +-
drivers/net/ethernet/hisilicon/hns3/hns3_enet.c | 264 +++++++++++----------
drivers/net/ethernet/hisilicon/hns3/hns3_enet.h | 8 +-
drivers/net/ethernet/hisilicon/hns3/hns3_ethtool.c | 54 +++--
.../net/ethernet/hisilicon/hns3/hns3pf/hclge_cmd.h | 4 +-
.../net/ethernet/hisilicon/hns3/hns3pf/hclge_err.c | 36 +--
.../ethernet/hisilicon/hns3/hns3pf/hclge_main.c | 52 ++--
.../ethernet/hisilicon/hns3/hns3pf/hclge_main.h | 3 +-
.../net/ethernet/hisilicon/hns3/hns3pf/hclge_mbx.c | 53 ++++-
.../ethernet/hisilicon/hns3/hns3vf/hclgevf_main.c | 89 ++++++-
.../ethernet/hisilicon/hns3/hns3vf/hclgevf_main.h | 3 +-
12 files changed, 369 insertions(+), 208 deletions(-)
--
2.7.4
^ permalink raw reply [flat|nested] 35+ messages in thread
* Re: [Patch net-next 00/12] code optimizations & bugfixes for HNS3 driver
2019-02-20 2:32 Huazhong Tan
@ 2019-02-22 0:34 ` David Miller
0 siblings, 0 replies; 35+ messages in thread
From: David Miller @ 2019-02-22 0:34 UTC (permalink / raw)
To: tanhuazhong; +Cc: netdev, linux-kernel, salil.mehta, yisen.zhuang, linuxarm
From: Huazhong Tan <tanhuazhong@huawei.com>
Date: Wed, 20 Feb 2019 10:32:39 +0800
> This patchset includes bugfixes and code optimizations for
> the HNS3 ethernet controller driver.
Series applied, thank you.
^ permalink raw reply [flat|nested] 35+ messages in thread
* [Patch net-next 00/12] code optimizations & bugfixes for HNS3 driver
@ 2019-02-20 2:32 Huazhong Tan
2019-02-22 0:34 ` David Miller
0 siblings, 1 reply; 35+ messages in thread
From: Huazhong Tan @ 2019-02-20 2:32 UTC (permalink / raw)
To: davem
Cc: netdev, linux-kernel, salil.mehta, yisen.zhuang, linuxarm, Huazhong Tan
This patchset includes bugfixes and code optimizations for
the HNS3 ethernet controller driver.
Huazhong Tan (2):
net: hns3: uninitialize command queue while unloading PF driver
net: hns3: clear command queue's registers when unloading VF driver
Jian Shen (2):
net: hns3: convert mac advertize and supported from u32 to link mode
net: hns3: fix port info query issue for copper port
Weihang Li (4):
net: hns3: modify print message of ssu common ecc errors
net: hns3: some bugfix of ppu(rcb) ras errors
net: hns3: enable 8~11th bit of mac common msi-x error
net: hns3: fix 6th bit of ppp mpf abnormal errors
Yonglong Liu (2):
net: hns3: add pointer checking at the beginning of the exported
functions.
net: hns3: Check variable is valid before assigning it to another
liuzhongzhu (2):
net: hns3: Record VF unicast and multicast tables
net: hns3: Record VF vlan tables
drivers/net/ethernet/hisilicon/hns3/hclge_mbx.h | 2 +
drivers/net/ethernet/hisilicon/hns3/hnae3.c | 37 ++-
drivers/net/ethernet/hisilicon/hns3/hns3_ethtool.c | 9 +-
.../net/ethernet/hisilicon/hns3/hns3pf/hclge_cmd.c | 26 +++
.../net/ethernet/hisilicon/hns3/hns3pf/hclge_cmd.h | 2 +-
.../net/ethernet/hisilicon/hns3/hns3pf/hclge_err.c | 69 +++++-
.../net/ethernet/hisilicon/hns3/hns3pf/hclge_err.h | 5 +-
.../ethernet/hisilicon/hns3/hns3pf/hclge_main.c | 248 +++++++++++++++++++--
.../ethernet/hisilicon/hns3/hns3pf/hclge_main.h | 40 ++++
.../net/ethernet/hisilicon/hns3/hns3pf/hclge_mbx.c | 32 ++-
.../ethernet/hisilicon/hns3/hns3pf/hclge_mdio.c | 17 +-
.../ethernet/hisilicon/hns3/hns3vf/hclgevf_cmd.c | 20 ++
12 files changed, 451 insertions(+), 56 deletions(-)
--
2.7.4
^ permalink raw reply [flat|nested] 35+ messages in thread
* Re: [PATCH net-next 00/12] code optimizations & bugfixes for HNS3 driver
2019-02-02 14:39 [PATCH " Huazhong Tan
@ 2019-02-02 16:48 ` David Miller
0 siblings, 0 replies; 35+ messages in thread
From: David Miller @ 2019-02-02 16:48 UTC (permalink / raw)
To: tanhuazhong
Cc: netdev, linux-kernel, huangdaode, yisen.zhuang, salil.mehta, linuxarm
From: Huazhong Tan <tanhuazhong@huawei.com>
Date: Sat, 2 Feb 2019 22:39:25 +0800
> This patchset includes bugfixes and code optimizations for the HNS3
> ethernet controller driver
Series applied.
^ permalink raw reply [flat|nested] 35+ messages in thread
* [PATCH net-next 00/12] code optimizations & bugfixes for HNS3 driver
@ 2019-02-02 14:39 Huazhong Tan
2019-02-02 16:48 ` David Miller
0 siblings, 1 reply; 35+ messages in thread
From: Huazhong Tan @ 2019-02-02 14:39 UTC (permalink / raw)
To: davem
Cc: netdev, linux-kernel, huangdaode, yisen.zhuang, salil.mehta,
linuxarm, Huazhong Tan
This patchset includes bugfixes and code optimizations for the HNS3
ethernet controller driver
Huazhong Tan (1):
net: hns3: fix a wrong checking in the hclge_tx_buffer_calc()
Jian Shen (1):
net: hns3: don't allow user to change vlan filter state
Peng Li (2):
net: hns3: fix a code style issue for hns3_update_new_int_gl()
net: hns3: fix an issue for hns3_update_new_int_gl
Weihang Li (2):
net: hns3: add hclge_cmd_check_retval() to parse comman's return value
net: hns3: move some set_bit statement into hclge_prepare_mac_addr
Yonglong Liu (1):
net: hns3: Modify parameter type from int to bool in set_gro_en
Yunsheng Lin (1):
net: hns3: code optimization for hclge_rx_buffer_calc
liuzhongzhu (4):
net: hns3: fix the problem that the supported port is empty
net: hns3: optimize the maximum TC macro
net: hns3: modify the upper limit judgment condition
net: hns3: MAC table entry count function increases operation 0 value
protection measures
.../net/ethernet/hisilicon/hns3/hclge_mbx.h | 4 +-
drivers/net/ethernet/hisilicon/hns3/hnae3.h | 2 +-
.../net/ethernet/hisilicon/hns3/hns3_enet.c | 33 ++--
.../hisilicon/hns3/hns3pf/hclge_cmd.c | 62 +++---
.../hisilicon/hns3/hns3pf/hclge_cmd.h | 7 +-
.../hisilicon/hns3/hns3pf/hclge_debugfs.c | 4 +-
.../hisilicon/hns3/hns3pf/hclge_main.c | 184 ++++++++----------
.../hisilicon/hns3/hns3pf/hclge_mbx.c | 31 ++-
.../hisilicon/hns3/hns3vf/hclgevf_main.c | 34 +++-
.../hisilicon/hns3/hns3vf/hclgevf_main.h | 2 +
.../hisilicon/hns3/hns3vf/hclgevf_mbx.c | 12 ++
11 files changed, 216 insertions(+), 159 deletions(-)
--
2.20.1
^ permalink raw reply [flat|nested] 35+ messages in thread
* Re: [PATCH net-next 00/12] code optimizations & bugfixes for HNS3 driver
2019-01-30 20:55 Huazhong Tan
@ 2019-01-30 22:50 ` David Miller
0 siblings, 0 replies; 35+ messages in thread
From: David Miller @ 2019-01-30 22:50 UTC (permalink / raw)
To: tanhuazhong
Cc: netdev, linux-kernel, huangdaode, yisen.zhuang, salil.mehta, linuxarm
From: Huazhong Tan <tanhuazhong@huawei.com>
Date: Thu, 31 Jan 2019 04:55:40 +0800
> This patchset includes bugfixes and code optimizations for the HNS3
> ethernet controller driver
Series applied, thanks.
^ permalink raw reply [flat|nested] 35+ messages in thread
* [PATCH net-next 00/12] code optimizations & bugfixes for HNS3 driver
@ 2019-01-30 20:55 Huazhong Tan
2019-01-30 22:50 ` David Miller
0 siblings, 1 reply; 35+ messages in thread
From: Huazhong Tan @ 2019-01-30 20:55 UTC (permalink / raw)
To: davem
Cc: netdev, linux-kernel, huangdaode, yisen.zhuang, salil.mehta,
linuxarm, Huazhong Tan
This patchset includes bugfixes and code optimizations for the HNS3
ethernet controller driver
Huazhong Tan (4):
net: hns3: change hnae3_register_ae_dev() to int
net: hns3: Fix NULL deref when unloading driver
net: hns3: fix netif_napi_del() not do problem when unloading
net: hns3: fix improper error handling in the hclge_init_ae_dev()
Jian Shen (4):
net: hns3: fix VF dump register issue
net: hns3: fix for rss result nonuniform
net: hns3: stop sending keep alive msg to PF when VF is resetting
net: hns3: keep flow director state unchanged when reset
Peng Li (2):
net: hns3: use the correct interface to stop|open port
net: hns3: fix an issue for hclgevf_ae_get_hdev
Yunsheng Lin (1):
net: hns3: only support tc 0 for VF
liyongxin (1):
net: hns3: reuse the definition of l3 and l4 header info union
drivers/net/ethernet/hisilicon/hns3/hnae3.c | 10 +-
drivers/net/ethernet/hisilicon/hns3/hnae3.h | 4 +-
.../net/ethernet/hisilicon/hns3/hns3_enet.c | 95 +++++++++----------
.../net/ethernet/hisilicon/hns3/hns3_enet.h | 1 +
.../ethernet/hisilicon/hns3/hns3_ethtool.c | 6 +-
.../hisilicon/hns3/hns3pf/hclge_dcb.c | 12 +--
.../hisilicon/hns3/hns3pf/hclge_main.c | 50 +++++-----
.../hisilicon/hns3/hns3pf/hclge_main.h | 2 +-
.../hisilicon/hns3/hns3pf/hclge_mbx.c | 10 +-
.../hisilicon/hns3/hns3pf/hclge_mdio.c | 8 +-
.../hisilicon/hns3/hns3pf/hclge_mdio.h | 4 +-
.../ethernet/hisilicon/hns3/hns3pf/hclge_tm.c | 22 +++--
.../hisilicon/hns3/hns3vf/hclgevf_main.c | 25 ++++-
13 files changed, 145 insertions(+), 104 deletions(-)
--
2.20.1
^ permalink raw reply [flat|nested] 35+ messages in thread
* Re: [PATCH net-next 00/12] code optimizations & bugfixes for HNS3 driver
2019-01-26 16:49 Huazhong Tan
@ 2019-01-26 17:33 ` David Miller
0 siblings, 0 replies; 35+ messages in thread
From: David Miller @ 2019-01-26 17:33 UTC (permalink / raw)
To: tanhuazhong
Cc: netdev, linux-kernel, huangdaode, yisen.zhuang, salil.mehta, linuxarm
From: Huazhong Tan <tanhuazhong@huawei.com>
Date: Sun, 27 Jan 2019 00:49:09 +0800
> This patchset includes bugfixes and code optimizations for the HNS3
> ethernet controller driver
Series applied, thanks.
^ permalink raw reply [flat|nested] 35+ messages in thread
* [PATCH net-next 00/12] code optimizations & bugfixes for HNS3 driver
@ 2019-01-26 16:49 Huazhong Tan
2019-01-26 17:33 ` David Miller
0 siblings, 1 reply; 35+ messages in thread
From: Huazhong Tan @ 2019-01-26 16:49 UTC (permalink / raw)
To: davem
Cc: netdev, linux-kernel, huangdaode, yisen.zhuang, salil.mehta,
linuxarm, Huazhong Tan
This patchset includes bugfixes and code optimizations for the HNS3
ethernet controller driver
Jian Shen (6):
net: hns3: don't update packet statistics for packets dropped by
hardware
net: hns3: clear pci private data when unload hns3 driver
net: hns3: fix return value handle issue for hclge_set_loopback()
net: hns3: fix broadcast promisc issue for revision 0x20
net: hns3: add initialization for nic state
net: hns3: don't allow vf to enable promisc mode
Peng Li (1):
net: hns3: add 8 BD limit for tx flow
Yunsheng Lin (4):
net: hns3: add error handling in hclge_ieee_setets
net: hns3: do reinitialization while mqprio configuration changed
net: hns3: remove dcb_ops->map_update in hclge_dcb
net: hns3: call hns3_nic_set_real_num_queue with netdev down
liuzhongzhu (1):
net: hns3: After setting the loopback, add the status of getting MAC
drivers/net/ethernet/hisilicon/hns3/hnae3.h | 1 -
.../net/ethernet/hisilicon/hns3/hns3_enet.c | 72 +++++++++----------
.../ethernet/hisilicon/hns3/hns3_ethtool.c | 8 +--
.../hisilicon/hns3/hns3pf/hclge_dcb.c | 51 ++++++++++---
.../hisilicon/hns3/hns3pf/hclge_main.c | 36 +++++++++-
.../hisilicon/hns3/hns3pf/hclge_mbx.c | 7 +-
.../hisilicon/hns3/hns3vf/hclgevf_main.c | 32 +++++----
7 files changed, 138 insertions(+), 69 deletions(-)
--
2.20.1
^ permalink raw reply [flat|nested] 35+ messages in thread
* [PATCH net-next 00/12] code optimizations & bugfixes for HNS3 driver
@ 2019-01-22 16:39 Huazhong Tan
0 siblings, 0 replies; 35+ messages in thread
From: Huazhong Tan @ 2019-01-22 16:39 UTC (permalink / raw)
To: davem
Cc: netdev, linux-kernel, huangdaode, yisen.zhuang, salil.mehta,
linuxarm, Huazhong Tan
This patchset includes bugfixes and code optimizations for the HNS3
ethernet controller driver
Huazhong Tan (1):
net: hns3: fix bug of ethtool_ops.get_channels for VF
Jian Shen (2):
net: hns3: add rx multicast packets statistic
net: hns3: refactor the statistics updating for netdev
Peng Li (2):
net: hns3: add calling roce callback function when link status change
net: hns3: clear param in ring when free ring
Yunsheng Lin (6):
net: hns3: fix rss configuration lost problem when setting channel
net: hns3: fix for shaper not setting when TC num changes
net: hns3: Change fw error code NOT_EXEC to NOT_SUPPORTED
net: hns3: do not return GE PFC setting err when initializing
net: hns3: add ETS TC weight setting in SSU module
net: hns3: fix PFC not setting problem for DCB module
liuzhongzhu (1):
net: hns3: add statistics for PFC frames and MAC control frames
drivers/net/ethernet/hisilicon/hns3/hnae3.h | 3 +-
.../net/ethernet/hisilicon/hns3/hns3_enet.c | 47 ++++--
.../net/ethernet/hisilicon/hns3/hns3_enet.h | 8 +
.../ethernet/hisilicon/hns3/hns3_ethtool.c | 1 +
.../hisilicon/hns3/hns3pf/hclge_cmd.c | 12 +-
.../hisilicon/hns3/hns3pf/hclge_cmd.h | 4 +-
.../hisilicon/hns3/hns3pf/hclge_dcb.c | 19 +--
.../hisilicon/hns3/hns3pf/hclge_main.c | 138 ++++++++++++++----
.../hisilicon/hns3/hns3pf/hclge_main.h | 8 +
.../ethernet/hisilicon/hns3/hns3pf/hclge_tm.c | 70 +++++++--
.../ethernet/hisilicon/hns3/hns3pf/hclge_tm.h | 7 +-
.../hisilicon/hns3/hns3vf/hclgevf_main.c | 10 +-
12 files changed, 254 insertions(+), 73 deletions(-)
--
2.20.1
^ permalink raw reply [flat|nested] 35+ messages in thread
end of thread, other threads:[~2019-06-03 1:42 UTC | newest]
Thread overview: 35+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2019-05-28 9:02 [PATCH net-next 00/12] code optimizations & bugfixes for HNS3 driver Huazhong Tan
2019-05-28 9:02 ` [PATCH net-next 01/12] net: hns3: fix compile warning without CONFIG_RFS_ACCEL Huazhong Tan
2019-05-28 9:02 ` [PATCH net-next 02/12] net: hns3: fix for HNS3_RXD_GRO_SIZE_M macro Huazhong Tan
2019-05-28 9:02 ` [PATCH net-next 03/12] net: hns3: add support for dump firmware statistics by debugfs Huazhong Tan
2019-05-28 9:02 ` [PATCH net-next 04/12] net: hns3: use HCLGE_STATE_NIC_REGISTERED to indicate PF NIC client has registered Huazhong Tan
2019-05-28 9:02 ` [PATCH net-next 05/12] net: hns3: use HCLGE_STATE_ROCE_REGISTERED to indicate PF ROCE " Huazhong Tan
2019-05-28 9:02 ` [PATCH net-next 06/12] net: hns3: use HCLGEVF_STATE_NIC_REGISTERED to indicate VF NIC " Huazhong Tan
2019-05-28 9:02 ` [PATCH net-next 07/12] net: hns3: modify hclge_init_client_instance() Huazhong Tan
2019-05-28 9:02 ` [PATCH net-next 08/12] net: hns3: modify hclgevf_init_client_instance() Huazhong Tan
2019-05-28 9:02 ` [PATCH net-next 09/12] net: hns3: add handshake with hardware while doing reset Huazhong Tan
2019-05-28 9:03 ` [PATCH net-next 10/12] net: hns3: stop schedule reset service while unloading driver Huazhong Tan
2019-05-28 9:03 ` [PATCH net-next 11/12] net: hns3: adjust hns3_uninit_phy()'s location in the hns3_client_uninit() Huazhong Tan
2019-05-28 9:03 ` [PATCH net-next 12/12] net: hns3: fix a memory leak issue for hclge_map_unmap_ring_to_vf_vector Huazhong Tan
2019-05-29 0:39 ` [PATCH net-next 00/12] code optimizations & bugfixes for HNS3 driver David Miller
-- strict thread matches above, loose matches on Subject: below --
2019-05-31 8:54 Huazhong Tan
2019-06-01 0:15 ` David Miller
2019-06-01 0:18 ` David Miller
2019-06-03 1:42 ` tanhuazhong
2019-04-24 3:21 Huazhong Tan
2019-04-24 6:27 ` tanhuazhong
2019-04-11 12:25 Huazhong Tan
2019-04-06 7:43 Huazhong Tan
2019-04-08 22:31 ` David Miller
2019-04-03 3:07 Huazhong Tan
2019-02-23 9:22 [Patch " Huazhong Tan
2019-02-25 6:10 ` David Miller
2019-02-20 2:32 Huazhong Tan
2019-02-22 0:34 ` David Miller
2019-02-02 14:39 [PATCH " Huazhong Tan
2019-02-02 16:48 ` David Miller
2019-01-30 20:55 Huazhong Tan
2019-01-30 22:50 ` David Miller
2019-01-26 16:49 Huazhong Tan
2019-01-26 17:33 ` David Miller
2019-01-22 16:39 Huazhong Tan
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).