]> git.ipfire.org Git - people/teissler/ipfire-2.x.git/blobdiff - src/patches/suse-2.6.27.31/patches.drivers/lpfc-8.2.8.12-update
Reenabled linux-xen, added patches for Xen Kernel Version 2.6.27.31,
[people/teissler/ipfire-2.x.git] / src / patches / suse-2.6.27.31 / patches.drivers / lpfc-8.2.8.12-update
diff --git a/src/patches/suse-2.6.27.31/patches.drivers/lpfc-8.2.8.12-update b/src/patches/suse-2.6.27.31/patches.drivers/lpfc-8.2.8.12-update
new file mode 100644 (file)
index 0000000..9c925f2
--- /dev/null
@@ -0,0 +1,99 @@
+From: Jamie Wellnitz <jamie.wellnitz@emulex.com>
+Subject: Update lpfc from 8.2.8.11 to 8.2.8.12
+References: bnc#467713
+
+lpfc 8.2.8.12 fixes a few bugs found in our qual cycle on SLES 11 RC2:
+
+* Changed version number to 8.2.8.12
+* Fixed bug with sysfs fc_host WWNs not being updated after changing the WWNs
+(CR 87391)
+* Increased HBQ buffers to support 40KB SSC sequences (CR 86564)
+* Fixed a kernel panic while trying to delete authentication timer (CR 87144)
+
+
+Signed-off-by: Jamie Wellnitz <Jamie.Wellnitz@emulex.com>
+Signed-off-by: Hannes Reinecke <hare@suse.de>
+--
+diff -urpN a/drivers/scsi/lpfc/lpfc_auth_access.c b/drivers/scsi/lpfc/lpfc_auth_access.c
+--- a/drivers/scsi/lpfc/lpfc_auth_access.c     2009-01-20 13:31:08.517461000 -0500
++++ b/drivers/scsi/lpfc/lpfc_auth_access.c     2009-01-20 13:31:08.600460000 -0500
+@@ -223,6 +223,9 @@ lpfc_fc_sc_request(struct lpfc_vport *vp
+       memcpy(fc_nl_sc_msg->data, auth_req, auth_req_len);
+       fc_nl_sc_msg->tran_id = seq;
++      lpfc_fc_sc_add_timer(fc_sc_req, FC_SC_REQ_TIMEOUT,
++                           lpfc_fc_sc_req_times_out);
++
+       spin_lock_irqsave(shost->host_lock, flags);
+       list_add_tail(&fc_sc_req->rlist, &vport->sc_response_wait_queue);
+       spin_unlock_irqrestore(shost->host_lock, flags);
+@@ -230,8 +233,6 @@ lpfc_fc_sc_request(struct lpfc_vport *vp
+                               (SCSI_NL_VID_TYPE_PCI | PCI_VENDOR_ID_EMULEX),
+                               (char *) fc_nl_sc_msg, len);
+       kfree(fc_nl_sc_msg);
+-      lpfc_fc_sc_add_timer(fc_sc_req, FC_SC_REQ_TIMEOUT,
+-                           lpfc_fc_sc_req_times_out);
+       return 0;
+ }
+diff -urpN a/drivers/scsi/lpfc/lpfc_init.c b/drivers/scsi/lpfc/lpfc_init.c
+--- a/drivers/scsi/lpfc/lpfc_init.c    2009-01-20 13:31:08.554460000 -0500
++++ b/drivers/scsi/lpfc/lpfc_init.c    2009-01-20 13:31:08.640460000 -0500
+@@ -332,6 +332,7 @@ int
+ lpfc_config_port_post(struct lpfc_hba *phba)
+ {
+       struct lpfc_vport *vport = phba->pport;
++      struct Scsi_Host *shost = lpfc_shost_from_vport(vport);
+       LPFC_MBOXQ_t *pmb;
+       MAILBOX_t *mb;
+       struct lpfc_dmabuf *mp;
+@@ -389,6 +390,11 @@ lpfc_config_port_post(struct lpfc_hba *p
+              sizeof (struct lpfc_name));
+       memcpy(&vport->fc_portname, &vport->fc_sparam.portName,
+              sizeof (struct lpfc_name));
++
++      /* Update the fc_host data structures with new wwn. */
++      fc_host_node_name(shost) = wwn_to_u64(vport->fc_nodename.u.wwn);
++      fc_host_port_name(shost) = wwn_to_u64(vport->fc_portname.u.wwn);
++
+       /* If no serial number in VPD data, use low 6 bytes of WWNN */
+       /* This should be consolidated into parse_vpd ? - mr */
+       if (phba->SerialNumber[0] == 0) {
+@@ -1765,8 +1771,10 @@ lpfc_stop_vport_timers(struct lpfc_vport
+       del_timer_sync(&vport->els_tmofunc);
+       del_timer_sync(&vport->fc_fdmitmo);
+       while (!list_empty(&vport->sc_response_wait_queue)) {
+-              fc_sc_req = list_get_first(&vport->sc_response_wait_queue,
++              list_remove_head(&vport->sc_response_wait_queue, fc_sc_req,
+                                          struct fc_security_request, rlist);
++              if (!fc_sc_req)
++                      continue;
+               del_timer_sync(&fc_sc_req->timer);
+               kfree(fc_sc_req);
+       }
+diff -urpN a/drivers/scsi/lpfc/lpfc_sli.c b/drivers/scsi/lpfc/lpfc_sli.c
+--- a/drivers/scsi/lpfc/lpfc_sli.c     2009-01-20 13:31:08.580458000 -0500
++++ b/drivers/scsi/lpfc/lpfc_sli.c     2009-01-20 13:31:08.665462000 -0500
+@@ -817,8 +817,8 @@ static struct lpfc_hbq_init lpfc_els_hbq
+       .profile = 0,
+       .ring_mask = (1 << LPFC_ELS_RING),
+       .buffer_count = 0,
+-      .init_count = 20,
+-      .add_count = 5,
++      .init_count = 40,
++      .add_count = 40,
+ };
+ /* HBQ for the extra ring if needed */
+diff -urpN a/drivers/scsi/lpfc/lpfc_version.h b/drivers/scsi/lpfc/lpfc_version.h
+--- a/drivers/scsi/lpfc/lpfc_version.h 2009-01-20 13:31:08.583459000 -0500
++++ b/drivers/scsi/lpfc/lpfc_version.h 2009-01-20 13:31:08.668462000 -0500
+@@ -18,7 +18,7 @@
+  * included with this package.                                     *
+  *******************************************************************/
+-#define LPFC_DRIVER_VERSION "8.2.8.11"
++#define LPFC_DRIVER_VERSION "8.2.8.12"
+ #define LPFC_DRIVER_NAME              "lpfc"
+ #define LPFC_SP_DRIVER_HANDLER_NAME   "lpfc:sp"