From patchwork Wed Oct 18 20:10:12 2017 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Tom Herbert X-Patchwork-Id: 827812 X-Patchwork-Delegate: davem@davemloft.net Return-Path: X-Original-To: patchwork-incoming@ozlabs.org Delivered-To: patchwork-incoming@ozlabs.org Authentication-Results: ozlabs.org; spf=none (mailfrom) smtp.mailfrom=vger.kernel.org (client-ip=209.132.180.67; helo=vger.kernel.org; envelope-from=netdev-owner@vger.kernel.org; receiver=) Authentication-Results: ozlabs.org; dkim=pass (2048-bit key; unprotected) header.d=quantonium-net.20150623.gappssmtp.com header.i=@quantonium-net.20150623.gappssmtp.com header.b="KCSWDHO0"; dkim-atps=neutral Received: from vger.kernel.org (vger.kernel.org [209.132.180.67]) by ozlabs.org (Postfix) with ESMTP id 3yHNWJ5D7Wz9t48 for ; Thu, 19 Oct 2017 07:11:56 +1100 (AEDT) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1751775AbdJRULx (ORCPT ); Wed, 18 Oct 2017 16:11:53 -0400 Received: from mail-pf0-f193.google.com ([209.85.192.193]:53453 "EHLO mail-pf0-f193.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1751690AbdJRULL (ORCPT ); Wed, 18 Oct 2017 16:11:11 -0400 Received: by mail-pf0-f193.google.com with SMTP id t188so4753137pfd.10 for ; Wed, 18 Oct 2017 13:11:11 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=quantonium-net.20150623.gappssmtp.com; s=20150623; h=from:to:cc:subject:date:message-id:in-reply-to:references; bh=M3FXeq2nLYeSn0fU0Ho7wThC1D83EIjbYlgwheu0zTM=; b=KCSWDHO0j3weXryC3gv7Wx/BBWys/amWiIq+Yy2SSWE+k2x3hUDiRzTTJzzW8SQDhh WG+wRET5lCkm1Pzyf34PiJt63jzFUkrgAoNK0zX+l+DhUwc71jlKHHdJCO96zFRZXIoB hVELDiJkSTw/lsRondlw0IVNaOvIpo64/9lbjZJ5if+5e3pvCNfhoW+q89gdBpATZpeg 3DBJQAcW58oY9QN0uin4+s3QkiWdcLX3+ejkdfwbIrNOYm29bMUZUzClzOR8mEYg5Xoh BC+7B/Et7KXoTaCDIS9C+r+cQtKQVfj3gZdrQzi13lqtkgrvdI2Wc0ie/U6pnSXq0IJ0 jReA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:from:to:cc:subject:date:message-id:in-reply-to :references; bh=M3FXeq2nLYeSn0fU0Ho7wThC1D83EIjbYlgwheu0zTM=; b=rWBtD2+4/zPcke7Rm06PBk/9mHHF0MnPSFDkAaZJllLv/M/D1g7/wnJ97muIMGhJ+v ZTIq9dWB03AsLvSsd3OgL/5XmrbU0jwfe3pgQ/ecKFWM9j2ORSD4a6cFClSeBu/1q1fk 9/a6R+wncuPEA9S7CWNTsbqSQmoCxY6aGKLhV2E5xNDwPAbtDMnRnmri5G23cIjwaGP5 AxmbwbqGZETp7yiG/MvshNsvw9klBAEx5IPYsuUDuAoncYU3lLxCP47CjPM4LMbkV78Z hZ8jnZgRWtPQVCB/o3Nmyi6iYOpIxY+tMoVkFf7evLxEoyft89Wm1T6N5YEFsiec3PKm lzAg== X-Gm-Message-State: AMCzsaVlMa8+gNpnEAwaWyKCsJP4p1URTDcTtT0BEF5Gj4svXwo1m70a eRodPwln+Y96syKpZyBEmgenng== X-Google-Smtp-Source: AOwi7QBLiSOvD4zxEzrYrBch3SOFBfaUmRX3N5Qr+MkWcwRBq753PShjK4TYz1V0qFh2qD01tUEWzA== X-Received: by 10.99.113.29 with SMTP id m29mr14956777pgc.309.1508357470778; Wed, 18 Oct 2017 13:11:10 -0700 (PDT) Received: from localhost.localdomain (c-73-162-13-107.hsd1.ca.comcast.net. [73.162.13.107]) by smtp.gmail.com with ESMTPSA id l79sm26424108pfb.33.2017.10.18.13.11.09 (version=TLS1_2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); Wed, 18 Oct 2017 13:11:09 -0700 (PDT) From: Tom Herbert To: davem@davemloft.net Cc: pablo@netfilter.org, laforge@gnumonks.org, aschultz@tpip.net, netdev@vger.kernel.org, rohit@quantonium.net, Tom Herbert Subject: [PATCH v5 net-next 06/12] gtp: Use goto for exceptions in gtp_udp_encap_recv funcs Date: Wed, 18 Oct 2017 13:10:12 -0700 Message-Id: <20171018201018.5692-7-tom@quantonium.net> X-Mailer: git-send-email 2.11.0 In-Reply-To: <20171018201018.5692-1-tom@quantonium.net> References: <20171018201018.5692-1-tom@quantonium.net> Sender: netdev-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: netdev@vger.kernel.org Consolidate return logic to make it easier to extend. Signed-off-by: Tom Herbert --- drivers/net/gtp.c | 26 +++++++++++++++++--------- 1 file changed, 17 insertions(+), 9 deletions(-) diff --git a/drivers/net/gtp.c b/drivers/net/gtp.c index f2aac5d01143..00e5ea5cb935 100644 --- a/drivers/net/gtp.c +++ b/drivers/net/gtp.c @@ -234,23 +234,27 @@ static int gtp0_udp_encap_recv(struct gtp_dev *gtp, struct sk_buff *skb) struct pdp_ctx *pctx; if (!pskb_may_pull(skb, hdrlen)) - return -1; + goto drop; gtp0 = (struct gtp0_header *)(skb->data + sizeof(struct udphdr)); if ((gtp0->flags >> 5) != GTP_V0) - return 1; + goto pass; if (gtp0->type != GTP_TPDU) - return 1; + goto pass; pctx = gtp0_pdp_find(gtp, be64_to_cpu(gtp0->tid)); if (!pctx) { netdev_dbg(gtp->dev, "No PDP ctx to decap skb=%p\n", skb); - return 1; + goto pass; } return gtp_rx(pctx, skb, hdrlen, gtp->role); +drop: + return -1; +pass: + return 1; } static int gtp1u_udp_encap_recv(struct gtp_dev *gtp, struct sk_buff *skb) @@ -261,15 +265,15 @@ static int gtp1u_udp_encap_recv(struct gtp_dev *gtp, struct sk_buff *skb) struct pdp_ctx *pctx; if (!pskb_may_pull(skb, hdrlen)) - return -1; + goto drop; gtp1 = (struct gtp1_header *)(skb->data + sizeof(struct udphdr)); if ((gtp1->flags >> 5) != GTP_V1) - return 1; + goto pass; if (gtp1->type != GTP_TPDU) - return 1; + goto pass; /* From 29.060: "This field shall be present if and only if any one or * more of the S, PN and E flags are set.". @@ -282,17 +286,21 @@ static int gtp1u_udp_encap_recv(struct gtp_dev *gtp, struct sk_buff *skb) /* Make sure the header is larger enough, including extensions. */ if (!pskb_may_pull(skb, hdrlen)) - return -1; + goto drop; gtp1 = (struct gtp1_header *)(skb->data + sizeof(struct udphdr)); pctx = gtp1_pdp_find(gtp, ntohl(gtp1->tid)); if (!pctx) { netdev_dbg(gtp->dev, "No PDP ctx to decap skb=%p\n", skb); - return 1; + goto drop; } return gtp_rx(pctx, skb, hdrlen, gtp->role); +drop: + return -1; +pass: + return 1; } static void gtp_encap_destroy(struct sock *sk)