]> git.ipfire.org Git - thirdparty/kernel/stable-queue.git/blame - releases/4.14.34/i40iw-fix-sequence-number-for-the-first-partial-fpdu.patch
Linux 4.14.95
[thirdparty/kernel/stable-queue.git] / releases / 4.14.34 / i40iw-fix-sequence-number-for-the-first-partial-fpdu.patch
CommitLineData
df1b7722
GKH
1From foo@baz Mon Apr 9 13:58:16 CEST 2018
2From: Shiraz Saleem <shiraz.saleem@intel.com>
3Date: Fri, 22 Dec 2017 09:46:59 -0600
4Subject: i40iw: Fix sequence number for the first partial FPDU
5
6From: Shiraz Saleem <shiraz.saleem@intel.com>
7
8
9[ Upstream commit df8b13a1b23356d01dfc4647a5629cdb0f4ce566 ]
10
11Partial FPDU processing is broken as the sequence number
12for the first partial FPDU is wrong due to incorrect
13Q2 buffer offset. The offset should be 64 rather than 16.
14
15Fixes: 786c6adb3a94 ("i40iw: add puda code")
16Signed-off-by: Shiraz Saleem <shiraz.saleem@intel.com>
17Signed-off-by: Jason Gunthorpe <jgg@mellanox.com>
18Signed-off-by: Sasha Levin <alexander.levin@microsoft.com>
19Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
20---
21 drivers/infiniband/hw/i40iw/i40iw_d.h | 1 +
22 drivers/infiniband/hw/i40iw/i40iw_puda.c | 2 +-
23 2 files changed, 2 insertions(+), 1 deletion(-)
24
25--- a/drivers/infiniband/hw/i40iw/i40iw_d.h
26+++ b/drivers/infiniband/hw/i40iw/i40iw_d.h
27@@ -93,6 +93,7 @@
28 #define RDMA_OPCODE_MASK 0x0f
29 #define RDMA_READ_REQ_OPCODE 1
30 #define Q2_BAD_FRAME_OFFSET 72
31+#define Q2_FPSN_OFFSET 64
32 #define CQE_MAJOR_DRV 0x8000
33
34 #define I40IW_TERM_SENT 0x01
35--- a/drivers/infiniband/hw/i40iw/i40iw_puda.c
36+++ b/drivers/infiniband/hw/i40iw/i40iw_puda.c
37@@ -1376,7 +1376,7 @@ static void i40iw_ieq_handle_exception(s
38 u32 *hw_host_ctx = (u32 *)qp->hw_host_ctx;
39 u32 rcv_wnd = hw_host_ctx[23];
40 /* first partial seq # in q2 */
41- u32 fps = qp->q2_buf[16];
42+ u32 fps = *(u32 *)(qp->q2_buf + Q2_FPSN_OFFSET);
43 struct list_head *rxlist = &pfpdu->rxlist;
44 struct list_head *plist;
45