[prev in list] [next in list] [prev in thread] [next in thread] 

List:       xen-cvs
Subject:    [Xen-changelog] [xen-unstable] [NET] front: Clean up error
From:       Xen patchbot-unstable <patchbot-unstable () lists ! xensource ! com>
Date:       2006-10-31 17:40:22
Message-ID: E1Gexb5-0001o9-Q9 () xenbits ! xensource ! com
[Download RAW message or body]

# HG changeset patch
# User kfraser@localhost.localdomain
# 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@xensource.com>
---
 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@lists.xensource.com
http://lists.xensource.com/xen-changelog
[prev in list] [next in list] [prev in thread] [next in thread] 

Configure | About | News | Add a list | Sponsored by KoreLogic