162306a36Sopenharmony_ci// SPDX-License-Identifier: GPL-2.0-only 262306a36Sopenharmony_ci/// Since commit b37a46683739 ("netdevice: add the case if dev is NULL"), 362306a36Sopenharmony_ci/// NULL check before dev_{put, hold} functions is not needed. 462306a36Sopenharmony_ci/// 562306a36Sopenharmony_ci/// Based on ifnullfree.cocci by Fabian Frederick. 662306a36Sopenharmony_ci/// 762306a36Sopenharmony_ci// Copyright: (C) 2022 Ziyang Xuan. 862306a36Sopenharmony_ci// Comments: - 962306a36Sopenharmony_ci// Options: --no-includes --include-headers 1062306a36Sopenharmony_ci// Version min: 5.15 1162306a36Sopenharmony_ci 1262306a36Sopenharmony_civirtual patch 1362306a36Sopenharmony_civirtual org 1462306a36Sopenharmony_civirtual report 1562306a36Sopenharmony_civirtual context 1662306a36Sopenharmony_ci 1762306a36Sopenharmony_ci@r2 depends on patch@ 1862306a36Sopenharmony_ciexpression E; 1962306a36Sopenharmony_ci@@ 2062306a36Sopenharmony_ci- if (E != NULL) 2162306a36Sopenharmony_ci( 2262306a36Sopenharmony_ci __dev_put(E); 2362306a36Sopenharmony_ci| 2462306a36Sopenharmony_ci dev_put(E); 2562306a36Sopenharmony_ci| 2662306a36Sopenharmony_ci dev_put_track(E, ...); 2762306a36Sopenharmony_ci| 2862306a36Sopenharmony_ci __dev_hold(E); 2962306a36Sopenharmony_ci| 3062306a36Sopenharmony_ci dev_hold(E); 3162306a36Sopenharmony_ci| 3262306a36Sopenharmony_ci dev_hold_track(E, ...); 3362306a36Sopenharmony_ci) 3462306a36Sopenharmony_ci 3562306a36Sopenharmony_ci@r depends on context || report || org @ 3662306a36Sopenharmony_ciexpression E; 3762306a36Sopenharmony_ciposition p; 3862306a36Sopenharmony_ci@@ 3962306a36Sopenharmony_ci 4062306a36Sopenharmony_ci* if (E != NULL) 4162306a36Sopenharmony_ci* \(__dev_put@p\|dev_put@p\|dev_put_track@p\|__dev_hold@p\|dev_hold@p\| 4262306a36Sopenharmony_ci* dev_hold_track@p\)(E, ...); 4362306a36Sopenharmony_ci 4462306a36Sopenharmony_ci@script:python depends on org@ 4562306a36Sopenharmony_cip << r.p; 4662306a36Sopenharmony_ci@@ 4762306a36Sopenharmony_ci 4862306a36Sopenharmony_cicocci.print_main("NULL check before dev_{put, hold} functions is not needed", p) 4962306a36Sopenharmony_ci 5062306a36Sopenharmony_ci@script:python depends on report@ 5162306a36Sopenharmony_cip << r.p; 5262306a36Sopenharmony_ci@@ 5362306a36Sopenharmony_ci 5462306a36Sopenharmony_cimsg = "WARNING: NULL check before dev_{put, hold} functions is not needed." 5562306a36Sopenharmony_cicoccilib.report.print_report(p[0], msg) 56