From mboxrd@z Thu Jan 1 00:00:00 1970 From: Subject: [PATCH V1 net 3/5] net: ena: fix rare bug when failed restart/resume is followed by driver removal Date: Mon, 8 Oct 2018 15:28:42 +0300 Message-ID: <1539001724-25980-4-git-send-email-akiyano@amazon.com> References: <1539001724-25980-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-9102.amazon.com ([207.171.184.29]:7072 "EHLO smtp-fw-9102.amazon.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1726056AbeJHTk3 (ORCPT ); Mon, 8 Oct 2018 15:40:29 -0400 In-Reply-To: <1539001724-25980-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. 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 23f2dda..7282a27 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