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: Julian Wiedmann <jwi@linux.vnet.ibm.com> Acked-by: Sebastian Ott <sebott@linux.vnet.ibm.com> Signed-off-by: Martin Schwidefsky <schwidefsky@de.ibm.com>
This commit is contained in:
parent
2c957a8ad4
commit
ab7efda477
|
@ -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;
|
||||
|
|
Loading…
Reference in New Issue