On Mon, 2011-11-28 at 03:04 -0500, Christoph Hellwig wrote: > On Sun, Nov 27, 2011 at 01:06:30AM +0000, Nicholas A. Bellinger wrote: > > From: Nicholas Bellinger <nab@xxxxxxxxxxxxxxx> > > > > This patch makes qla_tgt_handle_cmd_for_atio() use single queue_work > > for both session active cases. > > > + if (IS_FWI2_CAPABLE(ha)) > > + sess = ha->tgt_ops->find_sess_by_s_id(vha, > > + atio->u.isp24.fcp_hdr.s_id); > > + else > > + sess = ha->tgt_ops->find_sess_by_loop_id(vha, > > + GET_TARGET_ID(ha, atio)); > > + > > + if (unlikely(!sess)) { > > > + goto out_sched; > > } > > > > if (sess->tearing_down || tgt->tgt_stop) > > @@ -3184,6 +3190,7 @@ static int qla_tgt_handle_cmd_for_atio(struct scsi_qla_host *vha, > > */ > > kref_get(&sess->sess_kref); > > > > +out_sched: > > INIT_WORK(&cmd->work, qla_tgt_do_work); > > So this still tries to grab a reference to the session from irq context > first and only delays it if the easy way to grab it fails. I'd be much > happier if session lookup would always happen in user context, but for > now it's a step forward, so I'm okay with it. > Thanks. I am running a bit behind on the conversion to use a different lock for session lookup in qla_target.c code, but should be getting to this over the next days. -- To unsubscribe from this list: send the line "unsubscribe target-devel" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html