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