[ewg] [PATCH 1/4] RDMA/nes: Fix terminate connection

Faisal Latif faisal.latif at intel.com
Sun Sep 25 19:15:56 PDT 2011


Fixes a crash that occurs during close when error async event is received.
Terminate message is not sent to the remote node if already processing close.

Signed-off-by: Tatyana Nikolova <Tatyana.E.Nikolova at intel.com>
Signed-off-by: Faisal Latif <Faisal.Latif at intel.com>

diff --git a/kernel_patches/fixes/nes_0058_terminate_fix.patch b/kernel_patches/fixes/nes_0058_terminate_fix.patch
new file mode 100644
index 0000000..429dfd0
--- /dev/null
+++ b/kernel_patches/fixes/nes_0058_terminate_fix.patch
@@ -0,0 +1,18 @@
+diff --git a/drivers/infiniband/hw/nes/nes_hw.c b/drivers/infiniband/hw/nes/nes_hw.c
+index 13cde1a..855a062 100644
+--- a/drivers/infiniband/hw/nes/nes_hw.c
++++ b/drivers/infiniband/hw/nes/nes_hw.c
+@@ -3701,7 +3701,9 @@ static void nes_process_iwarp_aeqe(struct nes_device *nesdev,
+		case NES_AEQE_AEID_ROE_INVALID_RDMA_WRITE_OR_READ_RESP:
+			printk(KERN_ERR PFX "QP[%u] async_event_id=0x%04X IB_EVENT_QP_FATAL\n",
+					nesqp->hwqp.qp_id, async_event_id);
+-			nes_terminate_connection(nesdev, nesqp, aeqe, IB_EVENT_QP_FATAL);
++			if (!atomic_read(&nesqp->close_timer_started)) {
++				nes_terminate_connection(nesdev, nesqp, aeqe, IB_EVENT_QP_FATAL);
++			}
+			break;
+
+		case NES_AEQE_AEID_CQ_OPERATION_ERROR:
+--
+1.7.4.2
+
--
1.7.4.2




More information about the ewg mailing list