From: Bart Van Assche Date: Thu, 19 Apr 2012 14:42:54 +0000 (+0000) Subject: IB/srp: Keep processing commands during host removal X-Git-Tag: upstream/snapshot3+hdmi~6074^2~1^2~13 X-Git-Url: http://review.tizen.org/git/?a=commitdiff_plain;h=f3718231203a165dbfd5c5bd0d9a6db522bb73e3;p=platform%2Fadaptation%2Frenesas_rcar%2Frenesas_kernel.git IB/srp: Keep processing commands during host removal Some SCSI upper layer drivers, e.g. sd, issue SCSI commands from inside scsi_remove_host() (see the sd_shutdown() call in sd_remove()). Make sure that these commands have a chance to reach the SCSI device. Signed-off-by: Bart Van Assche Acked-by: David Dillow Signed-off-by: Roland Dreier --- diff --git a/drivers/infiniband/ulp/srp/ib_srp.c b/drivers/infiniband/ulp/srp/ib_srp.c index a226199..9371d58 100644 --- a/drivers/infiniband/ulp/srp/ib_srp.c +++ b/drivers/infiniband/ulp/srp/ib_srp.c @@ -1318,13 +1318,6 @@ static int srp_queuecommand(struct Scsi_Host *shost, struct scsi_cmnd *scmnd) unsigned long flags; int len; - if (target->state == SRP_TARGET_DEAD || - target->state == SRP_TARGET_REMOVED) { - scmnd->result = DID_BAD_TARGET << 16; - scmnd->scsi_done(scmnd); - return 0; - } - spin_lock_irqsave(&target->lock, flags); iu = __srp_get_tx_iu(target, SRP_IU_CMD); if (!iu)