On Fri, Jun 12, 2015 at 01:43:34PM -0400, Benjamin Romer wrote: > From: David Kershner <david.kershner@xxxxxxxxxx> > > Currently if a driver is not loaded for a device, we will not > respond to the device create until it is done. This causes > s-Par to not mark the partition running if the driver for the > device is not loaded. Since there are several devices that > could be assigned to a guest that don't have an actual > driver this will cause us to never go running. > > If the device driver is loaded, we WILL continue to only > respond to the device PAUSE message when the device driver > has responded that it is done with the device. > > Signed-off-by: David Kershner <david.kershner@xxxxxxxxxx> > Signed-off-by: Benjamin Romer <benjamin.romer@xxxxxxxxxx> > --- > drivers/staging/unisys/visorbus/visorbus_main.c | 28 +++++++------------------ > 1 file changed, 7 insertions(+), 21 deletions(-) > > diff --git a/drivers/staging/unisys/visorbus/visorbus_main.c b/drivers/staging/unisys/visorbus/visorbus_main.c > index dcce1f0..ce35e85 100644 > --- a/drivers/staging/unisys/visorbus/visorbus_main.c > +++ b/drivers/staging/unisys/visorbus/visorbus_main.c > @@ -70,7 +70,6 @@ static const struct attribute_group *visorbus_bus_groups[] = { > NULL, > }; > > - > /** This describes the TYPE of bus. > * (Don't confuse this with an INSTANCE of the bus.) > */ > @@ -745,19 +744,6 @@ visordriver_probe_device(struct device *xdev) > away: > if (rc != 0) > put_device(&dev->device); > - /* We could get here more than once if the child driver module is > - * unloaded and re-loaded while devices are present. That's why we > - * need a flag to be sure that we only respond to the device_create > - * once. We cannot respond to the device_create prior to here, > - * because until we call drv->probe() above, the channel has not been > - * initialized. > - */ > - if (!dev->responded_to_device_create) { > - > - dev->responded_to_device_create = true; > - if (chipset_responders.device_create) > - (*chipset_responders.device_create)(dev, rc); > - } > return rc; > } > > @@ -1306,15 +1292,15 @@ chipset_device_create(struct visor_device *dev_info) > POSTCODE_SEVERITY_INFO); > > rc = create_visor_device(dev_info); > - if (rc < 0) { > + if (chipset_responders.device_create) > + (*chipset_responders.device_create)(dev_info, rc); Shouldn't that just be: chipset_responders.device_create(dev_info, rc); thanks, greg k-h _______________________________________________ devel mailing list devel@xxxxxxxxxxxxxxxxxxxxxx http://driverdev.linuxdriverproject.org/mailman/listinfo/driverdev-devel