modify_qp() closes qp and AE handling also attempts to close qp
causing system to crash. Now we check the state of QP before
processing the AE.

Signed-off-by: Faisal Latif <[email protected]>
---
 kernel_patches/fixes/nes_0034_disconnect.patch |   30 ++++++++++++++++++++++++
 1 files changed, 30 insertions(+), 0 deletions(-)
 create mode 100644 kernel_patches/fixes/nes_0034_disconnect.patch

diff --git a/kernel_patches/fixes/nes_0034_disconnect.patch 
b/kernel_patches/fixes/nes_0034_disconnect.patch
new file mode 100644
index 0000000..ecc6901
--- /dev/null
+++ b/kernel_patches/fixes/nes_0034_disconnect.patch
@@ -0,0 +1,30 @@
+diff --git a/drivers/infiniband/hw/nes/nes_hw.c 
b/drivers/infiniband/hw/nes/nes_hw.c
+index 5e83962..4f917ee 100644
+--- a/drivers/infiniband/hw/nes/nes_hw.c
++++ b/drivers/infiniband/hw/nes/nes_hw.c
+@@ -3421,6 +3421,7 @@ static void nes_process_iwarp_aeqe(struct nes_device 
*nesdev,
+       struct nes_adapter *nesadapter = nesdev->nesadapter;
+       u32 aeq_info;
+       u32 next_iwarp_state = 0;
++      u32 aeqe_cq_id;
+       u16 async_event_id;
+       u8 tcp_state;
+       u8 iwarp_state;
+@@ -3448,6 +3449,14 @@ static void nes_process_iwarp_aeqe(struct nes_device 
*nesdev,
+                       
le32_to_cpu(aeqe->aeqe_words[NES_AEQE_COMP_QP_CQ_ID_IDX]), aeqe,
+                       nes_tcp_state_str[tcp_state], 
nes_iwarp_state_str[iwarp_state]);
+
++      aeqe_cq_id = le32_to_cpu(aeqe->aeqe_words[NES_AEQE_COMP_QP_CQ_ID_IDX]);
++      if (aeq_info & NES_AEQE_QP) {
++              if ((!nes_is_resource_allocated(nesadapter, 
nesadapter->allocated_qps,
++                              aeqe_cq_id)) ||
++                              (atomic_read(&nesqp->close_timer_started)))
++                      return;
++      }
++
+       switch (async_event_id) {
+               case NES_AEQE_AEID_LLP_FIN_RECEIVED:
+                       if (nesqp->term_flags)
+--
+1.6.0
+
-- 
1.6.0

_______________________________________________
ewg mailing list
[email protected]
http://lists.openfabrics.org/cgi-bin/mailman/listinfo/ewg

Reply via email to