[v3,4/8] batman-adv: compat: Move netlink const compat to coccinelle
Commit Message
Signed-off-by: Sven Eckelmann <sven@narfation.org>
---
v3:
- removed compat-include/linux/netlink.h changes which are already in master
v2:
- new patch
---
compat-patches/0002-genl-const.INFO | 15 +++++++++++++++
compat-patches/0002-genl-const.cocci | 10 ++++++++++
compat-patches/replacements.sh | 6 ------
3 files changed, 25 insertions(+), 6 deletions(-)
create mode 100644 compat-patches/0002-genl-const.INFO
create mode 100644 compat-patches/0002-genl-const.cocci
new file mode 100644
@@ -0,0 +1,15 @@
+Newer kernels make generic netlink ops and multicast groups
+const, but older can't have that. We therefore introduce
+__genl_const, which can be defined depending on the kernel.
+
+What kernel versions require this?
+
+XXX: try to SmPLify
+
+The struct genl_ops gave the *option* to make it const via:
+mcgrof@ergon ~/linux (git::master)$ git describe --contains f84f771d9
+v3.13-rc1~33^2~32^2~2
+
+The struct genl_multicast_group was *forced* to be const via:
+mcgrof@ergon ~/linux (git::master)$ git describe --contains 2a94fe48f
+v3.13-rc1~33^2^2
new file mode 100644
@@ -0,0 +1,10 @@
+@@
+attribute __genl_const;
+@@
+(
+-const struct genl_multicast_group
++__genl_const struct genl_multicast_group
+|
+-const struct genl_ops
++__genl_const struct genl_ops
+)
@@ -1,9 +1,3 @@
#! /bin/sh
set -e
-
-# for kernel < 3.13 to make netlink compat code work
-sed -i \
- -e 's/^static const struct genl_multicast_group batadv_netlink_mcgrps/static __genl_const struct genl_multicast_group batadv_netlink_mcgrps/' \
- -e 's/^static const struct genl_ops batadv_netlink_ops/static __genl_const struct genl_ops batadv_netlink_ops/' \
- build/net/batman-adv/netlink.c