lpfc 8.3.13: Misc fixes
Subsystems (2)
PATCH 4/7 lpfc 8.3.13: Misc fixes
- Change the Max receive size on CIN FCFs to 0x800
- (From linux community) Check boundary before checking for NULL.
- Update last completion time for completed I/O to prevent heartbeat.
- Add Balius PCI Device IDs
Signed-off-by Alex Iannicelli <[email protected]>
Signed-off-by James Smart <[email protected]>
---
lpfc_hw.h | 1 + lpfc_init.c | 6 ++++++ lpfc_sli.c | 4 ++++ lpfc_sli4.h | 2 +- lpfc_vport.c | 2 +- 5 files changed, 13 insertions(+), 2 deletions(-)
drivers/scsi/lpfc/lpfc_hw.h +1 -0
@@ -1170,6 +1170,7 @@ typedef struct {#define PCI_DEVICE_ID_TIGERSHARK 0x0704#define PCI_DEVICE_ID_TOMCAT 0x0714#define PCI_DEVICE_ID_FALCON 0xf180 +#define PCI_DEVICE_ID_BALIUS 0xe131#define JEDEC_ID_ADDRESS 0x0080001c#define FIREFLY_JEDEC_ID 0x1ACC
drivers/scsi/lpfc/lpfc_init.c +6 -0
@@ -1826,6 +1826,10 @@ lpfc_get_hba_model_desc(struct lpfc_hba m = (typeof (m )){"LPSe12002-ML1-E" ,"PCIe" ,"EmulexSecure Fibre" };break ; +case PCI_DEVICE_ID_BALIUS : + m = (typeof (m )){"LPVe12002" ,"PCIe Shared I/O" , +"Fibre Channel Adapter" }; +break ;default : m = (typeof (m )){"Unknown" ,"" ,"" };break ;
@@ -8835,6 +8839,8 @@ static struct pci_device_id lpfc_id_tabl PCI_ANY_ID, PCI_ANY_ID, }, {PCI_VENDOR_ID_EMULEX, PCI_DEVICE_ID_FALCON, PCI_ANY_ID, PCI_ANY_ID, }, + {PCI_VENDOR_ID_EMULEX, PCI_DEVICE_ID_BALIUS, + PCI_ANY_ID, PCI_ANY_ID, }, { 0 } };
drivers/scsi/lpfc/lpfc_sli4.h +1 -1
@@ -58,7 +58,7 @@#define LPFC_FCOE_FCF_MAP0 0x0E#define LPFC_FCOE_FCF_MAP1 0xFC#define LPFC_FCOE_FCF_MAP2 0x00 -#define LPFC_FCOE_MAX_RCV_SIZE 0x5AC +#define LPFC_FCOE_MAX_RCV_SIZE 0x800#define LPFC_FCOE_FKA_ADV_PER 0#define LPFC_FCOE_FIP_PRIORITY 0x80
drivers/scsi/lpfc/lpfc_sli.c +4 -0
@@ -9194,6 +9194,7 @@ lpfc_sli4_fp_handle_wcqe(struct lpfc_hba {struct lpfc_wcqe_release wcqe;bool workposted = false; +unsigned long iflag;/* Copy the work queue CQE and convert endian order if needed */ lpfc_sli_pcimem_bcopy (cqe, &wcqe,sizeof (struct lpfc_cqe ));
@@ -9202,6 +9203,9 @@ lpfc_sli4_fp_handle_wcqe(struct lpfc_hbaswitch (bf_get (lpfc_wcqe_c_code, &wcqe)) {case CQE_CODE_COMPL_WQE :/* Process the WQ complete event */ +spin_lock_irqsave (&phba->hbalock, iflag); + phba->last_completion_time = jiffies; +spin_unlock_irqrestore (&phba->hbalock, iflag);lpfc_sli4_fp_handle_fcp_wcqe (phba, (struct lpfc_wcqe_complete *)&wcqe);break ;
drivers/scsi/lpfc/lpfc_vport.c +1 -1
@@ -782,7 +782,7 @@ lpfc_destroy_vport_work_array(struct lpfint i;if (vports ==NULL )return ; -for (i =0 ; vports[i] !=NULL && i <= phba->max_vports; i++) +for (i =0 ; i <= phba->max_vports && vports[i] !=NULL ; i++)scsi_host_put (lpfc_shost_from_vport (vports[i]));kfree (vports); }