diff options
Diffstat (limited to 'drivers/s390/cio/css.c')
| -rw-r--r-- | drivers/s390/cio/css.c | 9 | 
1 files changed, 6 insertions, 3 deletions
| diff --git a/drivers/s390/cio/css.c b/drivers/s390/cio/css.c index 44461928aab8..2bc55ccf3f23 100644 --- a/drivers/s390/cio/css.c +++ b/drivers/s390/cio/css.c @@ -792,10 +792,13 @@ static int __unset_online(struct device *dev, void *data)  {  	struct idset *set = data;  	struct subchannel *sch = to_subchannel(dev); -	struct ccw_device *cdev = sch_get_cdev(sch); +	struct ccw_device *cdev; -	if (cdev && cdev->online) -		idset_sch_del(set, sch->schid); +	if (sch->st == SUBCHANNEL_TYPE_IO) { +		cdev = sch_get_cdev(sch); +		if (cdev && cdev->online) +			idset_sch_del(set, sch->schid); +	}  	return 0;  } |