git://git.onelab.eu
/
linux-2.6.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
vserver 1.9.3
[linux-2.6.git]
/
net
/
ipv6
/
exthdrs.c
diff --git
a/net/ipv6/exthdrs.c
b/net/ipv6/exthdrs.c
index
464a3f4
..
2b78c84
100644
(file)
--- a/
net/ipv6/exthdrs.c
+++ b/
net/ipv6/exthdrs.c
@@
-314,9
+314,11
@@
looped_back:
dst_release(xchg(&skb->dst, NULL));
ip6_route_input(skb);
if (skb->dst->error) {
dst_release(xchg(&skb->dst, NULL));
ip6_route_input(skb);
if (skb->dst->error) {
+ skb_push(skb, skb->data - skb->nh.raw);
dst_input(skb);
return -1;
}
dst_input(skb);
return -1;
}
+
if (skb->dst->dev->flags&IFF_LOOPBACK) {
if (skb->nh.ipv6h->hop_limit <= 1) {
IP6_INC_STATS_BH(IPSTATS_MIB_INHDRERRORS);
if (skb->dst->dev->flags&IFF_LOOPBACK) {
if (skb->nh.ipv6h->hop_limit <= 1) {
IP6_INC_STATS_BH(IPSTATS_MIB_INHDRERRORS);
@@
-329,6
+331,7
@@
looped_back:
goto looped_back;
}
goto looped_back;
}
+ skb_push(skb, skb->data - skb->nh.raw);
dst_input(skb);
return -1;
}
dst_input(skb);
return -1;
}