From: Jiri Slaby Date: Thu, 5 Nov 2009 23:14:29 +0000 (+0000) Subject: NET: cassini, fix lock imbalance X-Git-Tag: v2.6.32-rc7~58^2~11 X-Git-Url: https://bbs.cooldavid.org/git/?a=commitdiff_plain;h=87d75b52414a22c54cf8382bcdd329376b1bce78;p=net-next-2.6.git NET: cassini, fix lock imbalance Stanse found that one error path in cas_open omits to unlock pm_mutex. Fix that. Signed-off-by: Jiri Slaby Signed-off-by: David S. Miller --- diff --git a/drivers/net/cassini.c b/drivers/net/cassini.c index 05916aafa4f..f857afe8e48 100644 --- a/drivers/net/cassini.c +++ b/drivers/net/cassini.c @@ -4342,11 +4342,11 @@ static int cas_open(struct net_device *dev) cas_unlock_all_restore(cp, flags); } + err = -ENOMEM; if (cas_tx_tiny_alloc(cp) < 0) - return -ENOMEM; + goto err_unlock; /* alloc rx descriptors */ - err = -ENOMEM; if (cas_alloc_rxds(cp) < 0) goto err_tx_tiny; @@ -4386,6 +4386,7 @@ err_spare: cas_free_rxds(cp); err_tx_tiny: cas_tx_tiny_free(cp); +err_unlock: mutex_unlock(&cp->pm_mutex); return err; }