On Tue, Mar 18, 2014 at 6:40 PM, Grant Grundler <grundler@xxxxxxxxxx> wrote: > On Tue, Mar 18, 2014 at 6:09 PM, Julius Werner <jwerner@xxxxxxxxxxxx> wrote: >> I think a better place for this would be in usbnet_probe() (together >> with all the other dev->xxx initialization). > > Definitely better. > > @@ -1536,6 +1536,7 @@ usbnet_probe (struct usb_interface *udev, const struct usb > dev->driver_name = name; > dev->msg_enable = netif_msg_init (msg_level, NETIF_MSG_DRV > | NETIF_MSG_PROBE | NETIF_MSG_LINK); > + init_waitqueue_head(&dev->wait); > skb_queue_head_init (&dev->rxq); > skb_queue_head_init (&dev->txq); > skb_queue_head_init (&dev->done); Oliver, So even with this additional change to usbnet_probe, the device is reporting a link but can't transmit packets. I've tried with three different USB dongles (AX88178, AX88772B, SMSC75xx). In the last case, I ran "ifconfig eth0 192.168.1.100" and then tried to ping 192.168.1.1. "ifconfig eth0" then reports "RX packets 0 bytes 0" and "TX packets 0 bytes 10796". The TX packets != bytes seems odd and suggests (to me) that data getting discarded someplace in the stack. I confirmed by running tcpdump on the other end of the link (192.168.1.1 side) and got nothing from 192.168.1.100. I believe the "10796" TX bytes is due to the connection manager "trying really hard" to get an IP address (via DHCP). Your patch looks like it should work. But it's missing something and I don't have a clue what it is. Ideas? cheers, grant -- To unsubscribe from this list: send the line "unsubscribe linux-usb" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html