blob: 8d7228ecbc3770769655ee3494305b381fe3db0a [file] [log] [blame]
@r1@
struct net_device *NDEV;
identifier D, C;
identifier TRUE =~ "true";
@@
C(...)
{
<+...
- NDEV->needs_free_netdev = TRUE;
- NDEV->priv_destructor = D;
+ netdev_set_priv_destructor(NDEV, D);
...+>
}
@r2 depends on r1@
identifier r1.D, r1.C;
fresh identifier E = "__" ## D;
@@
+#if LINUX_VERSION_IS_LESS(4,12,0)
+static void E(struct net_device *ndev)
+{
+ D(ndev);
+ free_netdev(ndev);
+}
+#endif
+
C(...)
{
...
}
@r3 depends on r1@
type T;
identifier NDEV;
identifier r1.D;
T RET;
@@
RET = \(register_netdevice\|register_ndev\)(NDEV);
if (<+... RET ...+>) {
<...
+#if LINUX_VERSION_IS_LESS(4,12,0)
+ D(NDEV);
+#endif
free_netdev(NDEV);
...>
}
@r4 depends on r1@
identifier NDEV;
identifier r1.D;
type T;
T RET;
@@
if (...)
RET = register_netdevice(NDEV);
else
RET = register_netdev(NDEV);
if (<+... RET ...+>) {
<...
+#if LINUX_VERSION_IS_LESS(4,12,0)
+ D(NDEV);
+#endif
free_netdev(NDEV);
...>
}
@r11@
struct net_device *NDEV;
identifier D, C;
identifier TRUE =~ "true";
@@
C(...)
{
<+...
- NDEV->priv_destructor = D;
- NDEV->needs_free_netdev = TRUE;
+ netdev_set_priv_destructor(NDEV, D);
...+>
}
@r12 depends on r11@
identifier r11.D, r11.C;
fresh identifier E = "__" ## D;
@@
+#if LINUX_VERSION_IS_LESS(4,12,0)
+static void E(struct net_device *ndev)
+{
+ D(ndev);
+ free_netdev(ndev);
+}
+#endif
+
C(...)
{
...
}
@r5@
struct net_device *NDEV;
identifier TRUE =~ "true";
@@
-NDEV->needs_free_netdev = TRUE;
+netdev_set_def_destructor(NDEV);
@r6@
struct net_device *NDEV;
identifier D;
@@
-NDEV->priv_destructor = D;
+netdev_set_priv_destructor(NDEV, D);