[TG3]: Add missing unlock in tg3_open() error path.
authorIra W. Snyder <kernel@irasnyder.com>
Wed, 22 Nov 2006 01:44:31 +0000 (17:44 -0800)
committerDavid S. Miller <davem@davemloft.net>
Wed, 22 Nov 2006 01:44:31 +0000 (17:44 -0800)
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>
drivers/net/tg3.c

index 1dbdd6bb587ba11d68c3e4ac53f763edf45ea5c8..c20bb998e0e562c8261b12b7e9b8505f534da47d 100644 (file)
@@ -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;