On Wed, 2016-04-20 at 11:44 +0200, Nicolas Dichtel wrote: > Le 20/04/2016 11:33, Eric Dumazet a écrit : > [snip] > > How have you tested your patch exactly ? > As stated in the cover letter, I didn't test it.
You certainly can test this, by tweaking HAVE_EFFICIENT_UNALIGNED_ACCESS and adding another assertion in the code. By testing it you would have caught a real bug, since David incorrectly used HAVE_EFFICIENT_UNALIGNED_ACCESS instead of CONFIG_HAVE_EFFICIENT_UNALIGNED_ACCESS ;) diff --git a/include/net/netlink.h b/include/net/netlink.h index e644b3489acf..ea6872633a92 100644 --- a/include/net/netlink.h +++ b/include/net/netlink.h @@ -1244,7 +1244,7 @@ static inline int nla_validate_nested(const struct nlattr *start, int maxtype, */ static inline int nla_align_64bit(struct sk_buff *skb, int padattr) { -#ifndef HAVE_EFFICIENT_UNALIGNED_ACCESS +#ifndef CONFIG_HAVE_EFFICIENT_UNALIGNED_ACCESS if (IS_ALIGNED((unsigned long)skb->data, 8)) { struct nlattr *attr = nla_reserve(skb, padattr, 0); if (!attr) @@ -1261,7 +1261,7 @@ static inline int nla_align_64bit(struct sk_buff *skb, int padattr) static inline int nla_total_size_64bit(int payload) { return NLA_ALIGN(nla_attr_size(payload)) -#ifndef HAVE_EFFICIENT_UNALIGNED_ACCESS +#ifndef CONFIG_HAVE_EFFICIENT_UNALIGNED_ACCESS + NLA_ALIGN(nla_attr_size(0)) #endif ;