Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit dac9c979 authored by David Ahern's avatar David Ahern Committed by David S. Miller
Browse files

net: Add extack to nlmsg_parse



Make sure extack is passed to nlmsg_parse where easy to do so.
Most of these are dump handlers and leveraging the extack in
the netlink_callback.

Signed-off-by: default avatarDavid Ahern <dsahern@gmail.com>
Acked-by: default avatarChristian Brauner <christian@brauner.io>
Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
parent 3d0d4337
Loading
Loading
Loading
Loading
+1 −1
Original line number Diff line number Diff line
@@ -3504,7 +3504,7 @@ static int devlink_nl_cmd_region_read_dumpit(struct sk_buff *skb,
	start_offset = *((u64 *)&cb->args[0]);

	err = nlmsg_parse(cb->nlh, GENL_HDRLEN + devlink_nl_family.hdrsize,
			  attrs, DEVLINK_ATTR_MAX, ops->policy, NULL);
			  attrs, DEVLINK_ATTR_MAX, ops->policy, cb->extack);
	if (err)
		goto out;

+2 −1
Original line number Diff line number Diff line
@@ -2445,7 +2445,8 @@ static int neigh_dump_info(struct sk_buff *skb, struct netlink_callback *cb)
	    ((struct ndmsg *)nlmsg_data(nlh))->ndm_flags == NTF_PROXY)
		proxy = 1;

	err = nlmsg_parse(nlh, sizeof(struct ndmsg), tb, NDA_MAX, NULL, NULL);
	err = nlmsg_parse(nlh, sizeof(struct ndmsg), tb, NDA_MAX, NULL,
			  cb->extack);
	if (!err) {
		if (tb[NDA_IFINDEX]) {
			if (nla_len(tb[NDA_IFINDEX]) != sizeof(u32))
+2 −2
Original line number Diff line number Diff line
@@ -1909,7 +1909,7 @@ static int rtnl_dump_ifinfo(struct sk_buff *skb, struct netlink_callback *cb)
		 sizeof(struct rtgenmsg) : sizeof(struct ifinfomsg);

	if (nlmsg_parse(cb->nlh, hdrlen, tb, IFLA_MAX,
			ifla_policy, NULL) >= 0) {
			ifla_policy, cb->extack) >= 0) {
		if (tb[IFLA_TARGET_NETNSID]) {
			netnsid = nla_get_s32(tb[IFLA_TARGET_NETNSID]);
			tgt_net = rtnl_get_net_ns_capable(skb->sk, netnsid);
@@ -3774,7 +3774,7 @@ static int rtnl_fdb_dump(struct sk_buff *skb, struct netlink_callback *cb)
	    (nlmsg_len(cb->nlh) != sizeof(struct ndmsg) +
	     nla_attr_size(sizeof(u32)))) {
		err = nlmsg_parse(cb->nlh, sizeof(struct ifinfomsg), tb,
				  IFLA_MAX, ifla_policy, NULL);
				  IFLA_MAX, ifla_policy, cb->extack);
		if (err < 0) {
			return -EINVAL;
		} else if (err == 0) {
+5 −4
Original line number Diff line number Diff line
@@ -782,7 +782,8 @@ static void set_ifa_lifetime(struct in_ifaddr *ifa, __u32 valid_lft,
}

static struct in_ifaddr *rtm_to_ifaddr(struct net *net, struct nlmsghdr *nlh,
				       __u32 *pvalid_lft, __u32 *pprefered_lft)
				       __u32 *pvalid_lft, __u32 *pprefered_lft,
				       struct netlink_ext_ack *extack)
{
	struct nlattr *tb[IFA_MAX+1];
	struct in_ifaddr *ifa;
@@ -792,7 +793,7 @@ static struct in_ifaddr *rtm_to_ifaddr(struct net *net, struct nlmsghdr *nlh,
	int err;

	err = nlmsg_parse(nlh, sizeof(*ifm), tb, IFA_MAX, ifa_ipv4_policy,
			  NULL);
			  extack);
	if (err < 0)
		goto errout;

@@ -897,7 +898,7 @@ static int inet_rtm_newaddr(struct sk_buff *skb, struct nlmsghdr *nlh,

	ASSERT_RTNL();

	ifa = rtm_to_ifaddr(net, nlh, &valid_lft, &prefered_lft);
	ifa = rtm_to_ifaddr(net, nlh, &valid_lft, &prefered_lft, extack);
	if (IS_ERR(ifa))
		return PTR_ERR(ifa);

@@ -1684,7 +1685,7 @@ static int inet_dump_ifaddr(struct sk_buff *skb, struct netlink_callback *cb)
	s_ip_idx = ip_idx = cb->args[2];

	if (nlmsg_parse(cb->nlh, sizeof(struct ifaddrmsg), tb, IFA_MAX,
			ifa_ipv4_policy, NULL) >= 0) {
			ifa_ipv4_policy, cb->extack) >= 0) {
		if (tb[IFA_TARGET_NETNSID]) {
			fillargs.netnsid = nla_get_s32(tb[IFA_TARGET_NETNSID]);

+1 −1
Original line number Diff line number Diff line
@@ -5021,7 +5021,7 @@ static int inet6_dump_addr(struct sk_buff *skb, struct netlink_callback *cb,
	s_ip_idx = ip_idx = cb->args[2];

	if (nlmsg_parse(cb->nlh, sizeof(struct ifaddrmsg), tb, IFA_MAX,
			ifa_ipv6_policy, NULL) >= 0) {
			ifa_ipv6_policy, cb->extack) >= 0) {
		if (tb[IFA_TARGET_NETNSID]) {
			netnsid = nla_get_s32(tb[IFA_TARGET_NETNSID]);

Loading