All of lore.kernel.org
 help / color / mirror / Atom feed
* [PATCH v2 0/5] scsi: ufs: Fix device management timeouts and runtime PM errors
@ 2026-10-29  7:08 Stanley Jhu
  2026-10-29  7:08 ` [PATCH v2 1/5] scsi: ufs: core: Restore jiffies conversion of device management timeouts Stanley Jhu
                   ` (8 more replies)
  0 siblings, 9 replies; 10+ messages in thread
From: Stanley Jhu @ 2026-10-29  7:08 UTC (permalink / raw)
  To: Martin K . Petersen, James E . J . Bottomley, Alim Akhtar,
	Bart Van Assche, Bean Huo
  Cc: Can Guo, Peter Wang, linux-scsi, linux-kernel, Stanley Jhu

This series fixes two problems in UFS core entry points that issue
device management commands or touch host registers.

Patch 1/5 restores the millisecond to jiffies conversion of device
management command timeouts. Since the timeout moved to rq->timeout,
a 1500 ms query timeout waits 6 s with CONFIG_HZ=250.

Patches 2/5 to 5/5 handle runtime PM resume errors. Several UFS core,
sysfs, BSG, hwmon, and debugfs entry points call ufshcd_rpm_get_sync()
before accessing host registers or issuing device management and UIC
commands, but ignore its return value.

ufshcd_rpm_get_sync() wraps pm_runtime_get_sync() on the UFS device
W-LUN and returns a negative errno when runtime resume of the W-LUN or
host controller fails, leaving the device or controller in
RPM_SUSPENDED.

Continuing after such a failure can access host registers or issue
commands while the device or controller is not known to be active,
while checking pm_runtime_get_sync() directly would leave
power.usage_count elevated unless balanced with
pm_runtime_put_noidle().

Add ufshcd_rpm_resume_and_get() around pm_runtime_resume_and_get() and
convert the 20 external and helper call sites to abort and propagate the
error when resuming the W-LUN fails. The three lifecycle call sites in
ufshcd_rpm_dev_flush_recheck_work(), ufshcd_wl_shutdown(), and
ufshcd_remove(), plus ufshcd_err_handling_prepare(), are intentionally
left unchanged.

Tested on QEMU ARM64 UFS (SDB and MCQ) with W-LUN runtime resume and
suspend failures via sysfs offline (no behavior change on suspend
failure) and GDB power.disable_depth=1 to make ufshcd_rpm_get_sync()
fail, and on SDB with a timed out query request.

Changes since v1:
- Drop the incorrect claim that a failed W-LUN runtime suspend
  latches power.runtime_error from the cover letter and commit
  messages. The PM core latches a runtime suspend error only if it
  is neither -EBUSY nor -EAGAIN, and in-tree UFS drivers fail W-LUN
  runtime suspend only with -EBUSY or -EAGAIN (Bart).
- Say in the cover letter how the series was tested.
- Describe each failing sequence in patches 2-5 step by step in
  time order, and drop the runtime PM disabled (-EACCES) scenario.

Link: https://lore.kernel.org/linux-scsi/20261025013446.345974-1-stanleyjhu@google.com/

Stanley Jhu (5):
  scsi: ufs: core: Restore jiffies conversion of device management
    timeouts
  scsi: ufs: core: Introduce ufshcd_rpm_resume_and_get() helper
  scsi: ufs: sysfs: Propagate runtime PM resume errors
  scsi: ufs: bsg: Abort ufs_bsg_request() when runtime resume fails
  scsi: ufs: hwmon, debugfs: Propagate runtime PM resume errors

 drivers/ufs/core/ufs-debugfs.c |  8 +++-
 drivers/ufs/core/ufs-hwmon.c   | 12 +++++-
 drivers/ufs/core/ufs-sysfs.c   | 67 +++++++++++++++++++++++++++-------
 drivers/ufs/core/ufs_bsg.c     |  4 +-
 drivers/ufs/core/ufshcd-priv.h |  5 +++
 drivers/ufs/core/ufshcd.c      |  9 +++--
 6 files changed, 84 insertions(+), 21 deletions(-)


base-commit: 503e6172fa74da6b4944ece458f5534681e51d21
-- 
2.56.0.307.g5fe7bd680c-goog


^ permalink raw reply	[flat|nested] 10+ messages in thread

end of thread, other threads:[~2026-11-09  3:55 UTC | newest]

Thread overview: 10+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2026-10-29  7:08 [PATCH v2 0/5] scsi: ufs: Fix device management timeouts and runtime PM errors Stanley Jhu
2026-10-29  7:08 ` [PATCH v2 1/5] scsi: ufs: core: Restore jiffies conversion of device management timeouts Stanley Jhu
2026-10-29  7:08 ` [PATCH v2 2/5] scsi: ufs: core: Introduce ufshcd_rpm_resume_and_get() helper Stanley Jhu
2026-10-29  7:08 ` [PATCH v2 3/5] scsi: ufs: sysfs: Propagate runtime PM resume errors Stanley Jhu
2026-10-29  7:08 ` [PATCH v2 4/5] scsi: ufs: bsg: Abort ufs_bsg_request() when runtime resume fails Stanley Jhu
2026-10-29  7:08 ` [PATCH v2 5/5] scsi: ufs: hwmon, debugfs: Propagate runtime PM resume errors Stanley Jhu
2026-10-29 16:07 ` [PATCH v2 0/5] scsi: ufs: Fix device management timeouts and runtime PM errors Bart Van Assche
2026-10-30  6:32 ` Peter Wang
2026-11-05  3:23 ` Martin K. Petersen
2026-11-09  3:55 ` Martin K. Petersen (Oracle)

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.