diff options
author | James Smart <james.smart@emulex.com> | 2010-11-20 23:14:19 -0500 |
---|---|---|
committer | James Bottomley <James.Bottomley@suse.de> | 2010-12-21 13:23:58 -0500 |
commit | 63e801ce685d151c5faca8f491adc2ad2e732259 (patch) | |
tree | 6cf3db58849160580e4a5c1ce32e4ee14ed6902d /drivers/scsi/lpfc/lpfc_bsg.c | |
parent | 98db519573e805f9f7e988fb5661da951fcb16b1 (diff) |
[SCSI] lpfc 8.3.19: Fix critical errors and crashes
Fix critical errors and crashes
- Replace LOF_SECURITY with LOG_SECURITY
- When calculating diag test memory size, use full size with header.
- Return LS_RJT with status=UNSUPPORTED on unrecognized ELS's
- Correct NULL pointer dereference when lpfc_create_vport_work_array()
returns NULL.
- Added code to handle CVL when port is in LPFC_VPORT_FAILED state.
- In lpfc_do_scr_ns_plogi, check the nodelist for FDMI_DID and reuse
the resource.
- Check for generic request 64 and calculate the sgl offset for the request
and reply sgls, also calculate the xmit length using only the request bde.
Signed-off-by: Alex Iannicelli <alex.iannicelli@emulex.com>
Signed-off-by: James Smart <james.smart@emulex.com>
Signed-off-by: James Bottomley <James.Bottomley@suse.de>
Diffstat (limited to 'drivers/scsi/lpfc/lpfc_bsg.c')
-rw-r--r-- | drivers/scsi/lpfc/lpfc_bsg.c | 4 |
1 files changed, 2 insertions, 2 deletions
diff --git a/drivers/scsi/lpfc/lpfc_bsg.c b/drivers/scsi/lpfc/lpfc_bsg.c index 7260c3af555a..c216f4eb0e37 100644 --- a/drivers/scsi/lpfc/lpfc_bsg.c +++ b/drivers/scsi/lpfc/lpfc_bsg.c | |||
@@ -2162,7 +2162,7 @@ lpfc_bsg_diag_test(struct fc_bsg_job *job) | |||
2162 | goto loopback_test_exit; | 2162 | goto loopback_test_exit; |
2163 | } | 2163 | } |
2164 | 2164 | ||
2165 | if (size >= BUF_SZ_4K) { | 2165 | if (full_size >= BUF_SZ_4K) { |
2166 | /* | 2166 | /* |
2167 | * Allocate memory for ioctl data. If buffer is bigger than 64k, | 2167 | * Allocate memory for ioctl data. If buffer is bigger than 64k, |
2168 | * then we allocate 64k and re-use that buffer over and over to | 2168 | * then we allocate 64k and re-use that buffer over and over to |
@@ -2171,7 +2171,7 @@ lpfc_bsg_diag_test(struct fc_bsg_job *job) | |||
2171 | * problem with GET_FCPTARGETMAPPING... | 2171 | * problem with GET_FCPTARGETMAPPING... |
2172 | */ | 2172 | */ |
2173 | if (size <= (64 * 1024)) | 2173 | if (size <= (64 * 1024)) |
2174 | total_mem = size; | 2174 | total_mem = full_size; |
2175 | else | 2175 | else |
2176 | total_mem = 64 * 1024; | 2176 | total_mem = 64 * 1024; |
2177 | } else | 2177 | } else |