# HG changeset patch
# User kfraser@xxxxxxxxxxxxxxxxxxxxx
# Node ID b6de597411610bb9b9ac5077e23a68e22085884e
# Parent 6ad98bc30cb4b8e2b59e91e0bf4fbf7099609bc4
[NET] front: Clean up error handling. This eliminates earlier
workaround patch for an observed crash.
Signed-off-by: Keir Fraser <keir@xxxxxxxxxxxxx>
---
linux-2.6-xen-sparse/drivers/xen/netfront/netfront.c | 25 +------------------
1 files changed, 2 insertions(+), 23 deletions(-)
diff -r 6ad98bc30cb4 -r b6de59741161
linux-2.6-xen-sparse/drivers/xen/netfront/netfront.c
--- a/linux-2.6-xen-sparse/drivers/xen/netfront/netfront.c Tue Oct 31
15:54:03 2006 +0000
+++ b/linux-2.6-xen-sparse/drivers/xen/netfront/netfront.c Tue Oct 31
16:18:07 2006 +0000
@@ -242,7 +242,6 @@ static void netif_disconnect_backend(str
static void netif_disconnect_backend(struct netfront_info *);
static int open_netdev(struct netfront_info *);
static void close_netdev(struct netfront_info *);
-static void netif_free(struct netfront_info *);
static int network_connect(struct net_device *);
static void network_tx_buf_gc(struct net_device *);
@@ -427,7 +426,6 @@ again:
out:
return err;
}
-
static int setup_device(struct xenbus_device *dev, struct netfront_info *info)
{
@@ -488,10 +486,8 @@ static int setup_device(struct xenbus_de
return 0;
fail:
- netif_free(info);
return err;
}
-
/**
* Callback received when the backend's state changes.
@@ -513,23 +509,17 @@ static void backend_changed(struct xenbu
break;
case XenbusStateInitWait:
- if (network_connect(netdev) != 0) {
- netif_free(np);
+ if (network_connect(netdev) != 0)
break;
- }
xenbus_switch_state(dev, XenbusStateConnected);
(void)send_fake_arp(netdev);
break;
case XenbusStateClosing:
- if (dev->state == XenbusStateConnected)
- netfront_closing(dev);
- else
- printk(KERN_DEBUG "Netfront: going to state Closing
without being connected...\n");
+ netfront_closing(dev);
break;
}
}
-
/** Send a packet on a net device to encourage switches to learn the
* MAC. We send a fake ARP request.
@@ -558,7 +548,6 @@ static int send_fake_arp(struct net_devi
return dev_queue_xmit(skb);
}
-
static int network_open(struct net_device *dev)
{
@@ -651,13 +640,11 @@ static void network_tx_buf_gc(struct net
network_maybe_wake_tx(dev);
}
-
static void rx_refill_timeout(unsigned long data)
{
struct net_device *dev = (struct net_device *)data;
netif_rx_schedule(dev);
}
-
static void network_alloc_rx_buffers(struct net_device *dev)
{
@@ -2066,14 +2053,6 @@ static void netif_disconnect_backend(str
}
-static void netif_free(struct netfront_info *info)
-{
- close_netdev(info);
- netif_disconnect_backend(info);
- free_netdev(info->netdev);
-}
-
-
static void end_access(int ref, void *page)
{
if (ref != GRANT_INVALID_REF)
_______________________________________________
Xen-changelog mailing list
Xen-changelog@xxxxxxxxxxxxxxxxxxx
http://lists.xensource.com/xen-changelog
|