lpfc 8.3.24: debugfs additions for new hardware.
Subsystems (2)
PATCH 7/8 lpfc 8.3.24: debugfs additions for new hardware.
debugfs additions for new hardware.
Correct stack overflow in lpfc_debugfs_dumpHBASlim_data() Correct warning on uninitialized reg_val in lpfc_idiag_drbacc_write()
Signed-off-by Alex Iannicelli <[email protected]>
Signed-off-by James Smart <[email protected]>
---
lpfc.h | 5 lpfc_bsg.c | 28 + lpfc_crtn.h | 8 lpfc_debugfs.c | 973 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++- lpfc_debugfs.h | 62 +++ lpfc_init.c | 1 lpfc_sli.c | 163 +++++++++ 7 files changed, 1227 insertions(+), 13 deletions(-)
drivers/scsi/lpfc/lpfc_bsg.c +28 -0
@@ -42,6 +42,7 @@#include "lpfc.h" #include "lpfc_logmsg.h" #include "lpfc_crtn.h" +#include "lpfc_debugfs.h" #include "lpfc_vport.h" #include "lpfc_version.h"
@@ -3430,6 +3431,10 @@ lpfc_bsg_sli_cfg_read_cmd_ext(struct lpf "ext_buf_cnt:%d\n", ext_buf_cnt); } +/* before dma descriptor setup */ +lpfc_idiag_mbxacc_dump_bsg_mbox (phba, nemb_tp, mbox_rd, dma_mbox, + sta_pre_addr, dmabuf, ext_buf_cnt); +/* reject non-embedded mailbox command with none external buffer */ if (ext_buf_cnt ==0 ) { rc = -EPERM ;
@@ -3477,6 +3482,10 @@ lpfc_bsg_sli_cfg_read_cmd_ext(struct lpf } } +/* after dma descriptor setup */ +lpfc_idiag_mbxacc_dump_bsg_mbox (phba, nemb_tp, mbox_rd, dma_mbox, + sta_pos_addr, dmabuf, ext_buf_cnt); +/* construct base driver mbox command */ pmb = &pmboxq->u.mb; pmbx = (uint8_t *)dmabuf->virt;
@@ -3591,12 +3600,20 @@ lpfc_bsg_sli_cfg_write_cmd_ext(struct lp "ext_buf_cnt:%d\n", ext_buf_cnt); } +/* before dma buffer descriptor setup */ +lpfc_idiag_mbxacc_dump_bsg_mbox (phba, nemb_tp, mbox_wr, dma_mbox, + sta_pre_addr, dmabuf, ext_buf_cnt); +if (ext_buf_cnt ==0 )return -EPERM ;/* for the first external buffer */ lpfc_bsg_sli_cfg_dma_desc_setup (phba, nemb_tp,0 , dmabuf, dmabuf); +/* after dma descriptor setup */ +lpfc_idiag_mbxacc_dump_bsg_mbox (phba, nemb_tp, mbox_wr, dma_mbox, + sta_pos_addr, dmabuf, ext_buf_cnt); +/* log for looking forward */ for (i =1 ; i < ext_buf_cnt; i++) {if (nemb_tp == nemb_mse)
@@ -3840,6 +3857,12 @@ lpfc_bsg_read_ebuf_get(struct lpfc_hba * dmabuf =list_first_entry (&phba->mbox_ext_buf_ctx.ext_dmabuf_list, struct lpfc_dmabuf, list);list_del_init (&dmabuf->list); + +/* after dma buffer descriptor setup */ +lpfc_idiag_mbxacc_dump_bsg_mbox (phba, phba->mbox_ext_buf_ctx.nembType, + mbox_rd, dma_ebuf, sta_pos_addr, + dmabuf, index); + pbuf = (uint8_t *)dmabuf->virt; job->reply->reply_payload_rcv_len = sg_copy_from_buffer(job->reply_payload.sg_list,
@@ -3916,6 +3939,11 @@ lpfc_bsg_write_ebuf_set(struct lpfc_hba } +/* pre write dma buffer */ +lpfc_idiag_mbxacc_dump_bsg_mbox (phba, phba->mbox_ext_buf_ctx.nembType, + mbox_wr, dma_ebuf, sta_pos_addr, + dmabuf, index); +/* set up external buffer descriptor and add to external buffer list */ lpfc_bsg_sli_cfg_dma_desc_setup(phba, nemb_tp, index, phba->mbox_ext_buf_ctx.mbx_dmabuf,
drivers/scsi/lpfc/lpfc_crtn.h +8 -0
@@ -371,6 +371,10 @@ extern struct lpfc_hbq_init *lpfc_hbq_de/* SLI4 if_type 2 externs. */ int lpfc_sli4_alloc_resource_identifiers (struct lpfc_hba *);int lpfc_sli4_dealloc_resource_identifiers (struct lpfc_hba *); +int lpfc_sli4_get_allocated_extnts (struct lpfc_hba *,uint16_t , +uint16_t *,uint16_t *); +int lpfc_sli4_get_avail_extnt_rsrc (struct lpfc_hba *,uint16_t , +uint16_t *,uint16_t *);/* externs BlockGuard */ extern char *_dump_buf_data;
@@ -436,6 +440,10 @@ void lpfc_cleanup_wt_rrqs(struct lpfc_hbvoid lpfc_cleanup_vports_rrqs (struct lpfc_vport *,struct lpfc_nodelist *);struct lpfc_node_rrq *lpfc_get_active_rrq (struct lpfc_vport *,uint16_t ,uint32_t ); +void lpfc_idiag_mbxacc_dump_bsg_mbox (struct lpfc_hba *,enum nemb_type , +enum mbox_type ,enum dma_type ,enum sta_type , +struct lpfc_dmabuf *,uint32_t ); +void lpfc_idiag_mbxacc_dump_issue_mbox (struct lpfc_hba *,MAILBOX_t *);int lpfc_wr_object (struct lpfc_hba *,struct list_head *,uint32_t ,uint32_t *);/* functions to support SR-IOV */ int lpfc_sli_probe_sriov_nr_virtfn (struct lpfc_hba *,int );
drivers/scsi/lpfc/lpfc_debugfs.c +965 -8
1,054 lines not on this page · raw message
drivers/scsi/lpfc/lpfc_debugfs.h +61 -1
80 lines not on this page · raw message
drivers/scsi/lpfc/lpfc.h +5 -0
@@ -54,6 +54,8 @@ struct lpfc_sli2_slim;#define LPFC_MAX_BUCKET_COUNT 20/* Maximum no. of buckets for stat data collection. */ + +#define CONFIG_SCSI_LPFC_DEBUG_FS 1;/* * Following time intervals are used of adjusting SCSI device * queue depths when there are driver resource error or Firmware
@@ -848,6 +850,9 @@ struct lpfc_hba {struct dentry *idiag_que_info;struct dentry *idiag_que_acc;struct dentry *idiag_drb_acc; +struct dentry *idiag_ctl_acc; +struct dentry *idiag_mbx_acc; +struct dentry *idiag_ext_acc;#endif /* Used for deferred freeing of ELS data buffers */
drivers/scsi/lpfc/lpfc_init.c +0 -1
@@ -9112,7 +9112,6 @@ lpfc_pci_probe_one_s4(struct pci_dev *pd/* Check if there are static vports to be created. */ lpfc_create_static_vport (phba); -return 0 ; out_disable_intr:
drivers/scsi/lpfc/lpfc_sli.c +160 -3
189 lines not on this page · raw message