Patch "scsi: ufs: core: Fix another deadlock during RTC update" has been added to the 6.11-stable tree

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



This is a note to let you know that I've just added the patch titled

    scsi: ufs: core: Fix another deadlock during RTC update

to the 6.11-stable tree which can be found at:
    http://www.kernel.org/git/?p=linux/kernel/git/stable/stable-queue.git;a=summary

The filename of the patch is:
     scsi-ufs-core-fix-another-deadlock-during-rtc-update.patch
and it can be found in the queue-6.11 subdirectory.

If you, or anyone else, feels it should not be added to the stable tree,
please let <stable@xxxxxxxxxxxxxxx> know about it.



commit 571a3552681bc8f34155b1e4b0a905eaf0f43359
Author: Peter Wang <peter.wang@xxxxxxxxxxxx>
Date:   Thu Oct 24 09:54:53 2024 +0800

    scsi: ufs: core: Fix another deadlock during RTC update
    
    [ Upstream commit cb7e509c4e0197f63717fee54fb41c4990ba8d3a ]
    
    If ufshcd_rtc_work calls ufshcd_rpm_put_sync() and the pm's usage_count
    is 0, we will enter the runtime suspend callback.  However, the runtime
    suspend callback will wait to flush ufshcd_rtc_work, causing a deadlock.
    
    Replace ufshcd_rpm_put_sync() with ufshcd_rpm_put() to avoid the
    deadlock.
    
    Fixes: 6bf999e0eb41 ("scsi: ufs: core: Add UFS RTC support")
    Cc: stable@xxxxxxxxxxxxxxx #6.11.x
    Signed-off-by: Peter Wang <peter.wang@xxxxxxxxxxxx>
    Link: https://lore.kernel.org/r/20241024015453.21684-1-peter.wang@xxxxxxxxxxxx
    Reviewed-by: Bart Van Assche <bvanassche@xxxxxxx>
    Signed-off-by: Martin K. Petersen <martin.petersen@xxxxxxxxxx>
    Signed-off-by: Sasha Levin <sashal@xxxxxxxxxx>

diff --git a/drivers/ufs/core/ufshcd.c b/drivers/ufs/core/ufshcd.c
index 09408642a6efb..83567388a7b58 100644
--- a/drivers/ufs/core/ufshcd.c
+++ b/drivers/ufs/core/ufshcd.c
@@ -8224,7 +8224,7 @@ static void ufshcd_update_rtc(struct ufs_hba *hba)
 
 	err = ufshcd_query_attr(hba, UPIU_QUERY_OPCODE_WRITE_ATTR, QUERY_ATTR_IDN_SECONDS_PASSED,
 				0, 0, &val);
-	ufshcd_rpm_put_sync(hba);
+	ufshcd_rpm_put(hba);
 
 	if (err)
 		dev_err(hba->dev, "%s: Failed to update rtc %d\n", __func__, err);




[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Index of Archives]     [Linux USB Devel]     [Linux Audio Users]     [Yosemite News]     [Linux Kernel]     [Linux SCSI]

  Powered by Linux