* [PATCH net-next 00/12] code optimizations & bugfixes for HNS3 driver
@ 2019-01-26 16:49 Huazhong Tan
2019-01-26 16:49 ` [PATCH net-next 01/12] net: hns3: don't update packet statistics for packets dropped by hardware Huazhong Tan
` (12 more replies)
0 siblings, 13 replies; 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 01/12] net: hns3: don't update packet statistics for packets dropped by hardware
2019-01-26 16:49 [PATCH net-next 00/12] code optimizations & bugfixes for HNS3 driver Huazhong Tan
@ 2019-01-26 16:49 ` Huazhong Tan
2019-01-26 16:49 ` [PATCH net-next 02/12] net: hns3: clear pci private data when unload hns3 driver Huazhong Tan
` (11 subsequent siblings)
12 siblings, 0 replies; 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, Jian Shen, Peng Li, Huazhong Tan
From: Jian Shen <shenjian15@huawei.com>
Packet statistics for netdev should not include the packets dropped
by hardware.
Signed-off-by: Jian Shen <shenjian15@huawei.com>
Signed-off-by: Peng Li <lipeng321@huawei.com>
Signed-off-by: Huazhong Tan <tanhuazhong@huawei.com>
---
drivers/net/ethernet/hisilicon/hns3/hns3_enet.c | 3 ---
1 file changed, 3 deletions(-)
diff --git a/drivers/net/ethernet/hisilicon/hns3/hns3_enet.c b/drivers/net/ethernet/hisilicon/hns3/hns3_enet.c
index 327dde2765ab..5ef3bdc7c808 100644
--- a/drivers/net/ethernet/hisilicon/hns3/hns3_enet.c
+++ b/drivers/net/ethernet/hisilicon/hns3/hns3_enet.c
@@ -1425,9 +1425,7 @@ static void hns3_nic_get_stats64(struct net_device *netdev,
start = u64_stats_fetch_begin_irq(&ring->syncp);
tx_bytes += ring->stats.tx_bytes;
tx_pkts += ring->stats.tx_pkts;
- tx_drop += ring->stats.tx_busy;
tx_drop += ring->stats.sw_err_cnt;
- tx_errors += ring->stats.tx_busy;
tx_errors += ring->stats.sw_err_cnt;
} while (u64_stats_fetch_retry_irq(&ring->syncp, start));
@@ -1438,7 +1436,6 @@ static void hns3_nic_get_stats64(struct net_device *netdev,
rx_bytes += ring->stats.rx_bytes;
rx_pkts += ring->stats.rx_pkts;
rx_drop += ring->stats.non_vld_descs;
- rx_drop += ring->stats.err_pkt_len;
rx_drop += ring->stats.l2_err;
rx_errors += ring->stats.non_vld_descs;
rx_errors += ring->stats.l2_err;
--
2.20.1
^ permalink raw reply related [flat|nested] 35+ messages in thread
* [PATCH net-next 02/12] net: hns3: clear pci private data when unload hns3 driver
2019-01-26 16:49 [PATCH net-next 00/12] code optimizations & bugfixes for HNS3 driver Huazhong Tan
2019-01-26 16:49 ` [PATCH net-next 01/12] net: hns3: don't update packet statistics for packets dropped by hardware Huazhong Tan
@ 2019-01-26 16:49 ` Huazhong Tan
2019-01-26 16:49 ` [PATCH net-next 03/12] net: hns3: add error handling in hclge_ieee_setets Huazhong Tan
` (10 subsequent siblings)
12 siblings, 0 replies; 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, Jian Shen, Peng Li, Huazhong Tan
From: Jian Shen <shenjian15@huawei.com>
When unload hns3 driver, we should clear the pci private data.
Signed-off-by: Jian Shen <shenjian15@huawei.com>
Signed-off-by: Peng Li <lipeng321@huawei.com>
Signed-off-by: Huazhong Tan <tanhuazhong@huawei.com>
---
drivers/net/ethernet/hisilicon/hns3/hns3_enet.c | 1 +
1 file changed, 1 insertion(+)
diff --git a/drivers/net/ethernet/hisilicon/hns3/hns3_enet.c b/drivers/net/ethernet/hisilicon/hns3/hns3_enet.c
index 5ef3bdc7c808..cec09235b1ef 100644
--- a/drivers/net/ethernet/hisilicon/hns3/hns3_enet.c
+++ b/drivers/net/ethernet/hisilicon/hns3/hns3_enet.c
@@ -1781,6 +1781,7 @@ static void hns3_remove(struct pci_dev *pdev)
hns3_disable_sriov(pdev);
hnae3_unregister_ae_dev(ae_dev);
+ pci_set_drvdata(pdev, NULL);
}
/**
--
2.20.1
^ permalink raw reply related [flat|nested] 35+ messages in thread
* [PATCH net-next 03/12] net: hns3: add error handling in hclge_ieee_setets
2019-01-26 16:49 [PATCH net-next 00/12] code optimizations & bugfixes for HNS3 driver Huazhong Tan
2019-01-26 16:49 ` [PATCH net-next 01/12] net: hns3: don't update packet statistics for packets dropped by hardware Huazhong Tan
2019-01-26 16:49 ` [PATCH net-next 02/12] net: hns3: clear pci private data when unload hns3 driver Huazhong Tan
@ 2019-01-26 16:49 ` Huazhong Tan
2019-01-26 16:49 ` [PATCH net-next 04/12] net: hns3: fix return value handle issue for hclge_set_loopback() Huazhong Tan
` (9 subsequent siblings)
12 siblings, 0 replies; 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, Yunsheng Lin, Peng Li, Huazhong Tan
From: Yunsheng Lin <linyunsheng@huawei.com>
Currently hclge_ieee_setets returns error directly when there is
error, which may cause netdev not up problem.
This patch adds some error handling when setting ETS configuration
fails.
Fixes: cacde272dd00 ("net: hns3: Add hclge_dcb module for the support of DCB feature")
Signed-off-by: Yunsheng Lin <linyunsheng@huawei.com>
Signed-off-by: Peng Li <lipeng321@huawei.com>
Signed-off-by: Huazhong Tan <tanhuazhong@huawei.com>
---
.../ethernet/hisilicon/hns3/hns3pf/hclge_dcb.c | 15 +++++++++++++--
1 file changed, 13 insertions(+), 2 deletions(-)
diff --git a/drivers/net/ethernet/hisilicon/hns3/hns3pf/hclge_dcb.c b/drivers/net/ethernet/hisilicon/hns3/hns3pf/hclge_dcb.c
index 3a4a54ee5204..90b566e8e454 100644
--- a/drivers/net/ethernet/hisilicon/hns3/hns3pf/hclge_dcb.c
+++ b/drivers/net/ethernet/hisilicon/hns3/hns3pf/hclge_dcb.c
@@ -232,12 +232,13 @@ static int hclge_ieee_setets(struct hnae3_handle *h, struct ieee_ets *ets)
ret = hclge_ieee_ets_to_tm_info(hdev, ets);
if (ret)
- return ret;
+ goto err_out;
if (map_changed) {
ret = hclge_client_setup_tc(hdev);
if (ret)
- return ret;
+ goto err_out;
+
ret = hclge_notify_client(hdev, HNAE3_INIT_CLIENT);
if (ret)
return ret;
@@ -248,6 +249,16 @@ static int hclge_ieee_setets(struct hnae3_handle *h, struct ieee_ets *ets)
}
return hclge_tm_dwrr_cfg(hdev);
+
+err_out:
+ if (!map_changed)
+ return ret;
+
+ if (hclge_notify_client(hdev, HNAE3_INIT_CLIENT))
+ return ret;
+
+ hclge_notify_client(hdev, HNAE3_UP_CLIENT);
+ return ret;
}
static int hclge_ieee_getpfc(struct hnae3_handle *h, struct ieee_pfc *pfc)
--
2.20.1
^ permalink raw reply related [flat|nested] 35+ messages in thread
* [PATCH net-next 04/12] net: hns3: fix return value handle issue for hclge_set_loopback()
2019-01-26 16:49 [PATCH net-next 00/12] code optimizations & bugfixes for HNS3 driver Huazhong Tan
` (2 preceding siblings ...)
2019-01-26 16:49 ` [PATCH net-next 03/12] net: hns3: add error handling in hclge_ieee_setets Huazhong Tan
@ 2019-01-26 16:49 ` Huazhong Tan
2019-01-26 16:49 ` [PATCH net-next 05/12] net: hns3: fix broadcast promisc issue for revision 0x20 Huazhong Tan
` (8 subsequent siblings)
12 siblings, 0 replies; 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, Jian Shen, Peng Li, Huazhong Tan
From: Jian Shen <shenjian15@huawei.com>
In current code, it always return 0, even loopback mode setting failed.
It's incorrect. This patch fixes return value handle for loopback test.
Fixes: 0f29fc23b21d ("net: hns3: Fix for loopback selftest failed problem")
Signed-off-by: Jian Shen <shenjian15@huawei.com>
Signed-off-by: Peng Li <lipeng321@huawei.com>
Signed-off-by: Huazhong Tan <tanhuazhong@huawei.com>
---
drivers/net/ethernet/hisilicon/hns3/hns3_ethtool.c | 8 ++++----
drivers/net/ethernet/hisilicon/hns3/hns3pf/hclge_main.c | 3 +++
2 files changed, 7 insertions(+), 4 deletions(-)
diff --git a/drivers/net/ethernet/hisilicon/hns3/hns3_ethtool.c b/drivers/net/ethernet/hisilicon/hns3/hns3_ethtool.c
index abb78696d7ce..ed73f7fc9171 100644
--- a/drivers/net/ethernet/hisilicon/hns3/hns3_ethtool.c
+++ b/drivers/net/ethernet/hisilicon/hns3/hns3_ethtool.c
@@ -117,7 +117,7 @@ static int hns3_lp_up(struct net_device *ndev, enum hnae3_loop loop_mode)
ret = hns3_lp_setup(ndev, loop_mode, true);
usleep_range(10000, 20000);
- return 0;
+ return ret;
}
static int hns3_lp_down(struct net_device *ndev, enum hnae3_loop loop_mode)
@@ -334,10 +334,10 @@ static void hns3_self_test(struct net_device *ndev,
continue;
data[test_index] = hns3_lp_up(ndev, loop_type);
- if (!data[test_index]) {
+ if (!data[test_index])
data[test_index] = hns3_lp_run_test(ndev, loop_type);
- hns3_lp_down(ndev, loop_type);
- }
+
+ hns3_lp_down(ndev, loop_type);
if (data[test_index])
eth_test->flags |= ETH_TEST_FL_FAILED;
diff --git a/drivers/net/ethernet/hisilicon/hns3/hns3pf/hclge_main.c b/drivers/net/ethernet/hisilicon/hns3/hns3pf/hclge_main.c
index 64b1589e549f..d5482f9c422c 100644
--- a/drivers/net/ethernet/hisilicon/hns3/hns3pf/hclge_main.c
+++ b/drivers/net/ethernet/hisilicon/hns3/hns3pf/hclge_main.c
@@ -5332,6 +5332,9 @@ static int hclge_set_loopback(struct hnae3_handle *handle,
break;
}
+ if (ret)
+ return ret;
+
kinfo = &vport->nic.kinfo;
for (i = 0; i < kinfo->num_tqps; i++) {
ret = hclge_tqp_enable(hdev, i, 0, en);
--
2.20.1
^ permalink raw reply related [flat|nested] 35+ messages in thread
* [PATCH net-next 05/12] net: hns3: fix broadcast promisc issue for revision 0x20
2019-01-26 16:49 [PATCH net-next 00/12] code optimizations & bugfixes for HNS3 driver Huazhong Tan
` (3 preceding siblings ...)
2019-01-26 16:49 ` [PATCH net-next 04/12] net: hns3: fix return value handle issue for hclge_set_loopback() Huazhong Tan
@ 2019-01-26 16:49 ` Huazhong Tan
2019-01-26 16:49 ` [PATCH net-next 06/12] net: hns3: After setting the loopback, add the status of getting MAC Huazhong Tan
` (7 subsequent siblings)
12 siblings, 0 replies; 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, Jian Shen, Peng Li, Huazhong Tan
From: Jian Shen <shenjian15@huawei.com>
For revision 0x20, vlan filter is always bypassed when enable
broadcast promisc mode. In this case, broadcast packets with
any vlan id can be accpeted. We should disable broadcast promisc
mode until user want enable it.
Fixes: 46a3df9f9718 ("net: hns3: Add HNS3 Acceleration Engine & Compatibility Layer Support")
Signed-off-by: Jian Shen <shenjian15@huawei.com>
Signed-off-by: Peng Li <lipeng321@huawei.com>
Signed-off-by: Huazhong Tan <tanhuazhong@huawei.com>
---
drivers/net/ethernet/hisilicon/hns3/hns3_enet.c | 4 ++--
.../net/ethernet/hisilicon/hns3/hns3pf/hclge_main.c | 10 +++++++++-
2 files changed, 11 insertions(+), 3 deletions(-)
diff --git a/drivers/net/ethernet/hisilicon/hns3/hns3_enet.c b/drivers/net/ethernet/hisilicon/hns3/hns3_enet.c
index cec09235b1ef..322af28ab4b5 100644
--- a/drivers/net/ethernet/hisilicon/hns3/hns3_enet.c
+++ b/drivers/net/ethernet/hisilicon/hns3/hns3_enet.c
@@ -506,7 +506,7 @@ static u8 hns3_get_netdev_flags(struct net_device *netdev)
u8 flags = 0;
if (netdev->flags & IFF_PROMISC) {
- flags = HNAE3_USER_UPE | HNAE3_USER_MPE;
+ flags = HNAE3_USER_UPE | HNAE3_USER_MPE | HNAE3_BPE;
} else {
flags |= HNAE3_VLAN_FLTR;
if (netdev->flags & IFF_ALLMULTI)
@@ -541,13 +541,13 @@ static void hns3_nic_set_rx_mode(struct net_device *netdev)
}
}
- hns3_update_promisc_mode(netdev, new_flags);
/* User mode Promisc mode enable and vlan filtering is disabled to
* let all packets in. MAC-VLAN Table overflow Promisc enabled and
* vlan fitering is enabled
*/
hns3_enable_vlan_filter(netdev, new_flags & HNAE3_VLAN_FLTR);
h->netdev_flags = new_flags;
+ hns3_update_promisc_mode(netdev, new_flags);
}
int hns3_update_promisc_mode(struct net_device *netdev, u8 promisc_flags)
diff --git a/drivers/net/ethernet/hisilicon/hns3/hns3pf/hclge_main.c b/drivers/net/ethernet/hisilicon/hns3/hns3pf/hclge_main.c
index d5482f9c422c..558389a18353 100644
--- a/drivers/net/ethernet/hisilicon/hns3/hns3pf/hclge_main.c
+++ b/drivers/net/ethernet/hisilicon/hns3/hns3pf/hclge_main.c
@@ -3843,8 +3843,16 @@ static int hclge_set_promisc_mode(struct hnae3_handle *handle, bool en_uc_pmc,
struct hclge_vport *vport = hclge_get_vport(handle);
struct hclge_dev *hdev = vport->back;
struct hclge_promisc_param param;
+ bool en_bc_pmc = true;
- hclge_promisc_param_init(¶m, en_uc_pmc, en_mc_pmc, true,
+ /* For revision 0x20, if broadcast promisc enabled, vlan filter is
+ * always bypassed. So broadcast promisc should be disabled until
+ * user enable promisc mode
+ */
+ if (handle->pdev->revision == 0x20)
+ en_bc_pmc = handle->netdev_flags & HNAE3_BPE ? true : false;
+
+ hclge_promisc_param_init(¶m, en_uc_pmc, en_mc_pmc, en_bc_pmc,
vport->vport_id);
return hclge_cmd_set_promisc_mode(hdev, ¶m);
}
--
2.20.1
^ permalink raw reply related [flat|nested] 35+ messages in thread
* [PATCH net-next 06/12] net: hns3: After setting the loopback, add the status of getting MAC
2019-01-26 16:49 [PATCH net-next 00/12] code optimizations & bugfixes for HNS3 driver Huazhong Tan
` (4 preceding siblings ...)
2019-01-26 16:49 ` [PATCH net-next 05/12] net: hns3: fix broadcast promisc issue for revision 0x20 Huazhong Tan
@ 2019-01-26 16:49 ` Huazhong Tan
2019-01-26 16:49 ` [PATCH net-next 07/12] net: hns3: do reinitialization while mqprio configuration changed Huazhong Tan
` (6 subsequent siblings)
12 siblings, 0 replies; 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, liuzhongzhu, Peng Li, Huazhong Tan
From: liuzhongzhu <liuzhongzhu@huawei.com>
After setting the serdes loopback, you need to determine
the status of the MAC negotiation. If a status exception
is obtained after 200ms, a timeout error is returned.
Signed-off-by: liuzhongzhu <liuzhongzhu@huawei.com>
Signed-off-by: Peng Li <lipeng321@huawei.com>
Signed-off-by: Huazhong Tan <tanhuazhong@huawei.com>
---
.../hisilicon/hns3/hns3pf/hclge_main.c | 23 ++++++++++++++++++-
1 file changed, 22 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 558389a18353..ae8336c18264 100644
--- a/drivers/net/ethernet/hisilicon/hns3/hns3pf/hclge_main.c
+++ b/drivers/net/ethernet/hisilicon/hns3/hns3pf/hclge_main.c
@@ -5237,8 +5237,15 @@ static int hclge_set_serdes_loopback(struct hclge_dev *hdev, bool en,
{
#define HCLGE_SERDES_RETRY_MS 10
#define HCLGE_SERDES_RETRY_NUM 100
+
+#define HCLGE_MAC_LINK_STATUS_MS 20
+#define HCLGE_MAC_LINK_STATUS_NUM 10
+#define HCLGE_MAC_LINK_STATUS_DOWN 0
+#define HCLGE_MAC_LINK_STATUS_UP 1
+
struct hclge_serdes_lb_cmd *req;
struct hclge_desc desc;
+ int mac_link_ret = 0;
int ret, i = 0;
u8 loop_mode_b;
@@ -5261,8 +5268,10 @@ static int hclge_set_serdes_loopback(struct hclge_dev *hdev, bool en,
if (en) {
req->enable = loop_mode_b;
req->mask = loop_mode_b;
+ mac_link_ret = HCLGE_MAC_LINK_STATUS_UP;
} else {
req->mask = loop_mode_b;
+ mac_link_ret = HCLGE_MAC_LINK_STATUS_DOWN;
}
ret = hclge_cmd_send(&hdev->hw, &desc, 1);
@@ -5294,7 +5303,19 @@ static int hclge_set_serdes_loopback(struct hclge_dev *hdev, bool en,
}
hclge_cfg_mac_mode(hdev, en);
- return 0;
+
+ i = 0;
+ do {
+ /* serdes Internal loopback, independent of the network cable.*/
+ msleep(HCLGE_MAC_LINK_STATUS_MS);
+ ret = hclge_get_mac_link_status(hdev);
+ if (ret == mac_link_ret)
+ return 0;
+ } while (++i < HCLGE_MAC_LINK_STATUS_NUM);
+
+ dev_err(&hdev->pdev->dev, "config mac mode timeout\n");
+
+ return -EBUSY;
}
static int hclge_tqp_enable(struct hclge_dev *hdev, int tqp_id,
--
2.20.1
^ permalink raw reply related [flat|nested] 35+ messages in thread
* [PATCH net-next 07/12] net: hns3: do reinitialization while mqprio configuration changed
2019-01-26 16:49 [PATCH net-next 00/12] code optimizations & bugfixes for HNS3 driver Huazhong Tan
` (5 preceding siblings ...)
2019-01-26 16:49 ` [PATCH net-next 06/12] net: hns3: After setting the loopback, add the status of getting MAC Huazhong Tan
@ 2019-01-26 16:49 ` Huazhong Tan
2019-01-26 16:49 ` [PATCH net-next 08/12] net: hns3: remove dcb_ops->map_update in hclge_dcb Huazhong Tan
` (5 subsequent siblings)
12 siblings, 0 replies; 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, Yunsheng Lin, Peng Li, Huazhong Tan
From: Yunsheng Lin <linyunsheng@huawei.com>
When user changes the mqprio configuration, enet need to be
uninited and inited besides down'ed and up'ed, because the queue
num may change when the TC num changes.
Also, it is more suitable to do the down/unint/init/up operation
in hclge module using hclge_notify_client, because this config
change may affect PF and its VF.
Signed-off-by: Yunsheng Lin <linyunsheng@huawei.com>
Signed-off-by: Peng Li <lipeng321@huawei.com>
Signed-off-by: Huazhong Tan <tanhuazhong@huawei.com>
---
.../net/ethernet/hisilicon/hns3/hns3_enet.c | 17 ++-------------
.../hisilicon/hns3/hns3pf/hclge_dcb.c | 21 +++++++++++++++++--
2 files changed, 21 insertions(+), 17 deletions(-)
diff --git a/drivers/net/ethernet/hisilicon/hns3/hns3_enet.c b/drivers/net/ethernet/hisilicon/hns3/hns3_enet.c
index 322af28ab4b5..927a980fc211 100644
--- a/drivers/net/ethernet/hisilicon/hns3/hns3_enet.c
+++ b/drivers/net/ethernet/hisilicon/hns3/hns3_enet.c
@@ -1482,7 +1482,6 @@ static int hns3_setup_tc(struct net_device *netdev, void *type_data)
u8 tc = mqprio_qopt->qopt.num_tc;
u16 mode = mqprio_qopt->mode;
u8 hw = mqprio_qopt->qopt.hw;
- bool if_running;
int ret;
if (!((hw == TC_MQPRIO_HW_OFFLOAD_TCS &&
@@ -1495,24 +1494,12 @@ static int hns3_setup_tc(struct net_device *netdev, void *type_data)
if (!netdev)
return -EINVAL;
- if_running = netif_running(netdev);
- if (if_running) {
- hns3_nic_net_stop(netdev);
- msleep(100);
- }
-
ret = (kinfo->dcb_ops && kinfo->dcb_ops->setup_tc) ?
kinfo->dcb_ops->setup_tc(h, tc, prio_tc) : -EOPNOTSUPP;
if (ret)
- goto out;
-
- ret = hns3_nic_set_real_num_queue(netdev);
-
-out:
- if (if_running)
- hns3_nic_net_open(netdev);
+ return ret;
- return ret;
+ return hns3_nic_set_real_num_queue(netdev);
}
static int hns3_nic_setup_tc(struct net_device *dev, enum tc_setup_type type,
diff --git a/drivers/net/ethernet/hisilicon/hns3/hns3pf/hclge_dcb.c b/drivers/net/ethernet/hisilicon/hns3/hns3pf/hclge_dcb.c
index 90b566e8e454..6c387b21f882 100644
--- a/drivers/net/ethernet/hisilicon/hns3/hns3pf/hclge_dcb.c
+++ b/drivers/net/ethernet/hisilicon/hns3/hns3pf/hclge_dcb.c
@@ -370,12 +370,25 @@ static int hclge_setup_tc(struct hnae3_handle *h, u8 tc, u8 *prio_tc)
if (ret)
return -EINVAL;
+ ret = hclge_notify_client(hdev, HNAE3_DOWN_CLIENT);
+ if (ret)
+ return ret;
+
+ ret = hclge_notify_client(hdev, HNAE3_UNINIT_CLIENT);
+ if (ret)
+ return ret;
+
hclge_tm_schd_info_update(hdev, tc);
hclge_tm_prio_tc_info_update(hdev, prio_tc);
ret = hclge_tm_init_hw(hdev, false);
- if (ret)
+ if (ret) {
+ if (hclge_notify_client(hdev, HNAE3_INIT_CLIENT))
+ return ret;
+
+ hclge_notify_client(hdev, HNAE3_UP_CLIENT);
return ret;
+ }
hdev->flag &= ~HCLGE_FLAG_DCB_ENABLE;
@@ -384,7 +397,11 @@ static int hclge_setup_tc(struct hnae3_handle *h, u8 tc, u8 *prio_tc)
else
hdev->flag &= ~HCLGE_FLAG_MQPRIO_ENABLE;
- return 0;
+ ret = hclge_notify_client(hdev, HNAE3_INIT_CLIENT);
+ if (ret)
+ return ret;
+
+ return hclge_notify_client(hdev, HNAE3_UP_CLIENT);
}
static const struct hnae3_dcb_ops hns3_dcb_ops = {
--
2.20.1
^ permalink raw reply related [flat|nested] 35+ messages in thread
* [PATCH net-next 08/12] net: hns3: remove dcb_ops->map_update in hclge_dcb
2019-01-26 16:49 [PATCH net-next 00/12] code optimizations & bugfixes for HNS3 driver Huazhong Tan
` (6 preceding siblings ...)
2019-01-26 16:49 ` [PATCH net-next 07/12] net: hns3: do reinitialization while mqprio configuration changed Huazhong Tan
@ 2019-01-26 16:49 ` Huazhong Tan
2019-01-26 16:49 ` [PATCH net-next 09/12] net: hns3: call hns3_nic_set_real_num_queue with netdev down Huazhong Tan
` (4 subsequent siblings)
12 siblings, 0 replies; 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, Yunsheng Lin, Peng Li, Huazhong Tan
From: Yunsheng Lin <linyunsheng@huawei.com>
After doing down/uninit/init/up in hclge_dcb, it is not necessary
to call dcb_ops->map_update in enet, so hclge_map_update can be
called directly in hclge_dcb.
This is for preparing to call hns3_nic_set_real_num_queue with
netdev down when user changes mqprio configuration.
Signed-off-by: Yunsheng Lin <linyunsheng@huawei.com>
Signed-off-by: Peng Li <lipeng321@huawei.com>
Signed-off-by: Huazhong Tan <tanhuazhong@huawei.com>
---
drivers/net/ethernet/hisilicon/hns3/hnae3.h | 1 -
drivers/net/ethernet/hisilicon/hns3/hns3_enet.c | 10 +---------
drivers/net/ethernet/hisilicon/hns3/hns3pf/hclge_dcb.c | 9 +++++----
3 files changed, 6 insertions(+), 14 deletions(-)
diff --git a/drivers/net/ethernet/hisilicon/hns3/hnae3.h b/drivers/net/ethernet/hisilicon/hns3/hnae3.h
index dc3db45361d3..585800e634e6 100644
--- a/drivers/net/ethernet/hisilicon/hns3/hnae3.h
+++ b/drivers/net/ethernet/hisilicon/hns3/hnae3.h
@@ -477,7 +477,6 @@ struct hnae3_dcb_ops {
u8 (*getdcbx)(struct hnae3_handle *);
u8 (*setdcbx)(struct hnae3_handle *, u8);
- int (*map_update)(struct hnae3_handle *);
int (*setup_tc)(struct hnae3_handle *, u8, u8 *);
};
diff --git a/drivers/net/ethernet/hisilicon/hns3/hns3_enet.c b/drivers/net/ethernet/hisilicon/hns3/hns3_enet.c
index 927a980fc211..0ecaeab2dad4 100644
--- a/drivers/net/ethernet/hisilicon/hns3/hns3_enet.c
+++ b/drivers/net/ethernet/hisilicon/hns3/hns3_enet.c
@@ -3737,7 +3737,6 @@ static int hns3_client_setup_tc(struct hnae3_handle *handle, u8 tc)
{
struct hnae3_knic_private_info *kinfo = &handle->kinfo;
struct net_device *ndev = kinfo->netdev;
- int ret;
if (tc > HNAE3_MAX_TC)
return -EINVAL;
@@ -3745,14 +3744,7 @@ static int hns3_client_setup_tc(struct hnae3_handle *handle, u8 tc)
if (!ndev)
return -ENODEV;
- ret = (kinfo->dcb_ops && kinfo->dcb_ops->map_update) ?
- kinfo->dcb_ops->map_update(handle) : -EOPNOTSUPP;
- if (ret)
- return ret;
-
- ret = hns3_nic_set_real_num_queue(ndev);
-
- return ret;
+ return hns3_nic_set_real_num_queue(ndev);
}
static int hns3_recover_hw_addr(struct net_device *ndev)
diff --git a/drivers/net/ethernet/hisilicon/hns3/hns3pf/hclge_dcb.c b/drivers/net/ethernet/hisilicon/hns3/hns3pf/hclge_dcb.c
index 6c387b21f882..de8e38cca507 100644
--- a/drivers/net/ethernet/hisilicon/hns3/hns3pf/hclge_dcb.c
+++ b/drivers/net/ethernet/hisilicon/hns3/hns3pf/hclge_dcb.c
@@ -156,10 +156,8 @@ static int hclge_ets_validate(struct hclge_dev *hdev, struct ieee_ets *ets,
return 0;
}
-static int hclge_map_update(struct hnae3_handle *h)
+static int hclge_map_update(struct hclge_dev *hdev)
{
- struct hclge_vport *vport = hclge_get_vport(h);
- struct hclge_dev *hdev = vport->back;
int ret;
ret = hclge_tm_schd_setup_hw(hdev);
@@ -235,6 +233,10 @@ static int hclge_ieee_setets(struct hnae3_handle *h, struct ieee_ets *ets)
goto err_out;
if (map_changed) {
+ ret = hclge_map_update(hdev);
+ if (ret)
+ goto err_out;
+
ret = hclge_client_setup_tc(hdev);
if (ret)
goto err_out;
@@ -411,7 +413,6 @@ static const struct hnae3_dcb_ops hns3_dcb_ops = {
.ieee_setpfc = hclge_ieee_setpfc,
.getdcbx = hclge_getdcbx,
.setdcbx = hclge_setdcbx,
- .map_update = hclge_map_update,
.setup_tc = hclge_setup_tc,
};
--
2.20.1
^ permalink raw reply related [flat|nested] 35+ messages in thread
* [PATCH net-next 09/12] net: hns3: call hns3_nic_set_real_num_queue with netdev down
2019-01-26 16:49 [PATCH net-next 00/12] code optimizations & bugfixes for HNS3 driver Huazhong Tan
` (7 preceding siblings ...)
2019-01-26 16:49 ` [PATCH net-next 08/12] net: hns3: remove dcb_ops->map_update in hclge_dcb Huazhong Tan
@ 2019-01-26 16:49 ` Huazhong Tan
2019-01-26 16:49 ` [PATCH net-next 10/12] net: hns3: add 8 BD limit for tx flow Huazhong Tan
` (3 subsequent siblings)
12 siblings, 0 replies; 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, Yunsheng Lin, Peng Li, Huazhong Tan
From: Yunsheng Lin <linyunsheng@huawei.com>
hns3_client_setup_tc in enet is for updating TC configuration to
stack, and hclge_setup_tc in hclge_dcb is mainly for setting the
configuration to hardware.
This patch removes the hns3_nic_set_real_num_queue from
hns3_setup_tc in enet, and call hclge_client_setup_tc to update
TC configuration to stack with netdev down, because the netdev
down operation is done in hclge_dcb now.
Signed-off-by: Yunsheng Lin <linyunsheng@huawei.com>
Signed-off-by: Peng Li <lipeng321@huawei.com>
Signed-off-by: Huazhong Tan <tanhuazhong@huawei.com>
---
.../net/ethernet/hisilicon/hns3/hns3_enet.c | 7 +------
.../ethernet/hisilicon/hns3/hns3pf/hclge_dcb.c | 18 ++++++++++++------
2 files changed, 13 insertions(+), 12 deletions(-)
diff --git a/drivers/net/ethernet/hisilicon/hns3/hns3_enet.c b/drivers/net/ethernet/hisilicon/hns3/hns3_enet.c
index 0ecaeab2dad4..93e3e38ba852 100644
--- a/drivers/net/ethernet/hisilicon/hns3/hns3_enet.c
+++ b/drivers/net/ethernet/hisilicon/hns3/hns3_enet.c
@@ -1482,7 +1482,6 @@ static int hns3_setup_tc(struct net_device *netdev, void *type_data)
u8 tc = mqprio_qopt->qopt.num_tc;
u16 mode = mqprio_qopt->mode;
u8 hw = mqprio_qopt->qopt.hw;
- int ret;
if (!((hw == TC_MQPRIO_HW_OFFLOAD_TCS &&
mode == TC_MQPRIO_MODE_CHANNEL) || (!hw && tc == 0)))
@@ -1494,12 +1493,8 @@ static int hns3_setup_tc(struct net_device *netdev, void *type_data)
if (!netdev)
return -EINVAL;
- ret = (kinfo->dcb_ops && kinfo->dcb_ops->setup_tc) ?
+ return (kinfo->dcb_ops && kinfo->dcb_ops->setup_tc) ?
kinfo->dcb_ops->setup_tc(h, tc, prio_tc) : -EOPNOTSUPP;
- if (ret)
- return ret;
-
- return hns3_nic_set_real_num_queue(netdev);
}
static int hns3_nic_setup_tc(struct net_device *dev, enum tc_setup_type type,
diff --git a/drivers/net/ethernet/hisilicon/hns3/hns3pf/hclge_dcb.c b/drivers/net/ethernet/hisilicon/hns3/hns3pf/hclge_dcb.c
index de8e38cca507..961aedb0e20f 100644
--- a/drivers/net/ethernet/hisilicon/hns3/hns3pf/hclge_dcb.c
+++ b/drivers/net/ethernet/hisilicon/hns3/hns3pf/hclge_dcb.c
@@ -384,13 +384,12 @@ static int hclge_setup_tc(struct hnae3_handle *h, u8 tc, u8 *prio_tc)
hclge_tm_prio_tc_info_update(hdev, prio_tc);
ret = hclge_tm_init_hw(hdev, false);
- if (ret) {
- if (hclge_notify_client(hdev, HNAE3_INIT_CLIENT))
- return ret;
+ if (ret)
+ goto err_out;
- hclge_notify_client(hdev, HNAE3_UP_CLIENT);
- return ret;
- }
+ ret = hclge_client_setup_tc(hdev);
+ if (ret)
+ goto err_out;
hdev->flag &= ~HCLGE_FLAG_DCB_ENABLE;
@@ -404,6 +403,13 @@ static int hclge_setup_tc(struct hnae3_handle *h, u8 tc, u8 *prio_tc)
return ret;
return hclge_notify_client(hdev, HNAE3_UP_CLIENT);
+
+err_out:
+ if (hclge_notify_client(hdev, HNAE3_INIT_CLIENT))
+ return ret;
+
+ hclge_notify_client(hdev, HNAE3_UP_CLIENT);
+ return ret;
}
static const struct hnae3_dcb_ops hns3_dcb_ops = {
--
2.20.1
^ permalink raw reply related [flat|nested] 35+ messages in thread
* [PATCH net-next 10/12] net: hns3: add 8 BD limit for tx flow
2019-01-26 16:49 [PATCH net-next 00/12] code optimizations & bugfixes for HNS3 driver Huazhong Tan
` (8 preceding siblings ...)
2019-01-26 16:49 ` [PATCH net-next 09/12] net: hns3: call hns3_nic_set_real_num_queue with netdev down Huazhong Tan
@ 2019-01-26 16:49 ` Huazhong Tan
2019-01-26 16:49 ` [PATCH net-next 11/12] net: hns3: add initialization for nic state Huazhong Tan
` (2 subsequent siblings)
12 siblings, 0 replies; 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, Peng Li, Huazhong Tan
From: Peng Li <lipeng321@huawei.com>
A single transmit packet can span up to 8 descriptors according
to the HW limit. If a skb has more than 8 frags, driver uses
skb_copy to get a new skb which has less frags.
Signed-off-by: Peng Li <lipeng321@huawei.com>
Signed-off-by: Huazhong Tan <tanhuazhong@huawei.com>
---
.../net/ethernet/hisilicon/hns3/hns3_enet.c | 28 ++++++++++++++++++-
1 file changed, 27 insertions(+), 1 deletion(-)
diff --git a/drivers/net/ethernet/hisilicon/hns3/hns3_enet.c b/drivers/net/ethernet/hisilicon/hns3/hns3_enet.c
index 93e3e38ba852..216f3dd25cd6 100644
--- a/drivers/net/ethernet/hisilicon/hns3/hns3_enet.c
+++ b/drivers/net/ethernet/hisilicon/hns3/hns3_enet.c
@@ -1133,6 +1133,7 @@ static int hns3_nic_maybe_stop_tso(struct sk_buff **out_skb, int *bnum,
struct hns3_enet_ring *ring)
{
struct sk_buff *skb = *out_skb;
+ struct sk_buff *new_skb = NULL;
struct skb_frag_struct *frag;
int bdnum_for_frag;
int frag_num;
@@ -1155,7 +1156,19 @@ static int hns3_nic_maybe_stop_tso(struct sk_buff **out_skb, int *bnum,
buf_num += bdnum_for_frag;
}
- if (buf_num > ring_space(ring))
+ if (unlikely(buf_num > HNS3_MAX_BD_PER_FRAG)) {
+ buf_num = (skb->len + HNS3_MAX_BD_SIZE - 1) / HNS3_MAX_BD_SIZE;
+ if (ring_space(ring) < buf_num)
+ return -EBUSY;
+ /* manual split the send packet */
+ new_skb = skb_copy(skb, GFP_ATOMIC);
+ if (!new_skb)
+ return -ENOMEM;
+ dev_kfree_skb_any(skb);
+ *out_skb = new_skb;
+ }
+
+ if (unlikely(ring_space(ring) < buf_num))
return -EBUSY;
*bnum = buf_num;
@@ -1166,11 +1179,24 @@ static int hns3_nic_maybe_stop_tx(struct sk_buff **out_skb, int *bnum,
struct hns3_enet_ring *ring)
{
struct sk_buff *skb = *out_skb;
+ struct sk_buff *new_skb = NULL;
int buf_num;
/* No. of segments (plus a header) */
buf_num = skb_shinfo(skb)->nr_frags + 1;
+ if (unlikely(buf_num > HNS3_MAX_BD_PER_FRAG)) {
+ buf_num = (skb->len + HNS3_MAX_BD_SIZE - 1) / HNS3_MAX_BD_SIZE;
+ if (ring_space(ring) < buf_num)
+ return -EBUSY;
+ /* manual split the send packet */
+ new_skb = skb_copy(skb, GFP_ATOMIC);
+ if (!new_skb)
+ return -ENOMEM;
+ dev_kfree_skb_any(skb);
+ *out_skb = new_skb;
+ }
+
if (unlikely(ring_space(ring) < buf_num))
return -EBUSY;
--
2.20.1
^ permalink raw reply related [flat|nested] 35+ messages in thread
* [PATCH net-next 11/12] net: hns3: add initialization for nic state
2019-01-26 16:49 [PATCH net-next 00/12] code optimizations & bugfixes for HNS3 driver Huazhong Tan
` (9 preceding siblings ...)
2019-01-26 16:49 ` [PATCH net-next 10/12] net: hns3: add 8 BD limit for tx flow Huazhong Tan
@ 2019-01-26 16:49 ` Huazhong Tan
2019-01-26 16:49 ` [PATCH net-next 12/12] net: hns3: don't allow vf to enable promisc mode Huazhong Tan
2019-01-26 17:33 ` [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-01-26 16:49 UTC (permalink / raw)
To: davem
Cc: netdev, linux-kernel, huangdaode, yisen.zhuang, salil.mehta,
linuxarm, Jian Shen, Huazhong Tan
From: Jian Shen <shenjian15@huawei.com>
This patch adds initialization for nic state, sets flag
HNS3_NIC_STATE_DOWN when initialize, clears it before
vectors and napi being enabled in the hns3_nic_net_up(),
and sets it back in the error handler.
Signed-off-by: Jian Shen <shenjian15@huawei.com>
Signed-off-by: Huazhong Tan <tanhuazhong@huawei.com>
---
drivers/net/ethernet/hisilicon/hns3/hns3_enet.c | 6 ++++--
1 file changed, 4 insertions(+), 2 deletions(-)
diff --git a/drivers/net/ethernet/hisilicon/hns3/hns3_enet.c b/drivers/net/ethernet/hisilicon/hns3/hns3_enet.c
index 216f3dd25cd6..4b38c37eef8f 100644
--- a/drivers/net/ethernet/hisilicon/hns3/hns3_enet.c
+++ b/drivers/net/ethernet/hisilicon/hns3/hns3_enet.c
@@ -348,6 +348,8 @@ static int hns3_nic_net_up(struct net_device *netdev)
return ret;
}
+ clear_bit(HNS3_NIC_STATE_DOWN, &priv->state);
+
/* enable the vectors */
for (i = 0; i < priv->vector_num; i++)
hns3_vector_enable(&priv->tqp_vector[i]);
@@ -361,11 +363,10 @@ static int hns3_nic_net_up(struct net_device *netdev)
if (ret)
goto out_start_err;
- clear_bit(HNS3_NIC_STATE_DOWN, &priv->state);
-
return 0;
out_start_err:
+ set_bit(HNS3_NIC_STATE_DOWN, &priv->state);
while (j--)
hns3_tqp_disable(h->kinfo.tqp[j]);
@@ -3614,6 +3615,7 @@ static int hns3_client_init(struct hnae3_handle *handle)
priv->netdev = netdev;
priv->ae_handle = handle;
priv->tx_timeout_count = 0;
+ set_bit(HNS3_NIC_STATE_DOWN, &priv->state);
handle->kinfo.netdev = netdev;
handle->priv = (void *)priv;
--
2.20.1
^ permalink raw reply related [flat|nested] 35+ messages in thread
* [PATCH net-next 12/12] net: hns3: don't allow vf to enable promisc mode
2019-01-26 16:49 [PATCH net-next 00/12] code optimizations & bugfixes for HNS3 driver Huazhong Tan
` (10 preceding siblings ...)
2019-01-26 16:49 ` [PATCH net-next 11/12] net: hns3: add initialization for nic state Huazhong Tan
@ 2019-01-26 16:49 ` Huazhong Tan
2019-01-26 17:33 ` [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-01-26 16:49 UTC (permalink / raw)
To: davem
Cc: netdev, linux-kernel, huangdaode, yisen.zhuang, salil.mehta,
linuxarm, Jian Shen, Huazhong Tan
From: Jian Shen <shenjian15@huawei.com>
VF can receive packets of other functions when in promisc
mode. It's not safe, so don't allow VF to enable promisc
mode.
Signed-off-by: Jian Shen <shenjian15@huawei.com>
Signed-off-by: Huazhong Tan <tanhuazhong@huawei.com>
---
.../hisilicon/hns3/hns3pf/hclge_mbx.c | 7 ++--
.../hisilicon/hns3/hns3vf/hclgevf_main.c | 32 +++++++++++--------
2 files changed, 21 insertions(+), 18 deletions(-)
diff --git a/drivers/net/ethernet/hisilicon/hns3/hns3pf/hclge_mbx.c b/drivers/net/ethernet/hisilicon/hns3/hns3pf/hclge_mbx.c
index a1de451a85df..3603034aa45c 100644
--- a/drivers/net/ethernet/hisilicon/hns3/hns3pf/hclge_mbx.c
+++ b/drivers/net/ethernet/hisilicon/hns3/hns3pf/hclge_mbx.c
@@ -203,12 +203,11 @@ static int hclge_map_unmap_ring_to_vf_vector(struct hclge_vport *vport, bool en,
static int hclge_set_vf_promisc_mode(struct hclge_vport *vport,
struct hclge_mbx_vf_to_pf_cmd *req)
{
- bool en_uc = req->msg[1] ? true : false;
- bool en_mc = req->msg[2] ? true : false;
+ bool en_bc = req->msg[1] ? true : false;
struct hclge_promisc_param param;
- /* always enable broadcast promisc bit */
- hclge_promisc_param_init(¶m, en_uc, en_mc, true, vport->vport_id);
+ /* vf is not allowed to enable unicast/multicast broadcast */
+ hclge_promisc_param_init(¶m, false, false, en_bc, vport->vport_id);
return hclge_cmd_set_promisc_mode(vport->back, ¶m);
}
diff --git a/drivers/net/ethernet/hisilicon/hns3/hns3vf/hclgevf_main.c b/drivers/net/ethernet/hisilicon/hns3/hns3vf/hclgevf_main.c
index 24b54083b5f9..fc99a0c70164 100644
--- a/drivers/net/ethernet/hisilicon/hns3/hns3vf/hclgevf_main.c
+++ b/drivers/net/ethernet/hisilicon/hns3/hns3vf/hclgevf_main.c
@@ -969,33 +969,29 @@ static int hclgevf_put_vector(struct hnae3_handle *handle, int vector)
}
static int hclgevf_cmd_set_promisc_mode(struct hclgevf_dev *hdev,
- bool en_uc_pmc, bool en_mc_pmc)
+ bool en_bc_pmc)
{
struct hclge_mbx_vf_to_pf_cmd *req;
struct hclgevf_desc desc;
- int status;
+ int ret;
req = (struct hclge_mbx_vf_to_pf_cmd *)desc.data;
hclgevf_cmd_setup_basic_desc(&desc, HCLGEVF_OPC_MBX_VF_TO_PF, false);
req->msg[0] = HCLGE_MBX_SET_PROMISC_MODE;
- req->msg[1] = en_uc_pmc ? 1 : 0;
- req->msg[2] = en_mc_pmc ? 1 : 0;
+ req->msg[1] = en_bc_pmc ? 1 : 0;
- status = hclgevf_cmd_send(&hdev->hw, &desc, 1);
- if (status)
+ ret = hclgevf_cmd_send(&hdev->hw, &desc, 1);
+ if (ret)
dev_err(&hdev->pdev->dev,
- "Set promisc mode fail, status is %d.\n", status);
+ "Set promisc mode fail, status is %d.\n", ret);
- return status;
+ return ret;
}
-static int hclgevf_set_promisc_mode(struct hnae3_handle *handle,
- bool en_uc_pmc, bool en_mc_pmc)
+static int hclgevf_set_promisc_mode(struct hclgevf_dev *hdev, bool en_bc_pmc)
{
- struct hclgevf_dev *hdev = hclgevf_ae_get_hdev(handle);
-
- return hclgevf_cmd_set_promisc_mode(hdev, en_uc_pmc, en_mc_pmc);
+ return hclgevf_cmd_set_promisc_mode(hdev, en_bc_pmc);
}
static int hclgevf_tqp_enable(struct hclgevf_dev *hdev, int tqp_id,
@@ -2382,6 +2378,15 @@ static int hclgevf_init_hdev(struct hclgevf_dev *hdev)
if (ret)
goto err_config;
+ /* vf is not allowed to enable unicast/multicast promisc mode.
+ * For revision 0x20, default to disable broadcast promisc mode,
+ * firmware makes sure broadcast packets can be accepted.
+ * For revision 0x21, default to enable broadcast promisc mode.
+ */
+ ret = hclgevf_set_promisc_mode(hdev, true);
+ if (ret)
+ goto err_config;
+
/* Initialize RSS for this VF */
ret = hclgevf_rss_init_hw(hdev);
if (ret) {
@@ -2646,7 +2651,6 @@ static const struct hnae3_ae_ops hclgevf_ops = {
.get_vector = hclgevf_get_vector,
.put_vector = hclgevf_put_vector,
.reset_queue = hclgevf_reset_tqp,
- .set_promisc_mode = hclgevf_set_promisc_mode,
.get_mac_addr = hclgevf_get_mac_addr,
.set_mac_addr = hclgevf_set_mac_addr,
.add_uc_addr = hclgevf_add_uc_addr,
--
2.20.1
^ permalink raw reply related [flat|nested] 35+ messages in thread
* Re: [PATCH net-next 00/12] code optimizations & bugfixes for HNS3 driver
2019-01-26 16:49 [PATCH net-next 00/12] code optimizations & bugfixes for HNS3 driver Huazhong Tan
` (11 preceding siblings ...)
2019-01-26 16:49 ` [PATCH net-next 12/12] net: hns3: don't allow vf to enable promisc mode Huazhong Tan
@ 2019-01-26 17:33 ` David Miller
12 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
* 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-05-28 9:02 Huazhong Tan
@ 2019-05-29 0:39 ` David Miller
0 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
* [PATCH net-next 00/12] code optimizations & bugfixes for HNS3 driver
@ 2019-05-28 9:02 Huazhong Tan
2019-05-29 0:39 ` David Miller
0 siblings, 1 reply; 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
* 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
* [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-01-26 16:49 [PATCH net-next 00/12] code optimizations & bugfixes for HNS3 driver Huazhong Tan
2019-01-26 16:49 ` [PATCH net-next 01/12] net: hns3: don't update packet statistics for packets dropped by hardware Huazhong Tan
2019-01-26 16:49 ` [PATCH net-next 02/12] net: hns3: clear pci private data when unload hns3 driver Huazhong Tan
2019-01-26 16:49 ` [PATCH net-next 03/12] net: hns3: add error handling in hclge_ieee_setets Huazhong Tan
2019-01-26 16:49 ` [PATCH net-next 04/12] net: hns3: fix return value handle issue for hclge_set_loopback() Huazhong Tan
2019-01-26 16:49 ` [PATCH net-next 05/12] net: hns3: fix broadcast promisc issue for revision 0x20 Huazhong Tan
2019-01-26 16:49 ` [PATCH net-next 06/12] net: hns3: After setting the loopback, add the status of getting MAC Huazhong Tan
2019-01-26 16:49 ` [PATCH net-next 07/12] net: hns3: do reinitialization while mqprio configuration changed Huazhong Tan
2019-01-26 16:49 ` [PATCH net-next 08/12] net: hns3: remove dcb_ops->map_update in hclge_dcb Huazhong Tan
2019-01-26 16:49 ` [PATCH net-next 09/12] net: hns3: call hns3_nic_set_real_num_queue with netdev down Huazhong Tan
2019-01-26 16:49 ` [PATCH net-next 10/12] net: hns3: add 8 BD limit for tx flow Huazhong Tan
2019-01-26 16:49 ` [PATCH net-next 11/12] net: hns3: add initialization for nic state Huazhong Tan
2019-01-26 16:49 ` [PATCH net-next 12/12] net: hns3: don't allow vf to enable promisc mode Huazhong Tan
2019-01-26 17:33 ` [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-05-28 9:02 Huazhong Tan
2019-05-29 0:39 ` David Miller
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-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).