linux-kernel.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
* [PATCH V2 for-next 0/8] Bug Fixes and Code Improvement in HNS driver
@ 2016-09-29 17:09 Salil Mehta
  2016-09-29 17:09 ` [PATCH V2 for-next 1/8] net: hns: fix port unavailable after hnae_reserve_buffer_map fail Salil Mehta
                   ` (8 more replies)
  0 siblings, 9 replies; 13+ messages in thread
From: Salil Mehta @ 2016-09-29 17:09 UTC (permalink / raw)
  To: dledford
  Cc: salil.mehta, yisen.zhuang, xavier.huwei, oulijun,
	mehta.salil.lnk, linux-rdma, netdev, linux-kernel, linuxarm

This patch-set introduces fix to some Bugs, potential problems
and code improvements identified during internal review and
testing of Hisilicon Network Subsystem driver.

Submit Change
V1->V2: This addresses the feedbacks provided by David Miller
        and Doug Ledford

Daode Huang (6):
  net: hns: bug fix about setting coalsecs-usecs to 0
  net: hns: add fini_process for v2 napi process
  net: hns: delete repeat read fbd num after while
  net: hns: fix the bug of forwarding table
  net: hns: bug fix about broadcast/multicast packets
  net: hns: delete redundant broadcast packet filter process

Kejian Yan (1):
  net: hns: fix port not available after testing loopback

lipeng (1):
  net: hns: fix port unavailable after hnae_reserve_buffer_map fail

 drivers/net/ethernet/hisilicon/hns/hns_ae_adapt.c  |   11 +-
 drivers/net/ethernet/hisilicon/hns/hns_dsaf_mac.c  |   13 ++-
 drivers/net/ethernet/hisilicon/hns/hns_dsaf_mac.h  |    2 +
 drivers/net/ethernet/hisilicon/hns/hns_dsaf_main.c |   10 --
 drivers/net/ethernet/hisilicon/hns/hns_dsaf_main.h |    1 -
 drivers/net/ethernet/hisilicon/hns/hns_dsaf_rcb.c  |   16 +++
 drivers/net/ethernet/hisilicon/hns/hns_dsaf_reg.h  |    4 +
 drivers/net/ethernet/hisilicon/hns/hns_enet.c      |  107 +++++++++++++-------
 drivers/net/ethernet/hisilicon/hns/hns_ethtool.c   |    7 ++
 9 files changed, 118 insertions(+), 53 deletions(-)

-- 
1.7.9.5

^ permalink raw reply	[flat|nested] 13+ messages in thread

* [PATCH V2 for-next 1/8] net: hns: fix port unavailable after hnae_reserve_buffer_map fail
  2016-09-29 17:09 [PATCH V2 for-next 0/8] Bug Fixes and Code Improvement in HNS driver Salil Mehta
@ 2016-09-29 17:09 ` Salil Mehta
  2016-09-29 17:09 ` [PATCH V2 for-next 2/8] net: hns: bug fix about setting coalsecs-usecs to 0 Salil Mehta
                   ` (7 subsequent siblings)
  8 siblings, 0 replies; 13+ messages in thread
From: Salil Mehta @ 2016-09-29 17:09 UTC (permalink / raw)
  To: dledford
  Cc: salil.mehta, yisen.zhuang, xavier.huwei, oulijun,
	mehta.salil.lnk, linux-rdma, netdev, linux-kernel, linuxarm,
	lipeng

From: lipeng <lipeng321@huawei.com>

When hnae_reserve_buffer_map fail, it will break cycle and some
buffer description has no available memory, therefore the port will
be unavailable.

Signed-off-by: Peng Li <lipeng321@huawei.com>
Reviewed-by: Yisen Zhuang <yisen.zhuang@huawei.com>
Signed-off-by: Salil Mehta <salil.mehta@huawei.com>
---
 drivers/net/ethernet/hisilicon/hns/hns_enet.c |   23 ++++++++++++++++++-----
 1 file changed, 18 insertions(+), 5 deletions(-)

diff --git a/drivers/net/ethernet/hisilicon/hns/hns_enet.c b/drivers/net/ethernet/hisilicon/hns/hns_enet.c
index d7e1f8c..32ff270 100644
--- a/drivers/net/ethernet/hisilicon/hns/hns_enet.c
+++ b/drivers/net/ethernet/hisilicon/hns/hns_enet.c
@@ -747,6 +747,14 @@ static void hns_nic_rx_up_pro(struct hns_nic_ring_data *ring_data,
 	ndev->last_rx = jiffies;
 }
 
+static int hns_desc_unused(struct hnae_ring *ring)
+{
+	int ntc = ring->next_to_clean;
+	int ntu = ring->next_to_use;
+
+	return ((ntc >= ntu) ? 0 : ring->desc_num) + ntc - ntu;
+}
+
 static int hns_nic_rx_poll_one(struct hns_nic_ring_data *ring_data,
 			       int budget, void *v)
 {
@@ -755,17 +763,21 @@ static int hns_nic_rx_poll_one(struct hns_nic_ring_data *ring_data,
 	int num, bnum, ex_num;
 #define RCB_NOF_ALLOC_RX_BUFF_ONCE 16
 	int recv_pkts, recv_bds, clean_count, err;
+	int unused_count = hns_desc_unused(ring);
 
 	num = readl_relaxed(ring->io_base + RCB_REG_FBDNUM);
 	rmb(); /* make sure num taken effect before the other data is touched */
 
 	recv_pkts = 0, recv_bds = 0, clean_count = 0;
+	num -= unused_count;
 recv:
 	while (recv_pkts < budget && recv_bds < num) {
 		/* reuse or realloc buffers */
-		if (clean_count >= RCB_NOF_ALLOC_RX_BUFF_ONCE) {
-			hns_nic_alloc_rx_buffers(ring_data, clean_count);
+		if (clean_count + unused_count >= RCB_NOF_ALLOC_RX_BUFF_ONCE) {
+			hns_nic_alloc_rx_buffers(ring_data,
+						 clean_count + unused_count);
 			clean_count = 0;
+			unused_count = hns_desc_unused(ring);
 		}
 
 		/* poll one pkt */
@@ -789,7 +801,7 @@ recv:
 	/* make all data has been write before submit */
 	if (recv_pkts < budget) {
 		ex_num = readl_relaxed(ring->io_base + RCB_REG_FBDNUM);
-
+		ex_num -= unused_count;
 		if (ex_num > clean_count) {
 			num += ex_num - clean_count;
 			rmb(); /*complete read rx ring bd number*/
@@ -799,8 +811,9 @@ recv:
 
 out:
 	/* make all data has been write before submit */
-	if (clean_count > 0)
-		hns_nic_alloc_rx_buffers(ring_data, clean_count);
+	if (clean_count + unused_count > 0)
+		hns_nic_alloc_rx_buffers(ring_data,
+					 clean_count + unused_count);
 
 	return recv_pkts;
 }
-- 
1.7.9.5

^ permalink raw reply related	[flat|nested] 13+ messages in thread

* [PATCH V2 for-next 2/8] net: hns: bug fix about setting coalsecs-usecs to 0
  2016-09-29 17:09 [PATCH V2 for-next 0/8] Bug Fixes and Code Improvement in HNS driver Salil Mehta
  2016-09-29 17:09 ` [PATCH V2 for-next 1/8] net: hns: fix port unavailable after hnae_reserve_buffer_map fail Salil Mehta
