summaryrefslogtreecommitdiffstats
path: root/drivers
diff options
context:
space:
mode:
authorIra W. Snyder <kernel@irasnyder.com>2006-11-22 02:44:31 +0100
committerDavid S. Miller <davem@davemloft.net>2006-11-22 02:44:31 +0100
commit12862086f24d7382b24379bbcbe0dadf12ca5945 (patch)
treee1fc65a347e23171d28054eeb97316dd255bb97a /drivers
parent[IPV6]: Fix address/interface handling in UDP and DCCP, according to the scop... (diff)
downloadlinux-12862086f24d7382b24379bbcbe0dadf12ca5945.tar.xz
linux-12862086f24d7382b24379bbcbe0dadf12ca5945.zip
[TG3]: Add missing unlock in tg3_open() error path.
Sparse noticed a locking imbalance in tg3_open(). This patch adds an unlock to one of the error paths, so that tg3_open() always exits without the lock held. Signed-off-by: Ira W. Snyder <kernel@irasnyder.com> Signed-off-by: David S. Miller <davem@davemloft.net>
Diffstat (limited to 'drivers')
-rw-r--r--drivers/net/tg3.c4
1 files changed, 3 insertions, 1 deletions
diff --git a/drivers/net/tg3.c b/drivers/net/tg3.c
index 1dbdd6bb587b..c20bb998e0e5 100644
--- a/drivers/net/tg3.c
+++ b/drivers/net/tg3.c
@@ -6979,8 +6979,10 @@ static int tg3_open(struct net_device *dev)
tg3_full_lock(tp, 0);
err = tg3_set_power_state(tp, PCI_D0);
- if (err)
+ if (err) {
+ tg3_full_unlock(tp);
return err;
+ }
tg3_disable_ints(tp);
tp->tg3_flags &= ~TG3_FLAG_INIT_COMPLETE;