Skip to content

Commit 5746b3b

Browse files
committed
Merge tag 'tee-dev-cleanup-for-v5.10' of git://git.linaro.org:/people/jens.wiklander/linux-tee into arm/drivers
Simplify tee_device_register() and friends Uses cdev_device_add() instead of the cdev_add() device_add() combination. Initializes dev->groups instead of direct calls to sysfs_create_group() and friends. * tag 'tee-dev-cleanup-for-v5.10' of git://git.linaro.org:/people/jens.wiklander/linux-tee: tee: avoid explicit sysfs_create/delete_group by initialising dev->groups tee: replace cdev_add + device_add with cdev_device_add Link: https://lore.kernel.org/r/20200918144130.GB1219771@jade Signed-off-by: Olof Johansson <olof@lixom.net>
2 parents 802b26b + 8c05f50 commit 5746b3b

1 file changed

Lines changed: 7 additions & 33 deletions

File tree

drivers/tee/tee_core.c

Lines changed: 7 additions & 33 deletions
Original file line numberDiff line numberDiff line change
@@ -930,7 +930,6 @@ struct tee_device *tee_device_alloc(const struct tee_desc *teedesc,
930930

931931
cdev_init(&teedev->cdev, &tee_fops);
932932
teedev->cdev.owner = teedesc->owner;
933-
teedev->cdev.kobj.parent = &teedev->dev.kobj;
934933

935934
dev_set_drvdata(&teedev->dev, driver_data);
936935
device_initialize(&teedev->dev);
@@ -976,9 +975,7 @@ static struct attribute *tee_dev_attrs[] = {
976975
NULL
977976
};
978977

979-
static const struct attribute_group tee_dev_group = {
980-
.attrs = tee_dev_attrs,
981-
};
978+
ATTRIBUTE_GROUPS(tee_dev);
982979

983980
/**
984981
* tee_device_register() - Registers a TEE device
@@ -998,39 +995,19 @@ int tee_device_register(struct tee_device *teedev)
998995
return -EINVAL;
999996
}
1000997

1001-
rc = cdev_add(&teedev->cdev, teedev->dev.devt, 1);
1002-
if (rc) {
1003-
dev_err(&teedev->dev,
1004-
"unable to cdev_add() %s, major %d, minor %d, err=%d\n",
1005-
teedev->name, MAJOR(teedev->dev.devt),
1006-
MINOR(teedev->dev.devt), rc);
1007-
return rc;
1008-
}
998+
teedev->dev.groups = tee_dev_groups;
1009999

1010-
rc = device_add(&teedev->dev);
1000+
rc = cdev_device_add(&teedev->cdev, &teedev->dev);
10111001
if (rc) {
10121002
dev_err(&teedev->dev,
1013-
"unable to device_add() %s, major %d, minor %d, err=%d\n",
1003+
"unable to cdev_device_add() %s, major %d, minor %d, err=%d\n",
10141004
teedev->name, MAJOR(teedev->dev.devt),
10151005
MINOR(teedev->dev.devt), rc);
1016-
goto err_device_add;
1017-
}
1018-
1019-
rc = sysfs_create_group(&teedev->dev.kobj, &tee_dev_group);
1020-
if (rc) {
1021-
dev_err(&teedev->dev,
1022-
"failed to create sysfs attributes, err=%d\n", rc);
1023-
goto err_sysfs_create_group;
1006+
return rc;
10241007
}
10251008

10261009
teedev->flags |= TEE_DEVICE_FLAG_REGISTERED;
10271010
return 0;
1028-
1029-
err_sysfs_create_group:
1030-
device_del(&teedev->dev);
1031-
err_device_add:
1032-
cdev_del(&teedev->cdev);
1033-
return rc;
10341011
}
10351012
EXPORT_SYMBOL_GPL(tee_device_register);
10361013

@@ -1073,11 +1050,8 @@ void tee_device_unregister(struct tee_device *teedev)
10731050
if (!teedev)
10741051
return;
10751052

1076-
if (teedev->flags & TEE_DEVICE_FLAG_REGISTERED) {
1077-
sysfs_remove_group(&teedev->dev.kobj, &tee_dev_group);
1078-
cdev_del(&teedev->cdev);
1079-
device_del(&teedev->dev);
1080-
}
1053+
if (teedev->flags & TEE_DEVICE_FLAG_REGISTERED)
1054+
cdev_device_del(&teedev->cdev, &teedev->dev);
10811055

10821056
tee_device_put(teedev);
10831057
wait_for_completion(&teedev->c_no_users);

0 commit comments

Comments
 (0)