ieee1394: eth1394: bring back a parent device
authorStefan Richter <stefanr@s5r6.in-berlin.de>
Sun, 20 May 2007 23:05:41 +0000 (01:05 +0200)
committerStefan Richter <stefanr@s5r6.in-berlin.de>
Sun, 27 May 2007 21:20:59 +0000 (23:20 +0200)
This adds a real parent device to eth1394's ethX device like in Linux
2.6.20 and older.  However, due to unfinished conversion of the ieee1394
away from class_device, we now refer to the FireWire controller's PCI
device as the parent, not to the ieee1394 driver's fw-host device.

Having a real parent device instead of a virtual one allows udev scripts
to distinguish eth1394 interfaces from networking bridges, bondings and
the likes.

Fixes a regression since 2.6.21:
https://bugs.gentoo.org/show_bug.cgi?id=177199

Signed-off-by: Stefan Richter <stefanr@s5r6.in-berlin.de>
drivers/ieee1394/eth1394.c

index d6b19c2780afcb9faa05d59f3404d29b05997180..5f026b5d7857f034287483f96ec2f5b87d5e5910 100644 (file)
@@ -599,10 +599,9 @@ static void ether1394_add_host(struct hpsb_host *host)
        }
 
        SET_MODULE_OWNER(dev);
-#if 0
-       /* FIXME - Is this the correct parent device anyway? */
-       SET_NETDEV_DEV(dev, &host->device);
-#endif
+
+       /* This used to be &host->device in Linux 2.6.20 and before. */
+       SET_NETDEV_DEV(dev, host->device.parent);
 
        priv = netdev_priv(dev);
        INIT_LIST_HEAD(&priv->ip_node_list);