linux-scsi.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
* [PATCH 8/9] lpfc 8.1.3 : Adding hbaapi event support using new fc transport events api
@ 2006-02-22 17:34 James Smart
  0 siblings, 0 replies; 2+ messages in thread
From: James Smart @ 2006-02-22 17:34 UTC (permalink / raw)
  To: linux-scsi


Adding hbaapi event support using new fc transport events api

Requires the following patch, which adds event support to the FC transport:
http://marc.theaimsgroup.com/?l=linux-scsi&m=114062467404472&w=2


Signed-off-by: James Smart <James.Smart@emulex.com>

--- a/drivers/scsi/lpfc/lpfc_hbadisc.c
+++ b/drivers/scsi/lpfc/lpfc_hbadisc.c
@@ -320,6 +320,8 @@ lpfc_linkdown(struct lpfc_hba * phba)
  		spin_unlock_irq(phba->host->host_lock);
  	}

+	fc_host_event_post(phba->host, 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);
@@ -415,6 +417,7 @@ lpfc_linkup(struct lpfc_hba * phba)
  	phba->fc_ns_retry = 0;
  	spin_unlock_irq(phba->host->host_lock);

+	fc_host_event_post(phba->host, FCH_EVT_LINKUP, 0);

  	node_list[0] = &phba->fc_plogi_list;
  	node_list[1] = &phba->fc_adisc_list;
--- a/drivers/scsi/lpfc/lpfc_init.c
+++ b/drivers/scsi/lpfc/lpfc_init.c
@@ -561,6 +561,7 @@ lpfc_handle_eratt(struct lpfc_hba * phba

  		lpfc_offline(phba);
  		phba->hba_state = LPFC_HBA_ERROR;
+		fc_host_event_post(phba->host, FCH_EVT_VENDOR_UNIQUE, 0);
  		lpfc_hba_down_post(phba);
  	}
  }
@@ -1333,6 +1334,8 @@ lpfc_online(struct lpfc_hba * phba)
  	if (lpfc_sli_hba_setup(phba))	/* Initialize the HBA */
  		return 1;

+	fc_host_event_post(phba->host, FCH_EVT_PORT_ONLINE, 0);
+
  	spin_lock_irq(phba->host->host_lock);
  	phba->fc_flag &= ~FC_OFFLINE_MODE;
  	spin_unlock_irq(phba->host->host_lock);
@@ -1354,6 +1357,8 @@ lpfc_offline(struct lpfc_hba * phba)
  	if (phba->fc_flag & FC_OFFLINE_MODE)
  		return 0;

+	fc_host_event_post(phba->host, FCH_EVT_PORT_OFFLINE, 0);
+
  	psli = &phba->sli;
  	pring = &psli->ring[psli->fcp_ring];

--- a/drivers/scsi/lpfc/lpfc_els.c
+++ b/drivers/scsi/lpfc/lpfc_els.c
@@ -2383,6 +2383,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;
@@ -2401,6 +2402,9 @@ 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_event_post(phba->host, FCH_EVT_RSCN, lp[i]);
+
  	/* If we are about to begin discovery, just ACC the RSCN.
  	 * Discovery processing will satisfy it.
  	 */



^ permalink raw reply	[flat|nested] 2+ messages in thread

* [PATCH 8/9] lpfc 8.1.3: Adding hbaapi event support using new fc transport events api
@ 2006-03-01  3:33 Jamie Wellnitz
  0 siblings, 0 replies; 2+ messages in thread
From: Jamie Wellnitz @ 2006-03-01  3:33 UTC (permalink / raw)
  To: linux-scsi

Adding hbaapi event support using new fc transport events api

Requires the following patch, which adds event support to the FC transport:
http://marc.theaimsgroup.com/?l=linux-scsi&m=114062467404472&w=2

Signed-off-by: Jamie Wellnitz <Jamie.Wellnitz@emulex.com>

--- a/drivers/scsi/lpfc/lpfc_hbadisc.c
+++ b/drivers/scsi/lpfc/lpfc_hbadisc.c
@@ -320,6 +320,8 @@ lpfc_linkdown(struct lpfc_hba * phba)
 		spin_unlock_irq(phba->host->host_lock);
 	}
 
+	fc_host_event_post(phba->host, 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);
@@ -415,6 +417,7 @@ lpfc_linkup(struct lpfc_hba * phba)
 	phba->fc_ns_retry = 0;
 	spin_unlock_irq(phba->host->host_lock);
 
+	fc_host_event_post(phba->host, FCH_EVT_LINKUP, 0);
 
 	node_list[0] = &phba->fc_plogi_list;
 	node_list[1] = &phba->fc_adisc_list;
--- a/drivers/scsi/lpfc/lpfc_init.c
+++ b/drivers/scsi/lpfc/lpfc_init.c
@@ -561,6 +561,7 @@ lpfc_handle_eratt(struct lpfc_hba * phba
 
 		lpfc_offline(phba);
 		phba->hba_state = LPFC_HBA_ERROR;
+		fc_host_event_post(phba->host, FCH_EVT_VENDOR_UNIQUE, 0);
 		lpfc_hba_down_post(phba);
 	}
 }
@@ -1333,6 +1334,8 @@ lpfc_online(struct lpfc_hba * phba)
 	if (lpfc_sli_hba_setup(phba))	/* Initialize the HBA */
 		return 1;
 
+	fc_host_event_post(phba->host, FCH_EVT_PORT_ONLINE, 0);
+
 	spin_lock_irq(phba->host->host_lock);
 	phba->fc_flag &= ~FC_OFFLINE_MODE;
 	spin_unlock_irq(phba->host->host_lock);
@@ -1354,6 +1357,8 @@ lpfc_offline(struct lpfc_hba * phba)
 	if (phba->fc_flag & FC_OFFLINE_MODE)
 		return 0;
 
+	fc_host_event_post(phba->host, FCH_EVT_PORT_OFFLINE, 0);
+
 	psli = &phba->sli;
 	pring = &psli->ring[psli->fcp_ring];
 
--- a/drivers/scsi/lpfc/lpfc_els.c
+++ b/drivers/scsi/lpfc/lpfc_els.c
@@ -2383,6 +2383,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;
@@ -2401,6 +2402,9 @@ 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_event_post(phba->host, FCH_EVT_RSCN, lp[i]);
+
 	/* If we are about to begin discovery, just ACC the RSCN.
 	 * Discovery processing will satisfy it.
 	 */

^ permalink raw reply	[flat|nested] 2+ messages in thread

end of thread, other threads:[~2006-03-01  3:33 UTC | newest]

Thread overview: 2+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2006-02-22 17:34 [PATCH 8/9] lpfc 8.1.3 : Adding hbaapi event support using new fc transport events api James Smart
  -- strict thread matches above, loose matches on Subject: below --
2006-03-01  3:33 [PATCH 8/9] lpfc 8.1.3: " Jamie Wellnitz

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).