From ee50fd98c66f3d7ec2bef312a8a50a9954c249e9 Mon Sep 17 00:00:00 2001 From: kfraser Date: Tue, 18 Sep 2007 09:34:09 +0100 Subject: [PATCH] xenbus: Print more comprehensive info about unconnected devices during boot. Signed-off-by: Keir Fraser --- drivers/xen/xenbus/xenbus_probe.c | 11 ++++++++++- 1 file changed, 10 insertions(+), 1 deletion(-) diff --git a/drivers/xen/xenbus/xenbus_probe.c b/drivers/xen/xenbus/xenbus_probe.c index 52f0c808..4eab8b6f 100644 --- a/drivers/xen/xenbus/xenbus_probe.c +++ b/drivers/xen/xenbus/xenbus_probe.c @@ -1051,6 +1051,7 @@ static int print_device_status(struct device *dev, void *data) { struct xenbus_device *xendev = to_xenbus_device(dev); struct device_driver *drv = data; + struct xenbus_driver *xendrv; /* Is this operation limited to a particular driver? */ if (drv && (dev->driver != drv)) @@ -1060,7 +1061,10 @@ static int print_device_status(struct device *dev, void *data) /* Information only: is this too noisy? */ printk(KERN_INFO "XENBUS: Device with no driver: %s\n", xendev->nodename); - } else if (xendev->state < XenbusStateConnected) { + return 0; + } + + if (xendev->state < XenbusStateConnected) { enum xenbus_state rstate = XenbusStateUnknown; if (xendev->otherend) rstate = xenbus_read_driver_state(xendev->otherend); @@ -1069,6 +1073,11 @@ static int print_device_status(struct device *dev, void *data) xendev->nodename, xendev->state, rstate); } + xendrv = to_xenbus_driver(dev->driver); + if (xendrv->is_ready && !xendrv->is_ready(xendev)) + printk(KERN_WARNING "XENBUS: Device not ready: %s\n", + xendev->nodename); + return 0; } -- 2.39.5