diff -r 6a666940fa04 linux-2.6-xen-sparse/drivers/xen/blkfront/blkfront.c --- a/linux-2.6-xen-sparse/drivers/xen/blkfront/blkfront.c Sun Nov 20 09:19:38 2005 +++ b/linux-2.6-xen-sparse/drivers/xen/blkfront/blkfront.c Mon Nov 21 14:58:42 2005 @@ -273,7 +273,6 @@ case XenbusStateInitialising: case XenbusStateInitWait: case XenbusStateInitialised: - case XenbusStateClosed: break; case XenbusStateConnected: @@ -282,6 +281,10 @@ case XenbusStateClosing: blkfront_closing(dev); + break; + + case XenbusStateClosed: + device_unregister(&dev->dev); break; } } diff -r 6a666940fa04 linux-2.6-xen-sparse/drivers/xen/netfront/netfront.c --- a/linux-2.6-xen-sparse/drivers/xen/netfront/netfront.c Sun Nov 20 09:19:38 2005 +++ b/linux-2.6-xen-sparse/drivers/xen/netfront/netfront.c Mon Nov 21 14:58:42 2005 @@ -406,11 +406,14 @@ case XenbusStateInitialised: case XenbusStateConnected: case XenbusStateUnknown: - case XenbusStateClosed: break; case XenbusStateClosing: netfront_closing(dev); + break; + + case XenbusStateClosed: + device_unregister(&dev->dev); break; } }