On Fri, Jun 12, 2015 at 01:43:34PM -0400, Benjamin Romer wrote:
> From: David Kershner <david.kersh...@unisys.com>
> 
> 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.kersh...@unisys.com>
> Signed-off-by: Benjamin Romer <benjamin.ro...@unisys.com>
> ---
>  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
de...@linuxdriverproject.org
http://driverdev.linuxdriverproject.org/mailman/listinfo/driverdev-devel

Reply via email to