lpfc 8.3.28: Critical Miscellaneous fixes
Subsystems (2)
PATCH 5/7 lpfc 8.3.28: Critical Miscellaneous fixes
Critical Miscellaneous fixes
- Make lpfc_sli4_pci_mem_unset interface type aware (CR 124390)
- Convert byte count to word count when calling __iowrite32_copy (CR 122550)
- Checked the ERR1 and ERR2 registers for error attention due to SLI Port state affected by forced debug dump. (CR 122986, 122426, 124859)
- Use the lpfc_readl routine instead of the readl for the port status register read in lpfc_handle_eratt_s4 (CR 125403)
- Call lpfc_sli4_queue_destroy inside of lpfc_sli4_brdreset before doing a pci function reset (CR 125124, 125168, 125572, 125622)
- Zero out the HBQ when it is allocated (CR 125663)
- Alter port reset log messages to indicate error type (CR 125989)
- Added proper NULL pointer checking to all the places that accessing the queue memory (CR 125832)
---
lpfc_compat.h | 5 - lpfc_debugfs.c | 172 +++++++++++++++++++++++++++++++++++++-------------------- lpfc_init.c | 164 ++++++++++++++++++++++++++++++++++++++---------------- lpfc_mem.c | 4 - lpfc_sli.c | 135 +++++++++++++++++++++++++++++++++++--------- lpfc_sli4.h | 9 ++ 6 files changed, 350 insertions(+), 139 deletions(-)
drivers/scsi/lpfc/lpfc_compat.h +3 -2
@@ -1,7 +1,7 @@/******************************************************************* * This file is part of the Emulex Linux Device Driver for * * Fibre Channel Host Bus Adapters. * -* Copyright (C) 2004-2005 Emulex. All rights reserved. * +* Copyright (C) 2004-2011 Emulex. All rights reserved. * * EMULEX and SLI are trademarks of Emulex. * * www.emulex.com * * *
@@ -82,7 +82,8 @@ lpfc_memcpy_from_slim( void *dest, voidstatic inline void lpfc_memcpy_to_slim (void __iomem *dest,void *src,unsigned int bytes) { -__iowrite32_copy (dest, src, bytes); +/* convert bytes in argument list to word count for copy function */ +__iowrite32_copy (dest, src, bytes /sizeof (uint32_t )); } static inline void
drivers/scsi/lpfc/lpfc_debugfs.c +113 -59
356 lines not on this page · raw message
drivers/scsi/lpfc/lpfc_init.c +116 -48
290 lines not on this page · raw message
drivers/scsi/lpfc/lpfc_mem.c +2 -2
@@ -389,7 +389,7 @@ lpfc_els_hbq_alloc(struct lpfc_hba *phba {struct hbq_dmabuf *hbqbp; - hbqbp =kmalloc (sizeof (struct hbq_dmabuf ),GFP_KERNEL ); + hbqbp =kzalloc (sizeof (struct hbq_dmabuf ),GFP_KERNEL );if (!hbqbp)return NULL ;
@@ -441,7 +441,7 @@ lpfc_sli4_rb_alloc(struct lpfc_hba *phba {struct hbq_dmabuf *dma_buf; - dma_buf =kmalloc (sizeof (struct hbq_dmabuf ),GFP_KERNEL ); + dma_buf =kzalloc (sizeof (struct hbq_dmabuf ),GFP_KERNEL );if (!dma_buf)return NULL ;
drivers/scsi/lpfc/lpfc_sli4.h +9 -0
@@ -420,7 +420,16 @@ struct lpfc_sli4_hba {void __iomem *STATUSregaddr;void __iomem *CTRLregaddr;void __iomem *ERR1regaddr; +#define SLIPORT_ERR1_REG_ERR_CODE_1 0x1 +#define SLIPORT_ERR1_REG_ERR_CODE_2 0x2void __iomem *ERR2regaddr; +#define SLIPORT_ERR2_REG_FW_RESTART 0x0 +#define SLIPORT_ERR2_REG_FUNC_PROVISON 0x1 +#define SLIPORT_ERR2_REG_FORCED_DUMP 0x2 +#define SLIPORT_ERR2_REG_FAILURE_EQ 0x3 +#define SLIPORT_ERR2_REG_FAILURE_CQ 0x4 +#define SLIPORT_ERR2_REG_FAILURE_BUS 0x5 +#define SLIPORT_ERR2_REG_FAILURE_RQ 0x6 } if_type2; } u;
drivers/scsi/lpfc/lpfc_sli.c +107 -28
342 lines not on this page · raw message