|
@@ -1769,6 +1769,13 @@ out3:
|
|
if (info->unbind)
|
|
if (info->unbind)
|
|
info->unbind (dev, udev);
|
|
info->unbind (dev, udev);
|
|
out1:
|
|
out1:
|
|
|
|
+ /* subdrivers must undo all they did in bind() if they
|
|
|
|
+ * fail it, but we may fail later and a deferred kevent
|
|
|
|
+ * may trigger an error resubmitting itself and, worse,
|
|
|
|
+ * schedule a timer. So we kill it all just in case.
|
|
|
|
+ */
|
|
|
|
+ cancel_work_sync(&dev->kevent);
|
|
|
|
+ del_timer_sync(&dev->delay);
|
|
free_netdev(net);
|
|
free_netdev(net);
|
|
out:
|
|
out:
|
|
return status;
|
|
return status;
|