diff options
author | Hauke Mehrtens <hauke@hauke-m.de> | 2018-09-23 19:45:34 +0200 |
---|---|---|
committer | Johannes Berg <johannes.berg@intel.com> | 2018-09-24 09:28:51 +0200 |
commit | e619e376b36ffafd25ed0893e420d11063eca8c2 (patch) | |
tree | 529c6aa2582ab28260b594a13881bce1ac107fd6 | |
parent | 26c7795a6feddcadbfdc9debab2db1015ba4c732 (diff) |
backports: Make netdev destructor spatch apply correctly again
The netdev destructor spatch did not apply to the wil6210 driver any
more, because there the calls were done in a different order compared to
the spatch. Add an additional rule which applies when the order is
changed.
Fixes: 30a378636e47 ("backports: speed up netdev destructor spatch by two orders of magnitude")
Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
Signed-off-by: Johannes Berg <johannes.berg@intel.com>
-rw-r--r-- | patches/0079-netdev-destructor.cocci | 32 |
1 files changed, 32 insertions, 0 deletions
diff --git a/patches/0079-netdev-destructor.cocci b/patches/0079-netdev-destructor.cocci index f2bea35b..8d7228ec 100644 --- a/patches/0079-netdev-destructor.cocci +++ b/patches/0079-netdev-destructor.cocci @@ -67,6 +67,38 @@ if (<+... RET ...+>) { ...> } +@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"; |