]> git.ipfire.org Git - people/ms/linux.git/commitdiff
net: dsa: stop calling dev_hold in dsa_slave_fdb_event
authorVladimir Oltean <vladimir.oltean@nxp.com>
Tue, 26 Oct 2021 09:25:56 +0000 (12:25 +0300)
committerDavid S. Miller <davem@davemloft.net>
Tue, 26 Oct 2021 14:07:35 +0000 (15:07 +0100)
Now that we guarantee that SWITCHDEV_FDB_{ADD,DEL}_TO_DEVICE events have
finished executing by the time we leave our bridge upper interface,
we've established a stronger boundary condition for how long the
dsa_slave_switchdev_event_work() might run.

As such, it is no longer possible for DSA slave interfaces to become
unregistered, since they are still bridge ports.

So delete the unnecessary dev_hold() and dev_put().

Signed-off-by: Vladimir Oltean <vladimir.oltean@nxp.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
net/dsa/slave.c

index adcfb2cb4e6126cbbdd0a1ae50ba74ae150c10b8..dbda0e0fbffacdb5aeae304d095a5264ce322ef6 100644 (file)
@@ -2448,7 +2448,6 @@ static void dsa_slave_switchdev_event_work(struct work_struct *work)
                break;
        }
 
-       dev_put(switchdev_work->dev);
        kfree(switchdev_work);
 }
 
@@ -2521,8 +2520,6 @@ static int dsa_slave_fdb_event(struct net_device *dev,
        switchdev_work->vid = fdb_info->vid;
        switchdev_work->host_addr = host_addr;
 
-       /* Hold a reference for dsa_fdb_offload_notify */
-       dev_hold(dev);
        dsa_schedule_work(&switchdev_work->work);
 
        return 0;