diff options
Diffstat (limited to 'drivers/s390/cio/scm.c')
| -rw-r--r-- | drivers/s390/cio/scm.c | 18 | 
1 files changed, 17 insertions, 1 deletions
| diff --git a/drivers/s390/cio/scm.c b/drivers/s390/cio/scm.c index bcf20f3aa51..46ec25632e8 100644 --- a/drivers/s390/cio/scm.c +++ b/drivers/s390/cio/scm.c @@ -211,7 +211,7 @@ static void scmdev_update(struct scm_device *scmdev, struct sale *sale)  		goto out;  	scmdrv = to_scm_drv(scmdev->dev.driver);  	if (changed && scmdrv->notify) -		scmdrv->notify(scmdev); +		scmdrv->notify(scmdev, SCM_CHANGE);  out:  	device_unlock(&scmdev->dev);  	if (changed) @@ -297,6 +297,22 @@ int scm_update_information(void)  	return ret;  } +static int scm_dev_avail(struct device *dev, void *unused) +{ +	struct scm_driver *scmdrv = to_scm_drv(dev->driver); +	struct scm_device *scmdev = to_scm_dev(dev); + +	if (dev->driver && scmdrv->notify) +		scmdrv->notify(scmdev, SCM_AVAIL); + +	return 0; +} + +int scm_process_availability_information(void) +{ +	return bus_for_each_dev(&scm_bus_type, NULL, NULL, scm_dev_avail); +} +  static int __init scm_init(void)  {  	int ret; |