[SCSI] bfa: Fix to copy fpma MAC when requested by user space application.
authorKrishna Gudipati <kgudipat@brocade.com>
Sat, 6 Mar 2010 03:35:33 +0000 (19:35 -0800)
committerJames Bottomley <James.Bottomley@suse.de>
Sun, 7 Mar 2010 07:27:05 +0000 (12:57 +0530)
Copy fpma MAC when requested by user space application.  Added FPMA
mac address to the lport attributes structure.

Signed-off-by: Krishna Gudipati <kgudipat@brocade.com>
Signed-off-by: James Bottomley <James.Bottomley@suse.de>
drivers/scsi/bfa/bfa_fcs_lport.c
drivers/scsi/bfa/bfa_lps.c
drivers/scsi/bfa/include/bfa_svc.h
drivers/scsi/bfa/include/defs/bfa_defs_port.h

index 960ae1a7bcd0ed0383c069903c3023171d3aa5e0..7bb182dcbd7d434925abf748f0dff052a9580993 100644 (file)
@@ -936,8 +936,13 @@ bfa_fcs_port_get_attr(struct bfa_fcs_port_s *port,
                       bfa_fcs_port_get_fabric_ipaddr(port),
                       BFA_FCS_FABRIC_IPADDR_SZ);
 
-               if (port->vport != NULL)
+               if (port->vport != NULL) {
                        port_attr->port_type = BFA_PPORT_TYPE_VPORT;
+                       port_attr->fpma_mac =
+                               bfa_lps_get_lp_mac(port->vport->lps);
+               } else
+                       port_attr->fpma_mac =
+                               bfa_lps_get_lp_mac(port->fabric->lps);
 
        } else {
                port_attr->port_type = BFA_PPORT_TYPE_UNKNOWN;
index 4c98bdab31197dd39138b680d1cd24ae48d05089..730616f6e671ad069a59e633fa84343796ae4acd 100644 (file)
@@ -613,9 +613,9 @@ bfa_lps_get_max_vport(struct bfa_s *bfa)
        bfa_get_attr(bfa, &ioc_attr);
 
        if (ioc_attr.pci_attr.device_id == BFA_PCI_DEVICE_ID_CT)
-               return (BFA_LPS_MAX_VPORTS_SUPP_CT);
+               return BFA_LPS_MAX_VPORTS_SUPP_CT;
        else
-               return (BFA_LPS_MAX_VPORTS_SUPP_CB);
+               return BFA_LPS_MAX_VPORTS_SUPP_CB;
 }
 
 /**
@@ -837,6 +837,14 @@ bfa_lps_get_lsrjt_expl(struct bfa_lps_s *lps)
        return lps->lsrjt_expl;
 }
 
+/**
+ * Return fpma/spma MAC for lport
+ */
+struct mac_s
+bfa_lps_get_lp_mac(struct bfa_lps_s *lps)
+{
+       return lps->lp_mac;
+}
 
 /**
  * LPS firmware message class handler.
index 0d7ed4d963a724a1e84b0bd3fa1fa9c90d4538ea..71ffb75a71ca3295435e720b469669cd85d0c412 100644 (file)
@@ -316,6 +316,7 @@ wwn_t bfa_lps_get_peer_pwwn(struct bfa_lps_s *lps);
 wwn_t bfa_lps_get_peer_nwwn(struct bfa_lps_s *lps);
 u8 bfa_lps_get_lsrjt_rsn(struct bfa_lps_s *lps);
 u8 bfa_lps_get_lsrjt_expl(struct bfa_lps_s *lps);
+mac_t bfa_lps_get_lp_mac(struct bfa_lps_s *lps);
 void bfa_cb_lps_flogi_comp(void *bfad, void *uarg, bfa_status_t status);
 void bfa_cb_lps_flogo_comp(void *bfad, void *uarg);
 void bfa_cb_lps_fdisc_comp(void *bfad, void *uarg, bfa_status_t status);
index de0696c81bc4cb4267d3a41e9032d4036e7273fb..1c74a8b94aad99a876aac10c7f6c9b0e8c207179 100644 (file)
@@ -185,6 +185,8 @@ struct bfa_port_attr_s {
        wwn_t           fabric_name; /*  attached switch's nwwn */
        u8              fabric_ip_addr[BFA_FCS_FABRIC_IPADDR_SZ]; /*  attached
                                                        * fabric's ip addr */
+       struct mac_s    fpma_mac;       /*  Lport's FPMA Mac address */
+       u16     authfail;               /*  auth failed state */
 };
 
 /**
@@ -235,7 +237,7 @@ struct bfa_port_aen_data_s {
        enum bfa_ioc_type_e ioc_type;
        wwn_t           pwwn;         /*  WWN of the physical port */
        wwn_t           fwwn;         /*  WWN of the fabric port */
-       mac_t           mac;          /*  MAC addres of the ethernet port,
+       mac_t           mac;          /*  MAC address of the ethernet port,
                                       * applicable to CNA port only */
        int             phy_port_num; /*! For SFP related events */
        enum bfa_port_aen_sfp_pom level; /*  Only transitions will