On Wed, Mar 01, 2017 at 09:00:36AM -0800, Bart Van Assche wrote:
> Commit 669f044170d8 ("scsi: srp_transport: Move queuecommand() wait
> code to SCSI core") can make scsi_internal_device_block() sleep.
> However, the mpt3sas driver can call this function from an interrupt
> handler. Hence add a second argument to scsi_internal_device_block()
> that restores the old behavior of this function for the mpt3sas
> handler.
>
> The call chain that triggered an "IRQ handler enabled interrupts"
> complaint is as follows:
>
> _base_interrupt()
> -> _base_async_event()
> -> mpt3sas_scsih_event_callback()
> -> _scsih_check_topo_delete_events()
> -> _scsih_block_io_to_children_attached_directly()
> -> _scsih_block_io_device()
> -> _scsih_internal_device_block()
> -> scsi_internal_device_block()
>
> Reported-by: Omar Sandoval <[email protected]>
> Signed-off-by: Bart Van Assche <[email protected]>
> Cc: Omar Sandoval <[email protected]>
> Cc: Hannes Reinecke <[email protected]>
> Cc: Sagi Grimberg <[email protected]>
> Cc: Christoph Hellwig <[email protected]>
> Cc: Sathya Prakash <[email protected]>
> Cc: Chaitra P B <[email protected]>
> Cc: Suganath Prabu Subramani <[email protected]>
> Cc: Sreekanth Reddy <[email protected]>
> Cc: <[email protected]> # v4.10+
Thanks, Bart, you can add
Tested-by: Omar Sandoval <[email protected]>