Patch "[PATCH 057/135] lpfc: Fix external loopback failure." has been added to the 4.4-stable tree
Subsystems (3)
This is a note to let you know that I've just added the patch titled
[PATCH 057/135] lpfc: Fix external loopback failure.
to the 4.4-stable tree which can be found at:
http://www.kernel.org/git/?p=linux/kernel/git/stable/stable-queue.git;a=summary
The filename of the patch is:
0057-lpfc-Fix-external-loopback-failure.patch
and it can be found in the queue-4.4 subdirectory.
If you, or anyone else, feels it should not be added to the stable tree, please let <[email protected]> know about it.
Quoted 1 line
From
1a7ae138e2131e9828f50eb577dc964efbef0d68Mon Sep 17 00:00:00 2001
From: James Smart <[email protected]>
Date: Wed, 16 Dec 2015 18:12:04 -0500
Subject: [PATCH 057/135] lpfc: Fix external loopback failure.
[ Upstream commit 4360ca9c24388e44cb0e14861a62fff43cf225c0 ]
Fix external loopback failure.
Rx sequence reassembly was incorrect.
--- drivers/scsi/lpfc/lpfc_sli.c | 15 +++++++++++++-- 1 file changed, 13 insertions(+), 2 deletions(-)
drivers/scsi/lpfc/lpfc_sli.c +13 -2
@@ -14842,10 +14842,12 @@ lpfc_fc_frame_add(struct lpfc_vport *vpostruct lpfc_dmabuf *h_buf;struct hbq_dmabuf *seq_dmabuf =NULL ;struct hbq_dmabuf *temp_dmabuf =NULL ; +uint8_t found =0 ;INIT_LIST_HEAD (&dmabuf->dbuf.list); dmabuf->time_stamp = jiffies; new_hdr = (struct fc_frame_header *)dmabuf->hbuf.virt; +/* Use the hdr_buf to find the sequence that this frame belongs to */ list_for_each_entry (h_buf, &vport->rcv_buffer_list, list) { temp_hdr = (struct fc_frame_header *)h_buf->virt;
@@ -14885,7 +14887,8 @@ lpfc_fc_frame_add(struct lpfc_vport *vporeturn seq_dmabuf; }/* find the correct place in the sequence to insert this frame */ -list_for_each_entry_reverse (d_buf, &seq_dmabuf->dbuf.list, list) { + d_buf =list_entry (seq_dmabuf->dbuf.list.prev,typeof (*d_buf), list); +while (!found) { temp_dmabuf = container_of(d_buf, struct hbq_dmabuf, dbuf); temp_hdr = (struct fc_frame_header *)temp_dmabuf->hbuf.virt;/*
@@ -14895,9 +14898,17 @@ lpfc_fc_frame_add(struct lpfc_vport *vpoif (be16_to_cpu (new_hdr->fh_seq_cnt) >be16_to_cpu (temp_hdr->fh_seq_cnt)) {list_add (&dmabuf->dbuf.list, &temp_dmabuf->dbuf.list); -return seq_dmabuf; + found =1 ; +break ; } + +if (&d_buf->list == &seq_dmabuf->dbuf.list) +break ; + d_buf =list_entry (d_buf->list.prev,typeof (*d_buf), list); } + +if (found) +return seq_dmabuf;return NULL ; }
Patches currently in stable-queue which might be from [email protected] are
queue-4.4/0056-lpfc-Fix-mbox-reuse-in-PLOGI-completion.patch queue-4.4/0052-lpfc-Fix-driver-crash-when-module-parameter-lpfc_fcp.patch queue-4.4/0121-lpfc-Fix-DMA-faults-observed-upon-plugging-loopback-.patch queue-4.4/0049-lpfc-Fix-FCF-Infinite-loop-in-lpfc_sli4_fcf_rr_next_.patch queue-4.4/0055-lpfc-Fix-RDP-ACC-being-too-long.patch queue-4.4/0051-lpfc-Fix-RegLogin-failed-error-seen-on-Lancer-FC-dur.patch queue-4.4/0054-lpfc-Fix-RDP-Speed-reporting.patch queue-4.4/0057-lpfc-Fix-external-loopback-failure.patch queue-4.4/0053-lpfc-Fix-crash-in-fcp-command-completion-path.patch queue-4.4/0050-lpfc-Fix-the-FLOGI-discovery-logic-to-comply-with-T1.patch