diff --git a/drivers/net/vxge/vxge-main.c b/drivers/net/vxge/vxge-main.c
index 537ad874f11cb2f91e6910ac2ea0a07893e49e92..1ac9b568f1b0cfcc62e1fd7f7f1c32f0749849f5 100644
--- a/drivers/net/vxge/vxge-main.c
+++ b/drivers/net/vxge/vxge-main.c
@@ -3439,6 +3439,8 @@ static void vxge_device_unregister(struct __vxge_hw_device *hldev)
 
 	strncpy(buf, dev->name, IFNAMSIZ);
 
+	flush_work_sync(&vdev->reset_task);
+
 	/* in 2.6 will call stop() if device is up */
 	unregister_netdev(dev);