Jamie Wellnitz | 1 Mar 2006 01:00
Favicon

Re: [PATCH 0/22] lpfc 8.1.2 driver update

James,

On Mon, Feb 27, 2006 at 11:14:58PM -0600, James Bottomley wrote:
> On Wed, 2006-02-08 at 10:40 -0500, James Smart wrote:
> > This patch set updates the lpfc driver to revision 8.1.2, which includes
> > the following changes:
> 
> I'm afraid none of these patches will apply.
> 
> The problem looks to be a really weird mailer issue.  Apparently every
> line that began with a space had two extra spaces added.

Sorry for the whitespace confusion.  James Smart is away this week,
but I'll repost the lpfc 8.1.2 patches momentarily.

> 
> James
> 

Thanks,
Jamie Wellnitz

> 
> -
> To unsubscribe from this list: send the line "unsubscribe linux-scsi" in
> the body of a message to majordomo <at> vger.kernel.org
> More majordomo info at  http://vger.kernel.org/majordomo-info.html
> 
-
To unsubscribe from this list: send the line "unsubscribe linux-scsi" in
(Continue reading)

Jamie Wellnitz | 1 Mar 2006 01:25
Favicon

[PATCH 1/22] lpfc 8.1.2: Remove unused prototypes from lpfc_crtn.h

Remove unused prototypes from lpfc_crtn.h

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

