> > Do you have any other questions? > > Obviously, yes. > I am curious if this development discussion and code review will trigger > further software adjustments. > I guess that you will need additional time to reconsider specific items > from recent feedback. > > Will corrections become relevant for specifications in (assignment) exclusions > of the second SmPL ellipsis in the discussed script? Let's do some experiments with the code in the current kernel. Let us take this code as an example: Https://git.kernel.org/pub/scm/linux/kernel/git/next/linux-next.git/tree/sound/soc/fsl/imx-sgtl5000.c 1, Original code static int imx_sgtl5000_probe(struct platform_device *pdev) { struct device_node *np = pdev->dev.of_node; struct device_node *ssi_np, *codec_np; struct platform_device *ssi_pdev; ... ssi_pdev = of_find_device_by_node(ssi_np); ... } Our current patch will find the problem: ./sound/soc/fsl/imx-sgtl5000.c:169:1-7: ERROR: missing put_device; call of_find_device_by_node on line 105, but without a corresponding object release within this function. ./sound/soc/fsl/imx-sgtl5000.c:177:1-7: ERROR: missing put_device; call of_find_device_by_node on line 105, but without a corresponding object release within this function. The problem can be detected by both of the following methods: +id = of_find_device_by_node@p1(x) +... when != e = id ... Or: ... + ... when != id = e 2, Suppose we change it to: static int imx_sgtl5000_probe(struct platform_device *pdev) { struct device_node *np = pdev->dev.of_node; struct device_node *ssi_np, *codec_np; struct platform_device *ssi_pdev; ... ssi_pdev = of_find_device_by_node(ssi_np); ... ssi_pdev = to_platform_device(XYZ); } But this time, only the first method can detect the problem. The second method, although the false positive rate is lower, but the recall rate is reduced, we may miss some real issues. Thanks, Regards, Wen