From: Sameer Wadgaonkar <sameer.wadgaonkar@xxxxxxxxxx> Added checks for functions probe, remove, pause and resume in visorbus_register_visor_driver() and removed these checks from the individual functions itself. Signed-off-by: Sameer Wadgaonkar <sameer.wadgaonkar@xxxxxxxxxx> Signed-off-by: David Kershner <david.kershner@xxxxxxxxxx> Reviewed-by: David Binder <david.binder@xxxxxxxxxx> --- drivers/staging/unisys/visorbus/visorbus_main.c | 22 ++++++++++-------- 1 file changed, 13 insertions(+), 9 deletions(-) diff --git a/drivers/staging/unisys/visorbus/visorbus_main.c b/drivers/staging/unisys/visorbus/visorbus_main.c index 57f59cb..4849054 100644 --- a/drivers/staging/unisys/visorbus/visorbus_main.c +++ b/drivers/staging/unisys/visorbus/visorbus_main.c @@ -490,8 +490,7 @@ static int visordriver_remove_device(struct device *xdev) mutex_lock(&dev->visordriver_callback_lock); dev->being_removed = true; - if (drv->remove) - drv->remove(dev); + drv->remove(dev); mutex_unlock(&dev->visordriver_callback_lock); dev_stop_periodic_work(dev); @@ -868,8 +867,6 @@ static int visordriver_probe_device(struct device *xdev) dev = to_visor_device(xdev); drv = to_visor_driver(xdev->driver); - if (!drv->probe) - return -ENODEV; mutex_lock(&dev->visordriver_callback_lock); dev->being_removed = false; @@ -940,6 +937,18 @@ int visorbus_register_visor_driver(struct visor_driver *drv) if (!initialized) return -ENODEV; + if (!drv->probe) + return -ENODEV; + + if (!drv->remove) + return -ENODEV; + + if (!drv->pause) + return -ENODEV; + + if (!drv->resume) + return -ENODEV; + drv->driver.name = drv->name; drv->driver.bus = &visorbus_type; drv->driver.probe = visordriver_probe_device; @@ -1158,9 +1167,6 @@ static int visorchipset_initiate_device_pause_resume(struct visor_device *dev, return -EBUSY; if (is_pause) { - if (!drv->pause) - return -EINVAL; - dev->pausing = true; err = drv->pause(dev, pause_state_change_complete); } else { @@ -1169,8 +1175,6 @@ static int visorchipset_initiate_device_pause_resume(struct visor_device *dev, * make sure it is valid. */ fix_vbus_dev_info(dev); - if (!drv->resume) - return -EINVAL; dev->resuming = true; err = drv->resume(dev, resume_state_change_complete); -- git-series 0.9.1 _______________________________________________ devel mailing list devel@xxxxxxxxxxxxxxxxxxxxxx http://driverdev.linuxdriverproject.org/mailman/listinfo/driverdev-devel