On Fri, Jun 12, 2015 at 01:43:34PM -0400, Benjamin Romer wrote:
> From: David Kershner <[email protected]>
>
> 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 <[email protected]>
> Signed-off-by: Benjamin Romer <[email protected]>
> ---
> 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
[email protected]
http://driverdev.linuxdriverproject.org/mailman/listinfo/driverdev-devel