Commit c2d00b21 authored by Sameer Wadgaonkar's avatar Sameer Wadgaonkar Committed by Greg Kroah-Hartman
Browse files

staging: unisys: visorbus: add checks for probe, remove, pause and resume in...


staging: unisys: visorbus: add checks for probe, remove, pause and resume in visorbus_register_visor_driver

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: default avatarSameer Wadgaonkar <sameer.wadgaonkar@unisys.com>
Signed-off-by: default avatarDavid Kershner <david.kershner@unisys.com>
Reviewed-by: default avatarDavid Binder <david.binder@unisys.com>
Signed-off-by: default avatarGreg Kroah-Hartman <gregkh@linuxfoundation.org>
parent a3276bf3
Loading
Loading
Loading
Loading
+13 −9
Original line number Diff line number Diff line
@@ -490,7 +490,6 @@ static int visordriver_remove_device(struct device *xdev)

	mutex_lock(&dev->visordriver_callback_lock);
	dev->being_removed = true;
	if (drv->remove)
	drv->remove(dev);
	mutex_unlock(&dev->visordriver_callback_lock);

@@ -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);