> On Thu, Dec 6, 2012 at 3:15 PM, Yi Zou <yi.zou@xxxxxxxxx> wrote: > > --- a/drivers/target/tcm_fc/tfc_sess.c > > +++ b/drivers/target/tcm_fc/tfc_sess.c > > @@ -226,8 +226,10 @@ static struct ft_sess *ft_sess_create(struct ft_tport > *tport, u32 port_id, > > > > pr_debug("port_id %x sess %p\n", port_id, sess); > > > > + local_bh_disable(); > > transport_register_session(&tport->tpg->se_tpg, &acl->se_node_acl, > > sess->se_sess, sess); > > + local_bh_enable(); > > return sess; > > } > > This doesn't seem like the right fix to me. I think > transport_deregister_session() > doesn't expect to be called from softirq context, and so the right fix is to > rearrange things so tcm_fc isn't doing that. (ie defer to process context) > > - R. Hmm...I wasn't aware transport_deregister_session() is not softirq safe, the current tcm_fc does the transport_deregister_session from the rcu callback which is why lockdeop complains...I'll have to see if that can be rearranged. yi ��.n��������+%������w��{.n����j�����{ay�ʇڙ���f���h������_�(�階�ݢj"��������G����?���&��