i40e: fix sideband flow director vector allocation
Currently if the MSI-X vector limit is reached the sideband flow director gets disabled. A bit too early to make that decision, as vectors may get re-distributed. So move the check further back. Signed-off-by: Stefan Assmann <sassmann@kpanic.de> Tested-by: Andrew Bowers <andrewx.bowers@intel.com> Signed-off-by: Jeff Kirsher <jeffrey.t.kirsher@intel.com>
This commit is contained in:
parent
4ce20abc64
commit
abd97a94ba
|
@ -7641,7 +7641,6 @@ static int i40e_init_msix(struct i40e_pf *pf)
|
|||
vectors_left--;
|
||||
} else {
|
||||
pf->num_fdsb_msix = 0;
|
||||
pf->flags &= ~I40E_FLAG_FD_SB_ENABLED;
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -7738,7 +7737,6 @@ static int i40e_init_msix(struct i40e_pf *pf)
|
|||
pf->num_fcoe_qps = 0;
|
||||
pf->num_fcoe_msix = 0;
|
||||
#endif
|
||||
pf->flags &= ~I40E_FLAG_FD_SB_ENABLED;
|
||||
|
||||
/* partition out the remaining vectors */
|
||||
switch (vec) {
|
||||
|
@ -7770,6 +7768,10 @@ static int i40e_init_msix(struct i40e_pf *pf)
|
|||
pf->num_vmdq_vsis = min_t(int, (vec / 2),
|
||||
I40E_DEFAULT_NUM_VMDQ_VSI);
|
||||
}
|
||||
if (pf->flags & I40E_FLAG_FD_SB_ENABLED) {
|
||||
pf->num_fdsb_msix = 1;
|
||||
vec--;
|
||||
}
|
||||
pf->num_lan_msix = min_t(int,
|
||||
(vec - (pf->num_iwarp_msix + pf->num_vmdq_vsis)),
|
||||
pf->num_lan_msix);
|
||||
|
@ -7785,6 +7787,11 @@ static int i40e_init_msix(struct i40e_pf *pf)
|
|||
}
|
||||
}
|
||||
|
||||
if ((pf->flags & I40E_FLAG_FD_SB_ENABLED) &&
|
||||
(pf->num_fdsb_msix == 0)) {
|
||||
dev_info(&pf->pdev->dev, "Sideband Flowdir disabled, not enough MSI-X vectors\n");
|
||||
pf->flags &= ~I40E_FLAG_FD_SB_ENABLED;
|
||||
}
|
||||
if ((pf->flags & I40E_FLAG_VMDQ_ENABLED) &&
|
||||
(pf->num_vmdq_msix == 0)) {
|
||||
dev_info(&pf->pdev->dev, "VMDq disabled, not enough MSI-X vectors\n");
|
||||
|
|
Loading…
Reference in New Issue