Searched hist:e2735b095b7e31a6e07b8639ed151456a610bc07 (Results 1 – 1 of 1) sorted by relevance
/freebsd/sys/dev/ena/ |
H A D | ena.c | diff e2735b095b7e31a6e07b8639ed151456a610bc07 Tue May 26 17:54:32 CEST 2020 Marcin Wojtas <mw@FreeBSD.org> Fix assumptions about number of IO queues in the ENA
Make the ena_adapter::num_io_queues a number of effectively used IO queues. While the ena_adapter::max_num_io_queues is an upper-bound specified by the HW, the ena_adapter::num_io_queues may be lower than that, depending on runtime system resources availability.
On reset, there are called ena_destroy_device() and then ena_restore_device(). The latter calls, in turn, ena_enable_msix(), which will attempt to re-acquire ena_adapter::max_num_io_queues of MSIX vectors again.
Thus, the value of ena_adapter::num_io_queues may be different before and after reset. For this reason, free the IO rings structures (drbr, counters) in ena_destroy_device() and allocate again in ena_restore_device().
Submitted by: Maciej Bielski <mba@semihalf.com> Obtained from: Semihalf Sponsored by: Amazon, Inc.
|