IB/mlx4: Use correct subnet-prefix in QP1 mads under SR-IOV
[linux-2.6-block.git] / drivers / infiniband / hw / mlx4 / qp.c
index e398c04903fa22c0ee6026695b24d901c08b3297..7fb9629bd12b9736c181d7c5e0935ff5b7524d9a 100644 (file)
@@ -2502,8 +2502,9 @@ static int build_mlx_header(struct mlx4_ib_sqp *sqp, struct ib_ud_wr *wr,
                                 * we must use our own cache
                                 */
                                sqp->ud_header.grh.source_gid.global.subnet_prefix =
-                                       to_mdev(ib_dev)->sriov.demux[sqp->qp.port - 1].
-                                                              subnet_prefix;
+                                       cpu_to_be64(atomic64_read(&(to_mdev(ib_dev)->sriov.
+                                                                   demux[sqp->qp.port - 1].
+                                                                   subnet_prefix)));
                                sqp->ud_header.grh.source_gid.global.interface_id =
                                        to_mdev(ib_dev)->sriov.demux[sqp->qp.port - 1].
                                                       guid_cache[ah->av.ib.gid_index];