Messages in this thread Patch in this message | | | Date | Wed, 4 Dec 2019 13:56:17 -0800 | Subject | [PATCH v2 1/2] thermal: fix and clean up tz and cdev registration | From | Wei Wang <> |
| |
Make cooling device registration behavior consistent with thermal zone. This patch also cleans up a unnecessary nullptr check.
Signed-off-by: Wei Wang <wvw@google.com> --- drivers/thermal/thermal_core.c | 16 ++++++++++++---- 1 file changed, 12 insertions(+), 4 deletions(-)
diff --git a/drivers/thermal/thermal_core.c b/drivers/thermal/thermal_core.c index d4481cc8958f..64fbb59c2f44 100644 --- a/drivers/thermal/thermal_core.c +++ b/drivers/thermal/thermal_core.c @@ -954,8 +954,16 @@ __thermal_cooling_device_register(struct device_node *np, struct thermal_zone_device *pos = NULL; int result; - if (type && strlen(type) >= THERMAL_NAME_LENGTH) - return ERR_PTR(-EINVAL); + if (!type || !type[0]) { + pr_err("Error: No cooling device type defined\n"); + return ERR_PTR(-EINVAL); + } + + if (strlen(type) >= THERMAL_NAME_LENGTH) { + pr_err("Error: Cooling device name (%s) too long, " + "should be under %d chars\n", type, THERMAL_NAME_LENGTH); + return ERR_PTR(-EINVAL); + } if (!ops || !ops->get_max_state || !ops->get_cur_state || !ops->set_cur_state) @@ -972,7 +980,7 @@ __thermal_cooling_device_register(struct device_node *np, } cdev->id = result; - strlcpy(cdev->type, type ? : "", sizeof(cdev->type)); + strlcpy(cdev->type, type, sizeof(cdev->type)); mutex_init(&cdev->lock); INIT_LIST_HEAD(&cdev->thermal_instances); cdev->np = np; @@ -1250,7 +1258,7 @@ thermal_zone_device_register(const char *type, int trips, int mask, return ERR_PTR(-EINVAL); } - if (type && strlen(type) >= THERMAL_NAME_LENGTH) { + if (strlen(type) >= THERMAL_NAME_LENGTH) { pr_err("Error: Thermal zone name (%s) too long, should be under %d chars\n", type, THERMAL_NAME_LENGTH); return ERR_PTR(-EINVAL); -- 2.24.0.393.g34dc348eaf-goog
| |