|
@@ -3088,27 +3088,22 @@ static int cxgb_enable_msix(struct adapter *adap)
|
|
|
{
|
|
|
struct msix_entry entries[SGE_QSETS + 1];
|
|
|
int vectors;
|
|
|
- int i, err;
|
|
|
+ int i;
|
|
|
|
|
|
vectors = ARRAY_SIZE(entries);
|
|
|
for (i = 0; i < vectors; ++i)
|
|
|
entries[i].entry = i;
|
|
|
|
|
|
- while ((err = pci_enable_msix(adap->pdev, entries, vectors)) > 0)
|
|
|
- vectors = err;
|
|
|
-
|
|
|
- if (!err && vectors < (adap->params.nports + 1)) {
|
|
|
- pci_disable_msix(adap->pdev);
|
|
|
- err = -1;
|
|
|
- }
|
|
|
+ vectors = pci_enable_msix_range(adap->pdev, entries,
|
|
|
+ adap->params.nports + 1, vectors);
|
|
|
+ if (vectors < 0)
|
|
|
+ return vectors;
|
|
|
|
|
|
- if (!err) {
|
|
|
- for (i = 0; i < vectors; ++i)
|
|
|
- adap->msix_info[i].vec = entries[i].vector;
|
|
|
- adap->msix_nvectors = vectors;
|
|
|
- }
|
|
|
+ for (i = 0; i < vectors; ++i)
|
|
|
+ adap->msix_info[i].vec = entries[i].vector;
|
|
|
+ adap->msix_nvectors = vectors;
|
|
|
|
|
|
- return err;
|
|
|
+ return 0;
|
|
|
}
|
|
|
|
|
|
static void print_port_info(struct adapter *adap, const struct adapter_info *ai)
|