Message ID | 1356702410-32293-1-git-send-email-stephan.gatzka@gmail.com |
---|---|
State | RFC, archived |
Delegated to: | David Miller |
Headers | show |
Stephan Gatzka wrote: > Signed-off-by: Stephan Gatzka <stephan.gatzka@gmail.com> > --- > net/ipv6/ndisc.c | 5 +++-- > 1 file changed, 3 insertions(+), 2 deletions(-) > > diff --git a/net/ipv6/ndisc.c b/net/ipv6/ndisc.c > index 6574175..b12b94c 100644 > --- a/net/ipv6/ndisc.c > +++ b/net/ipv6/ndisc.c > @@ -392,7 +392,7 @@ static struct sk_buff *ndisc_build_skb(struct net_device *dev, > > len = sizeof(struct icmp6hdr) + (target ? sizeof(*target) : 0); > if (llinfo) > - len += ndisc_opt_addr_space(dev); > + len += sizeof(struct nd_opt_hdr) + ndisc_opt_addr_space(dev); > > skb = sock_alloc_send_skb(sk, > (MAX_HEADER + sizeof(struct ipv6hdr) + > @@ -1424,7 +1424,8 @@ void ndisc_send_redirect(struct sk_buff *skb, const struct in6_addr *target) > memcpy(ha_buf, neigh->ha, dev->addr_len); > read_unlock_bh(&neigh->lock); > ha = ha_buf; > - len += ndisc_opt_addr_space(dev); > + len += sizeof(struct nd_opt_hdr) + > + ndisc_opt_addr_space(dev); > } else > read_unlock_bh(&neigh->lock); > > Disagree. NDISC_OPT_SPACE() takes care size of nd option header. --yoshfuji -- To unsubscribe from this list: send the line "unsubscribe netdev" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html
YOSHIFUJI Hideaki wrote: > Stephan Gatzka wrote: >> Signed-off-by: Stephan Gatzka <stephan.gatzka@gmail.com> >> --- >> net/ipv6/ndisc.c | 5 +++-- >> 1 file changed, 3 insertions(+), 2 deletions(-) >> >> diff --git a/net/ipv6/ndisc.c b/net/ipv6/ndisc.c >> index 6574175..b12b94c 100644 >> --- a/net/ipv6/ndisc.c >> +++ b/net/ipv6/ndisc.c >> @@ -392,7 +392,7 @@ static struct sk_buff *ndisc_build_skb(struct net_device *dev, >> >> len = sizeof(struct icmp6hdr) + (target ? sizeof(*target) : 0); >> if (llinfo) >> - len += ndisc_opt_addr_space(dev); >> + len += sizeof(struct nd_opt_hdr) + ndisc_opt_addr_space(dev); >> >> skb = sock_alloc_send_skb(sk, >> (MAX_HEADER + sizeof(struct ipv6hdr) + >> @@ -1424,7 +1424,8 @@ void ndisc_send_redirect(struct sk_buff *skb, const struct in6_addr *target) >> memcpy(ha_buf, neigh->ha, dev->addr_len); >> read_unlock_bh(&neigh->lock); >> ha = ha_buf; >> - len += ndisc_opt_addr_space(dev); >> + len += sizeof(struct nd_opt_hdr) + >> + ndisc_opt_addr_space(dev); >> } else >> read_unlock_bh(&neigh->lock); >> >> > > Disagree. NDISC_OPT_SPACE() takes care size of nd option header. Please note: static inline int ndisc_opt_addr_space(struct net_device *dev) { return NDISC_OPT_SPACE(dev->addr_len + ndisc_addr_option_pad(dev->type)); } --yoshfuji -- To unsubscribe from this list: send the line "unsubscribe netdev" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html
> > Disagree. NDISC_OPT_SPACE() takes care size of nd option header. Agree. I misunderstood this, my fault. Maybe it's better to write: #define NDISC_OPT_SPACE(len) (((len)+sizeof(nd_opt_hdr)+7)&~7) Regards, Stephan -- To unsubscribe from this list: send the line "unsubscribe netdev" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html
diff --git a/net/ipv6/ndisc.c b/net/ipv6/ndisc.c index 6574175..b12b94c 100644 --- a/net/ipv6/ndisc.c +++ b/net/ipv6/ndisc.c @@ -392,7 +392,7 @@ static struct sk_buff *ndisc_build_skb(struct net_device *dev, len = sizeof(struct icmp6hdr) + (target ? sizeof(*target) : 0); if (llinfo) - len += ndisc_opt_addr_space(dev); + len += sizeof(struct nd_opt_hdr) + ndisc_opt_addr_space(dev); skb = sock_alloc_send_skb(sk, (MAX_HEADER + sizeof(struct ipv6hdr) + @@ -1424,7 +1424,8 @@ void ndisc_send_redirect(struct sk_buff *skb, const struct in6_addr *target) memcpy(ha_buf, neigh->ha, dev->addr_len); read_unlock_bh(&neigh->lock); ha = ha_buf; - len += ndisc_opt_addr_space(dev); + len += sizeof(struct nd_opt_hdr) + + ndisc_opt_addr_space(dev); } else read_unlock_bh(&neigh->lock);
Signed-off-by: Stephan Gatzka <stephan.gatzka@gmail.com> --- net/ipv6/ndisc.c | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-)