Thread (4 messages) 4 messages, 2 authors, 2022-10-31

Re: [PATCH net-next] rocker: Explicitly mark learned FDB entries as offloaded

From: Vladimir Oltean <vladimir.oltean@nxp.com>
Date: 2022-10-31 09:08:29

On Mon, Oct 31, 2022 at 10:32:04AM +0200, Ido Schimmel wrote:
quoted hunk ↗ jump to hunk
On Mon, Oct 31, 2022 at 09:59:22AM +0200, Ido Schimmel wrote:
quoted
diff --git a/drivers/net/ethernet/rocker/rocker_ofdpa.c b/drivers/net/ethernet/rocker/rocker_ofdpa.c
index 58cf7cc54f40..f5880d0053da 100644
--- a/drivers/net/ethernet/rocker/rocker_ofdpa.c
+++ b/drivers/net/ethernet/rocker/rocker_ofdpa.c
@@ -1828,12 +1828,14 @@ static void ofdpa_port_fdb_learn_work(struct work_struct *work)
 	info.vid = lw->vid;
 
 	rtnl_lock();
-	if (learned && removing)
+	if (learned && removing) {
 		call_switchdev_notifiers(SWITCHDEV_FDB_DEL_TO_BRIDGE,
 					 lw->ofdpa_port->dev, &info.info, NULL);
-	else if (learned && !removing)
+	} else if (learned && !removing) {
+		info.offloaded = true;
 		call_switchdev_notifiers(SWITCHDEV_FDB_ADD_TO_BRIDGE,
 					 lw->ofdpa_port->dev, &info.info, NULL);
+	}
 	rtnl_unlock();
 
 	kfree(work);
Looking at it again, this is better:
diff --git a/drivers/net/ethernet/rocker/rocker_ofdpa.c b/drivers/net/ethernet/rocker/rocker_ofdpa.c
index 58cf7cc54f40..4d17ae18ea61 100644
--- a/drivers/net/ethernet/rocker/rocker_ofdpa.c
+++ b/drivers/net/ethernet/rocker/rocker_ofdpa.c
@@ -1826,6 +1826,7 @@ static void ofdpa_port_fdb_learn_work(struct work_struct *work)
 
        info.addr = lw->addr;
        info.vid = lw->vid;
+       info.offloaded = learned && !removing;
 
        rtnl_lock();
        if (learned && removing)
Will send another version tomorrow assuming no other comments.
It may also be an opportunity to not take rtnl_lock() if (!learned), and
this will in turn simplify the condition to just "info.offloaded = !removing"?

Actually this elimination of useless work should be done at the level of
ofdpa_port_fdb_learn(), if "flags" does not contain OFDPA_OP_FLAG_LEARNED.
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help