mirror of
https://github.com/torvalds/linux.git
synced 2025-11-03 18:20:25 +02:00
The of_find_device_by_node() takes a reference to the underlying device structure, we should release that reference. The implementation of this semantic code search is: In a function, for a local variable returned by calling of_find_device_by_node(), a, if it is released by a function such as put_device()/of_dev_put()/platform_device_put() after the last use, it is considered that there is no reference leak; b, if it is passed back to the caller via dev_get_drvdata()/platform_get_drvdata()/get_device(), etc., the reference will be released in other functions, and the current function also considers that there is no reference leak; c, for the rest of the situation, the current function should release the reference by calling put_device, this code search will report the corresponding error message. By using this semantic code search, we have found some object reference leaks, such as: commit |
||
|---|---|---|
| .. | ||
| clk_put.cocci | ||
| devm_free.cocci | ||
| ifnullfree.cocci | ||
| iounmap.cocci | ||
| kfree.cocci | ||
| kfreeaddr.cocci | ||
| pci_free_consistent.cocci | ||
| put_device.cocci | ||