From patchwork Fri Apr 1 07:00:48 2011 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Sven Eckelmann X-Patchwork-Id: 941 Return-Path: Received: from v3-1039.vlinux.de (narfation.org [79.140.41.39]) by open-mesh.org (Postfix) with ESMTPS id E3315154410 for ; Fri, 1 Apr 2011 09:00:53 +0200 (CEST) Authentication-Results: open-mesh.org; dkim=pass (1024-bit key) header.i=@narfation.org; dkim-adsp=pass Received: from sven-desktop.home.narfation.org (camo157-29.hrz.tu-chemnitz.de [134.109.157.29]) by v3-1039.vlinux.de (Postfix) with ESMTPSA id EE59C940D0; Fri, 1 Apr 2011 09:00:50 +0200 (CEST) DKIM-Signature: v=1; a=rsa-sha256; c=simple/simple; d=narfation.org; s=mail; t=1301641251; bh=dAbmUFT0GGofSMSQL/o+HZ2Qgl+v8POI7vj1SUyNJLA=; h=From:To:Cc:Subject:Date:Message-Id:In-Reply-To:References; b=r2XNfJSfGGgPeQu+U8/CnTbDx5nZx+O4DoFEtiz8KlRHXQYJ+2oBZCb+ik6iSQUIL 4UUpWePUJJA3OA3Rg9tw9AVxyQi1jecGjcYxpkZoVfCRklN0p/ZSVTYN0AjNjj//qg /3KS9c/athpfBfat089eJFcyLry+WnufwgPUUi9I= From: Sven Eckelmann To: b.a.t.m.a.n@lists.open-mesh.org Date: Fri, 1 Apr 2011 09:00:48 +0200 Message-Id: <1301641248-6710-1-git-send-email-sven@narfation.org> X-Mailer: git-send-email 1.7.4.1 In-Reply-To: <1301640559-4152-2-git-send-email-sven@narfation.org> References: <1301640559-4152-2-git-send-email-sven@narfation.org> Subject: [B.A.T.M.A.N.] [PATCHv2 2/2] batman-adv: Fix imbalanced locking in gw_node_update X-BeenThere: b.a.t.m.a.n@lists.open-mesh.org X-Mailman-Version: 2.1.13 Precedence: list Reply-To: The list for a Better Approach To Mobile Ad-hoc Networking List-Id: The list for a Better Approach To Mobile Ad-hoc Networking List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 01 Apr 2011 07:00:54 -0000 8ffdea813e32cee3c60be36fb9e6a5e077e51ea0 used rcu_read_unlock without using rcu_read_lock when gw_get_selected_gw_node didn't return a valid gw_node. Signed-off-by: Sven Eckelmann --- Maybe the other patch is useful in the future... but changing the goto to a return is less invasive and easier to understand gateway_client.c | 2 +- 1 files changed, 1 insertions(+), 1 deletions(-) diff --git a/gateway_client.c b/gateway_client.c index 3d0050b..fff998a 100644 --- a/gateway_client.c +++ b/gateway_client.c @@ -312,7 +312,7 @@ void gw_node_update(struct bat_priv *bat_priv, curr_gw = gw_get_selected_gw_node(bat_priv); if (!curr_gw) - goto out; + return; rcu_read_lock(); hlist_for_each_entry_rcu(gw_node, node, &bat_priv->gw_list, list) {