Commit a885a6b2 authored by Johannes Berg's avatar Johannes Berg Committed by Jakub Kicinski
Browse files

net: convert to nla_get_*_default()



Most of the original conversion is from the spatch below,
but I edited some and left out other instances that were
either buggy after conversion (where default values don't
fit into the type) or just looked strange.

    @@
    expression attr, def;
    expression val;
    identifier fn =~ "^nla_get_.*";
    fresh identifier dfn = fn ## "_default";
    @@
    (
    -if (attr)
    -  val = fn(attr);
    -else
    -  val = def;
    +val = dfn(attr, def);
    |
    -if (!attr)
    -  val = def;
    -else
    -  val = fn(attr);
    +val = dfn(attr, def);
    |
    -if (!attr)
    -  return def;
    -return fn(attr);
    +return dfn(attr, def);
    |
    -attr ? fn(attr) : def
    +dfn(attr, def)
    |
    -!attr ? def : fn(attr)
    +dfn(attr, def)
    )

Signed-off-by: default avatarJohannes Berg <johannes.berg@intel.com>
Reviewed-by: default avatarToke Høiland-Jørgensen <toke@kernel.org>
Link: https://patch.msgid.link/20241108114145.0580b8684e7f.I740beeaa2f70ebfc19bfca1045a24d6151992790@changeid


Signed-off-by: default avatarJakub Kicinski <kuba@kernel.org>
parent 7f4b3960
Loading
Loading
Loading
Loading
+4 −8
Original line number Diff line number Diff line
@@ -3206,15 +3206,11 @@ static int amt_newlink(struct net *net, struct net_device *dev,
		goto err;
	}

	if (data[IFLA_AMT_RELAY_PORT])
		amt->relay_port = nla_get_be16(data[IFLA_AMT_RELAY_PORT]);
	else
		amt->relay_port = htons(IANA_AMT_UDP_PORT);
	amt->relay_port = nla_get_be16_default(data[IFLA_AMT_RELAY_PORT],
					       htons(IANA_AMT_UDP_PORT));

	if (data[IFLA_AMT_GATEWAY_PORT])
		amt->gw_port = nla_get_be16(data[IFLA_AMT_GATEWAY_PORT]);
	else
		amt->gw_port = htons(IANA_AMT_UDP_PORT);
	amt->gw_port = nla_get_be16_default(data[IFLA_AMT_GATEWAY_PORT],
					    htons(IANA_AMT_UDP_PORT));

	if (!amt->relay_port) {
		NL_SET_ERR_MSG_ATTR(extack, tb[IFLA_AMT_DISCOVERY_IP],
+4 −12
Original line number Diff line number Diff line
@@ -1491,10 +1491,8 @@ static int gtp_newlink(struct net *src_net, struct net_device *dev,
	}
	gtp->role = role;

	if (!data[IFLA_GTP_RESTART_COUNT])
		gtp->restart_count = 0;
	else
		gtp->restart_count = nla_get_u8(data[IFLA_GTP_RESTART_COUNT]);
	gtp->restart_count = nla_get_u8_default(data[IFLA_GTP_RESTART_COUNT],
						0);

	gtp->net = src_net;

@@ -1829,10 +1827,7 @@ static struct pdp_ctx *gtp_pdp_add(struct gtp_dev *gtp, struct sock *sk,

	version = nla_get_u32(info->attrs[GTPA_VERSION]);

	if (info->attrs[GTPA_FAMILY])
		family = nla_get_u8(info->attrs[GTPA_FAMILY]);
	else
		family = AF_INET;
	family = nla_get_u8_default(info->attrs[GTPA_FAMILY], AF_INET);

#if !IS_ENABLED(CONFIG_IPV6)
	if (family == AF_INET6)
@@ -2069,10 +2064,7 @@ static struct pdp_ctx *gtp_find_pdp_by_link(struct net *net,
	struct gtp_dev *gtp;
	int family;

	if (nla[GTPA_FAMILY])
		family = nla_get_u8(nla[GTPA_FAMILY]);
	else
		family = AF_INET;
	family = nla_get_u8_default(nla[GTPA_FAMILY], AF_INET);

	gtp = gtp_find_dev(net, nla);
	if (!gtp)
+3 −3
Original line number Diff line number Diff line
@@ -4299,9 +4299,9 @@ static int macsec_validate_attr(struct nlattr *tb[], struct nlattr *data[],
		}
	}

	es  = data[IFLA_MACSEC_ES] ? nla_get_u8(data[IFLA_MACSEC_ES]) : false;
	sci = data[IFLA_MACSEC_INC_SCI] ? nla_get_u8(data[IFLA_MACSEC_INC_SCI]) : false;
	scb = data[IFLA_MACSEC_SCB] ? nla_get_u8(data[IFLA_MACSEC_SCB]) : false;
	es  = nla_get_u8_default(data[IFLA_MACSEC_ES], false);
	sci = nla_get_u8_default(data[IFLA_MACSEC_INC_SCI], false);
	scb = nla_get_u8_default(data[IFLA_MACSEC_SCB], false);

	if ((sci && (scb || es)) || (scb && es))
		return -EINVAL;
+1 −4
Original line number Diff line number Diff line
@@ -1232,10 +1232,7 @@ static int vxlan_fdb_parse(struct nlattr *tb[], struct vxlan_dev *vxlan,
		*ifindex = 0;
	}

	if (tb[NDA_NH_ID])
		*nhid = nla_get_u32(tb[NDA_NH_ID]);
	else
		*nhid = 0;
	*nhid = nla_get_u32_default(tb[NDA_NH_ID], 0);

	return 0;
}
+2 −4
Original line number Diff line number Diff line
@@ -161,10 +161,8 @@ static int vlan_newlink(struct net *src_net, struct net_device *dev,
		return -ENODEV;
	}

	if (data[IFLA_VLAN_PROTOCOL])
		proto = nla_get_be16(data[IFLA_VLAN_PROTOCOL]);
	else
		proto = htons(ETH_P_8021Q);
	proto = nla_get_be16_default(data[IFLA_VLAN_PROTOCOL],
				     htons(ETH_P_8021Q));

	vlan->vlan_proto = proto;
	vlan->vlan_id	 = nla_get_u16(data[IFLA_VLAN_ID]);
Loading