1// SPDX-License-Identifier: GPL-2.0-only 2/// Since commit b37a46683739 ("netdevice: add the case if dev is NULL"), 3/// NULL check before dev_{put, hold} functions is not needed. 4/// 5/// Based on ifnullfree.cocci by Fabian Frederick. 6/// 7// Copyright: (C) 2022 Ziyang Xuan. 8// Comments: - 9// Options: --no-includes --include-headers 10// Version min: 5.15 11 12virtual patch 13virtual org 14virtual report 15virtual context 16 17@r2 depends on patch@ 18expression E; 19@@ 20- if (E != NULL) 21( 22 __dev_put(E); 23| 24 dev_put(E); 25| 26 dev_put_track(E, ...); 27| 28 __dev_hold(E); 29| 30 dev_hold(E); 31| 32 dev_hold_track(E, ...); 33) 34 35@r depends on context || report || org @ 36expression E; 37position p; 38@@ 39 40* if (E != NULL) 41* \(__dev_put@p\|dev_put@p\|dev_put_track@p\|__dev_hold@p\|dev_hold@p\| 42* dev_hold_track@p\)(E, ...); 43 44@script:python depends on org@ 45p << r.p; 46@@ 47 48cocci.print_main("NULL check before dev_{put, hold} functions is not needed", p) 49 50@script:python depends on report@ 51p << r.p; 52@@ 53 54msg = "WARNING: NULL check before dev_{put, hold} functions is not needed." 55coccilib.report.print_report(p[0], msg) 56