mirror of https://gitee.com/openkylin/linux.git
da9cfb87a4
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 |