From: Lan Tianyu <tianyu.lan@intel.com>
To: Alan Stern <stern@rowland.harvard.edu>
Cc: JBottomley@parallels.com, linux-scsi@vger.kernel.org
Subject: Re: [PATCH 1/1] SCSI: Add rumtime pm in the sd_check_events()
Date: Tue, 21 Feb 2012 09:09:00 +0800 [thread overview]
Message-ID: <4F42EEAC.5080401@intel.com> (raw)
In-Reply-To: <Pine.LNX.4.44L0.1202201538500.11040-100000@netrider.rowland.org>
Great Thanks for review.
On 2012年02月21日 04:41, Alan Stern wrote:
> On Mon, 20 Feb 2012, Lan Tianyu wrote:
>
>> The sd_check_event() will be called periodly even when the device is in
>> the suspended status to check media event. The scsi_test_unit_ready() in
>> the sd_check_event() will issue scsi cmd request. Issuing scsi request when
>> the device is in the suspeneded status will cause problem. For example, when
>> a usb flash disk in the suspended status, scsi_test_unit_ready() issues a
>> scsi request. The request will be returned as failed because the usb device
>> is not active. The patch adds scsi_autopm_get_device() and scsi_autopm_put_device()
>> around scsi_test_unit_ready() in the sd_check_event() to resolve such problem.
>>
>> Signed-off-by: Lan Tianyu<tianyu.lan@intel.com>
>> ---
>> drivers/scsi/sd.c | 6 ++++++
>> 1 files changed, 6 insertions(+), 0 deletions(-)
>>
>> diff --git a/drivers/scsi/sd.c b/drivers/scsi/sd.c
>> index c691fb5..7913bd1 100644
>> --- a/drivers/scsi/sd.c
>> +++ b/drivers/scsi/sd.c
>> @@ -1183,8 +1183,14 @@ static unsigned int sd_check_events(struct gendisk *disk, unsigned int clearing)
>>
>> if (scsi_block_when_processing_errors(sdp)) {
>> sshdr = kzalloc(sizeof(*sshdr), GFP_KERNEL);
>> +
>> + retval = scsi_autopm_get_device(sdp);
>> + if (retval)
>> + goto out;
>> +
>> retval = scsi_test_unit_ready(sdp, SD_TIMEOUT, SD_MAX_RETRIES,
>> sshdr);
>> + scsi_autopm_put_device(sdp);
>> }
>>
>> /* failed to execute TUR, assume media not present */
> You might as well put the _get_device call before the kzalloc; no point
> in allocating memory if it's not going to be used.
Yeah. I will update and send out soon.
> Apart from that, this is fine. Are there any other places where the
> block layer sends I/O requests even when the device isn't open?
Currently, I just find this place.
> Alan Stern
>
--
To unsubscribe from this list: send the line "unsubscribe linux-scsi" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at http://vger.kernel.org/majordomo-info.html
prev parent reply other threads:[~2012-02-21 1:09 UTC|newest]
Thread overview: 3+ messages / expand[flat|nested] mbox.gz Atom feed top
2012-02-20 8:49 [PATCH 1/1] SCSI: Add rumtime pm in the sd_check_events() Lan Tianyu
2012-02-20 20:41 ` Alan Stern
2012-02-21 1:09 ` Lan Tianyu [this message]
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=4F42EEAC.5080401@intel.com \
--to=tianyu.lan@intel.com \
--cc=JBottomley@parallels.com \
--cc=linux-scsi@vger.kernel.org \
--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 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.