re: Thermal: Update binding logic based on platform data

From: Dan Carpenter
Date: Tue Sep 25 2012 - 16:27:53 EST


Hello Durgadoss R,

This is a semi-automatic email about new static checker warnings.

The patch 9b70dfa68ae8: "Thermal: Update binding logic based on
platform data" from Sep 18, 2012, leads to the following Smatch
complaint:

drivers/thermal/thermal_sys.c:292 bind_tz()
error: we previously assumed 'tzp' could be null (see line 283)

drivers/thermal/thermal_sys.c
282 /* If there is no platform data, try to use ops->bind */
283 if (!tzp && tz->ops->bind) {
^^^^
New check.

284 list_for_each_entry(pos, &thermal_cdev_list, node) {
285 ret = tz->ops->bind(tz, pos);
286 if (ret)
287 print_bind_err_msg(tz, pos, ret);
288 }
289 goto exit;
290 }
291
292 if (!tzp->tbp)
^^^^^^^^
New dereference.

293 goto exit;
294

There are also some locking bugs which need to be fixed as well.

drivers/thermal/thermal_sys.c:268 bind_cdev() warn: inconsistent returns mutex:&thermal_list_lock: locked (256) unlocked (268)
drivers/thermal/thermal_sys.c:396 update_temperature() warn: inconsistent returns mutex:&tz->lock: locked (390) unlocked (396)

regards,
dan carpenter


--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/