vxge: hotplug stall
When hot-unplugging a vxge adapter while running, the driver's remove routine prints warning and then stalls the calling thread. This is due to vxge_remove calling vxge_device_unregister to unregister the netdev before calling flush_scheduled_work clear any pending work. Swapping the order of these two functions resolves the issue. Signed-off-by: Jon Mason <jon.mason@exar.com> Signed-off-by: Ram Vepa <ram.vepa@exar.com> Signed-off-by: David S. Miller <davem@davemloft.net>
This commit is contained in:
parent
2e41f6449c
commit
9c16388716
|
@ -3439,11 +3439,11 @@ static void vxge_device_unregister(struct __vxge_hw_device *hldev)
|
|||
|
||||
strncpy(buf, dev->name, IFNAMSIZ);
|
||||
|
||||
flush_scheduled_work();
|
||||
|
||||
/* in 2.6 will call stop() if device is up */
|
||||
unregister_netdev(dev);
|
||||
|
||||
flush_scheduled_work();
|
||||
|
||||
vxge_debug_init(vdev->level_trace, "%s: ethernet device unregistered",
|
||||
buf);
|
||||
vxge_debug_entryexit(vdev->level_trace, "%s: %s:%d Exiting...", buf,
|
||||
|
|
Loading…
Reference in New Issue