diff options
Diffstat (limited to 'drivers/ipack/ipack.c')
| -rw-r--r-- | drivers/ipack/ipack.c | 11 | 
1 files changed, 5 insertions, 6 deletions
diff --git a/drivers/ipack/ipack.c b/drivers/ipack/ipack.c index 9267a85fee18..7de9605cac4f 100644 --- a/drivers/ipack/ipack.c +++ b/drivers/ipack/ipack.c @@ -64,9 +64,6 @@ static int ipack_bus_probe(struct device *device)  	struct ipack_device *dev = to_ipack_dev(device);  	struct ipack_driver *drv = to_ipack_driver(device->driver); -	if (!drv->ops->probe) -		return -EINVAL; -  	return drv->ops->probe(dev);  } @@ -75,10 +72,9 @@ static int ipack_bus_remove(struct device *device)  	struct ipack_device *dev = to_ipack_dev(device);  	struct ipack_driver *drv = to_ipack_driver(device->driver); -	if (!drv->ops->remove) -		return -EINVAL; +	if (drv->ops->remove) +		drv->ops->remove(dev); -	drv->ops->remove(dev);  	return 0;  } @@ -252,6 +248,9 @@ EXPORT_SYMBOL_GPL(ipack_bus_unregister);  int ipack_driver_register(struct ipack_driver *edrv, struct module *owner,  			  const char *name)  { +	if (!edrv->ops->probe) +		return -EINVAL; +  	edrv->driver.owner = owner;  	edrv->driver.name = name;  	edrv->driver.bus = &ipack_bus_type;  | 
