add doit.sh
[openwrt/staging/blogic.git] / patches / 0079-netdev-destructor.cocci
1 @r1@
2 struct net_device *NDEV;
3 identifier D, C;
4 identifier TRUE =~ "true";
5 @@
6 C(...)
7 {
8 <...
9 - NDEV->needs_free_netdev = TRUE;
10 - NDEV->priv_destructor = D;
11 + netdev_set_priv_destructor(NDEV, D);
12 ...>
13 }
14
15 @r2 depends on r1@
16 identifier r1.D, r1.C;
17 fresh identifier E = "__" ## D;
18 @@
19
20 +#if LINUX_VERSION_IS_LESS(4,12,0)
21 +static void E(struct net_device *ndev)
22 +{
23 + D(ndev);
24 + free_netdev(ndev);
25 +}
26 +#endif
27 +
28 C(...)
29 {
30 ...
31 }
32
33 @r3 depends on r1@
34 type T;
35 identifier NDEV;
36 identifier r1.D;
37 T RET;
38 @@
39
40 RET = \(register_netdevice\|register_ndev\)(NDEV);
41 if (<+... RET ...+>) {
42 <...
43 +#if LINUX_VERSION_IS_LESS(4,12,0)
44 + D(NDEV);
45 +#endif
46 free_netdev(NDEV);
47 ...>
48 }
49
50 @r4 depends on r1@
51 identifier NDEV;
52 identifier r1.D;
53 type T;
54 T RET;
55 @@
56
57 if (...)
58 RET = register_netdevice(NDEV);
59 else
60 RET = register_netdev(NDEV);
61 if (<+... RET ...+>) {
62 <...
63 +#if LINUX_VERSION_IS_LESS(4,12,0)
64 + D(NDEV);
65 +#endif
66 free_netdev(NDEV);
67 ...>
68 }
69
70 @r5@
71 struct net_device *NDEV;
72 identifier TRUE =~ "true";
73 @@
74
75 -NDEV->needs_free_netdev = TRUE;
76 +netdev_set_def_destructor(NDEV);
77
78 @r6@
79 struct net_device *NDEV;
80 identifier D;
81 @@
82
83 -NDEV->priv_destructor = D;
84 +netdev_set_priv_destructor(NDEV, D);