Skip to contentSkip to conversation

RDMA/nes: Modified FIN handling causes hang in A0 cards

PATCH In review Faisal Latif 2 participants 2 messages Sep 1, 2010 – Sep 8, 2010 InfiniBand

lore
Share & tools
lore
#0 lore raw

PATCH 1/1 RDMA/nes: Modified FIN handling causes hang in A0 cards

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.

---
 drivers/infiniband/hw/nes/nes_hw.c |    3 ++-
 drivers/infiniband/hw/nes/nes_hw.h |    1 +
 2 files changed, 3 insertions(+), 1 deletions(-)
drivers/infiniband/hw/nes/nes_hw.c +2 -1
index bfdad33..57fc45a 100644
@@ -3468,7 +3468,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;
drivers/infiniband/hw/nes/nes_hw.h +1 -0
index aa9183d..1204c34 100644
@@ -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,
Signature · 6 lines
1.6.0

--
To unsubscribe from this list: send the line "unsubscribe linux-rdma" in
the body of a message to [email protected]
More majordomo info at  http://vger.kernel.org/majordomo-info.html