===== net/ipv4/xfrm4_output.c 1.7 vs edited ===== --- 1.7/net/ipv4/xfrm4_output.c 2005-03-07 16:33:59 +11:00 +++ edited/net/ipv4/xfrm4_output.c 2005-03-12 12:26:20 +11:00 @@ -103,16 +103,16 @@ goto error_nolock; } - spin_lock_bh(&x->lock); - err = xfrm_state_check(x, skb); - if (err) - goto error; - if (x->props.mode) { err = xfrm4_tunnel_check_size(skb); if (err) - goto error; + goto error_nolock; } + + spin_lock_bh(&x->lock); + err = xfrm_state_check(x, skb); + if (err) + goto error; xfrm4_encap(skb); ===== net/ipv6/xfrm6_output.c 1.9 vs edited ===== --- 1.9/net/ipv6/xfrm6_output.c 2005-03-07 16:33:59 +11:00 +++ edited/net/ipv6/xfrm6_output.c 2005-03-12 12:29:00 +11:00 @@ -103,16 +103,16 @@ goto error_nolock; } - spin_lock_bh(&x->lock); - err = xfrm_state_check(x, skb); - if (err) - goto error; - if (x->props.mode) { err = xfrm6_tunnel_check_size(skb); if (err) - goto error; + goto error_nolock; } + + spin_lock_bh(&x->lock); + err = xfrm_state_check(x, skb); + if (err) + goto error; xfrm6_encap(skb);