@ 2016-09-29 17:09 ` Salil Mehta
  2016-09-29 17:09 ` [PATCH V2 for-next 3/8] net: hns: add fini_process for v2 napi process Salil Mehta
                   ` (6 subsequent siblings)
  8 siblings, 0 replies; 13+ messages in thread
From: Salil Mehta @ 2016-09-29 17:09 UTC (permalink / raw)
  To: dledford
  Cc: salil.mehta, yisen.zhuang, xavier.huwei, oulijun,
	mehta.salil.lnk, linux-rdma, netdev, linux-kernel, linuxarm,
	Daode Huang

From: Daode Huang <huangdaode@hisilicon.com>

When set rx/tx coalesce usecs to 0, the interrupt coalesce will be
disabled, but there is a interrupt rate limit which set to 1us, it
will cause no interrupt occurs. This patch disable interrupt limit
when sets coalsecs usecs to 0, and restores it to 1 in other case.

Signed-off-by: Daode Huang <huangdaode@hisilicon.com>
Reviewed-by: Yisen Zhuang <yisen.zhuang@huawei.com>
Signed-off-by: Salil Mehta <salil.mehta@huawei.com>
---
 drivers/net/ethernet/hisilicon/hns/hns_dsaf_rcb.c |   16 ++++++++++++++++
 drivers/net/ethernet/hisilicon/hns/hns_dsaf_reg.h |    4 ++++
 2 files changed, 20 insertions(+)

diff --git a/drivers/net/ethernet/hisilicon/hns/hns_dsaf_rcb.c b/drivers/net/ethernet/hisilicon/hns/hns_dsaf_rcb.c
index ef11077..f0ed80d6 100644
--- a/drivers/net/ethernet/hisilicon/hns/hns_dsaf_rcb.c
+++ b/drivers/net/ethernet/hisilicon/hns/hns_dsaf_rcb.c
@@ -543,6 +543,22 @@ int hns_rcb_set_coalesce_usecs(
 			"error: coalesce_usecs setting supports 0~1023us\n");
 		return -EINVAL;
 	}
+
+	if (!AE_IS_VER1(rcb_common->dsaf_dev->dsaf_ver)) {
+		if (timeout == 0)
+			/* set timeout to 0, Disable gap time */
+			dsaf_set_reg_field(rcb_common->io_base,
+					   RCB_INT_GAP_TIME_REG + port_idx * 4,
+					   PPE_INT_GAPTIME_M, PPE_INT_GAPTIME_B,
+					   0);
+		else
+			/* set timeout non 0, restore gap time to 1 */
+			dsaf_set_reg_field(rcb_common->io_base,
+					   RCB_INT_GAP_TIME_REG + port_idx * 4,
+					   PPE_INT_GAPTIME_M, PPE_INT_GAPTIME_B,
+					   1);
+	}
+
 	hns_rcb_set_port_timeout(rcb_common, port_idx, timeout);
 	return 0;
 }
diff --git a/drivers/net/ethernet/hisilicon/hns/hns_dsaf_reg.h b/drivers/net/ethernet/hisilicon/hns/hns_dsaf_reg.h
index 4b8b803..878950a 100644
--- a/drivers/net/ethernet/hisilicon/hns/hns_dsaf_reg.h
+++ b/drivers/net/ethernet/hisilicon/hns/hns_dsaf_reg.h
@@ -417,6 +417,7 @@
 #define RCB_CFG_OVERTIME_REG			0x9300
 #define RCB_CFG_PKTLINE_INT_NUM_REG		0x9304
 #define RCB_CFG_OVERTIME_INT_NUM_REG		0x9308
+#define RCB_INT_GAP_TIME_REG			0x9400
 #define RCB_PORT_CFG_OVERTIME_REG		0x9430
 
 #define RCB_RING_RX_RING_BASEADDR_L_REG		0x00000
@@ -898,6 +899,9 @@
 #define PPE_CNT_CLR_CE_B	0
 #define PPE_CNT_CLR_SNAP_EN_B	1
 
+#define PPE_INT_GAPTIME_B	0
+#define PPE_INT_GAPTIME_M	0x3ff
+
 #define PPE_COMMON_CNT_CLR_CE_B	0
 #define PPE_COMMON_CNT_CLR_SNAP_EN_B	1
 #define RCB_COM_TSO_MODE_B	0
-- 
1.7.9.5

^ permalink raw reply related	[flat|nested] 13+ messages in thread

* [PATCH V2 for-next 3/8] net: hns: add fini_process for v2 napi process
  2016-09-29 17:09 [PATCH V2 for-next 0/8] Bug Fixes and Code Improvement in HNS driver Salil Mehta
  2016-09-29 17:09 ` [PATCH V2 for-next 1/8] net: hns: fix port unavailable after hnae_reserve_buffer_map fail Salil Mehta
  2016-09-29 17:09 ` [PATCH V2 for-next 2/8] net: hns: bug fix about setting coalsecs-usecs to 0 Salil Mehta
@ 2016-09-29 17:09 ` Salil Mehta
  2016-09-29 17:09 ` [PATCH V2 for-next 4/8] net: hns: delete repeat read fbd num after while Salil Mehta
                   ` (5 subsequent siblings)
  8 siblings, 0 replies; 13+ messages in thread
From: Salil Mehta @ 2016-09-29 17:09 UTC (permalink / raw)
  To: dledford
  Cc: salil.mehta, yisen.zhuang, xavier.huwei, oulijun,
	mehta.salil.lnk, linux-rdma, netdev, linux-kernel, linuxarm,
	Daode Huang

From: Daode Huang <huangdaode@hisilicon.com>

This patch adds fini_process for v2, it handles the packets recevied
by the hardware in the napi porcess. With this patch, the hardware irq
numbers will drop 50% per sec.

