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