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: Nicolas Dichtel <nicolas.dichtel@6wind.com> Signed-off-by: David S. Miller <davem@davemloft.net>
This commit is contained in:
committed by
David S. Miller
parent
b46f6ded90
commit
e9bbe898cb
@@ -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
|
|||||||
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,
|
|||||||
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 {
|
|||||||
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)
|
||||||
|
Reference in New Issue
Block a user