[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[Xen-devel] [PATCH 19/24] [xen-unstable.hg] abort minios driver initialisation if xenbus not ready - xenstore stubdom doesn't need them anyway





Aborts initializing some drivers if xenbus is not available.

The only situation in which xenbus will not be available is
when the mini-os domain is a xenstored stubdom - in which
case none of the affected drivers (fs-front, lwip-net, netfront)
are used anyway.

So this patch is really just defensive coding.

Signed-off-by: Diego Ongaro <diego.ongaro@xxxxxxxxxx>
Signed-off-by: Alex Zeffertt <alex.zeffertt@xxxxxxxxxxxxx>
---

diff -r 95cc49ec5b90 extras/mini-os/fs-front.c
--- a/extras/mini-os/fs-front.c Wed Mar 18 16:04:51 2009 +0000
+++ b/extras/mini-os/fs-front.c Wed Mar 18 16:17:11 2009 +0000
@@ -1231,6 +1231,10 @@
 {
     struct minios_list_head *entry;
     struct fs_import *import = NULL;
+
+    if (!is_xenbus_ready())
+        return;
+
     printk("Initing FS fronend(s).\n");
 
     //exports = probe_exports();
diff -r 95cc49ec5b90 extras/mini-os/lwip-net.c
--- a/extras/mini-os/lwip-net.c Wed Mar 18 16:04:51 2009 +0000
+++ b/extras/mini-os/lwip-net.c Wed Mar 18 16:17:11 2009 +0000
@@ -350,7 +350,9 @@
   tprintk("Waiting for network.\n");
 
   dev = init_netfront(NULL, NULL, rawmac, &ip);
-  
+  if (dev == NULL)
+    tprintk("start_networking abort: init_netfront failed\n");
+
   if (ip) {
     ipaddr.addr = inet_addr(ip);
     if (IN_CLASSA(ntohl(ipaddr.addr)))
diff -r 95cc49ec5b90 extras/mini-os/netfront.c
--- a/extras/mini-os/netfront.c Wed Mar 18 16:04:51 2009 +0000
+++ b/extras/mini-os/netfront.c Wed Mar 18 16:17:11 2009 +0000
@@ -311,6 +311,9 @@
     struct netfront_dev *dev;
 
     char path[strlen(nodename) + 1 + 10 + 1];
+
+    if (!is_xenbus_ready())
+        return NULL;
 
     if (!thenetif_rx)
        thenetif_rx = netif_rx;


_______________________________________________
Xen-devel mailing list
Xen-devel@xxxxxxxxxxxxxxxxxxx
http://lists.xensource.com/xen-devel

 


Rackspace

Lists.xenproject.org is hosted with RackSpace, monitoring our
servers 24x7x365 and backed by RackSpace's Fanatical Support®.