Patch "scsi: sg: Enable runtime power management" has been added to the 6.12-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: sg: Enable runtime power management

to the 6.12-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-sg-enable-runtime-power-management.patch
and it can be found in the queue-6.12 subdirectory.

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



commit 405bf9ec46a6c0586952c569acdb124767b3de5d
Author: Bart Van Assche <bvanassche@xxxxxxx>
Date:   Wed Oct 30 15:03:10 2024 -0700

    scsi: sg: Enable runtime power management
    
    [ Upstream commit 4045de893f691f75193c606aec440c365cf7a7be ]
    
    In 2010, runtime power management support was implemented in the SCSI
    core.  The description of patch "[SCSI] implement runtime Power
    Management" mentions that the sg driver is skipped but not why. This
    patch enables runtime power management even if an instance of the sg
    driver is held open.  Enabling runtime PM for the sg driver is safe
    because all interactions of the sg driver with the SCSI device pass
    through the block layer (blk_execute_rq_nowait()) and the block layer
    already supports runtime PM.
    
    Cc: Alan Stern <stern@xxxxxxxxxxxxxxxxxxx>
    Cc: Douglas Gilbert <dgilbert@xxxxxxxxxxxx>
    Fixes: bc4f24014de5 ("[SCSI] implement runtime Power Management")
    Signed-off-by: Bart Van Assche <bvanassche@xxxxxxx>
    Link: https://lore.kernel.org/r/20241030220310.1373569-1-bvanassche@xxxxxxx
    Acked-by: Alan Stern <stern@xxxxxxxxxxxxxxxxxxx>
    Signed-off-by: Martin K. Petersen <martin.petersen@xxxxxxxxxx>
    Signed-off-by: Sasha Levin <sashal@xxxxxxxxxx>

diff --git a/drivers/scsi/sg.c b/drivers/scsi/sg.c
index f86be197fedd0..84334ab39c810 100644
--- a/drivers/scsi/sg.c
+++ b/drivers/scsi/sg.c
@@ -307,10 +307,6 @@ sg_open(struct inode *inode, struct file *filp)
 	if (retval)
 		goto sg_put;
 
-	retval = scsi_autopm_get_device(device);
-	if (retval)
-		goto sdp_put;
-
 	/* scsi_block_when_processing_errors() may block so bypass
 	 * check if O_NONBLOCK. Permits SCSI commands to be issued
 	 * during error recovery. Tread carefully. */
@@ -318,7 +314,7 @@ sg_open(struct inode *inode, struct file *filp)
 	      scsi_block_when_processing_errors(device))) {
 		retval = -ENXIO;
 		/* we are in error recovery for this device */
-		goto error_out;
+		goto sdp_put;
 	}
 
 	mutex_lock(&sdp->open_rel_lock);
@@ -371,8 +367,6 @@ sg_open(struct inode *inode, struct file *filp)
 	}
 error_mutex_locked:
 	mutex_unlock(&sdp->open_rel_lock);
-error_out:
-	scsi_autopm_put_device(device);
 sdp_put:
 	kref_put(&sdp->d_ref, sg_device_destroy);
 	scsi_device_put(device);
@@ -392,7 +386,6 @@ sg_release(struct inode *inode, struct file *filp)
 	SCSI_LOG_TIMEOUT(3, sg_printk(KERN_INFO, sdp, "sg_release\n"));
 
 	mutex_lock(&sdp->open_rel_lock);
-	scsi_autopm_put_device(sdp->device);
 	kref_put(&sfp->f_ref, sg_remove_sfp);
 	sdp->open_cnt--;
 




[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