回复: [PATCH] coccinelle: adjust the confidence of fen.cocci

From: 王擎
Date: Tue Dec 14 2021 - 21:54:34 EST



>> From: Wang Qing <wangqing@xxxxxxxx>
>>
>> We scan by coccinelle according to the confidence value, then check for
>> potential problems. But the accuracy of this cocci is very low,
>> the scan results are all wrong.
>
>Can you give some examples of cases where the results are wrong?
>
For example:
for_each_node_by_name(np, "global-utilities") {
if ((of_get_property(np, "fsl,has-rstcr", NULL))) {
rstcr = of_iomap(np, 0) + 0xb0;
if (!rstcr) {
printk (KERN_ERR "Error: reset control "
"register not mapped!\n");
} else {
register_restart_handler(&restart_handler);
}
break; // break here
}
}

of_node_put(np); // Is there any problem here?

And there are many others:
>>>>>>>>>>>>>>>>> iterators/fen.cocci <<<<<<<<<<<<<<<<<<<<
drivers/edac/cell_edac.c:165:1-12: ERROR: of_node_put not needed after iterator on line 137
arch/powerpc/platforms/powermac/udbg_adb.c:204:1-12: ERROR: of_node_put not needed after iterator on line 195
arch/powerpc/platforms/cell/iommu.c:744:1-12: ERROR: of_node_put not needed after iterator on line 737
arch/powerpc/kexec/file_load_64.c:1037:1-12: ERROR: of_node_put not needed after iterator on line 1023
drivers/cpufreq/pmac64-cpufreq.c:640:1-12: ERROR: of_node_put not needed after iterator on line 501
arch/powerpc/kexec/ranges.c:271:1-12: ERROR: of_node_put not needed after iterator on line 248
arch/powerpc/platforms/chrp/setup.c:479:1-12: ERROR: of_node_put not needed after iterator on line 470
arch/powerpc/platforms/chrp/setup.c:524:1-12: ERROR: of_node_put not needed after iterator on line 521
arch/powerpc/platforms/4xx/uic.c:293:1-12: ERROR: of_node_put not needed after iterator on line 280
arch/powerpc/mm/numa.c:1317:1-12: ERROR: of_node_put not needed after iterator on line 1289
sound/ppc/pmac.c:970:2-13: ERROR: of_node_put not needed after iterator on line 951
drivers/tty/serial/cpm_uart/cpm_uart_core.c:1336:1-12: ERROR: of_node_put not needed after iterator on line 1316
arch/powerpc/sysdev/fsl_soc.c:190:1-12: ERROR: of_node_put not needed after iterator on line 177

Thanks,
Qing

>thanks,
>julia
>
>>
>> So, lower its confidence to low.
>>
>> Signed-off-by: Wang Qing <wangqing@xxxxxxxx>
>> ---
>>  scripts/coccinelle/iterators/fen.cocci | 2 +-
>>  1 file changed, 1 insertion(+), 1 deletion(-)
>>
>> diff --git a/scripts/coccinelle/iterators/fen.cocci b/scripts/coccinelle/iterators/fen.cocci
>> index b69f966..7b71207
>> --- a/scripts/coccinelle/iterators/fen.cocci
>> +++ b/scripts/coccinelle/iterators/fen.cocci
>> @@ -2,7 +2,7 @@
>>  /// These iterators only exit normally when the loop cursor is NULL, so there
>>  /// is no point to call of_node_put on the final value.
>>  ///
>> -// Confidence: High
>> +// Confidence: Low
>>  // Copyright: (C) 2010-2012 Nicolas Palix.
>>  // Copyright: (C) 2010-2012 Julia Lawall, INRIA/LIP6.
>>  // Copyright: (C) 2010-2012 Gilles Muller, INRIA/LiP6.
>> --
>> 2.7.4
>>
>>