RDMA/nes: Print IP address for critcal errors
authorFaisal Latif <faisal.latif@intel.com>
Mon, 26 Sep 2011 01:33:44 +0000 (20:33 -0500)
committerRoland Dreier <roland@purestorage.com>
Mon, 10 Oct 2011 17:51:21 +0000 (10:51 -0700)
Print the IP address of the remote host when a critical asynchronous event is
received.

Signed-off-by: Tatyana Nikolova <Tatyana.E.Nikolova@intel.com>
Signed-off-by: Faisal Latif <Faisal.Latif@intel.com>
Signed-off-by: Roland Dreier <roland@purestorage.com>
drivers/infiniband/hw/nes/nes_hw.c

index 43bebe805d2e343744aae0dee23f2a742f2fff1e..f85ccbad8fa23ab6f98cfdd8ebf19bb5c29c5b80 100644 (file)
@@ -110,6 +110,14 @@ static unsigned char *nes_tcp_state_str[] = {
 };
 #endif
 
+static inline void print_ip(struct nes_cm_node *cm_node)
+{
+       unsigned char *rem_addr;
+       if (cm_node) {
+               rem_addr = (unsigned char *)&cm_node->rem_addr;
+               printk(KERN_ERR PFX "Remote IP addr: %pI4\n", rem_addr);
+       }
+}
 
 /**
  * nes_nic_init_timer_defaults
@@ -3694,6 +3702,7 @@ 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);
+                       print_ip(nesqp->cm_node);
                        if (!atomic_read(&nesqp->close_timer_started))
                                nes_terminate_connection(nesdev, nesqp, aeqe, IB_EVENT_QP_FATAL);
                        break;