s390/cio: derive cdev information only for IO-subchannels
[ Upstream commit 0c3812c347bfb0dc213556a195e79850c55702f5 ] 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> Stable-dep-of: 1b6074112742 ("s390/cio: fix out-of-bounds access on cio_ignore free") Signed-off-by: Sasha Levin <sashal@kernel.org>
This commit is contained in:
parent
c64be93f1e
commit
c65cc56937
@ -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;
|
||||
}
|
||||
|
Loading…
x
Reference in New Issue
Block a user