aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/scsi/qla2xxx/qla_init.c
diff options
context:
space:
mode:
authorAndrew Vasquez <andrew.vasquez@qlogic.com>2005-08-26 22:08:10 -0400
committerJames Bottomley <jejb@mulgrave.(none)>2005-09-04 20:53:04 -0400
commitad3e0edaceb9771be7ffbd7aa24fb444a7ed85bf (patch)
tree0815f12f6e026ea220c03605f1b7e122b265c143 /drivers/scsi/qla2xxx/qla_init.c
parent7524f9b9e72cd36f0a70defcd424eba81c180f42 (diff)
[SCSI] qla2xxx: Export class-of-service (COS) information.
Export COS information for the fc_host and fc_remote_port objects added by the driver. Signed-off-by: Andrew Vasquez <andrew.vasquez@qlogic.com> Signed-off-by: James Bottomley <James.Bottomley@SteelEye.com>
Diffstat (limited to 'drivers/scsi/qla2xxx/qla_init.c')
-rw-r--r--drivers/scsi/qla2xxx/qla_init.c7
1 files changed, 7 insertions, 0 deletions
diff --git a/drivers/scsi/qla2xxx/qla_init.c b/drivers/scsi/qla2xxx/qla_init.c
index a6d2559217cd..09b23f70fd66 100644
--- a/drivers/scsi/qla2xxx/qla_init.c
+++ b/drivers/scsi/qla2xxx/qla_init.c
@@ -1697,6 +1697,7 @@ qla2x00_alloc_fcport(scsi_qla_host_t *ha, int flags)
1697 fcport->iodesc_idx_sent = IODESC_INVALID_INDEX; 1697 fcport->iodesc_idx_sent = IODESC_INVALID_INDEX;
1698 atomic_set(&fcport->state, FCS_UNCONFIGURED); 1698 atomic_set(&fcport->state, FCS_UNCONFIGURED);
1699 fcport->flags = FCF_RLC_SUPPORT; 1699 fcport->flags = FCF_RLC_SUPPORT;
1700 fcport->supported_classes = FC_COS_UNSPECIFIED;
1700 1701
1701 return (fcport); 1702 return (fcport);
1702} 1703}
@@ -2075,6 +2076,7 @@ qla2x00_reg_remote_port(scsi_qla_host_t *ha, fc_port_t *fcport)
2075 return; 2076 return;
2076 } 2077 }
2077 rport->dd_data = fcport; 2078 rport->dd_data = fcport;
2079 rport->supported_classes = fcport->supported_classes;
2078 2080
2079 rport_ids.roles = FC_RPORT_ROLE_UNKNOWN; 2081 rport_ids.roles = FC_RPORT_ROLE_UNKNOWN;
2080 if (fcport->port_type == FCT_INITIATOR) 2082 if (fcport->port_type == FCT_INITIATOR)
@@ -2794,6 +2796,11 @@ qla2x00_fabric_login(scsi_qla_host_t *ha, fc_port_t *fcport,
2794 } 2796 }
2795 } 2797 }
2796 2798
2799 if (mb[10] & BIT_0)
2800 fcport->supported_classes |= FC_COS_CLASS2;
2801 if (mb[10] & BIT_1)
2802 fcport->supported_classes |= FC_COS_CLASS3;
2803
2797 rval = QLA_SUCCESS; 2804 rval = QLA_SUCCESS;
2798 break; 2805 break;
2799 } else if (mb[0] == MBS_LOOP_ID_USED) { 2806 } else if (mb[0] == MBS_LOOP_ID_USED) {