|
|
|
|
|
|
|
|
|
|
xen-changelog
[Xen-changelog] Fix uncleaned vif backend devices when frontend does not
# HG changeset patch
# User kaf24@xxxxxxxxxxxxxxxxxxxx
# Node ID 4c961318d216119345e849e2d9c82e8fdc8857a1
# Parent 8b74b9603d5e1b8e4f2a0b970f1425b2840b17cc
Fix uncleaned vif backend devices when frontend does not finish
initialization properly.
Signed-off-by: Murillo F. Bernardes <mfb@xxxxxxxxxx>
diff -r 8b74b9603d5e -r 4c961318d216
linux-2.6-xen-sparse/drivers/xen/netback/interface.c
--- a/linux-2.6-xen-sparse/drivers/xen/netback/interface.c Wed Dec 28
11:29:15 2005
+++ b/linux-2.6-xen-sparse/drivers/xen/netback/interface.c Wed Dec 28
13:55:55 2005
@@ -247,13 +247,9 @@
{
netif_t *netif = (netif_t *)arg;
- /* Already disconnected? */
- if (!netif->irq)
- return;
-
- unbind_from_irqhandler(netif->irq, netif);
- netif->irq = 0;
-
+ if (netif->irq)
+ unbind_from_irqhandler(netif->irq, netif);
+
unregister_netdev(netif->dev);
if (netif->tx.sring) {
@@ -290,10 +286,10 @@
#endif
}
-int netif_disconnect(netif_t *netif)
-{
-
- if (netif->status == CONNECTED) {
+void netif_disconnect(netif_t *netif)
+{
+ switch (netif->status) {
+ case CONNECTED:
rtnl_lock();
netif->status = DISCONNECTING;
wmb();
@@ -301,10 +297,14 @@
__netif_down(netif);
rtnl_unlock();
netif_put(netif);
- return 0; /* Caller should not send response message. */
- }
-
- return 1;
+ break;
+ case DISCONNECTED:
+ BUG_ON(atomic_read(&netif->refcnt) != 0);
+ free_netif(netif);
+ break;
+ default:
+ BUG();
+ }
}
/*
_______________________________________________
Xen-changelog mailing list
Xen-changelog@xxxxxxxxxxxxxxxxxxx
http://lists.xensource.com/xen-changelog
|
<Prev in Thread] |
Current Thread |
[Next in Thread> |
- [Xen-changelog] Fix uncleaned vif backend devices when frontend does not finish,
Xen patchbot -unstable <=
|
|
|
|
|