I'm seeing this while testing on Linus' current master:

[  427.814466] WARNING: CPU: 0 PID: 0 at kernel/irq/handle.c:149 
__handle_irq_event_percpu+0x187/0x190
[  427.832552] irq 116 handler _base_interrupt+0x0/0x9e0 [mpt3sas] enabled 
interrupts

I tracked it down to commit 669f044170d8 ("scsi: srp_transport: Move
queuecommand() wait code to SCSI core"). That commit made it so
scsi_internal_device_block() can sleep, but mpt3sas calls this from an
interrupt handler:

_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

This change was made in 4.10. Bart, can you take a look?

Thanks.

Reply via email to