diff options
Diffstat (limited to 'net/ipv6/raw.c')
-rw-r--r-- | net/ipv6/raw.c | 13 |
1 files changed, 11 insertions, 2 deletions
diff --git a/net/ipv6/raw.c b/net/ipv6/raw.c index f2e883c9368a..c2d8059e754e 100644 --- a/net/ipv6/raw.c +++ b/net/ipv6/raw.c | |||
@@ -1094,10 +1094,19 @@ static void rawv6_close(struct sock *sk, long timeout) | |||
1094 | 1094 | ||
1095 | static int rawv6_init_sk(struct sock *sk) | 1095 | static int rawv6_init_sk(struct sock *sk) |
1096 | { | 1096 | { |
1097 | if (inet_sk(sk)->num == IPPROTO_ICMPV6) { | 1097 | struct raw6_sock *rp = raw6_sk(sk); |
1098 | struct raw6_sock *rp = raw6_sk(sk); | 1098 | |
1099 | switch (inet_sk(sk)->num) { | ||
1100 | case IPPROTO_ICMPV6: | ||
1099 | rp->checksum = 1; | 1101 | rp->checksum = 1; |
1100 | rp->offset = 2; | 1102 | rp->offset = 2; |
1103 | break; | ||
1104 | case IPPROTO_MH: | ||
1105 | rp->checksum = 1; | ||
1106 | rp->offset = 4; | ||
1107 | break; | ||
1108 | default: | ||
1109 | break; | ||
1101 | } | 1110 | } |
1102 | return(0); | 1111 | return(0); |
1103 | } | 1112 | } |