diff mbox series

[07/12] backport: Add genl_callback_extack() function

Message ID 20190805120704.13128-8-hauke@hauke-m.de (mailing list archive)
State Accepted
Headers show
Series backports: Update to kernel 5.3-rc3 | expand

Commit Message

Hauke Mehrtens Aug. 5, 2019, 12:06 p.m. UTC
The struct netlink_callback got a new extack attribute in commit
4a19edb60d02 ("netlink: Pass extack to dump handlers") in kernel 4.20.
Use a function instead of directly accessing it to return NULL on older
kernel versions, the code should handle NULL.

Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
---
 backport/backport-include/net/genetlink.h | 10 ++++++++++
 patches/0078-genl-extack.cocci            |  6 ++++++
 2 files changed, 16 insertions(+)
diff mbox series

Patch

diff --git a/backport/backport-include/net/genetlink.h b/backport/backport-include/net/genetlink.h
index 772f10f0..747b6dac 100644
--- a/backport/backport-include/net/genetlink.h
+++ b/backport/backport-include/net/genetlink.h
@@ -34,6 +34,16 @@  static inline struct netlink_ext_ack *genl_info_extack(struct genl_info *info)
 #endif
 }
 
+/* this is for patches we apply */
+static inline struct netlink_ext_ack *genl_callback_extack(struct netlink_callback *cb)
+{
+#if LINUX_VERSION_IS_GEQ(4,20,0)
+	return cb->extack;
+#else
+	return NULL;
+#endif
+}
+
 /* this gets put in place of info->userhdr, since we use that above */
 static inline void *genl_info_userhdr(struct genl_info *info)
 {
diff --git a/patches/0078-genl-extack.cocci b/patches/0078-genl-extack.cocci
index 5560e09d..860d68b4 100644
--- a/patches/0078-genl-extack.cocci
+++ b/patches/0078-genl-extack.cocci
@@ -9,3 +9,9 @@  struct genl_info *info;
 @@
 -info->userhdr
 +genl_info_userhdr(info)
+
+@@
+struct netlink_callback *cb;
+@@
+-cb->extack
++genl_callback_extack(cb)