/// NULL check before some freeing functions is not needed.
///
/// Based on checkpatch warning
/// "kfree(NULL) is safe this check is probably not required"
/// and kfreeaddr.cocci by Julia Lawall.
///
// Copyright: (C) 2014 Fabian Frederick. GPLv2.
// Comments: -
// Options: --no-includes --include-headers
virtual patch
virtual org
virtual report
virtual context
@r2 depends on patch@
expression E;
@@
- if (E != NULL)
(
kfree(E);
|
kzfree(E);
|
debugfs_remove(E);
|
debugfs_remove_recursive(E);
|
usb_free_urb(E);
|
kmem_cache_destroy(E);
|
mempool_destroy(E);
|
dma_pool_destroy(E);
)
@r depends on context || report || org @
expression E;
position p;
@@
* if (E != NULL)
* \(kfree@p\|kzfree@p\|debugfs_remove@p\|debugfs_remove_recursive@p\|
* usb_free_urb@p\|kmem_cache_destroy@p\|mempool_destroy@p\|
* dma_pool_destroy@p\)(E);
@script:python depends on org@
p << r.p;
@@
cocci.print_main("NULL check before that freeing function is not needed", p)
@script:python depends on report@
p << r.p;
@@
msg = "WARNING: NULL check before freeing functions like kfree, debugfs_remove, debugfs_remove_recursive or usb_free_urb is not needed. Maybe consider reorganizing relevant code to avoid passing NULL values."
coccilib.report.print_report(p[0], msg)
ue='packet-rx-pump-back'>packet-rx-pump-back
net-next plumbings Tobias Klauser
Mode Name Size
-rw-r--r-- alphascale,asm9260.h 2695 log plain
-rw-r--r-- at91.h 751 log plain
-rw-r--r-- ath79-clk.h 479 log plain
-rw-r--r-- axis,artpec6-clkctrl.h 1112 log plain
-rw-r--r-- bcm-cygnus.h 3135 log plain
-rw-r--r-- bcm-ns2.h 2915 log plain
-rw-r--r-- bcm-nsp.h 2148 log plain
-rw-r--r-- bcm21664.h 1984 log plain
-rw-r--r-- bcm281xx.h 2456 log plain
-rw-r--r-- bcm2835-aux.h 635 log plain
-rw-r--r-- bcm2835.h 1962 log plain
-rw-r--r-- berlin2.h 1034 log plain
-rw-r--r-- berlin2q.h 695 log plain
-rw-r--r-- clps711x-clock.h 718 log plain
-rw-r--r-- efm32-cmu.h 1112 log plain
-rw-r--r-- exynos-audss-clk.h 597 log plain
-rw-r--r-- exynos3250.h 9083 log plain
-rw-r--r-- exynos4.h 8284 log plain
-rw-r--r-- exynos4415.h 9828 log plain
-rw-r--r-- exynos5250.h 4616 log plain
-rw-r--r-- exynos5260-clk.h 14876 log plain
-rw-r--r-- exynos5410.h 1689 log plain
-rw-r--r-- exynos5420.h 6857 log plain
-rw-r--r-- exynos5433.h 45372 log plain
-rw-r--r-- exynos5440.h 1141 log plain
-rw-r--r-- exynos7-clk.h 5281 log plain
-rw-r--r-- gxbb-aoclkc.h 2866 log plain
-rw-r--r-- gxbb-clkc.h 592 log plain
-rw-r--r-- hi3516cv300-clock.h 1668 log plain
-rw-r--r-- hi3519-clock.h 1328 log plain
-rw-r--r-- hi3620-clock.h 4496 log plain
-rw-r--r-- hi6220-clock.h 4508 log plain
-rw-r--r-- hip04-clock.h 1137 log plain
-rw-r--r-- histb-clock.h 2012 log plain
-rw-r--r-- hix5hd2-clock.h 2415 log plain
-rw-r--r-- imx1-clock.h 1055 log plain
-rw-r--r-- imx21-clock.h 2461 log plain
-rw-r--r-- imx27-clock.h 3494 log plain
-rw-r--r-- imx5-clock.h 7212 log plain
-rw-r--r-- imx6qdl-clock.h 9593 log plain
-rw-r--r-- imx6sl-clock.h 5849 log plain
-rw-r--r-- imx6sx-clock.h 9099 log plain
-rw-r--r-- imx6ul-clock.h 8203 log plain
-rw-r--r-- imx7d-clock.h 15974 log plain
-rw-r--r-- jz4740-cgu.h 1028 log plain
-rw-r--r-- jz4780-cgu.h 2470 log plain
-rw-r--r-- lpc18xx-ccu.h 2134 log plain
-rw-r--r-- lpc18xx-cgu.h 1142 log plain
-rw-r--r-- lpc32xx-clock.h 1633 log plain
-rw-r--r-- lsi,axm5516-clks.h 974 log plain
-rw-r--r-- marvell,mmp2.h 2022 log plain
-rw-r--r-- marvell,pxa168.h 1654 log plain
-rw-r--r-- marvell,pxa1928.h 1535 log plain
-rw-r--r-- marvell,pxa910.h 1598 log plain
-rw-r--r-- maxim,max77620.h 632 log plain
-rw-r--r-- maxim,max77686.h 648 log plain
-rw-r--r-- maxim,max77802.h 630 log plain
-rw-r--r-- meson8b-clkc.h 523 log plain
-rw-r--r-- microchip,pic32-clock.h 1150 log plain
-rw-r--r-- mpc512x-clock.h 2236 log plain
-rw-r--r-- mt2701-clk.h 13832 log plain
-rw-r--r-- mt8135-clk.h 5641 log plain
-rw-r--r-- mt8173-clk.h 9293 log plain
-rw-r--r-- oxsemi,ox810se.h 1002 log plain
-rw-r--r-- oxsemi,ox820.h 1203 log plain
-rw-r--r-- pistachio-clk.h 4863 log plain
-rw-r--r-- pxa-clock.h 1715 log plain
-rw-r--r-- qcom,gcc-apq8084.h 12872 log plain
-rw-r--r-- qcom,gcc-ipq4019.h 5423 log plain
-rw-r--r-- qcom,gcc-ipq806x.h 8574 log plain
-rw-r--r-- qcom,gcc-mdm9615.h 9497 log plain
-rw-r--r-- qcom,gcc-msm8660.h 7932 log plain
-rw-r--r-- qcom,gcc-msm8916.h 6190 log plain
-rw-r--r-- qcom,gcc-msm8960.h 9342 log plain
-rw-r--r-- qcom,gcc-msm8974.h 12340 log plain
-rw-r--r-- qcom,gcc-msm8994.h 4858 log plain
-rw-r--r-- qcom,gcc-msm8996.h 12575 log plain
-rw-r--r-- qcom,lcc-ipq806x.h 899 log plain
-rw-r--r-- qcom,lcc-mdm9615.h 1701 log plain
-rw-r--r-- qcom,lcc-msm8960.h 1616 log plain
-rw-r--r-- qcom,mmcc-apq8084.h 5722 log plain
-rw-r--r-- qcom,mmcc-msm8960.h 4109 log plain
-rw-r--r-- qcom,mmcc-msm8974.h 5223 log plain
-rw-r--r-- qcom,mmcc-msm8996.h 9403 log plain
-rw-r--r-- qcom,rpmcc.h 2101 log plain
-rw-r--r-- r7s72100-clock.h 1218 log plain
-rw-r--r-- r8a73a4-clock.h 1596 log plain
-rw-r--r-- r8a7740-clock.h 1992 log plain
-rw-r--r-- r8a7743-cpg-mssr.h 1269 log plain
-rw-r--r-- r8a7745-cpg-mssr.h 1298 log plain
-rw-r--r-- r8a7778-clock.h 1855 log plain
-rw-r--r-- r8a7779-clock.h 1647 log plain
-rw-r--r-- r8a7790-clock.h 4367 log plain
-rw-r--r-- r8a7791-clock.h 4388 log plain
-rw-r--r-- r8a7792-clock.h 2562 log plain
-rw-r--r-- r8a7793-clock.h 4561 log plain
-rw-r--r-- r8a7794-clock.h 3679 log plain
-rw-r--r-- r8a7795-cpg-mssr.h 1890 log plain
-rw-r--r-- r8a7796-cpg-mssr.h 2066 log plain
-rw-r--r-- renesas-cpg-mssr.h 542 log plain
-rw-r--r-- rk1108-cru.h 6605 log plain
-rw-r--r-- rk3036-cru.h 4584 log plain
-rw-r--r-- rk3066a-cru.h 1068 log plain
-rw-r--r-- rk3188-cru-common.h 6105 log plain
-rw-r--r-- rk3188-cru.h 1435 log plain