The changing state to CLOSING when FIN is received causes A0 cards to hang and
the interface will not be active. Now in the FIN handling, a check is made
if it is A0 card or not.

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

diff --git a/kernel_patches/fixes/nes_0045_fin_back_compat.patch 
b/kernel_patches/fixes/nes_0045_fin_back_compat.patch
new file mode 100644
index 0000000..82f993a
--- /dev/null
+++ b/kernel_patches/fixes/nes_0045_fin_back_compat.patch
@@ -0,0 +1,29 @@
+diff --git a/drivers/infiniband/hw/nes/nes_hw.c 
b/drivers/infiniband/hw/nes/nes_hw.c
+index fe86528..ef4efaa 100644
+--- a/drivers/infiniband/hw/nes/nes_hw.c
++++ b/drivers/infiniband/hw/nes/nes_hw.c
+@@ -3470,7 +3470,8 @@ static void nes_process_iwarp_aeqe(struct nes_device 
*nesdev,
+                               return; /* Ignore it, wait for close complete */
+                       if (atomic_inc_return(&nesqp->close_timer_started) == 
1) {
+                               if ((tcp_state == 
NES_AEQE_TCP_STATE_CLOSE_WAIT) &&
+-                                      (nesqp->ibqp_state == IB_QPS_RTS)) {
++                                      (nesqp->ibqp_state == IB_QPS_RTS) &&
++                                      ((nesadapter->eeprom_version >> 16) != 
NES_A0)) {
+                                       spin_lock_irqsave(&nesqp->lock, flags);
+                                       nesqp->hw_iwarp_state = iwarp_state;
+                                       nesqp->hw_tcp_state = tcp_state;
+diff --git a/drivers/infiniband/hw/nes/nes_hw.h 
b/drivers/infiniband/hw/nes/nes_hw.h
+index ecd8494..19c5633 100644
+--- a/drivers/infiniband/hw/nes/nes_hw.h
++++ b/drivers/infiniband/hw/nes/nes_hw.h
+@@ -45,6 +45,7 @@
+ #define NES_PHY_TYPE_KR              9
+
+ #define NES_MULTICAST_PF_MAX 8
++#define NES_A0 3
+
+ enum pci_regs {
+       NES_INT_STAT = 0x0000,
+--
+1.6.0
+
-- 
1.6.0

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

Reply via email to