From: Bart Van Assche <bvanassche@acm.org>
To: "Martin K . Petersen" <martin.petersen@oracle.com>
Cc: linux-scsi@vger.kernel.org,
Alan Stern <stern@rowland.harvard.edu>,
Douglas Gilbert <dgilbert@interlog.com>
Subject: Re: [PATCH] scsi: sg: Enable runtime power management
Date: Mon, 4 Nov 2024 09:25:17 -0800 [thread overview]
Message-ID: <40e8ff4e-9ffc-4658-ae1f-69ceee5593cb@acm.org> (raw)
In-Reply-To: <20241030220310.1373569-1-bvanassche@acm.org>
On 10/30/24 3:03 PM, Bart Van Assche wrote:
> 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@rowland.harvard.edu>
> Cc: Douglas Gilbert <dgilbert@interlog.com>
> Fixes: bc4f24014de5 ("[SCSI] implement runtime Power Management")
> Signed-off-by: Bart Van Assche <bvanassche@acm.org>
> ---
> drivers/scsi/sg.c | 9 +--------
> 1 file changed, 1 insertion(+), 8 deletions(-)
>
> diff --git a/drivers/scsi/sg.c b/drivers/scsi/sg.c
> index f86be197fedd..84334ab39c81 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--;
(replying to my own email)
Can anyone please help with reviewing this patch? This patch is
important for Android. The Android security software uses the sg driver
to communicate with the UFS RPMB so this patch is required to enable
run-time power management in Android devices with UFS storage. See also
https://android.googlesource.com/platform/system/core/+/refs/heads/main/trusty/storage/proxy/rpmb.c
Thanks,
Bart.
next prev parent reply other threads:[~2024-11-04 17:25 UTC|newest]
Thread overview: 5+ messages / expand[flat|nested] mbox.gz Atom feed top
2024-10-30 22:03 [PATCH] scsi: sg: Enable runtime power management Bart Van Assche
2024-11-04 17:25 ` Bart Van Assche [this message]
2024-11-05 2:33 ` Martin K. Petersen
2024-11-05 2:47 ` Alan Stern
2024-11-14 2:49 ` Martin K. Petersen
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=40e8ff4e-9ffc-4658-ae1f-69ceee5593cb@acm.org \
--to=bvanassche@acm.org \
--cc=dgilbert@interlog.com \
--cc=linux-scsi@vger.kernel.org \
--cc=martin.petersen@oracle.com \
--cc=stern@rowland.harvard.edu \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox