[prev in list] [next in list] [prev in thread] [next in thread]
List: linux-usb
Subject: Re: [PATCH 4/4] uas: improve abort handler
From: Gerd Hoffmann <kraxel () redhat ! com>
Date: 2012-11-29 14:38:51
Message-ID: 50B7737B.7070206 () redhat ! com
[Download RAW message or body]
On 11/29/12 14:29, Oliver Neukum wrote:
> On Thursday 29 November 2012 14:06:15 Gerd Hoffmann wrote:
>> diff --git a/drivers/usb/storage/uas.c b/drivers/usb/storage/uas.c
>> index dd23b61..5f498db 100644
>> --- a/drivers/usb/storage/uas.c
>> +++ b/drivers/usb/storage/uas.c
>> @@ -717,8 +717,22 @@ static int uas_eh_abort_handler(struct scsi_cmnd *cmnd)
>> uas_log_cmd_state(cmnd, __func__);
>> spin_lock_irqsave(&devinfo->lock, flags);
>> cmdinfo->state |= COMMAND_ABORTED;
>> - spin_unlock_irqrestore(&devinfo->lock, flags);
>> - ret = uas_eh_task_mgmt(cmnd, "ABORT TASK", TMF_ABORT_TASK);
>> + if (cmdinfo->state & IS_IN_WORK_LIST) {
>> + spin_lock_irq(&uas_work_lock);
>
> a) it makes no sense to take the _irq version while you hold an _irqsave
Will fix.
> b) are you sure this sequence of locks is safe deadlockwise?
Yes. No other lock is acquired anywhere while holding uas_work_lock.
cheers,
Gerd
--
To unsubscribe from this list: send the line "unsubscribe linux-usb" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at http://vger.kernel.org/majordomo-info.html
[prev in list] [next in list] [prev in thread] [next in thread]
Configure |
About |
News |
Add a list |
Sponsored by KoreLogic