Tue, Apr 11, 2017 at 08:56:56AM CEST, johan...@sipsolutions.net wrote:
>From: Johannes Berg <johannes.b...@intel.com>
>
>Add the base infrastructure and UAPI for netlink
>extended ACK reporting. All "manual" calls to
>netlink_ack() pass NULL for now and thus don't
>get extended ACK reporting.
>
>Big thanks goes to Pablo Neira Ayuso for not only
>bringing up the whole topic at netconf (again) but
>also coming up with the nlattr passing trick and
>various other ideads.
>
>Signed-off-by: Johannes Berg <johannes.b...@intel.com>
>---

[...]


>+/**
>+ * enum nlmsgerr_attrs - nlmsgerr attributes
>+ * @NLMSGERR_ATTR_UNUSED: unused
>+ * @NLMSGERR_ATTR_MSG: error message string (string)
>+ * @NLMSGERR_ATTR_OFFS: offset of the invalid attribute in the original
>+ *     message, counting from the beginning of the header (u32)
>+ * @NUM_NLMSGERR_ATTRS: number of attributes
>+ * @NLMSGERR_ATTR_MAX: highest attribute number
>+ */
>+enum nlmsgerr_attrs {
>+      NLMSGERR_ATTR_UNUSED,
>+      NLMSGERR_ATTR_MSG,
>+      NLMSGERR_ATTR_OFFS,
>+
>+      NUM_NLMSGERR_ATTRS,

According to the rest of the uapi, this should be rather named:
        __NLMSGERR_ATTR_MAX


>+      NLMSGERR_ATTR_MAX = NUM_NLMSGERR_ATTRS - 1
> };
> 
> #define NETLINK_ADD_MEMBERSHIP                1
>@@ -115,6 +146,7 @@ struct nlmsgerr {
> #define NETLINK_LISTEN_ALL_NSID               8
> #define NETLINK_LIST_MEMBERSHIPS      9
> #define NETLINK_CAP_ACK                       10
>+#define NETLINK_EXT_ACK                       11
> 
> struct nl_pktinfo {
>       __u32   group;
>diff --git a/kernel/audit.c b/kernel/audit.c
>index 2f4964cfde0b..d54bf5932374 100644
>--- a/kernel/audit.c
>+++ b/kernel/audit.c
>@@ -1402,7 +1402,7 @@ static void audit_receive_skb(struct sk_buff *skb)
>               err = audit_receive_msg(skb, nlh);
>               /* if err or if this message says it wants a response */
>               if (err || (nlh->nlmsg_flags & NLM_F_ACK))
>-                      netlink_ack(skb, nlh, err);
>+                      netlink_ack(skb, nlh, err, NULL);

Wouldn't it make sense to leave netlink_ack as is and add
netlink_ack_ext for those who need to pass non-null?


> 
>               nlh = nlmsg_next(nlh, &len);
>       }

Reply via email to