diff options
author | James Smart <James.Smart@Emulex.Com> | 2008-01-11 01:52:54 -0500 |
---|---|---|
committer | James Bottomley <James.Bottomley@HansenPartnership.com> | 2008-01-23 12:29:22 -0500 |
commit | 0937282036d9ae798e02c9c69a8b2ef044048855 (patch) | |
tree | 55c8ef65c9c55e74e8985b58396516b3d3b925ad /drivers/scsi/lpfc/lpfc_ct.c | |
parent | 13815c8344a238c204e4f4339b22dc4833c6df0f (diff) |
[SCSI] lpfc 8.2.4 : Miscellaneous Fixes
Miscellaneous Fixes:
- Fix a couple of sparse complaints
- Reset the FCP recovery flag when the node is not a FCP2 device.
- Speed up offline prep delays
- Fixed a memory leak in lpfc_mem_alloc failure path
- Fixed external loopback test.
- Fixed error code returned from the driver when HBA is over heated.
- Correct Max NPIV vport to limits read from adapter
- Add missing locks around fc_flag and FC_NEEDS_REG_VPI
- Add missing hba ids for device identification
- Added support for SET_VARIABLE and MBX_WRITE_WWN mailbox commands
- Changed all temperature event messages from warning to error
- Fix reporting of link speed when link is down
- Added support for MBX_WRITE_WWN mailbox command
- Change del_timer_sync() in ISR to del_timer() in interrupt handler
- Correct instances of beXX_to_cpu() that should be cpu_to_beXX()
- Perform target flush before releasing node references on module unload
- Avoid bogus devloss_tmo messages when driver unloads
- Fix panic when HBA generates ERATT interupt
- Fix mbox race condition and a workaround on back-to-back mailbox commands
- Force NPIV off for pt2pt mode between 2 NPorts
- Stop worker thread before removing fc_host.
- Fix up discovery timeout error case due to missing clear_la
- Tighten mailbox polling code to speed up detection of fast completions
- Only allow DUMP_MEMORY if adapter offline due to overtemp errors
- Added extended error information to the log messages in chip init.
Signed-off-by: James Smart <James.Smart@emulex.com>
Signed-off-by: James Bottomley <James.Bottomley@HansenPartnership.com>
Diffstat (limited to 'drivers/scsi/lpfc/lpfc_ct.c')
-rw-r--r-- | drivers/scsi/lpfc/lpfc_ct.c | 16 |
1 files changed, 8 insertions, 8 deletions
diff --git a/drivers/scsi/lpfc/lpfc_ct.c b/drivers/scsi/lpfc/lpfc_ct.c index c735ed4ad070..7a8b3b90af71 100644 --- a/drivers/scsi/lpfc/lpfc_ct.c +++ b/drivers/scsi/lpfc/lpfc_ct.c | |||
@@ -19,7 +19,7 @@ | |||
19 | *******************************************************************/ | 19 | *******************************************************************/ |
20 | 20 | ||
21 | /* | 21 | /* |
22 | * Fibre Channel SCSI LAN Device Driver CT support | 22 | * Fibre Channel SCSI LAN Device Driver CT support: FC Generic Services FC-GS |
23 | */ | 23 | */ |
24 | 24 | ||
25 | #include <linux/blkdev.h> | 25 | #include <linux/blkdev.h> |
@@ -203,7 +203,7 @@ lpfc_alloc_ct_rsp(struct lpfc_hba *phba, int cmdcode, struct ulp_bde64 *bpl, | |||
203 | struct lpfc_dmabuf *mp; | 203 | struct lpfc_dmabuf *mp; |
204 | int cnt, i = 0; | 204 | int cnt, i = 0; |
205 | 205 | ||
206 | /* We get chucks of FCELSSIZE */ | 206 | /* We get chunks of FCELSSIZE */ |
207 | cnt = size > FCELSSIZE ? FCELSSIZE: size; | 207 | cnt = size > FCELSSIZE ? FCELSSIZE: size; |
208 | 208 | ||
209 | while (size) { | 209 | while (size) { |
@@ -1175,7 +1175,7 @@ lpfc_ns_cmd(struct lpfc_vport *vport, int cmdcode, | |||
1175 | case SLI_CTNS_GFF_ID: | 1175 | case SLI_CTNS_GFF_ID: |
1176 | CtReq->CommandResponse.bits.CmdRsp = | 1176 | CtReq->CommandResponse.bits.CmdRsp = |
1177 | be16_to_cpu(SLI_CTNS_GFF_ID); | 1177 | be16_to_cpu(SLI_CTNS_GFF_ID); |
1178 | CtReq->un.gff.PortId = be32_to_cpu(context); | 1178 | CtReq->un.gff.PortId = cpu_to_be32(context); |
1179 | cmpl = lpfc_cmpl_ct_cmd_gff_id; | 1179 | cmpl = lpfc_cmpl_ct_cmd_gff_id; |
1180 | break; | 1180 | break; |
1181 | 1181 | ||
@@ -1183,7 +1183,7 @@ lpfc_ns_cmd(struct lpfc_vport *vport, int cmdcode, | |||
1183 | vport->ct_flags &= ~FC_CT_RFT_ID; | 1183 | vport->ct_flags &= ~FC_CT_RFT_ID; |
1184 | CtReq->CommandResponse.bits.CmdRsp = | 1184 | CtReq->CommandResponse.bits.CmdRsp = |
1185 | be16_to_cpu(SLI_CTNS_RFT_ID); | 1185 | be16_to_cpu(SLI_CTNS_RFT_ID); |
1186 | CtReq->un.rft.PortId = be32_to_cpu(vport->fc_myDID); | 1186 | CtReq->un.rft.PortId = cpu_to_be32(vport->fc_myDID); |
1187 | CtReq->un.rft.fcpReg = 1; | 1187 | CtReq->un.rft.fcpReg = 1; |
1188 | cmpl = lpfc_cmpl_ct_cmd_rft_id; | 1188 | cmpl = lpfc_cmpl_ct_cmd_rft_id; |
1189 | break; | 1189 | break; |
@@ -1192,7 +1192,7 @@ lpfc_ns_cmd(struct lpfc_vport *vport, int cmdcode, | |||
1192 | vport->ct_flags &= ~FC_CT_RNN_ID; | 1192 | vport->ct_flags &= ~FC_CT_RNN_ID; |
1193 | CtReq->CommandResponse.bits.CmdRsp = | 1193 | CtReq->CommandResponse.bits.CmdRsp = |
1194 | be16_to_cpu(SLI_CTNS_RNN_ID); | 1194 | be16_to_cpu(SLI_CTNS_RNN_ID); |
1195 | CtReq->un.rnn.PortId = be32_to_cpu(vport->fc_myDID); | 1195 | CtReq->un.rnn.PortId = cpu_to_be32(vport->fc_myDID); |
1196 | memcpy(CtReq->un.rnn.wwnn, &vport->fc_nodename, | 1196 | memcpy(CtReq->un.rnn.wwnn, &vport->fc_nodename, |
1197 | sizeof (struct lpfc_name)); | 1197 | sizeof (struct lpfc_name)); |
1198 | cmpl = lpfc_cmpl_ct_cmd_rnn_id; | 1198 | cmpl = lpfc_cmpl_ct_cmd_rnn_id; |
@@ -1202,7 +1202,7 @@ lpfc_ns_cmd(struct lpfc_vport *vport, int cmdcode, | |||
1202 | vport->ct_flags &= ~FC_CT_RSPN_ID; | 1202 | vport->ct_flags &= ~FC_CT_RSPN_ID; |
1203 | CtReq->CommandResponse.bits.CmdRsp = | 1203 | CtReq->CommandResponse.bits.CmdRsp = |
1204 | be16_to_cpu(SLI_CTNS_RSPN_ID); | 1204 | be16_to_cpu(SLI_CTNS_RSPN_ID); |
1205 | CtReq->un.rspn.PortId = be32_to_cpu(vport->fc_myDID); | 1205 | CtReq->un.rspn.PortId = cpu_to_be32(vport->fc_myDID); |
1206 | size = sizeof(CtReq->un.rspn.symbname); | 1206 | size = sizeof(CtReq->un.rspn.symbname); |
1207 | CtReq->un.rspn.len = | 1207 | CtReq->un.rspn.len = |
1208 | lpfc_vport_symbolic_port_name(vport, | 1208 | lpfc_vport_symbolic_port_name(vport, |
@@ -1225,14 +1225,14 @@ lpfc_ns_cmd(struct lpfc_vport *vport, int cmdcode, | |||
1225 | /* Implement DA_ID Nameserver request */ | 1225 | /* Implement DA_ID Nameserver request */ |
1226 | CtReq->CommandResponse.bits.CmdRsp = | 1226 | CtReq->CommandResponse.bits.CmdRsp = |
1227 | be16_to_cpu(SLI_CTNS_DA_ID); | 1227 | be16_to_cpu(SLI_CTNS_DA_ID); |
1228 | CtReq->un.da_id.port_id = be32_to_cpu(vport->fc_myDID); | 1228 | CtReq->un.da_id.port_id = cpu_to_be32(vport->fc_myDID); |
1229 | cmpl = lpfc_cmpl_ct_cmd_da_id; | 1229 | cmpl = lpfc_cmpl_ct_cmd_da_id; |
1230 | break; | 1230 | break; |
1231 | case SLI_CTNS_RFF_ID: | 1231 | case SLI_CTNS_RFF_ID: |
1232 | vport->ct_flags &= ~FC_CT_RFF_ID; | 1232 | vport->ct_flags &= ~FC_CT_RFF_ID; |
1233 | CtReq->CommandResponse.bits.CmdRsp = | 1233 | CtReq->CommandResponse.bits.CmdRsp = |
1234 | be16_to_cpu(SLI_CTNS_RFF_ID); | 1234 | be16_to_cpu(SLI_CTNS_RFF_ID); |
1235 | CtReq->un.rff.PortId = be32_to_cpu(vport->fc_myDID);; | 1235 | CtReq->un.rff.PortId = cpu_to_be32(vport->fc_myDID);; |
1236 | CtReq->un.rff.fbits = FC4_FEATURE_INIT; | 1236 | CtReq->un.rff.fbits = FC4_FEATURE_INIT; |
1237 | CtReq->un.rff.type_code = FC_FCP_DATA; | 1237 | CtReq->un.rff.type_code = FC_FCP_DATA; |
1238 | cmpl = lpfc_cmpl_ct_cmd_rff_id; | 1238 | cmpl = lpfc_cmpl_ct_cmd_rff_id; |