Skip to content

Commit

Permalink
[SCSI] bfa: fix link state structure
Browse files Browse the repository at this point in the history
When the FCoE Linkup event is sent to the host, the link_state
(struct bfa_pport_link_s) structure is copied to the RME buf to be sent to
the host. But the size of this structure(164 bytes) is larger than the
reserved RME buffer size(128 byes). The following changes reduce the size
of the structure to be less than RME buffer size(128 bytes):
- Remove the trunk and loop info from link_state structure, because both trunk
  and loop are not supported.
- Combine qos_vc_attr and fcf into an union.

Signed-off-by: Jing Huang <huangj@brocade.com>
Signed-off-by: James Bottomley <James.Bottomley@suse.de>
  • Loading branch information
Jing Huang authored and James Bottomley committed Jul 27, 2010
1 parent 36d345a commit db954c0
Show file tree
Hide file tree
Showing 2 changed files with 12 additions and 25 deletions.
15 changes: 9 additions & 6 deletions drivers/scsi/bfa/bfa_fcport.c
Original file line number Diff line number Diff line change
Expand Up @@ -311,10 +311,12 @@ bfa_fcport_sm_linkdown(struct bfa_fcport_s *fcport,

if (!bfa_ioc_get_fcmode(&fcport->bfa->ioc)) {

bfa_trc(fcport->bfa, pevent->link_state.fcf.fipenabled);
bfa_trc(fcport->bfa, pevent->link_state.fcf.fipfailed);
bfa_trc(fcport->bfa,
pevent->link_state.vc_fcf.fcf.fipenabled);
bfa_trc(fcport->bfa,
pevent->link_state.vc_fcf.fcf.fipfailed);

if (pevent->link_state.fcf.fipfailed)
if (pevent->link_state.vc_fcf.fcf.fipfailed)
bfa_plog_str(fcport->bfa->plog, BFA_PL_MID_HAL,
BFA_PL_EID_FIP_FCF_DISC, 0,
"FIP FCF Discovery Failed");
Expand Down Expand Up @@ -960,14 +962,15 @@ bfa_fcport_update_linkinfo(struct bfa_fcport_s *fcport)
fcport->topology = pevent->link_state.topology;

if (fcport->topology == BFA_PPORT_TOPOLOGY_LOOP)
fcport->myalpa =
pevent->link_state.tl.loop_info.myalpa;
fcport->myalpa = 0;

/*
* QoS Details
*/
bfa_os_assign(fcport->qos_attr, pevent->link_state.qos_attr);
bfa_os_assign(fcport->qos_vc_attr, pevent->link_state.qos_vc_attr);
bfa_os_assign(fcport->qos_vc_attr,
pevent->link_state.vc_fcf.qos_vc_attr);


bfa_trc(fcport->bfa, fcport->speed);
bfa_trc(fcport->bfa, fcport->topology);
Expand Down
22 changes: 3 additions & 19 deletions drivers/scsi/bfa/include/defs/bfa_defs_pport.h
Original file line number Diff line number Diff line change
Expand Up @@ -384,26 +384,10 @@ struct bfa_pport_link_s {
u8 trunked; /* Trunked or not (1 or 0) */
u8 resvd[3];
struct bfa_qos_attr_s qos_attr; /* QoS Attributes */
struct bfa_qos_vc_attr_s qos_vc_attr; /* VC info from ELP */
union {
struct {
u8 tmaster;/* Trunk Master or
* not (1 or 0) */
u8 tlinks; /* Trunk links bitmap
* (linkup) */
u8 resv1; /* Reserved */
} trunk_info;

struct {
u8 myalpa; /* alpa claimed */
u8 login_req; /* Login required or
* not (1 or 0) */
u8 alpabm_val;/* alpa bitmap valid
* or not (1 or 0) */
struct fc_alpabm_s alpabm; /* alpa bitmap */
} loop_info;
} tl;
struct bfa_fcport_fcf_s fcf; /*!< FCF information (for FCoE) */
struct bfa_qos_vc_attr_s qos_vc_attr; /* VC info from ELP */
struct bfa_fcport_fcf_s fcf; /* FCF information (for FCoE) */
} vc_fcf;
};

#endif /* __BFA_DEFS_PPORT_H__ */

0 comments on commit db954c0

Please sign in to comment.