From: Dean Luick <dean.lu...@intel.com>

Add aeth name syndrome decode

Reviewed-by: Mike Marciniszyn <mike.marcinis...@intel.com>
Signed-off-by: Dean Luick <dean.lu...@intel.com>
Signed-off-by: Jubin John <jubin.j...@intel.com>
---
 drivers/staging/rdma/hfi1/trace.c |   29 ++++++++++++++++++++++-------
 1 files changed, 22 insertions(+), 7 deletions(-)

diff --git a/drivers/staging/rdma/hfi1/trace.c 
b/drivers/staging/rdma/hfi1/trace.c
index f55b751..10122e8 100644
--- a/drivers/staging/rdma/hfi1/trace.c
+++ b/drivers/staging/rdma/hfi1/trace.c
@@ -67,7 +67,7 @@ u8 ibhdr_exhdr_len(struct hfi1_ib_header *hdr)
 
 #define IMM_PRN  "imm %d"
 #define RETH_PRN "reth vaddr 0x%.16llx rkey 0x%.8x dlen 0x%.8x"
-#define AETH_PRN "aeth syn 0x%.2x msn 0x%.8x"
+#define AETH_PRN "aeth syn 0x%.2x %s msn 0x%.8x"
 #define DETH_PRN "deth qkey 0x%.8x sqpn 0x%.6x"
 #define ATOMICACKETH_PRN "origdata %lld"
 #define ATOMICETH_PRN "vaddr 0x%llx rkey 0x%.8x sdata %lld cdata %lld"
@@ -79,6 +79,19 @@ static u64 ib_u64_get(__be32 *p)
        return ((u64)be32_to_cpu(p[0]) << 32) | be32_to_cpu(p[1]);
 }
 
+static const char *parse_syndrome(u8 syndrome)
+{
+       switch (syndrome >> 5) {
+       case 0:
+               return "ACK";
+       case 1:
+               return "RNRNAK";
+       case 3:
+               return "NAK";
+       }
+       return "";
+}
+
 const char *parse_everbs_hdrs(
        struct trace_seq *p,
        u8 opcode,
@@ -124,16 +137,18 @@ const char *parse_everbs_hdrs(
        case OP(RC, RDMA_READ_RESPONSE_LAST):
        case OP(RC, RDMA_READ_RESPONSE_ONLY):
        case OP(RC, ACKNOWLEDGE):
-               trace_seq_printf(p, AETH_PRN,
-                       be32_to_cpu(eh->aeth) >> 24,
-                       be32_to_cpu(eh->aeth) & HFI1_MSN_MASK);
+               trace_seq_printf(p, AETH_PRN, be32_to_cpu(eh->aeth) >> 24,
+                                parse_syndrome(be32_to_cpu(eh->aeth) >> 24),
+                                be32_to_cpu(eh->aeth) & HFI1_MSN_MASK);
                break;
        /* aeth + atomicacketh */
        case OP(RC, ATOMIC_ACKNOWLEDGE):
                trace_seq_printf(p, AETH_PRN " " ATOMICACKETH_PRN,
-                       (be32_to_cpu(eh->at.aeth) >> 24) & 0xff,
-                       be32_to_cpu(eh->at.aeth) & HFI1_MSN_MASK,
-                       (unsigned long long)ib_u64_get(eh->at.atomic_ack_eth));
+                                be32_to_cpu(eh->at.aeth) >> 24,
+                                parse_syndrome(be32_to_cpu(eh->at.aeth) >> 24),
+                                be32_to_cpu(eh->at.aeth) & HFI1_MSN_MASK,
+                                (unsigned long long)
+                                ib_u64_get(eh->at.atomic_ack_eth));
                break;
        /* atomiceth */
        case OP(RC, COMPARE_SWAP):
-- 
1.7.0.7

_______________________________________________
devel mailing list
de...@linuxdriverproject.org
http://driverdev.linuxdriverproject.org/mailman/listinfo/driverdev-devel

Reply via email to