diff options
Diffstat (limited to 'net/ipv6/ipcomp6.c')
-rw-r--r-- | net/ipv6/ipcomp6.c | 9 |
1 files changed, 8 insertions, 1 deletions
diff --git a/net/ipv6/ipcomp6.c b/net/ipv6/ipcomp6.c index 28fc8edfdc3a..80ef2a1d39fd 100644 --- a/net/ipv6/ipcomp6.c +++ b/net/ipv6/ipcomp6.c | |||
@@ -411,8 +411,15 @@ static int ipcomp6_init_state(struct xfrm_state *x) | |||
411 | goto out; | 411 | goto out; |
412 | 412 | ||
413 | x->props.header_len = 0; | 413 | x->props.header_len = 0; |
414 | if (x->props.mode == XFRM_MODE_TUNNEL) | 414 | switch (x->props.mode) { |
415 | case XFRM_MODE_BEET: | ||
416 | case XFRM_MODE_TRANSPORT: | ||
417 | break; | ||
418 | case XFRM_MODE_TUNNEL: | ||
415 | x->props.header_len += sizeof(struct ipv6hdr); | 419 | x->props.header_len += sizeof(struct ipv6hdr); |
420 | default: | ||
421 | goto error; | ||
422 | } | ||
416 | 423 | ||
417 | mutex_lock(&ipcomp6_resource_mutex); | 424 | mutex_lock(&ipcomp6_resource_mutex); |
418 | if (!ipcomp6_alloc_scratches()) | 425 | if (!ipcomp6_alloc_scratches()) |