Date: Thu, 9 Nov 2017 11:52:53 +0000 (UTC) From: Marcin Wojtas <mw@FreeBSD.org> To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r325578 - head/sys/dev/ena Message-ID: <201711091152.vA9BqrZm049817@repo.freebsd.org>
next in thread | raw e-mail | index | archive | help
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@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);
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?201711091152.vA9BqrZm049817>