From mboxrd@z Thu Jan 1 00:00:00 1970 From: Subject: [PATCH V2 net 2/4] net: ena: fix rare bug when failed restart/resume is followed by driver removal Date: Tue, 9 Oct 2018 11:21:28 +0300 Message-ID: <1539073290-30270-3-git-send-email-akiyano@amazon.com> References: <1539073290-30270-1-git-send-email-akiyano@amazon.com> Mime-Version: 1.0 Content-Type: text/plain Cc: Arthur Kiyanovski , , , , , , , , , , To: , Return-path: Received: from smtp-fw-6002.amazon.com ([52.95.49.90]:7338 "EHLO smtp-fw-6002.amazon.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1725866AbeJIPh3 (ORCPT ); Tue, 9 Oct 2018 11:37:29 -0400 In-Reply-To: <1539073290-30270-1-git-send-email-akiyano@amazon.com> Sender: netdev-owner@vger.kernel.org List-ID: From: Arthur Kiyanovski In a rare scenario when ena_device_restore() fails, followed by device remove, an FLR will not be issued. In this case, the device will keep sending asynchronous AENQ keep-alive events, even after driver removal, leading to memory corruption. Fixes: 8c5c7abdeb2d ("net: ena: add power management ops to the ENA driver") Signed-off-by: Arthur Kiyanovski --- drivers/net/ethernet/amazon/ena/ena_netdev.c | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/drivers/net/ethernet/amazon/ena/ena_netdev.c b/drivers/net/ethernet/amazon/ena/ena_netdev.c index 78d84ca..ce18e07 100644 --- a/drivers/net/ethernet/amazon/ena/ena_netdev.c +++ b/drivers/net/ethernet/amazon/ena/ena_netdev.c @@ -2619,7 +2619,11 @@ static int ena_restore_device(struct ena_adapter *adapter) ena_free_mgmnt_irq(adapter); ena_disable_msix(adapter); err_device_destroy: + 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_com_dev_reset(ena_dev, ENA_REGS_RESET_DRIVER_INVALID_STATE); err: clear_bit(ENA_FLAG_DEVICE_RUNNING, &adapter->flags); clear_bit(ENA_FLAG_ONGOING_RESET, &adapter->flags); -- 2.7.4