Signed-off-by: Daode Huang <huangdaode@hisilicon.com>
Reviewed-by: Yisen Zhuang <yisen.zhuang@huawei.com>
Signed-off-by: Salil Mehta <salil.mehta@huawei.com>
---
 drivers/net/ethernet/hisilicon/hns/hns_enet.c |   45 +++++++++++++++++++++----
 1 file changed, 38 insertions(+), 7 deletions(-)

diff --git a/drivers/net/ethernet/hisilicon/hns/hns_enet.c b/drivers/net/ethernet/hisilicon/hns/hns_enet.c
index 32ff270..e6bfc51 100644
--- a/drivers/net/ethernet/hisilicon/hns/hns_enet.c
+++ b/drivers/net/ethernet/hisilicon/hns/hns_enet.c
@@ -823,6 +823,8 @@ static void hns_nic_rx_fini_pro(struct hns_nic_ring_data *ring_data)
 	struct hnae_ring *ring = ring_data->ring;
 	int num = 0;
 
+	ring_data->ring->q->handle->dev->ops->toggle_ring_irq(ring, 0);
+
 	/* for hardware bug fixed */
 	num = readl_relaxed(ring->io_base + RCB_REG_FBDNUM);
 
@@ -834,6 +836,20 @@ static void hns_nic_rx_fini_pro(struct hns_nic_ring_data *ring_data)
 	}
 }
 
