[dpdk-stable] patch 'net/qede: fix default MAC address handling' has been queued to LTS release 16.11.2

Patil, Harish Harish.Patil at cavium.com
Sat May 6 17:07:48 CEST 2017


>

>Hi,
>
>FYI, your patch has been queued to LTS release 16.11.2
>
>Note it hasn't been pushed to http://dpdk.org/browse/dpdk-stable
>yet. It will be pushed if I get no objections before 05/07/17.
>So please shout if anyone has objections.
>
>Thanks.
>
>	--yliu
>
>---
>From 9d5824d3cbf8eb610c37bb969bd7b1f24942017e Mon Sep 17 00:00:00 2001
>From: Harish Patil <harish.patil at cavium.com>
>Date: Tue, 25 Apr 2017 00:28:36 -0700
>Subject: [PATCH] net/qede: fix default MAC address handling
>
>[ upstream commit 49d8b54e867982d0ee55d0706d9b7cec73492542 ]
>
>- In qede_mac_addr_set(), in order to configure default MAC address we
>first delete the existing MAC address before trying to add new one. During
>init time, there is no MAC filter to begin with, so trying to remove a
>non-existing MAC address causes a firmware exception. This can be
>prevented
>by internally calling qede_mac_addr_add() which has the checks in place to
>delete a MAC address only if it was added before.
>
>- Remove setting of the default MAC address from within
>qede_dev_configure() since rte_eth_dev_start() calls mac_addr_set()
>anyway.
>
>Fixes: 2ea6f76aff40 ("qede: add core driver")
>
>Signed-off-by: Harish Patil <harish.patil at cavium.com>
>---
> drivers/net/qede/qede_ethdev.c | 30 +-----------------------------
> 1 file changed, 1 insertion(+), 29 deletions(-)
>
>diff --git a/drivers/net/qede/qede_ethdev.c
>b/drivers/net/qede/qede_ethdev.c
>index debf7bf..2322147 100644
>--- a/drivers/net/qede/qede_ethdev.c
>+++ b/drivers/net/qede/qede_ethdev.c
>@@ -433,8 +433,6 @@ qede_mac_addr_set(struct rte_eth_dev *eth_dev, struct
>ether_addr *mac_addr)
> {
> 	struct qede_dev *qdev = QEDE_INIT_QDEV(eth_dev);
> 	struct ecore_dev *edev = QEDE_INIT_EDEV(qdev);
>-	struct ecore_filter_ucast ucast;
>-	int rc;
> 
> 	if (IS_VF(edev) && !ecore_vf_check_mac(ECORE_LEADING_HWFN(edev),
> 					       mac_addr->addr_bytes)) {
>@@ -444,29 +442,7 @@ qede_mac_addr_set(struct rte_eth_dev *eth_dev,
>struct ether_addr *mac_addr)
> 		return;
> 	}
> 
>-	/* First remove the primary mac */
>-	qede_set_ucast_cmn_params(&ucast);
>-	ucast.opcode = ECORE_FILTER_REMOVE;
>-	ucast.type = ECORE_FILTER_MAC;
>-	ether_addr_copy(&qdev->primary_mac,
>-			(struct ether_addr *)&ucast.mac);
>-	rc = ecore_filter_ucast_cmd(edev, &ucast, ECORE_SPQ_MODE_CB, NULL);
>-	if (rc != 0) {
>-		DP_ERR(edev, "Unable to remove current macaddr"
>-			     " Reverting to previous default mac\n");
>-		ether_addr_copy(&qdev->primary_mac,
>-				&eth_dev->data->mac_addrs[0]);
>-		return;
>-	}
>-
>-	/* Add new MAC */
>-	ucast.opcode = ECORE_FILTER_ADD;
>-	ether_addr_copy(mac_addr, (struct ether_addr *)&ucast.mac);
>-	rc = ecore_filter_ucast_cmd(edev, &ucast, ECORE_SPQ_MODE_CB, NULL);
>-	if (rc != 0)
>-		DP_ERR(edev, "Unable to add new default mac\n");
>-	else
>-		ether_addr_copy(mac_addr, &qdev->primary_mac);
>+	qede_mac_addr_add(eth_dev, mac_addr, 0, 0);
> }
> 
> static void qede_config_accept_any_vlan(struct qede_dev *qdev, bool
>action)
>@@ -741,10 +717,6 @@ static int qede_dev_configure(struct rte_eth_dev
>*eth_dev)
> 
> 	SLIST_INIT(&qdev->vlan_list_head);
> 
>-	/* Add primary mac for PF */
>-	if (IS_PF(edev))
>-		qede_mac_addr_set(eth_dev, &qdev->primary_mac);
>-
> 	/* Enable VLAN offloads by default */
> 	qede_vlan_offload_set(eth_dev, ETH_VLAN_STRIP_MASK  |
> 				       ETH_VLAN_FILTER_MASK |
>-- 
>1.9.0
>
>

Hi Yuanhan,
Sure, there are no objections to push  it to dpdk-stable.
Thanks.



More information about the stable mailing list