]> xenbits.xensource.com Git - legacy/linux-2.6.18-xen.git/commitdiff
netback: parent sysfs device should be set before registering.
authorKeir Fraser <keir.fraser@citrix.com>
Tue, 17 Mar 2009 14:21:51 +0000 (14:21 +0000)
committerKeir Fraser <keir.fraser@citrix.com>
Tue, 17 Mar 2009 14:21:51 +0000 (14:21 +0000)
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 d4587b8c86fc6ef538287fb987a0845fca3a2e05..a93e6f77bda49f0d77c166a7bf39eeded010a15c 100644 (file)
@@ -182,7 +182,7 @@ void netif_accel_init(void);
 
 void netif_disconnect(netif_t *netif);
 
-netif_t *netif_alloc(domid_t domid, unsigned int handle);
+netif_t *netif_alloc(struct device *parent, domid_t domid, unsigned int handle);
 int netif_map(netif_t *netif, unsigned long tx_ring_ref,
              unsigned long rx_ring_ref, unsigned int evtchn);
 
index e039dc19d7b2c4efa16cb4c5fae7132469f1bf0e..5ca1674ecef2f7cfd7b05040f1dd8192bed50dc6 100644 (file)
@@ -175,7 +175,7 @@ static struct ethtool_ops network_ethtool_ops =
        .get_strings = netbk_get_strings,
 };
 
-netif_t *netif_alloc(domid_t domid, unsigned int handle)
+netif_t *netif_alloc(struct device *parent, domid_t domid, unsigned int handle)
 {
        int err = 0;
        struct net_device *dev;
@@ -189,6 +189,8 @@ netif_t *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 d83d4251b6eef40729217a09e7e63d92193cbb7b..44ac8be5384734ed54c312adac9cebd993673db1 100644 (file)
@@ -195,14 +195,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);
 }