+static void hns_nic_rx_fini_pro_v2(struct hns_nic_ring_data *ring_data)
+{
+	struct hnae_ring *ring = ring_data->ring;
+	int num = 0;
+
+	num = readl_relaxed(ring->io_base + RCB_REG_FBDNUM);
+
+	if (num == 0)
+		ring_data->ring->q->handle->dev->ops->toggle_ring_irq(
+			ring, 0);
+	else
+		napi_schedule(&ring_data->napi);
+}
+
 static inline void hns_nic_reclaim_one_desc(struct hnae_ring *ring,
 					    int *bytes, int *pkts)
 {
@@ -935,7 +951,11 @@ static int hns_nic_tx_poll_one(struct hns_nic_ring_data *ring_data,
 static void hns_nic_tx_fini_pro(struct hns_nic_ring_data *ring_data)
 {
 	struct hnae_ring *ring = ring_data->ring;
-	int head = readl_relaxed(ring->io_base + RCB_REG_HEAD);
+	int head;
+
+	ring_data->ring->q->handle->dev->ops->toggle_ring_irq(ring, 0);
+
+	head = readl_relaxed(ring->io_base + RCB_REG_HEAD);
 
 	if (head != ring->next_to_clean) {
 		ring_data->ring->q->handle->dev->ops->toggle_ring_irq(
@@ -945,6 +965,18 @@ static void hns_nic_tx_fini_pro(struct hns_nic_ring_data *ring_data)
 	}
 }
 
+static void hns_nic_tx_fini_pro_v2(struct hns_nic_ring_data *ring_data)
+{
+	struct hnae_ring *ring = ring_data->ring;
+	int head = readl_relaxed(ring->io_base + RCB_REG_HEAD);
+
+	if (head == ring->next_to_clean)
+		ring_data->ring->q->handle->dev->ops->toggle_ring_irq(
+			ring, 0);
+	else
+		napi_schedule(&ring_data->napi);
+}
+
 static void hns_nic_tx_clr_all_bufs(struct hns_nic_ring_data *ring_data)
 {
 	struct hnae_ring *ring = ring_data->ring;
@@ -976,10 +1008,7 @@ static int hns_nic_common_poll(struct napi_struct *napi, int budget)
 
 	if (clean_complete >= 0 && clean_complete < budget) {
 		napi_complete(napi);
-		ring_data->ring->q->handle->dev->ops->toggle_ring_irq(
-			ring_data->ring, 0);
-		if (ring_data->fini_process)
-			ring_data->fini_process(ring_data);
+		ring_data->fini_process(ring_data);
 		return 0;
 	}
 
@@ -1755,7 +1784,8 @@ static int hns_nic_init_ring_data(struct hns_nic_priv *priv)
 		rd->queue_index = i;
 		rd->ring = &h->qs[i]->tx_ring;
 		rd->poll_one = hns_nic_tx_poll_one;
-		rd->fini_process = is_ver1 ? hns_nic_tx_fini_pro : NULL;
+		rd->fini_process = is_ver1 ? hns_nic_tx_fini_pro :
+			hns_nic_tx_fini_pro_v2;
 
 		netif_napi_add(priv->netdev, &rd->napi,
 			       hns_nic_common_poll, NIC_TX_CLEAN_MAX_NUM);
@@ -1767,7 +1797,8 @@ static int hns_nic_init_ring_data(struct hns_nic_priv *priv)
 		rd->ring = &h->qs[i - h->q_num]->rx_ring;
 		rd->poll_one = hns_nic_rx_poll_one;
 		rd->ex_process = hns_nic_rx_up_pro;
-		rd->fini_process = is_ver1 ? hns_nic_rx_fini_pro : NULL;
+		rd->fini_process = is_ver1 ? hns_nic_rx_fini_pro :
+			hns_nic_rx_fini_pro_v2;
 
 		netif_napi_add(priv->netdev, &rd->napi,
 			       hns_nic_common_poll, NIC_RX_CLEAN_MAX_NUM);
-- 
1.7.9.5

^ permalink raw reply related	[flat|nested] 13+ messages in thread

* [PATCH V2 for-next 4/8] net: hns: delete repeat read fbd num after while
  2016-09-29 17:09 [PATCH V2 for-next 0/8] Bug Fixes and Code Improvement in HNS driver Salil Mehta
                   ` (2 preceding siblings ...)
  2016-09-29 17:09 ` [PATCH V2 for-next 3/8] net: hns: add fini_process for v2 napi process Salil Mehta
@ 2016-09-29 17:09 ` Salil Mehta
  2016-09-29 17:09 ` [PATCH V2 for-next 5/8] net: hns: fix port not available after testing loopback Salil Mehta
                   ` (4 subsequent siblings)
  8 siblings, 0 replies; 13+ messages in thread
From: Salil Mehta @ 2016-09-29 17:09 UTC (permalink / raw)
  To: dledford
  Cc: salil.mehta, yisen.zhuang, xavier.huwei, oulijun,
	mehta.salil.lnk, linux-rdma, netdev, linux-kernel, linuxarm,
	Daode Huang

From: Daode Huang <huangdaode@hisilicon.com>

Because we handle the received packets after napi, so delete the checking
before submitting. It delete the code of read the fbd number register,
which reduces the cpu usages while receiving packets

Signed-off-by: Daode Huang <huangdaode@hisilicon.com>
Reviewed-by: Yisen Zhuang <yisen.zhuang@huawei.com>
Signed-off-by: Salil Mehta <salil.mehta@huawei.com>
---
 drivers/net/ethernet/hisilicon/hns/hns_enet.c |   15 ++-------------
 1 file changed, 2 insertions(+), 13 deletions(-)

diff --git a/drivers/net/ethernet/hisilicon/hns/hns_enet.c b/drivers/net/ethernet/hisilicon/hns/hns_enet.c
index e6bfc51..09ed237 100644
--- a/drivers/net/ethernet/hisilicon/hns/hns_enet.c
+++ b/drivers/net/ethernet/hisilicon/hns/hns_enet.c
@@ -760,7 +760,7 @@ static int hns_nic_rx_poll_one(struct hns_nic_ring_data *ring_data,
 {
 	struct hnae_ring *ring = ring_data->ring;
 	struct sk_buff *skb;
-	int num, bnum, ex_num;
+	int num, bnum;
 #define RCB_NOF_ALLOC_RX_BUFF_ONCE 16
 	int recv_pkts, recv_bds, clean_count, err;
 	int unused_count = hns_desc_unused(ring);
@@ -770,7 +770,7 @@ static int hns_nic_rx_poll_one(struct hns_nic_ring_data *ring_data,
 
 	recv_pkts = 0, recv_bds = 0, clean_count = 0;
 	num -= unused_count;
-recv:
+
 	while (recv_pkts < budget && recv_bds < num) {
 		/* reuse or realloc buffers */
 		if (clean_count + unused_count >= RCB_NOF_ALLOC_RX_BUFF_ONCE) {
@@ -798,17 +798,6 @@ recv:
 		recv_pkts++;
 	}
 
-	/* make all data has been write before submit */
-	if (recv_pkts < budget) {
-		ex_num = readl_relaxed(ring->io_base + RCB_REG_FBDNUM);
-		ex_num -= unused_count;
-		if (ex_num > clean_count) {
-			num += ex_num - clean_count;
-			rmb(); /*complete read rx ring bd number*/
-			goto recv;
-		}
-	}
-
 out:
 	/* make all data has been write before submit */
 	if (clean_count + unused_count > 0)
-- 
1.7.9.5

^ permalink raw reply related	[flat|nested] 13+ messages in thread

* [PATCH V2 for-next 5/8] net: hns: fix port not available after testing loopback
  2016-09-29 17:09 [PATCH V2 for-next 0/8] Bug Fixes and Code Improvement in HNS driver Salil Mehta
                   ` (3 preceding siblings ...)
  2016-09-29 17:09 ` [PATCH V2 for-next 4/8] net: hns: delete repeat read fbd num after while Salil Mehta
@ 2016-09-29 17:09 ` Salil Mehta
  2016-09-29 17:09 ` [PATCH V2 for-next 6/8] net: hns: fix the bug of forwarding table Salil Mehta
                   ` (3 subsequent siblings)
  8 siblings, 0 replies; 13+ messages in thread
From: Salil Mehta @ 2016-09-29 17:09 UTC (permalink / raw)
  To: dledford
  Cc: salil.mehta, yisen.zhuang, xavier.huwei, oulijun,
	mehta.salil.lnk, linux-rdma, netdev, linux-kernel, linuxarm,
	Kejian Yan

From: Kejian Yan <yankejian@huawei.com>

After running command "ethtool -t eth0", eth0 can not be connected to
network. It is caused by the changing the inner loopback register and
this register cannot be changed when hns connected to network. The
routine of setting this register needs to be removed and using promisc
mode to let the packet looped back pass by dsaf mode.

Reported-by: Jun He <hjat2005@huawei.com>
Signed-off-by: Kejian Yan <yankejian@huawei.com>
Reviewed-by: Yisen Zhaung <yisen.zhuang@huawei.com>
Signed-off-by: Salil Mehta <salil.mehta@huawei.com>
---
 drivers/net/ethernet/hisilicon/hns/hns_ae_adapt.c  |    3 ---
 drivers/net/ethernet/hisilicon/hns/hns_dsaf_main.c |   10 ----------
 drivers/net/ethernet/hisilicon/hns/hns_dsaf_main.h |    1 -
 drivers/net/ethernet/hisilicon/hns/hns_ethtool.c   |    7 +++++++
 4 files changed, 7 insertions(+), 14 deletions(-)

diff --git a/drivers/net/ethernet/hisilicon/hns/hns_ae_adapt.c b/drivers/net/ethernet/hisilicon/hns/hns_ae_adapt.c
index e28d960..e0f9cdc 100644
--- a/drivers/net/ethernet/hisilicon/hns/hns_ae_adapt.c
+++ b/drivers/net/ethernet/hisilicon/hns/hns_ae_adapt.c
@@ -678,9 +678,6 @@ static int hns_ae_config_loopback(struct hnae_handle *handle,
 		ret = -EINVAL;
 	}
 
-	if (!ret)
-		hns_dsaf_set_inner_lb(mac_cb->dsaf_dev, mac_cb->mac_id, en);
-
 	return ret;
 }
 
diff --git a/drivers/net/ethernet/hisilicon/hns/hns_dsaf_main.c b/drivers/net/ethernet/hisilicon/hns/hns_dsaf_main.c
index 9283bc6..827d8fb 100644
--- a/drivers/net/ethernet/hisilicon/hns/hns_dsaf_main.c
+++ b/drivers/net/ethernet/hisilicon/hns/hns_dsaf_main.c
@@ -768,16 +768,6 @@ void hns_dsaf_set_promisc_mode(struct dsaf_device *dsaf_dev, u32 en)
 				 DSAF_CFG_MIX_MODE_S, !!en);
 }
 
-void hns_dsaf_set_inner_lb(struct dsaf_device *dsaf_dev, u32 mac_id, u32 en)
-{
-	if (AE_IS_VER1(dsaf_dev->dsaf_ver) ||
-	    dsaf_dev->mac_cb[mac_id]->mac_type == HNAE_PORT_DEBUG)
-		return;
-
-	dsaf_set_dev_bit(dsaf_dev, DSAFV2_SERDES_LBK_0_REG + 4 * mac_id,
-			 DSAFV2_SERDES_LBK_EN_B, !!en);
-}
-
 /**
  * hns_dsaf_tbl_stat_en - tbl
  * @dsaf_id: dsa fabric id
diff --git a/drivers/net/ethernet/hisilicon/hns/hns_dsaf_main.h b/drivers/net/ethernet/hisilicon/hns/hns_dsaf_main.h
index 35df187..c494fc5 100644
--- a/drivers/net/ethernet/hisilicon/hns/hns_dsaf_main.h
+++ b/drivers/net/ethernet/hisilicon/hns/hns_dsaf_main.h
@@ -466,6 +466,5 @@ void hns_dsaf_get_rx_mac_pause_en(struct dsaf_device *dsaf_dev, int mac_id,
 				  u32 *en);
 int hns_dsaf_set_rx_mac_pause_en(struct dsaf_device *dsaf_dev, int mac_id,
 				 u32 en);
-void hns_dsaf_set_inner_lb(struct dsaf_device *dsaf_dev, u32 mac_id, u32 en);
 
 #endif /* __HNS_DSAF_MAIN_H__ */
diff --git a/drivers/net/ethernet/hisilicon/hns/hns_ethtool.c b/drivers/net/ethernet/hisilicon/hns/hns_ethtool.c
index ab33487..fa91ce3 100644
--- a/drivers/net/ethernet/hisilicon/hns/hns_ethtool.c
+++ b/drivers/net/ethernet/hisilicon/hns/hns_ethtool.c
@@ -342,6 +342,13 @@ static int __lb_setup(struct net_device *ndev,
 		break;
 	}
 
+	if (!ret) {
+		if (loop == MAC_LOOP_NONE)
+			h->dev->ops->set_promisc_mode(
+				h, ndev->flags & IFF_PROMISC);
+		else
+			h->dev->ops->set_promisc_mode(h, 1);
+	}
 	return ret;
 }
 
