diff options
Diffstat (limited to 'drivers/net/xen-netfront.c')
| -rw-r--r-- | drivers/net/xen-netfront.c | 7 | 
1 files changed, 6 insertions, 1 deletions
diff --git a/drivers/net/xen-netfront.c b/drivers/net/xen-netfront.c index 8328d395e332..3127bc8633ca 100644 --- a/drivers/net/xen-netfront.c +++ b/drivers/net/xen-netfront.c @@ -2005,7 +2005,10 @@ static void netback_changed(struct xenbus_device *dev,  	case XenbusStateInitialised:  	case XenbusStateReconfiguring:  	case XenbusStateReconfigured: +		break; +  	case XenbusStateUnknown: +		wake_up_all(&module_unload_q);  		break;  	case XenbusStateInitWait: @@ -2136,7 +2139,9 @@ static int xennet_remove(struct xenbus_device *dev)  		xenbus_switch_state(dev, XenbusStateClosing);  		wait_event(module_unload_q,  			   xenbus_read_driver_state(dev->otherend) == -			   XenbusStateClosing); +			   XenbusStateClosing || +			   xenbus_read_driver_state(dev->otherend) == +			   XenbusStateUnknown);  		xenbus_switch_state(dev, XenbusStateClosed);  		wait_event(module_unload_q,  | 

