cxgb4: Use pci_enable_msix_range() instead of pci_enable_msix()
As result of deprecation of MSI-X/MSI enablement functions pci_enable_msix() and pci_enable_msi_block() all drivers using these two interfaces need to be updated to use the new pci_enable_msi_range() and pci_enable_msix_range() interfaces. Signed-off-by: Alexander Gordeev <agordeev@redhat.com> Cc: Dimitris Michailidis <dm@chelsio.com> Cc: netdev@vger.kernel.org Cc: linux-pci@vger.kernel.org Signed-off-by: David S. Miller <davem@davemloft.net>
This commit is contained in:
parent
fc1d0bf1f2
commit
c32ad224e5
|
@ -5737,7 +5737,7 @@ static void reduce_ethqs(struct adapter *adap, int n)
|
|||
static int enable_msix(struct adapter *adap)
|
||||
{
|
||||
int ofld_need = 0;
|
||||
int i, err, want, need;
|
||||
int i, want, need;
|
||||
struct sge *s = &adap->sge;
|
||||
unsigned int nchan = adap->params.nports;
|
||||
struct msix_entry entries[MAX_INGQ + 1];
|
||||
|
@ -5753,32 +5753,30 @@ static int enable_msix(struct adapter *adap)
|
|||
}
|
||||
need = adap->params.nports + EXTRA_VECS + ofld_need;
|
||||
|
||||
while ((err = pci_enable_msix(adap->pdev, entries, want)) >= need)
|
||||
want = err;
|
||||
want = pci_enable_msix_range(adap->pdev, entries, need, want);
|
||||
if (want < 0)
|
||||
return want;
|
||||
|
||||
if (!err) {
|
||||
/*
|
||||
* Distribute available vectors to the various queue groups.
|
||||
* Every group gets its minimum requirement and NIC gets top
|
||||
* priority for leftovers.
|
||||
*/
|
||||
i = want - EXTRA_VECS - ofld_need;
|
||||
if (i < s->max_ethqsets) {
|
||||
s->max_ethqsets = i;
|
||||
if (i < s->ethqsets)
|
||||
reduce_ethqs(adap, i);
|
||||
}
|
||||
if (is_offload(adap)) {
|
||||
i = want - EXTRA_VECS - s->max_ethqsets;
|
||||
i -= ofld_need - nchan;
|
||||
s->ofldqsets = (i / nchan) * nchan; /* round down */
|
||||
}
|
||||
for (i = 0; i < want; ++i)
|
||||
adap->msix_info[i].vec = entries[i].vector;
|
||||
} else if (err > 0)
|
||||
dev_info(adap->pdev_dev,
|
||||
"only %d MSI-X vectors left, not using MSI-X\n", err);
|
||||
return err;
|
||||
/*
|
||||
* Distribute available vectors to the various queue groups.
|
||||
* Every group gets its minimum requirement and NIC gets top
|
||||
* priority for leftovers.
|
||||
*/
|
||||
i = want - EXTRA_VECS - ofld_need;
|
||||
if (i < s->max_ethqsets) {
|
||||
s->max_ethqsets = i;
|
||||
if (i < s->ethqsets)
|
||||
reduce_ethqs(adap, i);
|
||||
}
|
||||
if (is_offload(adap)) {
|
||||
i = want - EXTRA_VECS - s->max_ethqsets;
|
||||
i -= ofld_need - nchan;
|
||||
s->ofldqsets = (i / nchan) * nchan; /* round down */
|
||||
}
|
||||
for (i = 0; i < want; ++i)
|
||||
adap->msix_info[i].vec = entries[i].vector;
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
||||
#undef EXTRA_VECS
|
||||
|
|
Loading…
Reference in New Issue