-- 
1.7.9.5

^ permalink raw reply related	[flat|nested] 13+ messages in thread

* [PATCH V2 for-next 6/8] net: hns: fix the bug of forwarding table
  2016-09-29 17:09 [PATCH V2 for-next 0/8] Bug Fixes and Code Improvement in HNS driver Salil Mehta
                   ` (4 preceding siblings ...)
  2016-09-29 17:09 ` [PATCH V2 for-next 5/8] net: hns: fix port not available after testing loopback Salil Mehta
@ 2016-09-29 17:09 ` Salil Mehta
  2016-09-29 17:09 ` [PATCH V2 for-next 7/8] net: hns: bug fix about broadcast/multicast packets Salil Mehta
                   ` (2 subsequent siblings)
  8 siblings, 0 replies; 13+ messages in thread
From: Salil Mehta @ 2016-09-29 17:09 UTC (permalink / raw)
  To: dledford
  Cc: salil.mehta, yisen.zhuang, xavier.huwei, oulijun,
	mehta.salil.lnk, linux-rdma, netdev, linux-kernel, linuxarm,
	Daode Huang

From: Daode Huang <huangdaode@hisilicon.com>

As the sub queue id in the broadcast forwarding table is always
set to absolute queue 0 rather than the interface's relative queue 0,
this will cause the received broadcast packets loopback to rcb.
This patch sets the sub queue id to relative queue 0 of each port.

Signed-off-by: Daode Huang <huangdaode@hisilicon.com>
Reviewed-by: Yisen Zhuang <yisen.zhuang@huawei.com>
Signed-off-by: Salil Mehta <salil.mehta@huawei.com>
---
PATCH V2: Addressed comments by David Miller
          Link: https://lkml.org/lkml/2016/9/28/390
PATCH V1: Initial Submit
---
 drivers/net/ethernet/hisilicon/hns/hns_ae_adapt.c |    8 ++++++--
 drivers/net/ethernet/hisilicon/hns/hns_dsaf_mac.c |   13 ++++++++++---
 drivers/net/ethernet/hisilicon/hns/hns_dsaf_mac.h |    2 ++
 3 files changed, 18 insertions(+), 5 deletions(-)

diff --git a/drivers/net/ethernet/hisilicon/hns/hns_ae_adapt.c b/drivers/net/ethernet/hisilicon/hns/hns_ae_adapt.c
index e0f9cdc..2d0cb60 100644
--- a/drivers/net/ethernet/hisilicon/hns/hns_ae_adapt.c
+++ b/drivers/net/ethernet/hisilicon/hns/hns_ae_adapt.c
@@ -207,6 +207,7 @@ static int hns_ae_set_multicast_one(struct hnae_handle *handle, void *addr)
 	int ret;
 	char *mac_addr = (char *)addr;
 	struct hns_mac_cb *mac_cb = hns_get_mac_cb(handle);
+	u8 port_num;
 
 	assert(mac_cb);
 
@@ -221,8 +222,11 @@ static int hns_ae_set_multicast_one(struct hnae_handle *handle, void *addr)
 		return ret;
 	}
 
-	ret = hns_mac_set_multi(mac_cb, DSAF_BASE_INNER_PORT_NUM,
-				mac_addr, true);
+	ret = hns_mac_get_inner_port_num(mac_cb, handle->vf_id, &port_num);
+	if (ret)
+		return ret;
+
+	ret = hns_mac_set_multi(mac_cb, port_num, mac_addr, true);
 	if (ret)
 		dev_err(handle->owner_dev,
 			"mac add mul_mac:%pM port%d  fail, ret = %#x!\n",
diff --git a/drivers/net/ethernet/hisilicon/hns/hns_dsaf_mac.c b/drivers/net/ethernet/hisilicon/hns/hns_dsaf_mac.c
index a68eef0..151fd6e 100644
--- a/drivers/net/ethernet/hisilicon/hns/hns_dsaf_mac.c
+++ b/drivers/net/ethernet/hisilicon/hns/hns_dsaf_mac.c
@@ -141,9 +141,10 @@ void hns_mac_adjust_link(struct hns_mac_cb *mac_cb, int speed, int duplex)
  *@port_num:port number
  *
  */
-static int hns_mac_get_inner_port_num(struct hns_mac_cb *mac_cb,
-				      u8 vmid, u8 *port_num)
+int hns_mac_get_inner_port_num(struct hns_mac_cb *mac_cb, u8 vmid, u8 *port_num)
 {
+	int q_num_per_vf, vf_num_per_port;
+	int vm_queue_id;
 	u8 tmp_port;
 
 	if (mac_cb->dsaf_dev->dsaf_mode <= DSAF_MODE_ENABLE) {
@@ -174,6 +175,12 @@ static int hns_mac_get_inner_port_num(struct hns_mac_cb *mac_cb,
 		return -EINVAL;
 	}
 
+	q_num_per_vf = mac_cb->dsaf_dev->rcb_common[0]->max_q_per_vf;
+	vf_num_per_port = mac_cb->dsaf_dev->rcb_common[0]->max_vfn;
+
+	vm_queue_id = vmid * q_num_per_vf +
+			vf_num_per_port * q_num_per_vf * mac_cb->mac_id;
+
 	switch (mac_cb->dsaf_dev->dsaf_mode) {
 	case DSAF_MODE_ENABLE_FIX:
 		tmp_port = 0;
@@ -193,7 +200,7 @@ static int hns_mac_get_inner_port_num(struct hns_mac_cb *mac_cb,
 	case DSAF_MODE_DISABLE_6PORT_2VM:
 	case DSAF_MODE_DISABLE_6PORT_4VM:
 	case DSAF_MODE_DISABLE_6PORT_16VM:
-		tmp_port = vmid;
+		tmp_port = vm_queue_id;
 		break;
 	default:
 		dev_err(mac_cb->dev, "dsaf mode invalid,%s mac%d!\n",
diff --git a/drivers/net/ethernet/hisilicon/hns/hns_dsaf_mac.h b/drivers/net/ethernet/hisilicon/hns/hns_dsaf_mac.h
index 4cbdf14..d3a1f72 100644
--- a/drivers/net/ethernet/hisilicon/hns/hns_dsaf_mac.h
+++ b/drivers/net/ethernet/hisilicon/hns/hns_dsaf_mac.h
@@ -461,5 +461,7 @@ void hns_set_led_opt(struct hns_mac_cb *mac_cb);
 int hns_cpld_led_set_id(struct hns_mac_cb *mac_cb,
 			enum hnae_led_state status);
 void hns_mac_set_promisc(struct hns_mac_cb *mac_cb, u8 en);
+int hns_mac_get_inner_port_num(struct hns_mac_cb *mac_cb,
+			       u8 vmid, u8 *port_num);
 
 #endif /* _HNS_DSAF_MAC_H */
-- 
1.7.9.5

^ permalink raw reply related	[flat|nested] 13+ messages in thread

* [PATCH V2 for-next 7/8] net: hns: bug fix about broadcast/multicast packets
  2016-09-29 17:09 [PATCH V2 for-next 0/8] Bug Fixes and Code Improvement in HNS driver Salil Mehta
                   ` (5 preceding siblings ...)
  2016-09-29 17:09 ` [PATCH V2 for-next 6/8] net: hns: fix the bug of forwarding table Salil Mehta
@ 2016-09-29 17:09 ` Salil Mehta
  2016-09-29 17:09 ` [PATCH V2 for-next 8/8] net: hns: delete redundant broadcast packet filter process Salil Mehta
  2016-09-30  5:33 ` [PATCH V2 for-next 0/8] Bug Fixes and Code Improvement in HNS driver David Miller
  8 siblings, 0 replies; 13+ messages in thread
