s390/cio: derive cdev information only for IO-subchannels

cdev->online for the purge function must not be checked for the
non-IO subchannel type. Make sure that we are deriving the cdev only
from sch-type SUBCHANNEL_TYPE_IO.

Signed-off-by: Vineeth Vijayan <vneethv@linux.ibm.com>
Reviewed-by: Peter Oberparleiter <oberpar@linux.ibm.com>
Signed-off-by: Vasily Gorbik <gor@linux.ibm.com>
This commit is contained in:
Vineeth Vijayan 2021-09-17 15:04:01 +02:00 committed by Vasily Gorbik
parent 6526a597a2
commit 0c3812c347

View File

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