Skip to content

Commit

Permalink
[SCSI] lpfc 8.1.10 : Add support to post events via new FC event inte…
Browse files Browse the repository at this point in the history
…rfaces

Add support to post events via new FC event interfaces

Signed-off-by: James Smart <James.Smart@emulex.com>
Signed-off-by: James Bottomley <James.Bottomley@SteelEye.com>
  • Loading branch information
James Smart authored and James Bottomley committed Sep 2, 2006
1 parent f14e2e2 commit d2873e4
Show file tree
Hide file tree
Showing 4 changed files with 19 additions and 0 deletions.
2 changes: 2 additions & 0 deletions drivers/scsi/lpfc/lpfc.h
Original file line number Diff line number Diff line change
Expand Up @@ -391,3 +391,5 @@ struct rnidrsp {
struct list_head list;
uint32_t data;
};

#define FC_REG_DUMP_EVENT 0x10 /* Register for Dump events */
5 changes: 5 additions & 0 deletions drivers/scsi/lpfc/lpfc_els.c
Original file line number Diff line number Diff line change
Expand Up @@ -2506,6 +2506,7 @@ lpfc_els_rcv_rscn(struct lpfc_hba * phba,
uint32_t *lp;
IOCB_t *icmd;
uint32_t payload_len, cmd;
int i;

icmd = &cmdiocb->iocb;
pcmd = (struct lpfc_dmabuf *) cmdiocb->context2;
Expand All @@ -2524,6 +2525,10 @@ lpfc_els_rcv_rscn(struct lpfc_hba * phba,
phba->brd_no,
phba->fc_flag, payload_len, *lp, phba->fc_rscn_id_cnt);

for (i = 0; i < payload_len/sizeof(uint32_t); i++)
fc_host_post_event(phba->host, fc_get_event_number(),
FCH_EVT_RSCN, lp[i]);

/* If we are about to begin discovery, just ACC the RSCN.
* Discovery processing will satisfy it.
*/
Expand Down
6 changes: 6 additions & 0 deletions drivers/scsi/lpfc/lpfc_hbadisc.c
Original file line number Diff line number Diff line change
Expand Up @@ -340,6 +340,9 @@ lpfc_linkdown(struct lpfc_hba * phba)
spin_unlock_irq(phba->host->host_lock);
}

fc_host_post_event(phba->host, fc_get_event_number(),
FCH_EVT_LINKDOWN, 0);

/* Clean up any firmware default rpi's */
if ((mb = mempool_alloc(phba->mbox_mem_pool, GFP_KERNEL))) {
lpfc_unreg_did(phba, 0xffffffff, mb);
Expand Down Expand Up @@ -427,6 +430,9 @@ lpfc_linkup(struct lpfc_hba * phba)
struct list_head *listp, *node_list[7];
int i;

fc_host_post_event(phba->host, fc_get_event_number(),
FCH_EVT_LINKUP, 0);

spin_lock_irq(phba->host->host_lock);
phba->hba_state = LPFC_LINK_UP;
phba->fc_flag &= ~(FC_PT2PT | FC_PT2PT_PLOGI | FC_ABORT_DISCOVERY |
Expand Down
6 changes: 6 additions & 0 deletions drivers/scsi/lpfc/lpfc_init.c
Original file line number Diff line number Diff line change
Expand Up @@ -511,6 +511,7 @@ lpfc_handle_eratt(struct lpfc_hba * phba)
{
struct lpfc_sli *psli = &phba->sli;
struct lpfc_sli_ring *pring;
uint32_t event_data;

if (phba->work_hs & HS_FFER6) {
/* Re-establishing Link */
Expand Down Expand Up @@ -555,6 +556,11 @@ lpfc_handle_eratt(struct lpfc_hba * phba)
phba->brd_no, phba->work_hs,
phba->work_status[0], phba->work_status[1]);

event_data = FC_REG_DUMP_EVENT;
fc_host_post_vendor_event(phba->host, fc_get_event_number(),
sizeof(event_data), (char *) &event_data,
SCSI_NL_VID_TYPE_PCI | PCI_VENDOR_ID_EMULEX);

psli->sli_flag &= ~LPFC_SLI2_ACTIVE;
lpfc_offline(phba);
phba->hba_state = LPFC_HBA_ERROR;
Expand Down

0 comments on commit d2873e4

Please sign in to comment.