forked from Minki/linux
team: fix netconsole setup over team
The same fix in Commitdbe173079a
("bridge: fix netconsole setup over bridge") is also needed for team driver. While at it, remove the unnecessary parameter *team from team_port_enable_netpoll(). v1->v2: - fix it in a better way, as does bridge. Fixes:0fb52a27a0
("team: cleanup netpoll clode") Reported-by: João Avelino Bellomo Filho <jbellomo@redhat.com> Signed-off-by: Xin Long <lucien.xin@gmail.com> Signed-off-by: David S. Miller <davem@davemloft.net>
This commit is contained in:
parent
6cd968f448
commit
9cf2f437ca
@ -1072,14 +1072,11 @@ static void team_port_leave(struct team *team, struct team_port *port)
|
||||
}
|
||||
|
||||
#ifdef CONFIG_NET_POLL_CONTROLLER
|
||||
static int team_port_enable_netpoll(struct team *team, struct team_port *port)
|
||||
static int __team_port_enable_netpoll(struct team_port *port)
|
||||
{
|
||||
struct netpoll *np;
|
||||
int err;
|
||||
|
||||
if (!team->dev->npinfo)
|
||||
return 0;
|
||||
|
||||
np = kzalloc(sizeof(*np), GFP_KERNEL);
|
||||
if (!np)
|
||||
return -ENOMEM;
|
||||
@ -1093,6 +1090,14 @@ static int team_port_enable_netpoll(struct team *team, struct team_port *port)
|
||||
return err;
|
||||
}
|
||||
|
||||
static int team_port_enable_netpoll(struct team_port *port)
|
||||
{
|
||||
if (!port->team->dev->npinfo)
|
||||
return 0;
|
||||
|
||||
return __team_port_enable_netpoll(port);
|
||||
}
|
||||
|
||||
static void team_port_disable_netpoll(struct team_port *port)
|
||||
{
|
||||
struct netpoll *np = port->np;
|
||||
@ -1107,7 +1112,7 @@ static void team_port_disable_netpoll(struct team_port *port)
|
||||
kfree(np);
|
||||
}
|
||||
#else
|
||||
static int team_port_enable_netpoll(struct team *team, struct team_port *port)
|
||||
static int team_port_enable_netpoll(struct team_port *port)
|
||||
{
|
||||
return 0;
|
||||
}
|
||||
@ -1221,7 +1226,7 @@ static int team_port_add(struct team *team, struct net_device *port_dev,
|
||||
goto err_vids_add;
|
||||
}
|
||||
|
||||
err = team_port_enable_netpoll(team, port);
|
||||
err = team_port_enable_netpoll(port);
|
||||
if (err) {
|
||||
netdev_err(dev, "Failed to enable netpoll on device %s\n",
|
||||
portname);
|
||||
@ -1918,7 +1923,7 @@ static int team_netpoll_setup(struct net_device *dev,
|
||||
|
||||
mutex_lock(&team->lock);
|
||||
list_for_each_entry(port, &team->port_list, list) {
|
||||
err = team_port_enable_netpoll(team, port);
|
||||
err = __team_port_enable_netpoll(port);
|
||||
if (err) {
|
||||
__team_netpoll_cleanup(team);
|
||||
break;
|
||||
|
Loading…
Reference in New Issue
Block a user