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.c6
1 files changed, 5 insertions, 1 deletions
diff --git a/net/xfrm/xfrm_output.c b/net/xfrm/xfrm_output.c
index 26fa0cb78c94..867484a046af 100644
--- a/net/xfrm/xfrm_output.c
+++ b/net/xfrm/xfrm_output.c
@@ -69,10 +69,13 @@ static int xfrm_output_one(struct sk_buff *skb, int err)
69 err = x->type->output(x, skb); 69 err = x->type->output(x, skb);
70 70
71resume: 71resume:
72 if (err) 72 if (err) {
73 XFRM_INC_STATS(LINUX_MIB_XFRMOUTSTATEPROTOERROR);
73 goto error_nolock; 74 goto error_nolock;
75 }
74 76
75 if (!(skb->dst = dst_pop(dst))) { 77 if (!(skb->dst = dst_pop(dst))) {
78 XFRM_INC_STATS(LINUX_MIB_XFRMOUTERROR);
76 err = -EHOSTUNREACH; 79 err = -EHOSTUNREACH;
77 goto error_nolock; 80 goto error_nolock;
78 } 81 }
@@ -167,6 +170,7 @@ int xfrm_output(struct sk_buff *skb)
167 if (skb->ip_summed == CHECKSUM_PARTIAL) { 170 if (skb->ip_summed == CHECKSUM_PARTIAL) {
168 err = skb_checksum_help(skb); 171 err = skb_checksum_help(skb);
169 if (err) { 172 if (err) {
173 XFRM_INC_STATS(LINUX_MIB_XFRMOUTERROR);
170 kfree_skb(skb); 174 kfree_skb(skb);
171 return err; 175 return err;
172 } 176 }