On Wed, 2011-06-15 at 10:22 -0700, Roland Dreier wrote: > On Wed, Jun 15, 2011 at 10:06 AM, Nicholas A. Bellinger > <nab@xxxxxxxxxxxxxxx> wrote: > > Btw, I think the same type of conversion may need to happen for > > transport_lookup_tmr_lun() as well, as I believe qla_target.c can call > > this directly from interrupt context in certain situations. > > Yes, I think I sent another mail about this... the reason I didn't just > send a patch is that transport_lookup_tmr_lun() ends with: > > spin_lock(&se_tmr->tmr_dev->se_tmr_lock); > list_add_tail(&se_tmr->tmr_list, &se_tmr->tmr_dev->dev_tmr_list); > spin_unlock(&se_tmr->tmr_dev->se_tmr_lock); > > and indeed se_tmr_lock looks like it is taken with bare spin_lock() > in lots of places. > Actually, it's only two places: core_tmr_release_req() and core_tmr_lun_reset() > Presumably se_tmr_lock is taken from process context sometimes? > So we would need to convert all those spin_lock()s to spin_lock_irq() > (or irqsave I guess). > Correct, both of the above are only every called from process context, so a simple conversion to spin_lock_irq() for these two, and spin_lock_irqsave() in transport_lookup_tmr_lun() should by sufficent.. --nab -- To unsubscribe from this list: send the line "unsubscribe linux-scsi" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html