fix wrong MLID calculation in MFT record dump.

Signed-off-by: Eli Dorfman <[email protected]>
---
 infiniband-diags/src/saquery.c |    8 +++++---
 1 files changed, 5 insertions(+), 3 deletions(-)

diff --git a/infiniband-diags/src/saquery.c b/infiniband-diags/src/saquery.c
index 5e9a5ad..cb4fc18 100644
--- a/infiniband-diags/src/saquery.c
+++ b/infiniband-diags/src/saquery.c
@@ -788,16 +788,18 @@ static void dump_one_mft_record(void *data)
        unsigned block = cl_ntoh16(mftr->position_block_num) &
            IB_MCAST_BLOCK_ID_MASK_HO;
        int i;
+       unsigned offset;
+
        printf("MFT Record dump:\n"
               "\t\tLID........................%u\n"
               "\t\tPosition...................%u\n"
               "\t\tBlock......................%u\n"
               "\t\tMFT:\n\t\tMLID\tPort Mask\n",
               cl_ntoh16(mftr->lid), position, block);
+       offset = IB_LID_MCAST_START_HO + block * 32;
        for (i = 0; i < IB_MCAST_BLOCK_SIZE; i++)
-               printf("\t\t0x%x\t0x%x\n",
-                      IB_LID_MCAST_START_HO + block * 64 + i,
-                      cl_ntoh16(mftr->mft[i]));
+               printf("\t\t0x%04x\t0x%04x\n",
+                      offset + i, cl_ntoh16(mftr->mft[i]));
        printf("\n");
 }
 
-- 
1.5.5

--
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

Reply via email to