USB: usbnet reports minidriver name through ethtool
[linux-2.6-block.git] / drivers / usb / net / usbnet.c
index de69b183bd2f96d714a68f94c0bb07785d65c1d9..f9cd42d058b042c7d68949fa1cfe985444189f1f 100644 (file)
@@ -203,7 +203,6 @@ void usbnet_skb_return (struct usbnet *dev, struct sk_buff *skb)
 {
        int     status;
 
-       skb->dev = dev->net;
        skb->protocol = eth_type_trans (skb, dev->net);
        dev->stats.rx_packets++;
        dev->stats.rx_bytes += skb->len;
@@ -735,8 +734,7 @@ void usbnet_get_drvinfo (struct net_device *net, struct ethtool_drvinfo *info)
 {
        struct usbnet *dev = netdev_priv(net);
 
-       /* REVISIT don't always return "usbnet" */
-       strncpy (info->driver, driver_name, sizeof info->driver);
+       strncpy (info->driver, dev->driver_name, sizeof info->driver);
        strncpy (info->version, DRIVER_VERSION, sizeof info->version);
        strncpy (info->fw_version, dev->driver_info->description,
                sizeof info->fw_version);
@@ -1116,10 +1114,12 @@ usbnet_probe (struct usb_interface *udev, const struct usb_device_id *prod)
        struct driver_info              *info;
        struct usb_device               *xdev;
        int                             status;
+       const char                      *name;
 
+       name = udev->dev.driver->name;
        info = (struct driver_info *) prod->driver_info;
        if (!info) {
-               dev_dbg (&udev->dev, "blacklisted by %s\n", driver_name);
+               dev_dbg (&udev->dev, "blacklisted by %s\n", name);
                return -ENODEV;
        }
        xdev = interface_to_usbdev (udev);
@@ -1139,6 +1139,7 @@ usbnet_probe (struct usb_interface *udev, const struct usb_device_id *prod)
        dev = netdev_priv(net);
        dev->udev = xdev;
        dev->driver_info = info;
+       dev->driver_name = name;
        dev->msg_enable = netif_msg_init (msg_level, NETIF_MSG_DRV
                                | NETIF_MSG_PROBE | NETIF_MSG_LINK);
        skb_queue_head_init (&dev->rxq);