[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-Id: <20161229.111651.1486287401918317471.davem@davemloft.net>
Date: Thu, 29 Dec 2016 11:16:51 -0500 (EST)
From: David Miller <davem@...emloft.net>
To: jbaron@...mai.com
Cc: linux-scsi@...r.kernel.org, linux-kernel@...r.kernel.org,
sathya.prakash@...adcom.com, chaitra.basappa@...adcom.com,
suganath-prabu.subramani@...adcom.com,
Sreekanth.Reddy@...adcom.com, hare@...e.de,
martin.petersen@...cle.com, bart.vanassche@...disk.com,
sagi@...mberg.me, jejb@...ux.vnet.ibm.com, hch@....de,
dledford@...hat.com
Subject: Re: [PATCH] scsi: mpt3sas: fix hang on ata passthru commands
From: Jason Baron <jbaron@...mai.com>
Date: Wed, 28 Dec 2016 23:30:24 -0500
> On ata passthru commands scsih_qcmd() ends up spinning in
> scsi_wait_for_queuecommand() indefinitely. scsih_qcmd() is called from
> __blk_run_queue_uncond() which first increments request_fn_active to a
> non-zero value. Thus, scsi_wait_for_queuecommand() never completes because
> its spinning waiting for request_fn_active to become 0.
>
> Two patches interact here. The first:
>
> commit 18f6084a989b ("scsi: mpt3sas: Fix secure erase premature
> termination") calls scsi_internal_device_block() for ata passthru commands.
>
> The second patch:
>
> commit 669f044170d8 ("scsi: srp_transport: Move queuecommand() wait code
> to SCSI core") adds a call to scsi_wait_for_queuecommand() from
> scsi_internal_device_block().
>
> Add a new parameter to scsi_internal_device_block() to decide whether
> or not to invoke scsi_wait_for_queuecommand().
>
> Signed-off-by: Jason Baron <jbaron@...mai.com>
Tested-by: David S. Miller <davem@...emloft.net>
Powered by blists - more mailing lists