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

Commit e9bbe898 authored by Nicolas Dichtel's avatar Nicolas Dichtel Committed by David S. Miller
Browse files

libnl: nla_put_net64(): align on a 64-bit area



nla_data() is now aligned on a 64-bit area.

The temporary function nla_put_be64_32bit() is removed in this patch.

Signed-off-by: default avatarNicolas Dichtel <nicolas.dichtel@6wind.com>
Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
parent b46f6ded
Loading
Loading
Loading
Loading
+6 −3
Original line number Diff line number Diff line
@@ -351,7 +351,8 @@ ip_set_put_skbinfo(struct sk_buff *skb, struct ip_set_skbinfo *skbinfo)
	return ((skbinfo->skbmark || skbinfo->skbmarkmask) &&
		nla_put_net64(skb, IPSET_ATTR_SKBMARK,
			      cpu_to_be64((u64)skbinfo->skbmark << 32 |
					  skbinfo->skbmarkmask))) ||
					  skbinfo->skbmarkmask),
			      IPSET_ATTR_PAD)) ||
	       (skbinfo->skbprio &&
		nla_put_net32(skb, IPSET_ATTR_SKBPRIO,
			      cpu_to_be32(skbinfo->skbprio))) ||
@@ -374,9 +375,11 @@ static inline bool
ip_set_put_counter(struct sk_buff *skb, struct ip_set_counter *counter)
{
	return nla_put_net64(skb, IPSET_ATTR_BYTES,
			     cpu_to_be64(ip_set_get_bytes(counter))) ||
			     cpu_to_be64(ip_set_get_bytes(counter)),
			     IPSET_ATTR_PAD) ||
	       nla_put_net64(skb, IPSET_ATTR_PACKETS,
			     cpu_to_be64(ip_set_get_packets(counter)));
			     cpu_to_be64(ip_set_get_packets(counter)),
			     IPSET_ATTR_PAD);
}

static inline void
+6 −8
Original line number Diff line number Diff line
@@ -868,20 +868,18 @@ static inline int nla_put_be64(struct sk_buff *skb, int attrtype, __be64 value,
	return nla_put_64bit(skb, attrtype, sizeof(__be64), &value, padattr);
}

static inline int nla_put_be64_32bit(struct sk_buff *skb, int attrtype,
				     __be64 value)
{
	return nla_put(skb, attrtype, sizeof(__be64), &value);
}
/**
 * nla_put_net64 - Add 64-bit network byte order netlink attribute to a socket buffer
 * nla_put_net64 - Add 64-bit network byte order nlattr to a skb and align it
 * @skb: socket buffer to add attribute to
 * @attrtype: attribute type
 * @value: numeric value
 * @padattr: attribute type for the padding
 */
static inline int nla_put_net64(struct sk_buff *skb, int attrtype, __be64 value)
static inline int nla_put_net64(struct sk_buff *skb, int attrtype, __be64 value,
				int padattr)
{
	return nla_put_be64_32bit(skb, attrtype | NLA_F_NET_BYTEORDER, value);
	return nla_put_be64(skb, attrtype | NLA_F_NET_BYTEORDER, value,
			    padattr);
}

/**
+1 −0
Original line number Diff line number Diff line
@@ -118,6 +118,7 @@ enum {
	IPSET_ATTR_SKBMARK,
	IPSET_ATTR_SKBPRIO,
	IPSET_ATTR_SKBQUEUE,
	IPSET_ATTR_PAD,
	__IPSET_ATTR_ADT_MAX,
};
#define IPSET_ATTR_ADT_MAX	(__IPSET_ATTR_ADT_MAX - 1)