diff --git a/drivers/net/team/team_core.c b/drivers/net/team/team_core.c index ab1935a4aa2c..43d7c73b25aa 100644 --- a/drivers/net/team/team_core.c +++ b/drivers/net/team/team_core.c @@ -1972,7 +1972,8 @@ static int team_add_slave(struct net_device *dev, struct net_device *port_dev, struct team *team = netdev_priv(dev); int err; - mutex_lock(&team->lock); + if (!mutex_trylock(&team->lock)) + return -EBUSY; err = team_port_add(team, port_dev, extack); mutex_unlock(&team->lock); @@ -1987,7 +1988,8 @@ static int team_del_slave(struct net_device *dev, struct net_device *port_dev) struct team *team = netdev_priv(dev); int err; - mutex_lock(&team->lock); + if (!mutex_trylock(&team->lock)) + return -EBUSY; err = team_port_del(team, port_dev); mutex_unlock(&team->lock);