diff options
author | Seokmann Ju <seokmann.ju@qlogic.com> | 2008-01-31 15:33:52 -0500 |
---|---|---|
committer | James Bottomley <James.Bottomley@HansenPartnership.com> | 2008-02-07 19:02:40 -0500 |
commit | da4541b63bbe9a945d7bbc1105f2deacc42ef195 (patch) | |
tree | 6b99d11f9e5b6379a2bad3fc557cd12ce3aa0121 /drivers/scsi/qla2xxx/qla_attr.c | |
parent | 99363ef81cc7d0bab275304b8d34cf71d189cdcc (diff) |
[SCSI] qla2xxx: Access the proper 'physical' port in FC-transport callbacks.
For following fc_host specific attributes, vports rely on the pport.
So, this patch changed way to access the data for those attributes so that
they can access pport's.
- get_host_speed (speed)
- get_host_port_state (port_state)
- get_host_port_type (port_type)
- get_fc_host_stats
Also, added PORT_SPEED_8GB case in the speed attribute for 8Gb HBAs.
Signed-Off-by: Seokmann Ju <seokmann.ju@qlogic.com>
Signed-off-by: Andrew Vasquez <andrew.vasquez@qlogic.com>
Signed-off-by: James Bottomley <James.Bottomley@HansenPartnership.com>
Diffstat (limited to 'drivers/scsi/qla2xxx/qla_attr.c')
-rw-r--r-- | drivers/scsi/qla2xxx/qla_attr.c | 11 |
1 files changed, 7 insertions, 4 deletions
diff --git a/drivers/scsi/qla2xxx/qla_attr.c b/drivers/scsi/qla2xxx/qla_attr.c index 1dd8591bd5c2..4894dc886b62 100644 --- a/drivers/scsi/qla2xxx/qla_attr.c +++ b/drivers/scsi/qla2xxx/qla_attr.c | |||
@@ -848,7 +848,7 @@ qla2x00_get_host_port_id(struct Scsi_Host *shost) | |||
848 | static void | 848 | static void |
849 | qla2x00_get_host_speed(struct Scsi_Host *shost) | 849 | qla2x00_get_host_speed(struct Scsi_Host *shost) |
850 | { | 850 | { |
851 | scsi_qla_host_t *ha = shost_priv(shost); | 851 | scsi_qla_host_t *ha = to_qla_parent(shost_priv(shost)); |
852 | uint32_t speed = 0; | 852 | uint32_t speed = 0; |
853 | 853 | ||
854 | switch (ha->link_data_rate) { | 854 | switch (ha->link_data_rate) { |
@@ -861,6 +861,9 @@ qla2x00_get_host_speed(struct Scsi_Host *shost) | |||
861 | case PORT_SPEED_4GB: | 861 | case PORT_SPEED_4GB: |
862 | speed = 4; | 862 | speed = 4; |
863 | break; | 863 | break; |
864 | case PORT_SPEED_8GB: | ||
865 | speed = 8; | ||
866 | break; | ||
864 | } | 867 | } |
865 | fc_host_speed(shost) = speed; | 868 | fc_host_speed(shost) = speed; |
866 | } | 869 | } |
@@ -868,7 +871,7 @@ qla2x00_get_host_speed(struct Scsi_Host *shost) | |||
868 | static void | 871 | static void |
869 | qla2x00_get_host_port_type(struct Scsi_Host *shost) | 872 | qla2x00_get_host_port_type(struct Scsi_Host *shost) |
870 | { | 873 | { |
871 | scsi_qla_host_t *ha = shost_priv(shost); | 874 | scsi_qla_host_t *ha = to_qla_parent(shost_priv(shost)); |
872 | uint32_t port_type = FC_PORTTYPE_UNKNOWN; | 875 | uint32_t port_type = FC_PORTTYPE_UNKNOWN; |
873 | 876 | ||
874 | switch (ha->current_topology) { | 877 | switch (ha->current_topology) { |
@@ -978,7 +981,7 @@ qla2x00_issue_lip(struct Scsi_Host *shost) | |||
978 | static struct fc_host_statistics * | 981 | static struct fc_host_statistics * |
979 | qla2x00_get_fc_host_stats(struct Scsi_Host *shost) | 982 | qla2x00_get_fc_host_stats(struct Scsi_Host *shost) |
980 | { | 983 | { |
981 | scsi_qla_host_t *ha = shost_priv(shost); | 984 | scsi_qla_host_t *ha = to_qla_parent(shost_priv(shost)); |
982 | int rval; | 985 | int rval; |
983 | struct link_statistics *stats; | 986 | struct link_statistics *stats; |
984 | dma_addr_t stats_dma; | 987 | dma_addr_t stats_dma; |
@@ -1062,7 +1065,7 @@ qla2x00_get_host_fabric_name(struct Scsi_Host *shost) | |||
1062 | static void | 1065 | static void |
1063 | qla2x00_get_host_port_state(struct Scsi_Host *shost) | 1066 | qla2x00_get_host_port_state(struct Scsi_Host *shost) |
1064 | { | 1067 | { |
1065 | scsi_qla_host_t *ha = shost_priv(shost); | 1068 | scsi_qla_host_t *ha = to_qla_parent(shost_priv(shost)); |
1066 | 1069 | ||
1067 | if (!ha->flags.online) | 1070 | if (!ha->flags.online) |
1068 | fc_host_port_state(shost) = FC_PORTSTATE_OFFLINE; | 1071 | fc_host_port_state(shost) = FC_PORTSTATE_OFFLINE; |