Now when netconsole sets up netpoll on a team dev, __netpoll_setup
will invoke team dev's .ndo_netpoll_setup first, then set
team->dev->npinfo.

However Commit 0fb52a27a04a ("team: cleanup netpoll clode") added
!team->dev->npinfo check in team_port_enable_netpoll(), which is
also invoked by team dev's .ndo_netpoll_setup. It will cause that
port dev npinfo can't be set due to team->dev->npinfo is not yet
set before invoking team dev's .ndo_netpoll_setup.

Team dev only needs to check team->dev->npinfo for setting a port
dev npinfo when adding the port, like before that cleanup.

Fixes: 0fb52a27a04a ("team: cleanup netpoll clode")
Reported-by: João Avelino Bellomo Filho <jbell...@redhat.com>
Signed-off-by: Xin Long <lucien....@gmail.com>
---
 drivers/net/team/team.c | 15 +++++++--------
 1 file changed, 7 insertions(+), 8 deletions(-)

diff --git a/drivers/net/team/team.c b/drivers/net/team/team.c
index acbe849..f4a0346 100644
--- a/drivers/net/team/team.c
+++ b/drivers/net/team/team.c
@@ -1077,9 +1077,6 @@ static int team_port_enable_netpoll(struct team *team, 
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;
@@ -1221,11 +1218,13 @@ static int team_port_add(struct team *team, struct 
net_device *port_dev,
                goto err_vids_add;
        }
 
-       err = team_port_enable_netpoll(team, port);
-       if (err) {
-               netdev_err(dev, "Failed to enable netpoll on device %s\n",
-                          portname);
-               goto err_enable_netpoll;
+       if (team->dev->npinfo) {
+               err = team_port_enable_netpoll(team, port);
+               if (err) {
+                       netdev_err(dev, "Failed to enable netpoll on device 
%s\n",
+                                  portname);
+                       goto err_enable_netpoll;
+               }
        }
 
        if (!(dev->features & NETIF_F_LRO))
-- 
2.1.0

Reply via email to