]> Pileus Git - ~andy/linux/blobdiff - drivers/net/xen-netfront.c
xen-netfront: handle backend CLOSED without CLOSING
[~andy/linux] / drivers / net / xen-netfront.c
index ff04d4f95baa3561fbf42899bf95f69eab28412f..f9daa9e183f216e7114a1d1b604fe4fc6b6d3861 100644 (file)
@@ -1832,7 +1832,6 @@ static void netback_changed(struct xenbus_device *dev,
        case XenbusStateReconfiguring:
        case XenbusStateReconfigured:
        case XenbusStateUnknown:
-       case XenbusStateClosed:
                break;
 
        case XenbusStateInitWait:
@@ -1847,6 +1846,10 @@ static void netback_changed(struct xenbus_device *dev,
                netdev_notify_peers(netdev);
                break;
 
+       case XenbusStateClosed:
+               if (dev->state == XenbusStateClosed)
+                       break;
+               /* Missed the backend's CLOSING state -- fallthrough */
        case XenbusStateClosing:
                xenbus_frontend_closed(dev);
                break;