]>
Commit | Line | Data |
---|---|---|
1 | From: Jamie Wellnitz <jamie.wellnitz@emulex.com> | |
2 | Subject: Update lpfc from 8.2.8.11 to 8.2.8.12 | |
3 | References: bnc#467713 | |
4 | ||
5 | lpfc 8.2.8.12 fixes a few bugs found in our qual cycle on SLES 11 RC2: | |
6 | ||
7 | * Changed version number to 8.2.8.12 | |
8 | * Fixed bug with sysfs fc_host WWNs not being updated after changing the WWNs | |
9 | (CR 87391) | |
10 | * Increased HBQ buffers to support 40KB SSC sequences (CR 86564) | |
11 | * Fixed a kernel panic while trying to delete authentication timer (CR 87144) | |
12 | ||
13 | ||
14 | Signed-off-by: Jamie Wellnitz <Jamie.Wellnitz@emulex.com> | |
15 | Signed-off-by: Hannes Reinecke <hare@suse.de> | |
16 | -- | |
17 | diff -urpN a/drivers/scsi/lpfc/lpfc_auth_access.c b/drivers/scsi/lpfc/lpfc_auth_access.c | |
18 | --- a/drivers/scsi/lpfc/lpfc_auth_access.c 2009-01-20 13:31:08.517461000 -0500 | |
19 | +++ b/drivers/scsi/lpfc/lpfc_auth_access.c 2009-01-20 13:31:08.600460000 -0500 | |
20 | @@ -223,6 +223,9 @@ lpfc_fc_sc_request(struct lpfc_vport *vp | |
21 | memcpy(fc_nl_sc_msg->data, auth_req, auth_req_len); | |
22 | fc_nl_sc_msg->tran_id = seq; | |
23 | ||
24 | + lpfc_fc_sc_add_timer(fc_sc_req, FC_SC_REQ_TIMEOUT, | |
25 | + lpfc_fc_sc_req_times_out); | |
26 | + | |
27 | spin_lock_irqsave(shost->host_lock, flags); | |
28 | list_add_tail(&fc_sc_req->rlist, &vport->sc_response_wait_queue); | |
29 | spin_unlock_irqrestore(shost->host_lock, flags); | |
30 | @@ -230,8 +233,6 @@ lpfc_fc_sc_request(struct lpfc_vport *vp | |
31 | (SCSI_NL_VID_TYPE_PCI | PCI_VENDOR_ID_EMULEX), | |
32 | (char *) fc_nl_sc_msg, len); | |
33 | kfree(fc_nl_sc_msg); | |
34 | - lpfc_fc_sc_add_timer(fc_sc_req, FC_SC_REQ_TIMEOUT, | |
35 | - lpfc_fc_sc_req_times_out); | |
36 | return 0; | |
37 | } | |
38 | ||
39 | diff -urpN a/drivers/scsi/lpfc/lpfc_init.c b/drivers/scsi/lpfc/lpfc_init.c | |
40 | --- a/drivers/scsi/lpfc/lpfc_init.c 2009-01-20 13:31:08.554460000 -0500 | |
41 | +++ b/drivers/scsi/lpfc/lpfc_init.c 2009-01-20 13:31:08.640460000 -0500 | |
42 | @@ -332,6 +332,7 @@ int | |
43 | lpfc_config_port_post(struct lpfc_hba *phba) | |
44 | { | |
45 | struct lpfc_vport *vport = phba->pport; | |
46 | + struct Scsi_Host *shost = lpfc_shost_from_vport(vport); | |
47 | LPFC_MBOXQ_t *pmb; | |
48 | MAILBOX_t *mb; | |
49 | struct lpfc_dmabuf *mp; | |
50 | @@ -389,6 +390,11 @@ lpfc_config_port_post(struct lpfc_hba *p | |
51 | sizeof (struct lpfc_name)); | |
52 | memcpy(&vport->fc_portname, &vport->fc_sparam.portName, | |
53 | sizeof (struct lpfc_name)); | |
54 | + | |
55 | + /* Update the fc_host data structures with new wwn. */ | |
56 | + fc_host_node_name(shost) = wwn_to_u64(vport->fc_nodename.u.wwn); | |
57 | + fc_host_port_name(shost) = wwn_to_u64(vport->fc_portname.u.wwn); | |
58 | + | |
59 | /* If no serial number in VPD data, use low 6 bytes of WWNN */ | |
60 | /* This should be consolidated into parse_vpd ? - mr */ | |
61 | if (phba->SerialNumber[0] == 0) { | |
62 | @@ -1765,8 +1771,10 @@ lpfc_stop_vport_timers(struct lpfc_vport | |
63 | del_timer_sync(&vport->els_tmofunc); | |
64 | del_timer_sync(&vport->fc_fdmitmo); | |
65 | while (!list_empty(&vport->sc_response_wait_queue)) { | |
66 | - fc_sc_req = list_get_first(&vport->sc_response_wait_queue, | |
67 | + list_remove_head(&vport->sc_response_wait_queue, fc_sc_req, | |
68 | struct fc_security_request, rlist); | |
69 | + if (!fc_sc_req) | |
70 | + continue; | |
71 | del_timer_sync(&fc_sc_req->timer); | |
72 | kfree(fc_sc_req); | |
73 | } | |
74 | diff -urpN a/drivers/scsi/lpfc/lpfc_sli.c b/drivers/scsi/lpfc/lpfc_sli.c | |
75 | --- a/drivers/scsi/lpfc/lpfc_sli.c 2009-01-20 13:31:08.580458000 -0500 | |
76 | +++ b/drivers/scsi/lpfc/lpfc_sli.c 2009-01-20 13:31:08.665462000 -0500 | |
77 | @@ -817,8 +817,8 @@ static struct lpfc_hbq_init lpfc_els_hbq | |
78 | .profile = 0, | |
79 | .ring_mask = (1 << LPFC_ELS_RING), | |
80 | .buffer_count = 0, | |
81 | - .init_count = 20, | |
82 | - .add_count = 5, | |
83 | + .init_count = 40, | |
84 | + .add_count = 40, | |
85 | }; | |
86 | ||
87 | /* HBQ for the extra ring if needed */ | |
88 | diff -urpN a/drivers/scsi/lpfc/lpfc_version.h b/drivers/scsi/lpfc/lpfc_version.h | |
89 | --- a/drivers/scsi/lpfc/lpfc_version.h 2009-01-20 13:31:08.583459000 -0500 | |
90 | +++ b/drivers/scsi/lpfc/lpfc_version.h 2009-01-20 13:31:08.668462000 -0500 | |
91 | @@ -18,7 +18,7 @@ | |
92 | * included with this package. * | |
93 | *******************************************************************/ | |
94 | ||
95 | -#define LPFC_DRIVER_VERSION "8.2.8.11" | |
96 | +#define LPFC_DRIVER_VERSION "8.2.8.12" | |
97 | ||
98 | #define LPFC_DRIVER_NAME "lpfc" | |
99 | #define LPFC_SP_DRIVER_HANDLER_NAME "lpfc:sp" |