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

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
...@@ -351,7 +351,8 @@ ip_set_put_skbinfo(struct sk_buff *skb, struct ip_set_skbinfo *skbinfo) ...@@ -351,7 +351,8 @@ ip_set_put_skbinfo(struct sk_buff *skb, struct ip_set_skbinfo *skbinfo)
return ((skbinfo->skbmark || skbinfo->skbmarkmask) && return ((skbinfo->skbmark || skbinfo->skbmarkmask) &&
nla_put_net64(skb, IPSET_ATTR_SKBMARK, nla_put_net64(skb, IPSET_ATTR_SKBMARK,
cpu_to_be64((u64)skbinfo->skbmark << 32 | cpu_to_be64((u64)skbinfo->skbmark << 32 |
skbinfo->skbmarkmask))) || skbinfo->skbmarkmask),
IPSET_ATTR_PAD)) ||
(skbinfo->skbprio && (skbinfo->skbprio &&
nla_put_net32(skb, IPSET_ATTR_SKBPRIO, nla_put_net32(skb, IPSET_ATTR_SKBPRIO,
cpu_to_be32(skbinfo->skbprio))) || cpu_to_be32(skbinfo->skbprio))) ||
...@@ -374,9 +375,11 @@ static inline bool ...@@ -374,9 +375,11 @@ static inline bool
ip_set_put_counter(struct sk_buff *skb, struct ip_set_counter *counter) ip_set_put_counter(struct sk_buff *skb, struct ip_set_counter *counter)
{ {
return nla_put_net64(skb, IPSET_ATTR_BYTES, 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, 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 static inline void
......
...@@ -868,20 +868,18 @@ static inline int nla_put_be64(struct sk_buff *skb, int attrtype, __be64 value, ...@@ -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); 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 * @skb: socket buffer to add attribute to
* @attrtype: attribute type * @attrtype: attribute type
* @value: numeric value * @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);
} }
/** /**
......
...@@ -118,6 +118,7 @@ enum { ...@@ -118,6 +118,7 @@ enum {
IPSET_ATTR_SKBMARK, IPSET_ATTR_SKBMARK,
IPSET_ATTR_SKBPRIO, IPSET_ATTR_SKBPRIO,
IPSET_ATTR_SKBQUEUE, IPSET_ATTR_SKBQUEUE,
IPSET_ATTR_PAD,
__IPSET_ATTR_ADT_MAX, __IPSET_ATTR_ADT_MAX,
}; };
#define IPSET_ATTR_ADT_MAX (__IPSET_ATTR_ADT_MAX - 1) #define IPSET_ATTR_ADT_MAX (__IPSET_ATTR_ADT_MAX - 1)
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment