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

Reply via email to