From: Jiri Slaby Date: Sat, 4 Sep 2010 02:08:41 +0000 (+0000) Subject: NET: bna, fix lock imbalance X-Git-Url: http://drtracing.org/?a=commitdiff_plain;h=ca1cef3a3a8af961f504abfcf9e13dac088e1ad1;p=deliverable%2Flinux.git NET: bna, fix lock imbalance 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 Signed-off-by: David S. Miller --- diff --git a/drivers/net/bna/bnad.c b/drivers/net/bna/bnad.c index 44adc7aefddc..8158fb93cb4c 100644 --- a/drivers/net/bna/bnad.c +++ b/drivers/net/bna/bnad.c @@ -2702,7 +2702,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); @@ -2715,6 +2715,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); }