cxgb3: Fix potential msi-x vector leak
authorDivy Le Ray <divy@chelsio.com>
Fri, 17 Apr 2009 12:21:22 +0000 (12:21 +0000)
committerDavid S. Miller <davem@davemloft.net>
Mon, 20 Apr 2009 09:07:25 +0000 (02:07 -0700)
Release vectors when a MSI-X allocation fails.

Signed-off-by: Divy Le Ray <divy@chelsio.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
drivers/net/cxgb3/cxgb3_main.c

index 99b5032..cbd59fe 100644 (file)
@@ -2917,8 +2917,13 @@ static int __devinit cxgb_enable_msix(struct adapter *adap)
        while ((err = pci_enable_msix(adap->pdev, entries, vectors)) > 0)
                vectors = err;
 
-       if (!err && vectors < (adap->params.nports + 1))
+       if (err < 0)
+               pci_disable_msix(adap->pdev);
+
+       if (!err && vectors < (adap->params.nports + 1)) {
+               pci_disable_msix(adap->pdev);
                err = -1;
+       }
 
        if (!err) {
                for (i = 0; i < vectors; ++i)