|
@@ -316,22 +316,24 @@ static int nfp_net_msix_alloc(struct nfp_net *nn, int nr_vecs)
|
|
|
int nfp_net_irqs_alloc(struct nfp_net *nn)
|
|
|
{
|
|
|
int wanted_irqs;
|
|
|
+ unsigned int n;
|
|
|
|
|
|
wanted_irqs = nn->num_r_vecs + NFP_NET_NON_Q_VECTORS;
|
|
|
|
|
|
- nn->num_irqs = nfp_net_msix_alloc(nn, wanted_irqs);
|
|
|
- if (nn->num_irqs == 0) {
|
|
|
+ n = nfp_net_msix_alloc(nn, wanted_irqs);
|
|
|
+ if (n == 0) {
|
|
|
nn_err(nn, "Failed to allocate MSI-X IRQs\n");
|
|
|
return 0;
|
|
|
}
|
|
|
|
|
|
- nn->num_r_vecs = nn->num_irqs - NFP_NET_NON_Q_VECTORS;
|
|
|
+ nn->max_r_vecs = n - NFP_NET_NON_Q_VECTORS;
|
|
|
+ nn->num_r_vecs = nn->max_r_vecs;
|
|
|
|
|
|
- if (nn->num_irqs < wanted_irqs)
|
|
|
+ if (n < wanted_irqs)
|
|
|
nn_warn(nn, "Unable to allocate %d vectors. Got %d instead\n",
|
|
|
- wanted_irqs, nn->num_irqs);
|
|
|
+ wanted_irqs, n);
|
|
|
|
|
|
- return nn->num_irqs;
|
|
|
+ return n;
|
|
|
}
|
|
|
|
|
|
/**
|