From: Salil Mehta @ 2016-09-29 17:09 UTC (permalink / raw)
  To: dledford
  Cc: salil.mehta, yisen.zhuang, xavier.huwei, oulijun,
	mehta.salil.lnk, linux-rdma, netdev, linux-kernel, linuxarm,
	Daode Huang

From: Daode Huang <huangdaode@hisilicon.com>

When the dsaf mode receives a broadcast packet, it will filter
the packet by comparing the received queue number and destination
queue number(get from forwarding table), if they are the same,
the packet will be filtered. Otherwise, the packet will be loopback.
So this patch select queue 0 to send broadcast and multicast packets.

Signed-off-by: Daode Huang <huangdaode@hisilicon.com>
Reviewed-by: Yisen Zhuang <yisen.zhuang@huawei.com>
Signed-off-by: Salil Mehta <salil.mehta@huawei.com>
---
PATCH v2: Addressed comments by David Miller
          Link: https://lkml.org/lkml/2016/9/28/390
PATCH V1: Initial Submit
---
 drivers/net/ethernet/hisilicon/hns/hns_enet.c |   16 ++++++++++++++++
 1 file changed, 16 insertions(+)

diff --git a/drivers/net/ethernet/hisilicon/hns/hns_enet.c b/drivers/net/ethernet/hisilicon/hns/hns_enet.c
index 09ed237..5494e0e 100644
--- a/drivers/net/ethernet/hisilicon/hns/hns_enet.c
+++ b/drivers/net/ethernet/hisilicon/hns/hns_enet.c
@@ -1597,6 +1597,21 @@ struct rtnl_link_stats64 *hns_nic_get_stats64(struct net_device *ndev,
 	return stats;
 }
 
