From patchwork Sat Sep 4 12:08:41 2010 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Jiri Slaby X-Patchwork-Id: 63771 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.180.67]) by ozlabs.org (Postfix) with ESMTP id C04B6B714C for ; Sat, 4 Sep 2010 22:09:43 +1000 (EST) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1752166Ab0IDMI4 (ORCPT ); Sat, 4 Sep 2010 08:08:56 -0400 Received: from mail.pripojeni.net ([217.66.174.14]:55115 "EHLO smtp.pripojeni.net" rhost-flags-OK-FAIL-OK-OK) by vger.kernel.org with ESMTP id S1751724Ab0IDMI4 (ORCPT ); Sat, 4 Sep 2010 08:08:56 -0400 Received: from localhost.localdomain ([217.66.174.142]) by smtp.pripojeni.net (Kerio Connect 7.0.0 patch 1); Sat, 4 Sep 2010 14:08:43 +0200 From: Jiri Slaby To: davem@davemloft.net Cc: linux-kernel@vger.kernel.org, jirislaby@gmail.com, netdev@vger.kernel.org, Debashis Dutt , Rasesh Mody Subject: [PATCH 1/1] NET: bna, fix lock imbalance Date: Sat, 4 Sep 2010 14:08:41 +0200 Message-Id: <1283602121-11443-1-git-send-email-jslaby@suse.cz> X-Mailer: git-send-email 1.7.2.2 Sender: netdev-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: netdev@vger.kernel.org bnad_set_rx_mode omit to unlock bna_lock on one fail path. Fix that. Signed-off-by: Jiri Slaby Cc: Debashis Dutt Cc: Rasesh Mody Cc: David S. Miller --- drivers/net/bna/bnad.c | 3 ++- 1 files changed, 2 insertions(+), 1 deletions(-) diff --git a/drivers/net/bna/bnad.c b/drivers/net/bna/bnad.c index cbc1d56..a1a449a 100644 --- a/drivers/net/bna/bnad.c +++ b/drivers/net/bna/bnad.c @@ -2706,7 +2706,7 @@ bnad_set_rx_mode(struct net_device *netdev) kzalloc((mc_count + 1) * ETH_ALEN, GFP_ATOMIC); if (!mcaddr_list) - return; + goto unlock; memcpy(&mcaddr_list[0], &bnad_bcast_addr[0], ETH_ALEN); @@ -2719,6 +2719,7 @@ bnad_set_rx_mode(struct net_device *netdev) /* Should we enable BNAD_CF_ALLMULTI for err != 0 ? */ kfree(mcaddr_list); } +unlock: spin_unlock_irqrestore(&bnad->bna_lock, flags); }