> I tried adding the following change on top of your patch but believe > the plumbing still isn't quite correct since the USB device (eth0) is > reporting a link but no TX or RX of traffic: > @@ -805,6 +807,9 @@ int usbnet_open (struct net_device *net) > goto done; > } > > + /* usbnet_bh() expects the spinlock to be initialized. */ > + init_waitqueue_head(&dev->wait); > + > /* hard_mtu or rx_urb_size may change in reset() */ > usbnet_update_max_qlen(dev); I think a better place for this would be in usbnet_probe() (together with all the other dev->xxx initialization). I'm not quite sure how that could cause the transfer problems you are seeing, but at least you will no longer initialize the waitqueue multiple times on multiple usbnet_open (which is probably a bad idea). -- 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