aboutsummaryrefslogtreecommitdiffstats
path: root/net/xfrm/xfrm_output.c
diff options
context:
space:
mode:
Diffstat (limited to 'net/xfrm/xfrm_output.c')
-rw-r--r--net/xfrm/xfrm_output.c20
1 files changed, 10 insertions, 10 deletions
diff --git a/net/xfrm/xfrm_output.c b/net/xfrm/xfrm_output.c
index 3cb2a328a8ab..a55510f9ff35 100644
--- a/net/xfrm/xfrm_output.c
+++ b/net/xfrm/xfrm_output.c
@@ -334,7 +334,7 @@ static int xfrm4_prepare_output(struct xfrm_state *x, struct sk_buff *skb)
334 IPCB(skb)->flags |= IPSKB_XFRM_TUNNEL_SIZE; 334 IPCB(skb)->flags |= IPSKB_XFRM_TUNNEL_SIZE;
335 skb->protocol = htons(ETH_P_IP); 335 skb->protocol = htons(ETH_P_IP);
336 336
337 switch (x->outer_mode->encap) { 337 switch (x->outer_mode.encap) {
338 case XFRM_MODE_BEET: 338 case XFRM_MODE_BEET:
339 return xfrm4_beet_encap_add(x, skb); 339 return xfrm4_beet_encap_add(x, skb);
340 case XFRM_MODE_TUNNEL: 340 case XFRM_MODE_TUNNEL:
@@ -357,7 +357,7 @@ static int xfrm6_prepare_output(struct xfrm_state *x, struct sk_buff *skb)
357 skb->ignore_df = 1; 357 skb->ignore_df = 1;
358 skb->protocol = htons(ETH_P_IPV6); 358 skb->protocol = htons(ETH_P_IPV6);
359 359
360 switch (x->outer_mode->encap) { 360 switch (x->outer_mode.encap) {
361 case XFRM_MODE_BEET: 361 case XFRM_MODE_BEET:
362 return xfrm6_beet_encap_add(x, skb); 362 return xfrm6_beet_encap_add(x, skb);
363 case XFRM_MODE_TUNNEL: 363 case XFRM_MODE_TUNNEL:
@@ -373,22 +373,22 @@ static int xfrm6_prepare_output(struct xfrm_state *x, struct sk_buff *skb)
373 373
374static int xfrm_outer_mode_output(struct xfrm_state *x, struct sk_buff *skb) 374static int xfrm_outer_mode_output(struct xfrm_state *x, struct sk_buff *skb)
375{ 375{
376 switch (x->outer_mode->encap) { 376 switch (x->outer_mode.encap) {
377 case XFRM_MODE_BEET: 377 case XFRM_MODE_BEET:
378 case XFRM_MODE_TUNNEL: 378 case XFRM_MODE_TUNNEL:
379 if (x->outer_mode->family == AF_INET) 379 if (x->outer_mode.family == AF_INET)
380 return xfrm4_prepare_output(x, skb); 380 return xfrm4_prepare_output(x, skb);
381 if (x->outer_mode->family == AF_INET6) 381 if (x->outer_mode.family == AF_INET6)
382 return xfrm6_prepare_output(x, skb); 382 return xfrm6_prepare_output(x, skb);
383 break; 383 break;
384 case XFRM_MODE_TRANSPORT: 384 case XFRM_MODE_TRANSPORT:
385 if (x->outer_mode->family == AF_INET) 385 if (x->outer_mode.family == AF_INET)
386 return xfrm4_transport_output(x, skb); 386 return xfrm4_transport_output(x, skb);
387 if (x->outer_mode->family == AF_INET6) 387 if (x->outer_mode.family == AF_INET6)
388 return xfrm6_transport_output(x, skb); 388 return xfrm6_transport_output(x, skb);
389 break; 389 break;
390 case XFRM_MODE_ROUTEOPTIMIZATION: 390 case XFRM_MODE_ROUTEOPTIMIZATION:
391 if (x->outer_mode->family == AF_INET6) 391 if (x->outer_mode.family == AF_INET6)
392 return xfrm6_ro_output(x, skb); 392 return xfrm6_ro_output(x, skb);
393 WARN_ON_ONCE(1); 393 WARN_ON_ONCE(1);
394 break; 394 break;
@@ -489,7 +489,7 @@ resume:
489 } 489 }
490 skb_dst_set(skb, dst); 490 skb_dst_set(skb, dst);
491 x = dst->xfrm; 491 x = dst->xfrm;
492 } while (x && !(x->outer_mode->flags & XFRM_MODE_FLAG_TUNNEL)); 492 } while (x && !(x->outer_mode.flags & XFRM_MODE_FLAG_TUNNEL));
493 493
494 return 0; 494 return 0;
495 495
@@ -626,7 +626,7 @@ static int xfrm_inner_extract_output(struct xfrm_state *x, struct sk_buff *skb)
626 inner_mode = xfrm_ip2inner_mode(x, 626 inner_mode = xfrm_ip2inner_mode(x,
627 xfrm_af2proto(skb_dst(skb)->ops->family)); 627 xfrm_af2proto(skb_dst(skb)->ops->family));
628 else 628 else
629 inner_mode = x->inner_mode; 629 inner_mode = &x->inner_mode;
630 630
631 if (inner_mode == NULL) 631 if (inner_mode == NULL)
632 return -EAFNOSUPPORT; 632 return -EAFNOSUPPORT;