Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit ab7efda4 authored by Julian Wiedmann's avatar Julian Wiedmann Committed by Martin Schwidefsky
Browse files

s390/ccwgroup: require at least one ccw device



ccwgroup_create_dev() derives the gdev's device name from gdev->cdev[0],
so make sure that this reference is valid.

For robustness only, all current ccwgroup drivers get this right.

Signed-off-by: default avatarJulian Wiedmann <jwi@linux.vnet.ibm.com>
Acked-by: default avatarSebastian Ott <sebott@linux.vnet.ibm.com>
Signed-off-by: default avatarMartin Schwidefsky <schwidefsky@de.ibm.com>
parent 2c957a8a
Loading
Loading
Loading
Loading
+4 −1
Original line number Diff line number Diff line
@@ -323,6 +323,9 @@ int ccwgroup_create_dev(struct device *parent, struct ccwgroup_driver *gdrv,
	struct ccw_dev_id dev_id;
	int rc, i;

	if (num_devices < 1)
		return -EINVAL;

	gdev = kzalloc(sizeof(*gdev) + num_devices * sizeof(gdev->cdev[0]),
		       GFP_KERNEL);
	if (!gdev)
@@ -375,7 +378,7 @@ int ccwgroup_create_dev(struct device *parent, struct ccwgroup_driver *gdrv,
		goto error;
	}
	/* Check if the devices are bound to the required ccw driver. */
	if (gdev->count && gdrv && gdrv->ccw_driver &&
	if (gdrv && gdrv->ccw_driver &&
	    gdev->cdev[0]->drv != gdrv->ccw_driver) {
		rc = -EINVAL;
		goto error;