Destroy admin queue after freeing interrupts in ENA driver

On heavy load, when interrupt handling routine was slowed down, there
could appear memory corruption, because resources were destroyed and
interrupt was still being handled.

Submitted by: Michal Krawczyk <mk@semihalf.com>
Reviewed by: byenduri_gmail.com
Obtained from: Semihalf
Sponsored by: Amazon, Inc.
Differential Revision: https://reviews.freebsd.org/D12858
This commit is contained in:
Marcin Wojtas 2017-11-09 11:52:52 +00:00
parent 74dba3ad78
commit 197f028470

View File

@ -3862,10 +3862,14 @@ ena_detach(device_t pdev)
ena_com_delete_host_info(ena_dev);
ena_com_admin_destroy(ena_dev);
ena_free_irqs(adapter);
ena_com_abort_admin_commands(ena_dev);
ena_com_wait_for_abort_completion(ena_dev);
ena_com_admin_destroy(ena_dev);
ena_com_mmio_reg_read_request_destroy(ena_dev);
ena_free_pci_resources(adapter);