From patchwork Sat Dec 13 19:21:20 2008 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-Patchwork-Submitter: =?utf-8?q?Ilpo_J=C3=A4rvinen?= X-Patchwork-Id: 13849 X-Patchwork-Delegate: davem@davemloft.net Return-Path: X-Original-To: patchwork-incoming@ozlabs.org Delivered-To: patchwork-incoming@ozlabs.org Received: from vger.kernel.org (vger.kernel.org [209.132.176.167]) by ozlabs.org (Postfix) with ESMTP id C0BC8DDFD5 for ; Sun, 14 Dec 2008 06:21:56 +1100 (EST) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1752110AbYLMTVh (ORCPT ); Sat, 13 Dec 2008 14:21:37 -0500 Received: (majordomo@vger.kernel.org) by vger.kernel.org id S1752067AbYLMTVf (ORCPT ); Sat, 13 Dec 2008 14:21:35 -0500 Received: from courier.cs.helsinki.fi ([128.214.9.1]:51986 "EHLO mail.cs.helsinki.fi" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1751988AbYLMTVZ (ORCPT ); Sat, 13 Dec 2008 14:21:25 -0500 Received: from wrl-59.cs.helsinki.fi (wrl-59.cs.helsinki.fi [128.214.166.179]) (AUTH: PLAIN cs-relay, TLS: TLSv1/SSLv3,256bits,AES256-SHA) by mail.cs.helsinki.fi with esmtp; Sat, 13 Dec 2008 21:21:23 +0200 id 0008C2A6.49440B33.00007D22 Received: by wrl-59.cs.helsinki.fi (Postfix, from userid 50795) id CC91916B141; Sat, 13 Dec 2008 21:21:22 +0200 (EET) From: "=?ISO-8859-1?Q?Ilpo_J=E4rvinen?=" To: David Miller Cc: netdev@vger.kernel.org, "=?utf-8?q?Ilpo=20J=E4rvinen?=" , Samuel Ortiz Subject: [PATCH 09/11] irda: merge exit paths Date: Sat, 13 Dec 2008 21:21:20 +0200 Message-Id: <1229196082-4162-10-git-send-email-ilpo.jarvinen@helsinki.fi> X-Mailer: git-send-email 1.5.4.2.156.ge3c5 In-Reply-To: <1229196082-4162-9-git-send-email-ilpo.jarvinen@helsinki.fi> References: <1229196082-4162-1-git-send-email-ilpo.jarvinen@helsinki.fi> <1229196082-4162-2-git-send-email-ilpo.jarvinen@helsinki.fi> <1229196082-4162-3-git-send-email-ilpo.jarvinen@helsinki.fi> <1229196082-4162-4-git-send-email-ilpo.jarvinen@helsinki.fi> <1229196082-4162-5-git-send-email-ilpo.jarvinen@helsinki.fi> <1229196082-4162-6-git-send-email-ilpo.jarvinen@helsinki.fi> <1229196082-4162-7-git-send-email-ilpo.jarvinen@helsinki.fi> <1229196082-4162-8-git-send-email-ilpo.jarvinen@helsinki.fi> <1229196082-4162-9-git-send-email-ilpo.jarvinen@helsinki.fi> MIME-Version: 1.0 Sender: netdev-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: netdev@vger.kernel.org Signed-off-by: Ilpo Järvinen Cc: Samuel Ortiz --- net/irda/irlap_frame.c | 17 ++++++++--------- 1 files changed, 8 insertions(+), 9 deletions(-) diff --git a/net/irda/irlap_frame.c b/net/irda/irlap_frame.c index f17b65a..2562ebc 100644 --- a/net/irda/irlap_frame.c +++ b/net/irda/irlap_frame.c @@ -1325,6 +1325,7 @@ int irlap_driver_rcv(struct sk_buff *skb, struct net_device *dev, struct irlap_cb *self; int command; __u8 control; + int ret = -1; if (!net_eq(dev_net(dev), &init_net)) goto out; @@ -1333,25 +1334,21 @@ int irlap_driver_rcv(struct sk_buff *skb, struct net_device *dev, self = (struct irlap_cb *) dev->atalk_ptr; /* If the net device is down, then IrLAP is gone! */ - if (!self || self->magic != LAP_MAGIC) { - dev_kfree_skb(skb); - return -1; - } + if (!self || self->magic != LAP_MAGIC) + goto err; /* We are no longer an "old" protocol, so we need to handle * share and non linear skbs. This should never happen, so * we don't need to be clever about it. Jean II */ if ((skb = skb_share_check(skb, GFP_ATOMIC)) == NULL) { IRDA_ERROR("%s: can't clone shared skb!\n", __func__); - dev_kfree_skb(skb); - return -1; + goto err; } /* Check if frame is large enough for parsing */ if (!pskb_may_pull(skb, 2)) { IRDA_ERROR("%s: frame too short!\n", __func__); - dev_kfree_skb(skb); - return -1; + goto err; } command = skb->data[0] & CMD_FRAME; @@ -1442,7 +1439,9 @@ int irlap_driver_rcv(struct sk_buff *skb, struct net_device *dev, break; } out: + ret = 0; +err: /* Always drop our reference on the skb */ dev_kfree_skb(skb); - return 0; + return ret; }