// SPDX-License-Identifier: GPL-2.0-only
/// Since commit b37a46683739 ("netdevice: add the case if dev is NULL"),
/// NULL check before dev_{put, hold} functions is not needed.
///
/// Based on ifnullfree.cocci by Fabian Frederick.
///
// Copyright: (C) 2022 Ziyang Xuan.
// Comments: -
// Options: --no-includes --include-headers
// Version min: 5.15

virtual patch
virtual org
virtual report
virtual context

@r2 depends on patch@
expression E;
@@
- if (E != NULL)
(
  __dev_put(E);
|
  dev_put(E);
|
  netdev_put(E, ...);
|
  __dev_hold(E);
|
  dev_hold(E);
|
  netdev_hold(E, ...);
)

@r depends on context || report || org @
expression E;
position p;
@@

* if (E != NULL)
*	\(__dev_put@p\|dev_put@p\|netdev_put@p\|__dev_hold@p\|dev_hold@p\|
*         netdev_hold@p\)(E, ...);

@script:python depends on org@
p << r.p;
@@

cocci.print_main("NULL check before (net)dev_{put, hold} functions is not needed", p)

@script:python depends on report@
p << r.p;
@@

msg = "WARNING: NULL check before (net)dev_{put, hold} functions is not needed."
coccilib.report.print_report(p[0], msg)
