@@ -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)
{
@@ -9,3 +9,9 @@ struct genl_info *info;
@@
-info->userhdr
+genl_info_userhdr(info)
+
+@@
+struct netlink_callback *cb;
+@@
+-cb->extack
++genl_callback_extack(cb)
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(+)