[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] [Xen-changelog] [linux-2.6.18-xen] xenbus: don't invoke ->is_ready() for most device states
# HG changeset patch # User Jan Beulich <jbeulich@xxxxxxxx> # Date 1475834593 -7200 # Fri Oct 07 12:03:13 2016 +0200 # Node ID d8a0a20fdf208e98c3e41464cf8bdd4eee0ac25b # Parent 7ba8deb4c1be7d9353a88f2af0f23bf789d3f5d9 xenbus: don't invoke ->is_ready() for most device states Along the lines of is_device_connecting(), print_device_status() should avoid invoking ->is_ready() when the device is in other than connected state. Convert the log message issuing logic to an if-else-if sequence to at once make sure - at most one warning will be issued, - there will be a warning for any unexpected state. Signed-off-by: Jan Beulich <jbeulich@xxxxxxxx> --- diff -r 7ba8deb4c1be -r d8a0a20fdf20 drivers/xen/xenbus/xenbus_probe.c --- a/drivers/xen/xenbus/xenbus_probe.c Mon Aug 22 08:24:03 2016 +0200 +++ b/drivers/xen/xenbus/xenbus_probe.c Fri Oct 07 12:03:13 2016 +0200 @@ -1280,7 +1280,6 @@ static int print_device_status(struct de { 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)) @@ -1290,22 +1289,22 @@ static int print_device_status(struct de /* Information only: is this too noisy? */ printk(KERN_INFO "XENBUS: Device with no driver: %s\n", xendev->nodename); - return 0; - } - - if (xendev->state < XenbusStateConnected) { + } else if (xendev->state < XenbusStateConnected) { enum xenbus_state rstate = XenbusStateUnknown; if (xendev->otherend) rstate = xenbus_read_driver_state(xendev->otherend); printk(KERN_WARNING "XENBUS: Timeout connecting " "to device: %s (local state %d, remote state %d)\n", xendev->nodename, xendev->state, rstate); - } + } else if (xendev->state == XenbusStateConnected) { + struct xenbus_driver *xendrv = to_xenbus_driver(dev->driver); - 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); + if (xendrv->is_ready && !xendrv->is_ready(xendev)) + printk(KERN_WARNING "XENBUS: Device not ready: %s\n", + xendev->nodename); + } else + printk(KERN_WARNING "XENBUS: Unexpected state %d: %s\n", + xendev->state, xendev->nodename); return 0; } _______________________________________________ Xen-changelog mailing list Xen-changelog@xxxxxxxxxxxxx https://lists.xenproject.org/xen-changelog
|
Lists.xenproject.org is hosted with RackSpace, monitoring our |