svn commit: r325578 - head/sys/dev/ena
Marcin Wojtas
mw at FreeBSD.org
Thu Nov 9 11:52:54 UTC 2017
Author: mw
Date: Thu Nov 9 11:52:52 2017
New Revision: 325578
URL: https://svnweb.freebsd.org/changeset/base/325578
Log:
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 at semihalf.com>
Reviewed by: byenduri_gmail.com
Obtained from: Semihalf
Sponsored by: Amazon, Inc.
Differential Revision: https://reviews.freebsd.org/D12858
Modified:
head/sys/dev/ena/ena.c
Modified: head/sys/dev/ena/ena.c
==============================================================================
--- head/sys/dev/ena/ena.c Thu Nov 9 11:50:52 2017 (r325577)
+++ head/sys/dev/ena/ena.c Thu Nov 9 11:52:52 2017 (r325578)
@@ -3862,9 +3862,13 @@ 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);
More information about the svn-src-all
mailing list