From 28da9792577791796bd63fbed006cd2081c517e2 Mon Sep 17 00:00:00 2001 From: Pablo Neira Ayuso Date: Thu, 13 Feb 2014 18:26:18 +0100 Subject: [PATCH] gtp: consolidate error path in gtp_ip4_prepare_xmit --- gtp.c | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/gtp.c b/gtp.c index 5e1b476..1972119 100644 --- a/gtp.c +++ b/gtp.c @@ -543,9 +543,8 @@ static int gtp_ip4_prepare_xmit(struct sk_buff *skb, struct net_device *dev, /* There is a routing loop */ if (tdev == dev) { pr_info("rt loop, skipping\n"); - ip_rt_put(rt); dev->stats.collisions++; - goto err; + goto err_rt; } memset(&(IPCB(skb)->opt), 0, sizeof(IPCB(skb)->opt)); @@ -571,13 +570,14 @@ static int gtp_ip4_prepare_xmit(struct sk_buff *skb, struct net_device *dev, mtu < ntohs(iph->tot_len)) { icmp_send(skb, ICMP_DEST_UNREACH, ICMP_FRAG_NEEDED, htonl(mtu)); - ip_rt_put(rt); - goto err; + goto err_rt; } gtp_set_pktinfo_ipv4(pktinfo, iph, pctx, rt, &fl4); return 0; +err_rt: + ip_rt_put(rt); err: return -1; }