提交 3e6fda5c 编写于 作者: T Thomas Sujith 提交者: Len Brown

thermal: use ERR_PTR for returning error

Need to return using ERR_PTR instead of NULL
in case of errors.
Signed-off-by: NThomas Sujith <sujith.thomas@intel.com>
Signed-off-by: NLen Brown <len.brown@intel.com>
上级 c7516709
...@@ -448,20 +448,20 @@ struct thermal_cooling_device *thermal_cooling_device_register(char *type, ...@@ -448,20 +448,20 @@ struct thermal_cooling_device *thermal_cooling_device_register(char *type,
int result; int result;
if (strlen(type) >= THERMAL_NAME_LENGTH) if (strlen(type) >= THERMAL_NAME_LENGTH)
return NULL; return ERR_PTR(-EINVAL);
if (!ops || !ops->get_max_state || !ops->get_cur_state || if (!ops || !ops->get_max_state || !ops->get_cur_state ||
!ops->set_cur_state) !ops->set_cur_state)
return NULL; return ERR_PTR(-EINVAL);
cdev = kzalloc(sizeof(struct thermal_cooling_device), GFP_KERNEL); cdev = kzalloc(sizeof(struct thermal_cooling_device), GFP_KERNEL);
if (!cdev) if (!cdev)
return NULL; return ERR_PTR(-ENOMEM);
result = get_idr(&thermal_cdev_idr, &thermal_idr_lock, &cdev->id); result = get_idr(&thermal_cdev_idr, &thermal_idr_lock, &cdev->id);
if (result) { if (result) {
kfree(cdev); kfree(cdev);
return NULL; return ERR_PTR(result);
} }
strcpy(cdev->type, type); strcpy(cdev->type, type);
...@@ -473,7 +473,7 @@ struct thermal_cooling_device *thermal_cooling_device_register(char *type, ...@@ -473,7 +473,7 @@ struct thermal_cooling_device *thermal_cooling_device_register(char *type,
if (result) { if (result) {
release_idr(&thermal_cdev_idr, &thermal_idr_lock, cdev->id); release_idr(&thermal_cdev_idr, &thermal_idr_lock, cdev->id);
kfree(cdev); kfree(cdev);
return NULL; return ERR_PTR(result);
} }
/* sys I/F */ /* sys I/F */
...@@ -509,7 +509,7 @@ struct thermal_cooling_device *thermal_cooling_device_register(char *type, ...@@ -509,7 +509,7 @@ struct thermal_cooling_device *thermal_cooling_device_register(char *type,
unregister: unregister:
release_idr(&thermal_cdev_idr, &thermal_idr_lock, cdev->id); release_idr(&thermal_cdev_idr, &thermal_idr_lock, cdev->id);
device_unregister(&cdev->device); device_unregister(&cdev->device);
return NULL; return ERR_PTR(result);
} }
EXPORT_SYMBOL(thermal_cooling_device_register); EXPORT_SYMBOL(thermal_cooling_device_register);
...@@ -581,17 +581,17 @@ struct thermal_zone_device *thermal_zone_device_register(char *type, ...@@ -581,17 +581,17 @@ struct thermal_zone_device *thermal_zone_device_register(char *type,
int count; int count;
if (strlen(type) >= THERMAL_NAME_LENGTH) if (strlen(type) >= THERMAL_NAME_LENGTH)
return NULL; return ERR_PTR(-EINVAL);
if (trips > THERMAL_MAX_TRIPS || trips < 0) if (trips > THERMAL_MAX_TRIPS || trips < 0)
return NULL; return ERR_PTR(-EINVAL);
if (!ops || !ops->get_temp) if (!ops || !ops->get_temp)
return NULL; return ERR_PTR(-EINVAL);
tz = kzalloc(sizeof(struct thermal_zone_device), GFP_KERNEL); tz = kzalloc(sizeof(struct thermal_zone_device), GFP_KERNEL);
if (!tz) if (!tz)
return NULL; return ERR_PTR(-ENOMEM);
INIT_LIST_HEAD(&tz->cooling_devices); INIT_LIST_HEAD(&tz->cooling_devices);
idr_init(&tz->idr); idr_init(&tz->idr);
...@@ -599,7 +599,7 @@ struct thermal_zone_device *thermal_zone_device_register(char *type, ...@@ -599,7 +599,7 @@ struct thermal_zone_device *thermal_zone_device_register(char *type,
result = get_idr(&thermal_tz_idr, &thermal_idr_lock, &tz->id); result = get_idr(&thermal_tz_idr, &thermal_idr_lock, &tz->id);
if (result) { if (result) {
kfree(tz); kfree(tz);
return NULL; return ERR_PTR(result);
} }
strcpy(tz->type, type); strcpy(tz->type, type);
...@@ -612,7 +612,7 @@ struct thermal_zone_device *thermal_zone_device_register(char *type, ...@@ -612,7 +612,7 @@ struct thermal_zone_device *thermal_zone_device_register(char *type,
if (result) { if (result) {
release_idr(&thermal_tz_idr, &thermal_idr_lock, tz->id); release_idr(&thermal_tz_idr, &thermal_idr_lock, tz->id);
kfree(tz); kfree(tz);
return NULL; return ERR_PTR(result);
} }
/* sys I/F */ /* sys I/F */
...@@ -654,7 +654,7 @@ struct thermal_zone_device *thermal_zone_device_register(char *type, ...@@ -654,7 +654,7 @@ struct thermal_zone_device *thermal_zone_device_register(char *type,
unregister: unregister:
release_idr(&thermal_tz_idr, &thermal_idr_lock, tz->id); release_idr(&thermal_tz_idr, &thermal_idr_lock, tz->id);
device_unregister(&tz->device); device_unregister(&tz->device);
return NULL; return ERR_PTR(result);
} }
EXPORT_SYMBOL(thermal_zone_device_register); EXPORT_SYMBOL(thermal_zone_device_register);
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册