]> Pileus Git - ~andy/linux/blobdiff - net/core/netpoll.c
Merge git://git.kernel.org/pub/scm/linux/kernel/git/steve/gfs2-3.0-nmw
[~andy/linux] / net / core / netpoll.c
index f9f40b932e4b855fc1a4dc3b3c74620efdc4f970..b4c90e42b4434455c8205f4483991326a85eedb6 100644 (file)
@@ -715,14 +715,16 @@ int netpoll_parse_options(struct netpoll *np, char *opt)
 }
 EXPORT_SYMBOL(netpoll_parse_options);
 
-int __netpoll_setup(struct netpoll *np)
+int __netpoll_setup(struct netpoll *np, struct net_device *ndev)
 {
-       struct net_device *ndev = np->dev;
        struct netpoll_info *npinfo;
        const struct net_device_ops *ops;
        unsigned long flags;
        int err;
 
+       np->dev = ndev;
+       strlcpy(np->dev_name, ndev->name, IFNAMSIZ);
+
        if ((ndev->priv_flags & IFF_DISABLE_NETPOLL) ||
            !ndev->netdev_ops->ndo_poll_controller) {
                np_err(np, "%s doesn't support polling, aborting\n",
@@ -851,13 +853,11 @@ int netpoll_setup(struct netpoll *np)
                np_info(np, "local IP %pI4\n", &np->local_ip);
        }
 
-       np->dev = ndev;
-
        /* fill up the skb queue */
        refill_skbs();
 
        rtnl_lock();
-       err = __netpoll_setup(np);
+       err = __netpoll_setup(np, ndev);
        rtnl_unlock();
 
        if (err)