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...
_______________________________________________
devel mailing list
[email protected]
http://www.open-fcoe.org/mailman/listinfo/devel