diff options
author | YOSHIFUJI Hideaki / 吉藤英明 <yoshfuji@linux-ipv6.org> | 2013-01-21 01:48:29 -0500 |
---|---|---|
committer | David S. Miller <davem@davemloft.net> | 2013-01-21 13:33:15 -0500 |
commit | f382d03ad003815be6dc268711659d4475fb7d28 (patch) | |
tree | 18ce57f9ecc1a256cdf69f71d587a7da467f3add /net | |
parent | c8d6c380d9463e1405d821db7071e39f63acfb28 (diff) |
ndisc: Set skb->dev and skb->protocol inside ndisc_alloc_skb().
Signed-off-by: YOSHIFUJI Hideaki <yoshfuji@linux-ipv6.org>
Signed-off-by: David S. Miller <davem@davemloft.net>
Diffstat (limited to 'net')
-rw-r--r-- | net/ipv6/ndisc.c | 12 |
1 files changed, 6 insertions, 6 deletions
diff --git a/net/ipv6/ndisc.c b/net/ipv6/ndisc.c index 05c69964f356..ed3ba8eb9505 100644 --- a/net/ipv6/ndisc.c +++ b/net/ipv6/ndisc.c | |||
@@ -384,21 +384,21 @@ static struct sk_buff *ndisc_alloc_skb(struct net_device *dev, | |||
384 | return NULL; | 384 | return NULL; |
385 | } | 385 | } |
386 | 386 | ||
387 | skb->protocol = htons(ETH_P_IPV6); | ||
388 | skb->dev = dev; | ||
389 | |||
387 | skb_reserve(skb, hlen); | 390 | skb_reserve(skb, hlen); |
388 | 391 | ||
389 | return skb; | 392 | return skb; |
390 | } | 393 | } |
391 | 394 | ||
392 | static void ip6_nd_hdr(struct sk_buff *skb, struct net_device *dev, | 395 | static void ip6_nd_hdr(struct sk_buff *skb, |
393 | const struct in6_addr *saddr, | 396 | const struct in6_addr *saddr, |
394 | const struct in6_addr *daddr, | 397 | const struct in6_addr *daddr, |
395 | int hop_limit, int len) | 398 | int hop_limit, int len) |
396 | { | 399 | { |
397 | struct ipv6hdr *hdr; | 400 | struct ipv6hdr *hdr; |
398 | 401 | ||
399 | skb->protocol = htons(ETH_P_IPV6); | ||
400 | skb->dev = dev; | ||
401 | |||
402 | skb_reset_network_header(skb); | 402 | skb_reset_network_header(skb); |
403 | skb_put(skb, sizeof(struct ipv6hdr)); | 403 | skb_put(skb, sizeof(struct ipv6hdr)); |
404 | hdr = ipv6_hdr(skb); | 404 | hdr = ipv6_hdr(skb); |
@@ -438,7 +438,7 @@ static struct sk_buff *ndisc_build_skb(struct net_device *dev, | |||
438 | if (!skb) | 438 | if (!skb) |
439 | return NULL; | 439 | return NULL; |
440 | 440 | ||
441 | ip6_nd_hdr(skb, dev, saddr, daddr, inet6_sk(sk)->hop_limit, len); | 441 | ip6_nd_hdr(skb, saddr, daddr, inet6_sk(sk)->hop_limit, len); |
442 | 442 | ||
443 | skb->transport_header = skb->tail; | 443 | skb->transport_header = skb->tail; |
444 | skb_put(skb, len); | 444 | skb_put(skb, len); |
@@ -1479,7 +1479,7 @@ void ndisc_send_redirect(struct sk_buff *skb, const struct in6_addr *target) | |||
1479 | if (!buff) | 1479 | if (!buff) |
1480 | goto release; | 1480 | goto release; |
1481 | 1481 | ||
1482 | ip6_nd_hdr(buff, dev, &saddr_buf, &ipv6_hdr(skb)->saddr, | 1482 | ip6_nd_hdr(buff, &saddr_buf, &ipv6_hdr(skb)->saddr, |
1483 | inet6_sk(sk)->hop_limit, len); | 1483 | inet6_sk(sk)->hop_limit, len); |
1484 | 1484 | ||
1485 | skb_set_transport_header(buff, skb_tail_pointer(buff) - buff->data); | 1485 | skb_set_transport_header(buff, skb_tail_pointer(buff) - buff->data); |