lkml.org 
[lkml]   [2012]   [Aug]   [14]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    Patch in this message
    /
    Date
    Subject[PATCH RESEND] remove the queue unlock in scsi_requset_fn
    From
    We don't need to unlock the queue before put_device in scsi_request_fn()
    If we trigger the ->remove() function, It occur a oops from the caller.
    So sdev reference count should not be dropped to zero here.
    Also It was added before scsi_device_dev_release() was moved
    to user context, so it is outdated.

    Signed-off-by: Chanho Min <chanho.min@lge.com>
    Reviewed-by: Bart Van Assche <bvanassche@acm.org>
    ---
    drivers/scsi/scsi_lib.c | 4 ----
    1 files changed, 0 insertions(+), 4 deletions(-)

    diff --git a/drivers/scsi/scsi_lib.c b/drivers/scsi/scsi_lib.c
    index ffd7773..cb2185a 100644
    --- a/drivers/scsi/scsi_lib.c
    +++ b/drivers/scsi/scsi_lib.c
    @@ -1626,11 +1626,7 @@ out_delay:
    if (sdev->device_busy == 0)
    blk_delay_queue(q, SCSI_QUEUE_DELAY);
    out:
    - /* must be careful here...if we trigger the ->remove() function
    - * we cannot be holding the q lock */
    - spin_unlock_irq(q->queue_lock);
    put_device(&sdev->sdev_gendev);
    - spin_lock_irq(q->queue_lock);
    }

    u64 scsi_calculate_bounce_limit(struct Scsi_Host *shost)
    --
    1.7.0.4

    \
     
     \ /
      Last update: 2012-08-14 12:22    [W:0.049 / U:1.640 seconds]
    ©2003-2016 Jasper Spaans. hosted at Digital OceanAdvertise on this site