git: 92761fcc3b40 - stable/13 - ena: Remove timer service re-arm on ena_restore_device failure
- Go to: [ bottom of page ] [ top of archives ] [ this month ]
Date: Fri, 27 Jan 2023 13:59:05 UTC
The branch stable/13 has been updated by mw:
URL: https://cgit.FreeBSD.org/src/commit/?id=92761fcc3b406354677f897dedfad9090bbc1bcf
commit 92761fcc3b406354677f897dedfad9090bbc1bcf
Author: David Arinzon <darinzon@amazon.com>
AuthorDate: 2022-12-04 10:37:32 +0000
Commit: Marcin Wojtas <mw@FreeBSD.org>
CommitDate: 2023-01-27 12:08:55 +0000
ena: Remove timer service re-arm on ena_restore_device failure
In case the reset sequence fails (ena_destroy_device() followed by
ena_restore_device() calls) during ena_restore_device(), the driver
resources are being freed. After the clean-up, the timer service is
re-armed in order to try and re-initialize the driver state.
But, such an attempt would fail given that the resources are freed.
Moreover, this would actually cause either the system to fail or a
panic.
When the driver fails in ena_restore_device() procedure, the only
recovery is either unloading and loading the driver or instance
reboot.
This change removes the timer service re-arm in case of failure
in ena_restore_device().
MFC after: 2 weeks
Sponsored by: Amazon, Inc.
Fixes: 78554d0c707c ("ena: start timer service on attach")
(cherry picked from commit c4a85b8d684d3db9dc4d3d01d966130e21390529)
---
sys/dev/ena/ena.c | 2 --
1 file changed, 2 deletions(-)
diff --git a/sys/dev/ena/ena.c b/sys/dev/ena/ena.c
index 1def02978627..4dcbb709c586 100644
--- a/sys/dev/ena/ena.c
+++ b/sys/dev/ena/ena.c
@@ -3450,8 +3450,6 @@ err:
ENA_FLAG_CLEAR_ATOMIC(ENA_FLAG_ONGOING_RESET, adapter);
ena_log(dev, ERR, "Reset attempt failed. Can not reset the device\n");
- ENA_TIMER_RESET(adapter);
-
return (rc);
}