Skip to content

Commit ce1f352

Browse files
akiyanodavem330
authored andcommitted
net: ena: fix incorrect setting of the number of msix vectors
Overview: We don't frequently change the msix vectors throughout the life cycle of the driver. We do so in two functions: ena_probe() and ena_restore(). ena_probe() is only called when the driver is loaded. ena_restore() on the other hand is called during device reset / resume operations. We use num_io_queues for calculating and allocating the number of msix vectors. At ena_probe() this value is equal to max_num_io_queues and thus this is not an issue, however ena_restore() might be called after the number of io queues has changed. A possible bug scenario is as follows: * Change number of queues from 8 to 4. (num_io_queues = 4, max_num_io_queues = 8, msix_vecs = 9,) * Trigger reset occurs -> ena_restore is called. (num_io_queues = 4, max_num_io_queues =8 , msix_vecs = 5) * Change number of queues from 4 to 6. (num_io_queues = 6, max_num_io_queues = 8, msix_vecs = 5) * The driver will reset due to failure of check_for_rx_interrupt_queue() Fix: This can be easily fixed by always using max_num_io_queues to init the msix_vecs, since this number won't change as opposed to num_io_queues. Fixes: 4d19266 ("net: ena: multiple queue creation related cleanups") Signed-off-by: Sameeh Jubran <[email protected]> Signed-off-by: Arthur Kiyanovski <[email protected]> Signed-off-by: David S. Miller <[email protected]>
1 parent 872307a commit ce1f352

File tree

1 file changed

+1
-1
lines changed

1 file changed

+1
-1
lines changed

drivers/net/ethernet/amazon/ena/ena_netdev.c

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1968,7 +1968,7 @@ static int ena_enable_msix(struct ena_adapter *adapter)
19681968
}
19691969

19701970
/* Reserved the max msix vectors we might need */
1971-
msix_vecs = ENA_MAX_MSIX_VEC(adapter->num_io_queues);
1971+
msix_vecs = ENA_MAX_MSIX_VEC(adapter->max_num_io_queues);
19721972
netif_dbg(adapter, probe, adapter->netdev,
19731973
"trying to enable MSI-X, vectors %d\n", msix_vecs);
19741974

0 commit comments

Comments
 (0)