>-----Original Message-----
>From: Mike Christie [mailto:[EMAIL PROTECTED]
>Sent: Wednesday, August 27, 2008 12:52 PM
>
>Or if fc_exch_mgr_reset ran between the time fc_seq_lookup_recip drops
>the ref from the fc_exch_find and when fc_exch_recv_req runs, can
>fc_exch_mgr_reset free the ep we are trying to access before the added
>holds in your patch?

Yes this is another issue, this can occur just after call to
lp>tt.exch_get(lp, fp) in fc_exch_resp() or fc_exch_seq_send()(this is
not an issue due to upper layer locks as we discussed before). 

I can fix this by extending exch locking period and that would possibly
require change to exch_get() and fc_exch_find() returning with exch lock
held to prevent fc_exch_reset() just after call to these function. As we
discussed before we should keep exch lock through out Tx path to
eliminate race with fc_exch_reset() and this issue adds to same
category.

If required then it should be okay to call netdev xmit with exch lock
held and bh disabled to avoid race with fc_exch_reset(). 

Any comment on this ?
_______________________________________________
devel mailing list
[email protected]
http://www.open-fcoe.org/mailman/listinfo/devel

Reply via email to