--- a/drivers/scsi/lpfc/lpfc_crtn.h
+++ b/drivers/scsi/lpfc/lpfc_crtn.h
 <at>  <at>  -42,9 +42,6  <at>  <at>  void lpfc_mbx_cmpl_reg_login(struct lpfc
 void lpfc_mbx_cmpl_fabric_reg_login(struct lpfc_hba *, LPFC_MBOXQ_t *);
 void lpfc_mbx_cmpl_ns_reg_login(struct lpfc_hba *, LPFC_MBOXQ_t *);
 void lpfc_mbx_cmpl_fdmi_reg_login(struct lpfc_hba *, LPFC_MBOXQ_t *);
-int lpfc_nlp_plogi(struct lpfc_hba *, struct lpfc_nodelist *);
-int lpfc_nlp_adisc(struct lpfc_hba *, struct lpfc_nodelist *);
-int lpfc_nlp_unmapped(struct lpfc_hba *, struct lpfc_nodelist *);
 int lpfc_nlp_list(struct lpfc_hba *, struct lpfc_nodelist *, int);
 void lpfc_set_disctmo(struct lpfc_hba *);
 int lpfc_can_disctmo(struct lpfc_hba *);
 <at>  <at>  -54,12 +51,10  <at>  <at>  int lpfc_check_sli_ndlp(struct lpfc_hba 
 int lpfc_nlp_remove(struct lpfc_hba *, struct lpfc_nodelist *);
 void lpfc_nlp_init(struct lpfc_hba *, struct lpfc_nodelist *, uint32_t);
 struct lpfc_nodelist *lpfc_setup_disc_node(struct lpfc_hba *, uint32_t);
-struct lpfc_nodelist *lpfc_setup_rscn_node(struct lpfc_hba *, uint32_t);
 void lpfc_disc_list_loopmap(struct lpfc_hba *);
 void lpfc_disc_start(struct lpfc_hba *);
 void lpfc_disc_flush_list(struct lpfc_hba *);
 void lpfc_disc_timeout(unsigned long);
-void lpfc_scan_timeout(unsigned long);

 struct lpfc_nodelist *lpfc_findnode_rpi(struct lpfc_hba * phba, uint16_t rpi);

 <at>  <at>  -68,12 +63,6  <at>  <at>  int lpfc_do_work(void *);
(Continue reading)

Jamie Wellnitz | 1 Mar 2006 01:25
Favicon

[PATCH 4/22] lpfc 8.1.2: Handling of ELS commands RRQ, RPS, RPL and LIRR correctly

Handling of ELS commands RRQ, RPS, RPL and LIRR correctly

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

--- a/drivers/scsi/lpfc/lpfc_mbox.c
+++ b/drivers/scsi/lpfc/lpfc_mbox.c
 <at>  <at>  -336,6 +336,23  <at>  <at>  lpfc_read_config(struct lpfc_hba * phba,
 	return;
 }

+/*************************************************/
+/*  lpfc_read_lnk_stat  Issue a READ LINK STATUS */
+/*                mailbox command                */
+/*************************************************/
+void
+lpfc_read_lnk_stat(struct lpfc_hba * phba, LPFC_MBOXQ_t * pmb)
+{
+	MAILBOX_t *mb;
+
+	mb = &pmb->mb;
+	memset(pmb, 0, sizeof (LPFC_MBOXQ_t));
+
+	mb->mbxCommand = MBX_READ_LNK_STAT;
+	mb->mbxOwner = OWN_HOST;
+	return;
+}
+
 /********************************************/
 /*  lpfc_reg_login  Issue a REG_LOGIN       */
 /*                  mailbox command         */
(Continue reading)

Jamie Wellnitz | 1 Mar 2006 01:25
Favicon

[PATCH 0/22] lpfc 8.1.2: driver update (repost)


James Smart is away this week so I'm covering this for him.

We're reposting the lpfc 8.1.2 patches because the earlier set had
some patch format issues that preventing them from applying.  These
are exactly the same changes as the previously posted 8.1.2, but
without the formatting issue.

This patch set updates the lpfc driver to revision 8.1.2, which
includes the following changes:

  - Remove several unused prototypes
  - Remove unreferenced cfg_fcp_bind_method from struct lpfc_hba
  - Remove unused SLI_IOCB_HIGH_PRIORITY
  - Handling of ELS commands RRQ, RPS, RPL and LIRR correctly
  - Fixed a race condition in the PLOGI retry logic.
  - Explicitly initialize the skip_post argument to lpfc_sli_send_reset
    on a ERATT interrupt.
  - Fixed system panic in lpfc_sli_brdreset during dynamic add of LP11K
  - Fixed a double insertion of mail box object to the SLI mailbox list.
  - Add module parameter to limit number of outstanding commands per lpfc HBA
  - Misc FC Discovery changes
  - Correct use of the hostdata field in scsi_host
  - Remove hba_list from struct lpfc_hba
  - Add ERROR and WARM_START modes for diagnostic purposes.
  - Added support for FAN
  - Make lpfc_els_rsp_rps_acc and lpfc_els_rsp_rpl_acc static
  - Code style changes for Discovery code
  - Allow turning on internal loop-back mode
  - Code cleanup of lpfc_mbx_cmpl_config_link
(Continue reading)

Jamie Wellnitz | 1 Mar 2006 01:25
Favicon

[PATCH 18/22] lpfc 8.1.2: Code cleanup of lpfc_mbx_cmpl_config_link

Code cleanup of lpfc_mbx_cmpl_config_link

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

--- a/drivers/scsi/lpfc/lpfc_hbadisc.c
+++ b/drivers/scsi/lpfc/lpfc_hbadisc.c
 <at>  <at>  -538,80 +538,59  <at>  <at>  out:
 }

 static void
-lpfc_mbx_cmpl_config_link(struct lpfc_hba * phba, LPFC_MBOXQ_t * pmb)
+lpfc_mbx_cmpl_local_config_link(struct lpfc_hba *phba, LPFC_MBOXQ_t *pmb)
 {
-	struct lpfc_sli *psli;
-	MAILBOX_t *mb;
-
-	psli = &phba->sli;
-	mb = &pmb->mb;
-	/* Check for error */
-	if (mb->mbxStatus) {
-		/* CONFIG_LINK mbox error <mbxStatus> state <hba_state> */
-		lpfc_printf_log(phba, KERN_ERR, LOG_MBOX,
-				"%d:0306 CONFIG_LINK mbxStatus error x%x "
-				"HBA state x%x\n",
-				phba->brd_no, mb->mbxStatus, phba->hba_state);
+	struct lpfc_sli *psli = &phba->sli;
+	int rc;

-		lpfc_linkdown(phba);
-		phba->hba_state = LPFC_HBA_ERROR;
(Continue reading)

Jamie Wellnitz | 1 Mar 2006 01:25
Favicon

[PATCH 14/22] lpfc 8.1.2: Added support for FAN

Added support for FAN

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

--- a/drivers/scsi/lpfc/lpfc_hbadisc.c
+++ b/drivers/scsi/lpfc/lpfc_hbadisc.c
 <at>  <at>  -309,14 +309,12  <at>  <at>  lpfc_linkdown(struct lpfc_hba * phba)
 	LPFC_MBOXQ_t     *mb;
 	int               rc, i;

-	if (phba->hba_state == LPFC_LINK_DOWN) {
-		return 0;
-	}
-
 	psli = &phba->sli;
-
 	/* sysfs or selective reset may call this routine to clean up */
-	if (phba->hba_state > LPFC_LINK_DOWN) {
+	if (phba->hba_state >= LPFC_LINK_DOWN) {
+		if (phba->hba_state == LPFC_LINK_DOWN)
+			return 0;
+
 		spin_lock_irq(phba->host->host_lock);
 		phba->hba_state = LPFC_LINK_DOWN;
 		spin_unlock_irq(phba->host->host_lock);
 <at>  <at>  -1172,6 +1170,7  <at>  <at>  lpfc_nlp_list(struct lpfc_hba * phba, st
 			spin_lock_irq(phba->host->host_lock);
 			nlp->nlp_flag &= ~NLP_DELAY_TMO;
 			spin_unlock_irq(phba->host->host_lock);
+			nlp->nlp_last_elscmd = 0;
(Continue reading)

Jamie Wellnitz | 1 Mar 2006 01:25
Favicon

[PATCH 2/22] lpfc 8.1.2: Remove unreferenced cfg_fcp_bind_method from struct lpfc_hba

Remove unreferenced cfg_fcp_bind_method from struct lpfc_hba

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

--- a/drivers/scsi/lpfc/lpfc.h
+++ b/drivers/scsi/lpfc/lpfc.h
 <at>  <at>  -290,7 +290,6  <at>  <at>  struct lpfc_hba {
 	uint32_t cfg_cr_delay;
 	uint32_t cfg_cr_count;
 	uint32_t cfg_fdmi_on;
-	uint32_t cfg_fcp_bind_method;
 	uint32_t cfg_discovery_threads;
 	uint32_t cfg_max_luns;
 	uint32_t cfg_poll;
-
To unsubscribe from this list: send the line "unsubscribe linux-scsi" in
the body of a message to majordomo <at> vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html

Jamie Wellnitz | 1 Mar 2006 01:25
Favicon

[PATCH 5/22] lpfc 8.1.2: Fixed a race condition in the PLOGI retry logic.

Fixed a race condition in the PLOGI retry logic.

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

--- a/drivers/scsi/lpfc/lpfc_nportdisc.c
+++ b/drivers/scsi/lpfc/lpfc_nportdisc.c
 <at>  <at>  -1627,6 +1627,14  <at>  <at>  lpfc_device_recov_npr_node(struct lpfc_h
 {
 	spin_lock_irq(phba->host->host_lock);
 	ndlp->nlp_flag &= ~NLP_NPR_2B_DISC;
+	if (ndlp->nlp_flag & NLP_DELAY_TMO) {
+		ndlp->nlp_flag &= ~NLP_DELAY_TMO;
+		if (!list_empty(&ndlp->els_retry_evt.evt_listp))
+			list_del_init(&ndlp->els_retry_evt.evt_listp);
+		spin_unlock_irq(phba->host->host_lock);
+		del_timer_sync(&ndlp->nlp_delayfunc);
+		return (ndlp->nlp_state);
+	}
 	spin_unlock_irq(phba->host->host_lock);
 	return (ndlp->nlp_state);
 }
--- a/drivers/scsi/lpfc/lpfc_els.c
+++ b/drivers/scsi/lpfc/lpfc_els.c
 <at>  <at>  -1467,24 +1467,28  <at>  <at>  lpfc_els_retry_delay_handler(struct lpfc
 		lpfc_issue_els_flogi(phba, ndlp, retry);
 		break;
 	case ELS_CMD_PLOGI:
-		ndlp->nlp_state = NLP_STE_PLOGI_ISSUE;
-		lpfc_nlp_list(phba, ndlp, NLP_PLOGI_LIST);
-		lpfc_issue_els_plogi(phba, ndlp, retry);
(Continue reading)

Jamie Wellnitz | 1 Mar 2006 01:25
Favicon

[PATCH 10/22] lpfc 8.1.2: Misc FC Discovery changes :

Misc FC Discovery changes :
   - Added FC_BYPASSED_MODE statistic
   - Corrected some log message data
   - Fix up Discovery infrastructure to support FAN:
       Allow Fabric entities to flow thru DSM
       Fix up linkup/linkdown unregister login processing for Fabric entities
       Clean up Discovery code
       Utilize nodev_tmo for Fabric entities
   - Use of 3 * ratov for CT handling timeouts
   - Fix up DSM to make more appropriate decisions and clean up code.


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

--- a/drivers/scsi/lpfc/lpfc_hbadisc.c
+++ b/drivers/scsi/lpfc/lpfc_hbadisc.c
 <at>  <at>  -283,16 +283,18  <at>  <at>  lpfc_linkdown(struct lpfc_hba * phba)
 {
 	struct lpfc_sli       *psli;
 	struct lpfc_nodelist  *ndlp, *next_ndlp;
-	struct list_head *listp;
-	struct list_head *node_list[7];
+	struct list_head *listp, *node_list[7];
 	LPFC_MBOXQ_t     *mb;
 	int               rc, i;
 
 	psli = &phba->sli;
 
-	spin_lock_irq(phba->host->host_lock);
-	phba->hba_state = LPFC_LINK_DOWN;
(Continue reading)

Jamie Wellnitz | 1 Mar 2006 01:25
Favicon

[PATCH 11/22] lpfc 8.1.2: Correct use of the hostdata field in scsi_host

Correct use of the hostdata field in scsi_host

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

--- a/drivers/scsi/lpfc/lpfc_scsi.c
+++ b/drivers/scsi/lpfc/lpfc_scsi.c
 <at>  <at>  -743,7 +743,7  <at>  <at>  lpfc_scsi_tgt_reset(struct lpfc_scsi_buf
 const char *
 lpfc_info(struct Scsi_Host *host)
 {
-	struct lpfc_hba    *phba = (struct lpfc_hba *) host->hostdata[0];
+	struct lpfc_hba    *phba = (struct lpfc_hba *) host->hostdata;
 	int len;
 	static char  lpfcinfobuf[384];

 <at>  <at>  -803,7 +803,7  <at>  <at>  static int
 lpfc_queuecommand(struct scsi_cmnd *cmnd, void (*done) (struct scsi_cmnd *))
 {
 	struct lpfc_hba *phba =
-		(struct lpfc_hba *) cmnd->device->host->hostdata[0];
+		(struct lpfc_hba *) cmnd->device->host->hostdata;
 	struct lpfc_sli *psli = &phba->sli;
 	struct lpfc_rport_data *rdata = cmnd->device->hostdata;
 	struct lpfc_nodelist *ndlp = rdata->pnode;
 <at>  <at>  -877,7 +877,7  <at>  <at>  static int
 lpfc_abort_handler(struct scsi_cmnd *cmnd)
 {
 	struct Scsi_Host *shost = cmnd->device->host;
-	struct lpfc_hba *phba = (struct lpfc_hba *)shost->hostdata[0];
+	struct lpfc_hba *phba = (struct lpfc_hba *)shost->hostdata;
(Continue reading)


Gmane