On Wed, 2009-06-24 at 14:01 -0700, Vasu Dev wrote: > On Wed, 2009-06-24 at 12:33 -0700, Robert Love wrote: > > On Tue, 2009-06-23 at 10:44 -0700, Vasu Dev wrote: > > > Modifies current code to use EM anchor list in EM allocation, EM free, > > > EM reset, exch allocation and exch lookup code paths. > > > > > > 1. Modifies fc_exch_mgr_alloc to accept EM match function and then > > > have allocated EM added to the lport using fc_exch_mgr_add API > > > while also updating EM kref for newly added EM. > > > > > > 2. Updates fc_exch_mgr_free API to accept only lport pointer instead > > > EM and then have this API free all EMs of the lport from EM anchor > > > list. > > > > > > 3. Removes single lport pointer link from the EM, which was used in > > > associating lport pointer in newly allocated exchange. Instead have > > > lport pointer passed along new exchange allocation call path and > > > then store passed lport pointer in newly allocated exchange, this > > > will allow a single EM instance to be used across more than one > > > lport and used in EM reset to reset only lport specific exchanges. > > > > > > 4. Modifies fc_exch_mgr_reset to reset all EMs from the EM anchor list > > > of the lport, adds additional exch lport pointer (ep->lp) check for > > > shared EM case to reset exchange specific to a lport requested reset. > > > > > > 5. Updates exch allocation API fc_exch_alloc to use EM anchor list and > > > its anchor match func pointer. The fc_exch_alloc will walk the list > > > of EMs until it finds a match, a match will be either null match > > > func pointer or call to match function returning true value. > > > > > > 6. Updates fc_exch_recv to accept incoming frame on local port using > > > only lport pointer and frame pointer without specifying EM instance > > > of incoming frame. Instead modified fc_exch_recv to locate EM for the > > > incoming frame by matching xid of incoming frame against a EM xid > > > range. > > > This change was required to use EM list in libfc Rx path and after > > > this > > > change the lport fc_exch_mgr pointer emp is not needed anymore, so > > > removed emp pointer. > > > > > > 7. Updates fnic for removed lport emp pointer and above modified libfc > > > APIs > > > fc_exch_recv, fc_exch_mgr_alloc and fc_exch_mgr_free. > > > > > > 8. Removes exch_get and exch_put from libfc_function_template as these > > > are no longer needed with EM anchor list and its match function use. > > > Also removes its default function fc_exch_get. > > > > > > Signed-off-by: Vasu Dev <[email protected]> > > > --- > > > > > > drivers/scsi/fcoe/fcoe.c | 16 +-- > > > drivers/scsi/fcoe/libfcoe.c | 2 > > > drivers/scsi/fnic/fnic_fcs.c | 2 > > > drivers/scsi/fnic/fnic_main.c | 10 +- > > > drivers/scsi/libfc/fc_exch.c | 193 > > > +++++++++++++++++++++++++---------------- > > > include/scsi/libfc.h | 53 ++--------- > > > 6 files changed, 140 insertions(+), 136 deletions(-) > > > > > > > <snip> > > > > > diff --git a/include/scsi/libfc.h b/include/scsi/libfc.h > > > index ef4a73a..403123d 100644 > > > --- a/include/scsi/libfc.h > > > +++ b/include/scsi/libfc.h > > > @@ -87,9 +87,8 @@ do { > > > \ > > > > > > #define FC_EM_DBG(em, fmt, args...) > > > \ > > > FC_CHECK_LOGGING(FC_EM_LOGGING, \ > > > - printk(KERN_INFO "em: %6x: " fmt, \ > > > - fc_host_port_id(em->lp->host), \ > > > - ##args);) > > > + printk(KERN_INFO "em: min_xid 0x:%x" fmt, \ > > > + em->min_xid, ##args);) > > > > This change is unintentional, right? I can take care of it, I just want > > to make sure... > > > > This was required since now lport pointer lp is completely removed from > EM which was used by this macro. Instead modified this macro to use > em->min_xid as identifier for this EM macro. > > This change was there in early posts of this series also, so not > unintentional and not new to recently revised/updates to this series. > > I think this macro should completely go away and instead EM layer should > be using LPORT DEBUG macro since one EM could belong to multiple lport > after shared EM and that would be more helpful in debugging. > Agreed, I just resent this series with one additional patch that removes this macro. The other patches are adjusted for the change and the series applies to the current fcoe-next.git. If you give me approval, I'll commit them to fcoe-next.git.
_______________________________________________ devel mailing list [email protected] http://www.open-fcoe.org/mailman/listinfo/devel
