]> xenbits.xensource.com Git - people/ssmith/netchannel2-pvops.git/commitdiff
netback: parent sysfs device should be set before registering.
authorIan Campbell <Ian.Campbell@citrix.com>
Mon, 16 Mar 2009 22:05:16 +0000 (22:05 +0000)
committerJeremy Fitzhardinge <jeremy.fitzhardinge@citrix.com>
Mon, 29 Jun 2009 20:39:38 +0000 (13:39 -0700)
Signed-off-by: Ian Campbell <ian.campbell@citrix.com>
drivers/xen/netback/common.h
drivers/xen/netback/interface.c
drivers/xen/netback/xenbus.c

index 6ba804d6279484e798eab2daa69586b9043ad94d..123a1699db4b9cab549efb56c2fcaec99eb3a5f7 100644 (file)
@@ -180,7 +180,7 @@ void netif_accel_init(void);
 
 void netif_disconnect(struct xen_netif *netif);
 
-struct xen_netif *netif_alloc(domid_t domid, unsigned int handle);
+struct xen_netif *netif_alloc(struct device *parent, domid_t domid, unsigned int handle);
 int netif_map(struct xen_netif *netif, unsigned long tx_ring_ref,
              unsigned long rx_ring_ref, unsigned int evtchn);
 
index 7706170d569e7ba58a7f62bab6497024990ba402..5e0d26da8f70889e803ac5c7814492eb1f623207 100644 (file)
@@ -178,7 +178,7 @@ static struct ethtool_ops network_ethtool_ops =
        .get_strings = netbk_get_strings,
 };
 
-struct xen_netif *netif_alloc(domid_t domid, unsigned int handle)
+struct xen_netif *netif_alloc(struct device *parent, domid_t domid, unsigned int handle)
 {
        int err = 0;
        struct net_device *dev;
@@ -192,6 +192,8 @@ struct xen_netif *netif_alloc(domid_t domid, unsigned int handle)
                return ERR_PTR(-ENOMEM);
        }
 
+       SET_NETDEV_DEV(dev, parent);
+
        netif = netdev_priv(dev);
        memset(netif, 0, sizeof(*netif));
        netif->domid  = domid;
index dc7b367df645a2b13104856fe809c69205f698e0..749931e1657a58fcc9fe3286b33f748542da011e 100644 (file)
@@ -193,14 +193,13 @@ static void backend_create_netif(struct backend_info *be)
                return;
        }
 
-       be->netif = netif_alloc(dev->otherend_id, handle);
+       be->netif = netif_alloc(&dev->dev, dev->otherend_id, handle);
        if (IS_ERR(be->netif)) {
                err = PTR_ERR(be->netif);
                be->netif = NULL;
                xenbus_dev_fatal(dev, err, "creating interface");
                return;
        }
-       SET_NETDEV_DEV(be->netif->dev, &dev->dev);
 
        kobject_uevent(&dev->dev.kobj, KOBJ_ONLINE);
 }