summaryrefslogtreecommitdiff
path: root/rust/proc-macro2/rcvec.rs
diff options
context:
space:
mode:
authorBrian Kao <powenkao@google.com>2025-11-12 06:32:02 +0000
committerMartin K. Petersen <martin.petersen@oracle.com>2025-11-29 14:58:38 -0500
commitb4bb6daf4ac4d4560044ecdd81e93aa2f6acbb06 (patch)
tree4524fb9a2c9b912a078324e9d8da56da2bfe6e7c /rust/proc-macro2/rcvec.rs
parent82f78acd5a9270370ef4aa3f032ede25f3dc91ee (diff)
scsi: ufs: core: Fix EH failure after W-LUN resume error
When a W-LUN resume fails, its parent devices in the SCSI hierarchy, including the scsi_target, may be runtime suspended. Subsequently, the error handler in ufshcd_recover_pm_error() fails to set the W-LUN device back to active because the parent target is not active. This results in the following errors: google-ufshcd 3c2d0000.ufs: ufshcd_err_handler started; HBA state eh_fatal; ... ufs_device_wlun 0:0:0:49488: START_STOP failed for power mode: 1, result 40000 ufs_device_wlun 0:0:0:49488: ufshcd_wl_runtime_resume failed: -5 ... ufs_device_wlun 0:0:0:49488: runtime PM trying to activate child device 0:0:0:49488 but parent (target0:0:0) is not active Address this by: 1. Ensuring the W-LUN's parent scsi_target is runtime resumed before attempting to set the W-LUN to active within ufshcd_recover_pm_error(). 2. Explicitly checking for power.runtime_error on the HBA and W-LUN devices before calling pm_runtime_set_active() to clear the error state. 3. Adding pm_runtime_get_sync(hba->dev) in ufshcd_err_handling_prepare() to ensure the HBA itself is active during error recovery, even if a child device resume failed. These changes ensure the device power states are managed correctly during error recovery. Signed-off-by: Brian Kao <powenkao@google.com> Tested-by: Brian Kao <powenkao@google.com> Reviewed-by: Bart Van Assche <bvanassche@acm.org> Link: https://patch.msgid.link/20251112063214.1195761-1-powenkao@google.com Signed-off-by: Martin K. Petersen <martin.petersen@oracle.com>
Diffstat (limited to 'rust/proc-macro2/rcvec.rs')
0 files changed, 0 insertions, 0 deletions