Check for number of MSI-x upon partial allocation in ENA
The ENA driver needs at least 2 MSI-x - one for admin queue, and one for IO queues pair. If there were not enough resources to allocate more than one MSI-x, the device should not be attached. Submitted by: Michal Krawczyk <mk@semihalf.com> Obtained from: Semihalf Sponsored by: Amazon, Inc.
This commit is contained in:
parent
469a84079c
commit
2b5b60fe0d
Notes:
svn2git
2020-12-20 02:59:44 +00:00
svn path=/head/; revision=348397
@ -1865,6 +1865,14 @@ ena_enable_msix(struct ena_adapter *adapter)
|
||||
}
|
||||
|
||||
if (msix_vecs != msix_req) {
|
||||
if (msix_vecs == ENA_ADMIN_MSIX_VEC) {
|
||||
device_printf(dev,
|
||||
"Not enough number of MSI-x allocated: %d\n",
|
||||
msix_vecs);
|
||||
pci_release_msi(dev);
|
||||
rc = ENOSPC;
|
||||
goto err_msix_free;
|
||||
}
|
||||
device_printf(dev, "Enable only %d MSI-x (out of %d), reduce "
|
||||
"the number of queues\n", msix_vecs, msix_req);
|
||||
adapter->num_queues = msix_vecs - ENA_ADMIN_MSIX_VEC;
|
||||
|
Loading…
Reference in New Issue
Block a user