IB/hfi1: Fix output trace issues from 16B change
authorMike Marciniszyn <mike.marciniszyn@intel.com>
Mon, 2 Oct 2017 18:04:11 +0000 (11:04 -0700)
committerDoug Ledford <dledford@redhat.com>
Wed, 4 Oct 2017 19:39:44 +0000 (15:39 -0400)
The 16B changes to the output side of the header trace introduced
two issues:

1. An uninitialized field "l4" for 9B packets

   This field needs to be given a value of 0 for 9B
   packets to insure a correct 9B trace.

   The fix adds a new define to insure that there is a dummy
   default for 9B packets to insure the correct string
   is decoded.

2. Use of entry vs. __entry in field references

Fixes: Commit 863cf89d472f ("IB/hfi1: Add 16B trace support")
Reported-by: Kaike Wan <kaike.wan@intel.com>
Reviewed-by: Don Hiatt <don.hiatt@intel.com>
Signed-off-by: Mike Marciniszyn <mike.marciniszyn@intel.com>
Signed-off-by: Dennis Dalessandro <dennis.dalessandro@intel.com>
Signed-off-by: Doug Ledford <dledford@redhat.com>
drivers/infiniband/hw/hfi1/hfi.h
drivers/infiniband/hw/hfi1/trace_ibhdrs.h

index cb74ae8b0991cc60d10ad4930043c49b23a31998..44a2c8f8687460452dc37ce8ec946d21a4a74f79 100644 (file)
@@ -390,6 +390,7 @@ struct hfi1_packet {
 /*
  * OPA 16B L2/L4 Encodings
  */
+#define OPA_16B_L4_9B          0x00
 #define OPA_16B_L2_TYPE                0x02
 #define OPA_16B_L4_IB_LOCAL    0x09
 #define OPA_16B_L4_IB_GLOBAL   0x0A
index 6dd0d639f27ded9b8a265d164dbafa9044b67730..fb631278eccdede348e7c96fd845cbc48cea5a9c 100644 (file)
@@ -334,7 +334,7 @@ DECLARE_EVENT_CLASS(hfi1_output_ibhdr_template,
                                                         &__entry->dlid,
                                                         &__entry->slid);
 
-                               if (entry->l4 == OPA_16B_L4_IB_LOCAL)
+                               if (__entry->l4 == OPA_16B_L4_IB_LOCAL)
                                        ohdr = &opah->opah.u.oth;
                                else
                                        ohdr = &opah->opah.u.l.oth;
@@ -348,6 +348,7 @@ DECLARE_EVENT_CLASS(hfi1_output_ibhdr_template,
                                                         &__entry->psn,
                                                         &__entry->qpn);
                        } else {
+                               __entry->l4 = OPA_16B_L4_9B;
                                hfi1_trace_parse_9b_hdr(&opah->ibh, sc5,
                                                        &__entry->lnh,
                                                        &__entry->lver,
@@ -356,7 +357,7 @@ DECLARE_EVENT_CLASS(hfi1_output_ibhdr_template,
                                                        &__entry->len,
                                                        &__entry->dlid,
                                                        &__entry->slid);
-                               if (entry->lnh == HFI1_LRH_BTH)
+                               if (__entry->lnh == HFI1_LRH_BTH)
                                        ohdr = &opah->ibh.u.oth;
                                else
                                        ohdr = &opah->ibh.u.l.oth;