diff options
| author | Linus Torvalds <torvalds@athlon.transmeta.com> | 2002-02-04 18:11:38 -0800 |
|---|---|---|
| committer | Linus Torvalds <torvalds@athlon.transmeta.com> | 2002-02-04 18:11:38 -0800 |
| commit | 1a0153507ffae9cf3350e76c12d441788c0191e1 (patch) | |
| tree | d05a502b4fc05202c84c1667019460c08ea088cd /net/ipv6/ndisc.c | |
| parent | b0683ac8928c4cf40646a6ce3eb6ffe94605acfa (diff) | |
v2.4.3.2 -> v2.4.3.3
- Hui-Fen Hsu: sis900 driver update
- NIIBE Yutaka: Super-H update
- Alan Cox: more resyncs (ARM down, but more to go)
- David Miller: network zerocopy, Sparc sync, qlogic,FC fix, etc.
- David Miller/me: get rid of various drivers hacks to do mmap
alignment behind the back of the VM layer. Create a real
protocol for it.
Diffstat (limited to 'net/ipv6/ndisc.c')
| -rw-r--r-- | net/ipv6/ndisc.c | 14 |
1 files changed, 8 insertions, 6 deletions
diff --git a/net/ipv6/ndisc.c b/net/ipv6/ndisc.c index 7c3bfca37c4b..faab9ab107de 100644 --- a/net/ipv6/ndisc.c +++ b/net/ipv6/ndisc.c @@ -338,7 +338,7 @@ void ndisc_send_na(struct net_device *dev, struct neighbour *neigh, } skb = sock_alloc_send_skb(sk, MAX_HEADER + len + dev->hard_header_len + 15, - 0, 0, &err); + 0, &err); if (skb == NULL) { ND_PRINTK1("send_na: alloc skb failed\n"); @@ -397,7 +397,7 @@ void ndisc_send_ns(struct net_device *dev, struct neighbour *neigh, len += NDISC_OPT_SPACE(dev->addr_len); skb = sock_alloc_send_skb(sk, MAX_HEADER + len + dev->hard_header_len + 15, - 0, 0, &err); + 0, &err); if (skb == NULL) { ND_PRINTK1("send_ns: alloc skb failed\n"); return; @@ -458,7 +458,7 @@ void ndisc_send_rs(struct net_device *dev, struct in6_addr *saddr, len += NDISC_OPT_SPACE(dev->addr_len); skb = sock_alloc_send_skb(sk, MAX_HEADER + len + dev->hard_header_len + 15, - 0, 0, &err); + 0, &err); if (skb == NULL) { ND_PRINTK1("send_ns: alloc skb failed\n"); return; @@ -869,7 +869,7 @@ void ndisc_send_redirect(struct sk_buff *skb, struct neighbour *neigh, } buff = sock_alloc_send_skb(sk, MAX_HEADER + len + dev->hard_header_len + 15, - 0, 0, &err); + 0, &err); if (buff == NULL) { ND_PRINTK1("ndisc_send_redirect: alloc_skb failed\n"); return; @@ -957,11 +957,11 @@ static __inline__ int ndisc_recv_na(struct neighbour *neigh, struct sk_buff *skb static void pndisc_redo(struct sk_buff *skb) { - ndisc_rcv(skb, skb->len); + ndisc_rcv(skb); kfree_skb(skb); } -int ndisc_rcv(struct sk_buff *skb, unsigned long len) +int ndisc_rcv(struct sk_buff *skb) { struct net_device *dev = skb->dev; struct in6_addr *saddr = &skb->nh.ipv6h->saddr; @@ -970,6 +970,8 @@ int ndisc_rcv(struct sk_buff *skb, unsigned long len) struct neighbour *neigh; struct inet6_ifaddr *ifp; + __skb_push(skb, skb->data-skb->h.raw); + switch (msg->icmph.icmp6_type) { case NDISC_NEIGHBOUR_SOLICITATION: if ((ifp = ipv6_get_ifaddr(&msg->target, dev)) != NULL) { |
