From mboxrd@z Thu Jan 1 00:00:00 1970 From: Alex Zeffertt Subject: [PATCH 19/24] [xen-unstable.hg] abort minios driver initialisation if xenbus not ready - xenstore stubdom doesn't need them anyway Date: Mon, 23 Mar 2009 15:21:26 +0000 Message-ID: <49C7A8F6.7030203@eu.citrix.com> Mime-Version: 1.0 Content-Type: multipart/mixed; boundary="------------090507010102010304040102" Return-path: List-Unsubscribe: , List-Post: List-Help: List-Subscribe: , Sender: xen-devel-bounces@lists.xensource.com Errors-To: xen-devel-bounces@lists.xensource.com To: "xen-devel@lists.xensource.com" List-Id: xen-devel@lists.xenproject.org This is a multi-part message in MIME format. --------------090507010102010304040102 Content-Type: text/plain; charset=ISO-8859-1; format=flowed Content-Transfer-Encoding: 7bit --------------090507010102010304040102 Content-Type: text/plain; name="minios_use_xenbus_ready_flag" Content-Transfer-Encoding: 7bit Content-Disposition: inline; filename="minios_use_xenbus_ready_flag" 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 Signed-off-by: Alex Zeffertt --- 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; --------------090507010102010304040102 Content-Type: text/plain; charset="us-ascii" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit Content-Disposition: inline _______________________________________________ Xen-devel mailing list Xen-devel@lists.xensource.com http://lists.xensource.com/xen-devel --------------090507010102010304040102--