+static u16
+hns_nic_select_queue(struct net_device *ndev, struct sk_buff *skb,
+		     void *accel_priv, select_queue_fallback_t fallback)
+{
+	struct ethhdr *eth_hdr = (struct ethhdr *)skb->data;
+	struct hns_nic_priv *priv = netdev_priv(ndev);
+
+	/* fix hardware broadcast/multicast packets queue loopback */
+	if (!AE_IS_VER1(priv->enet_ver) &&
+	    is_multicast_ether_addr(eth_hdr->h_dest))
+		return 0;
+	else
+		return fallback(ndev, skb);
+}
+
 static const struct net_device_ops hns_nic_netdev_ops = {
 	.ndo_open = hns_nic_net_open,
 	.ndo_stop = hns_nic_net_stop,
@@ -1612,6 +1627,7 @@ static const struct net_device_ops hns_nic_netdev_ops = {
 	.ndo_poll_controller = hns_nic_poll_controller,
 #endif
 	.ndo_set_rx_mode = hns_nic_set_rx_mode,
+	.ndo_select_queue = hns_nic_select_queue,
 };
 
 static void hns_nic_update_link_status(struct net_device *netdev)
-- 
1.7.9.5

^ permalink raw reply related	[flat|nested] 13+ messages in thread

* [PATCH V2 for-next 8/8] net: hns: delete redundant broadcast packet filter process
  2016-09-29 17:09 [PATCH V2 for-next 0/8] Bug Fixes and Code Improvement in HNS driver Salil Mehta
                   ` (6 preceding siblings ...)
  2016-09-29 17:09 ` [PATCH V2 for-next 7/8] net: hns: bug fix about broadcast/multicast packets Salil Mehta
@ 2016-09-29 17:09 ` Salil Mehta
  2016-09-30  5:33 ` [PATCH V2 for-next 0/8] Bug Fixes and Code Improvement in HNS driver David Miller
  8 siblings, 0 replies; 13+ messages in thread
From: Salil Mehta @ 2016-09-29 17:09 UTC (permalink / raw)
  To: dledford
  Cc: salil.mehta, yisen.zhuang, xavier.huwei, oulijun,
	mehta.salil.lnk, linux-rdma, netdev, linux-kernel, linuxarm,
	Daode Huang

From: Daode Huang <huangdaode@hisilicon.com>

The broadcast packets is filtered in the hardware now, so this process
is no need in the driver, just delete it.

Signed-off-by: Daode Huang <huangdaode@hisilicon.com>
Reviewed-by: Yisen Zhuang <yisen.zhuang@huawei.com>
Signed-off-by: Salil Mehta <salil.mehta@huawei.com>
---
 drivers/net/ethernet/hisilicon/hns/hns_enet.c |   10 ----------
 1 file changed, 10 deletions(-)

diff --git a/drivers/net/ethernet/hisilicon/hns/hns_enet.c b/drivers/net/ethernet/hisilicon/hns/hns_enet.c
index 5494e0e..a7abe11 100644
--- a/drivers/net/ethernet/hisilicon/hns/hns_enet.c
+++ b/drivers/net/ethernet/hisilicon/hns/hns_enet.c
@@ -574,7 +574,6 @@ static int hns_nic_poll_rx_skb(struct hns_nic_ring_data *ring_data,
 	struct sk_buff *skb;
 	struct hnae_desc *desc;
 	struct hnae_desc_cb *desc_cb;
-	struct ethhdr *eh;
 	unsigned char *va;
 	int bnum, length, i;
 	int pull_len;
@@ -600,7 +599,6 @@ static int hns_nic_poll_rx_skb(struct hns_nic_ring_data *ring_data,
 		ring->stats.sw_err_cnt++;
 		return -ENOMEM;
 	}
-	skb_reset_mac_header(skb);
 
 	prefetchw(skb->data);
 	length = le16_to_cpu(desc->rx.pkt_len);
@@ -682,14 +680,6 @@ out_bnum_err:
 		return -EFAULT;
 	}
 
-	/* filter out multicast pkt with the same src mac as this port */
-	eh = eth_hdr(skb);
-	if (unlikely(is_multicast_ether_addr(eh->h_dest) &&
-		     ether_addr_equal(ndev->dev_addr, eh->h_source))) {
-		dev_kfree_skb_any(skb);
-		return -EFAULT;
-	}
-
 	ring->stats.rx_pkts++;
 	ring->stats.rx_bytes += skb->len;
 
-- 
1.7.9.5

^ permalink raw reply related	[flat|nested] 13+ messages in thread

* Re: [PATCH V2 for-next 0/8] Bug Fixes and Code Improvement in HNS driver
  2016-09-29 17:09 [PATCH V2 for-next 0/8] Bug Fixes and Code Improvement in HNS driver Salil Mehta
                   ` (7 preceding siblings ...)
  2016-09-29 17:09 ` [PATCH V2 for-next 8/8] net: hns: delete redundant broadcast packet filter process Salil Mehta
@ 2016-09-30  5:33 ` David Miller
  2016-09-30 13:38   ` Doug Ledford
  2016-10-13 11:26   ` Salil Mehta
  8 siblings, 2 replies; 13+ messages in thread
From: David Miller @ 2016-09-30  5:33 UTC (permalink / raw)
  To: salil.mehta
  Cc: dledford, yisen.zhuang, xavier.huwei, oulijun, mehta.salil.lnk,
	linux-rdma, netdev, linux-kernel, linuxarm

From: Salil Mehta <salil.mehta@huawei.com>
Date: Thu, 29 Sep 2016 18:09:08 +0100

> This patch-set introduces fix to some Bugs, potential problems
> and code improvements identified during internal review and
> testing of Hisilicon Network Subsystem driver.
> 
> Submit Change
> V1->V2: This addresses the feedbacks provided by David Miller
>         and Doug Ledford

So Doug my understanding is if this makes it through review
this is going to be merged into your tree, you prepare a
branch for me, and then I pull from that?

Thanks in advance.

^ permalink raw reply	[flat|nested] 13+ messages in thread

* Re: [PATCH V2 for-next 0/8] Bug Fixes and Code Improvement in HNS driver
  2016-09-30  5:33 ` [PATCH V2 for-next 0/8] Bug Fixes and Code Improvement in HNS driver David Miller
@ 2016-09-30 13:38   ` Doug Ledford
  2016-10-13 11:26   ` Salil Mehta
  1 sibling, 0 replies; 13+ messages in thread
From: Doug Ledford @ 2016-09-30 13:38 UTC (permalink / raw)
  To: David Miller, salil.mehta
  Cc: yisen.zhuang, xavier.huwei, oulijun, mehta.salil.lnk, linux-rdma,
	netdev, linux-kernel, linuxarm


[-- Attachment #1.1: Type: text/plain, Size: 1578 bytes --]

On 9/30/16 1:33 AM, David Miller wrote:
> From: Salil Mehta <salil.mehta@huawei.com>
> Date: Thu, 29 Sep 2016 18:09:08 +0100
> 
>> This patch-set introduces fix to some Bugs, potential problems
>> and code improvements identified during internal review and
>> testing of Hisilicon Network Subsystem driver.
>>
>> Submit Change
>> V1->V2: This addresses the feedbacks provided by David Miller
>>         and Doug Ledford
> 
> So Doug my understanding is if this makes it through review
> this is going to be merged into your tree,

Correct.  Mainly because it sits on top of some other patches from Huawei.

> you prepare a
> branch for me, and then I pull from that?

I can.  It's either that or these 8 patches go to Linus through my tree.
 Be forewarned, the branch will have to include the entire hns-roce
driver and the hns/hns-roce ACPI reset support patches.  That may be
more than you intended to get in a pull.  But it's a kind of messed up
branch anyway.  I couldn't submit the branch until after you submit your
pull request to Linus because the branch itself is based on an older
version of your net-next tree, which was needed to get the hns-roce
driver to go in cleanly. I just added the hns-roce stuff on top of that.
 My original intent, because of all this, was that this branch would be
submitted as its own special pull request once most other stuff was
already in.

> Thanks in advance.

Sure.

-- 
Doug Ledford <dledford@redhat.com>    GPG Key ID: 0E572FDD
  Red Hat, Inc.
  100 E. Davie St
  Raleigh, NC 27601 USA


[-- Attachment #2: OpenPGP digital signature --]
[-- Type: application/pgp-signature, Size: 907 bytes --]

^ permalink raw reply	[flat|nested] 13+ messages in thread

* RE: [PATCH V2 for-next 0/8] Bug Fixes and Code Improvement in HNS driver
  2016-09-30  5:33 ` [PATCH V2 for-next 0/8] Bug Fixes and Code Improvement in HNS driver David Miller
  2016-09-30 13:38   ` Doug Ledford
@ 2016-10-13 11:26   ` Salil Mehta
  2016-10-13 11:57     ` Doug Ledford
  1 sibling, 1 reply; 13+ messages in thread
From: Salil Mehta @ 2016-10-13 11:26 UTC (permalink / raw)
  To: David Miller
  Cc: dledford, Zhuangyuzeng (Yisen), Huwei (Xavier),
	oulijun, mehta.salil.lnk, linux-rdma, netdev, linux-kernel,
	Linuxarm

> -----Original Message-----
> From: David Miller [mailto:davem@davemloft.net]
> Sent: Friday, September 30, 2016 6:34 AM
> To: Salil Mehta
> Cc: dledford@redhat.com; Zhuangyuzeng (Yisen); Huwei (Xavier); oulijun;
> mehta.salil.lnk@gmail.com; linux-rdma@vger.kernel.org;
> netdev@vger.kernel.org; linux-kernel@vger.kernel.org; Linuxarm
> Subject: Re: [PATCH V2 for-next 0/8] Bug Fixes and Code Improvement in
> HNS driver
> 
> From: Salil Mehta <salil.mehta@huawei.com>
> Date: Thu, 29 Sep 2016 18:09:08 +0100
> 
> > This patch-set introduces fix to some Bugs, potential problems
> > and code improvements identified during internal review and
> > testing of Hisilicon Network Subsystem driver.
> >
> > Submit Change
> > V1->V2: This addresses the feedbacks provided by David Miller
> >         and Doug Ledford
> 
> So Doug my understanding is if this makes it through review
Hi Dave,
A gentle reminder regarding this. I was wondering if you think these
have been reviewed enough and by any chance these patches can be included
in current 4.9 merge window. This will save us a lot of effort.

As I understand Doug is waiting for your review approval on this
patch-set.

Thanks in anticipation
Best regards
Salil  
> this is going to be merged into your tree, you prepare a
> branch for me, and then I pull from that?
> 
> Thanks in advance.

^ permalink raw reply	[flat|nested] 13+ messages in thread

* Re: [PATCH V2 for-next 0/8] Bug Fixes and Code Improvement in HNS driver
  2016-10-13 11:26   ` Salil Mehta
@ 2016-10-13 11:57     ` Doug Ledford
  0 siblings, 0 replies; 13+ messages in thread
From: Doug Ledford @ 2016-10-13 11:57 UTC (permalink / raw)
  To: Salil Mehta, David Miller
  Cc: Zhuangyuzeng (Yisen), Huwei (Xavier),
	oulijun, mehta.salil.lnk, linux-rdma, netdev, linux-kernel,
	Linuxarm


[-- Attachment #1.1: Type: text/plain, Size: 1595 bytes --]

On 10/13/2016 7:26 AM, Salil Mehta wrote:
>> -----Original Message-----
>> From: David Miller [mailto:davem@davemloft.net]
>> Sent: Friday, September 30, 2016 6:34 AM
>> To: Salil Mehta
>> Cc: dledford@redhat.com; Zhuangyuzeng (Yisen); Huwei (Xavier); oulijun;
>> mehta.salil.lnk@gmail.com; linux-rdma@vger.kernel.org;
>> netdev@vger.kernel.org; linux-kernel@vger.kernel.org; Linuxarm
>> Subject: Re: [PATCH V2 for-next 0/8] Bug Fixes and Code Improvement in
>> HNS driver
>>
>> From: Salil Mehta <salil.mehta@huawei.com>
>> Date: Thu, 29 Sep 2016 18:09:08 +0100
>>
>>> This patch-set introduces fix to some Bugs, potential problems
>>> and code improvements identified during internal review and
>>> testing of Hisilicon Network Subsystem driver.
>>>
>>> Submit Change
>>> V1->V2: This addresses the feedbacks provided by David Miller
>>>         and Doug Ledford
>>
>> So Doug my understanding is if this makes it through review
> Hi Dave,
> A gentle reminder regarding this. I was wondering if you think these
> have been reviewed enough and by any chance these patches can be included
> in current 4.9 merge window. This will save us a lot of effort.
> 
> As I understand Doug is waiting for your review approval on this
> patch-set.

I am, and I was just getting ready to ask again today myself.

> Thanks in anticipation
> Best regards
> Salil  
>> this is going to be merged into your tree, you prepare a
>> branch for me, and then I pull from that?
>>
>> Thanks in advance.


-- 
Doug Ledford <dledford@redhat.com>
    GPG Key ID: 0E572FDD


[-- Attachment #2: OpenPGP digital signature --]
[-- Type: application/pgp-signature, Size: 884 bytes --]

^ permalink raw reply	[flat|nested] 13+ messages in thread

end of thread, other threads:[~2016-10-13 11:59 UTC | newest]

Thread overview: 13+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2016-09-29 17:09 [PATCH V2 for-next 0/8] Bug Fixes and Code Improvement in HNS driver Salil Mehta
2016-09-29 17:09 ` [PATCH V2 for-next 1/8] net: hns: fix port unavailable after hnae_reserve_buffer_map fail Salil Mehta
2016-09-29 17:09 ` [PATCH V2 for-next 2/8] net: hns: bug fix about setting coalsecs-usecs to 0 Salil Mehta
2016-09-29 17:09 ` [PATCH V2 for-next 3/8] net: hns: add fini_process for v2 napi process Salil Mehta
2016-09-29 17:09 ` [PATCH V2 for-next 4/8] net: hns: delete repeat read fbd num after while Salil Mehta
2016-09-29 17:09 ` [PATCH V2 for-next 5/8] net: hns: fix port not available after testing loopback Salil Mehta
2016-09-29 17:09 ` [PATCH V2 for-next 6/8] net: hns: fix the bug of forwarding table Salil Mehta
2016-09-29 17:09 ` [PATCH V2 for-next 7/8] net: hns: bug fix about broadcast/multicast packets Salil Mehta
2016-09-29 17:09 ` [PATCH V2 for-next 8/8] net: hns: delete redundant broadcast packet filter process Salil Mehta
2016-09-30  5:33 ` [PATCH V2 for-next 0/8] Bug Fixes and Code Improvement in HNS driver David Miller
2016-09-30 13:38   ` Doug Ledford
2016-10-13 11:26   ` Salil Mehta
2016-10-13 11:57     ` Doug Ledford

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).