IB/mthca: Set GRH:HopLimit when building MLX headers
authorRolf Manderscheid <rvm@obsidianresearch.com>
Thu, 17 May 2007 15:45:48 +0000 (09:45 -0600)
committerRoland Dreier <rolandd@cisco.com>
Sat, 19 May 2007 15:51:56 +0000 (08:51 -0700)
Global CM packets used by rmda_cm were being sent with a GRH:hopLimit
of zero, causing them to be dropped by the router.  The problem is a
missing initialization of the hop_limit field in mthca_read_ah(),
which was called by build_mlx_header() when sending a MAD on QP1.

Signed-off-by: Rolf Manderscheid <rvm@obsidianresearch.com>
Signed-off-by: Roland Dreier <rolandd@cisco.com>
drivers/infiniband/hw/mthca/mthca_av.c

index 27caf3b0648a64d69944a3bf7fee8c0bfd1f9609..4b111a852ff65b83b8479e6c3f6ce7fc79cb1ffe 100644 (file)
@@ -279,6 +279,7 @@ int mthca_read_ah(struct mthca_dev *dev, struct mthca_ah *ah,
                        (be32_to_cpu(ah->av->sl_tclass_flowlabel) >> 20) & 0xff;
                header->grh.flow_label    =
                        ah->av->sl_tclass_flowlabel & cpu_to_be32(0xfffff);
+               header->grh.hop_limit     = ah->av->hop_limit;
                ib_get_cached_gid(&dev->ib_dev,
                                  be32_to_cpu(ah->av->port_pd) >> 24,
                                  ah->av->gid_index % dev->limits.gid_table_len,