]> git.karo-electronics.de Git - karo-tx-linux.git/blobdiff - drivers/infiniband/hw/mlx5/main.c
IB/mlx5: Assign DSCP for R-RoCE QPs Address Path
[karo-tx-linux.git] / drivers / infiniband / hw / mlx5 / main.c
index 1dea4073d83f6567f01ee607efe303c6d90c3f19..6a81f0273f4545d0f2d5c9918f83014a95ea9aaf 100644 (file)
@@ -325,6 +325,27 @@ __be16 mlx5_get_roce_udp_sport(struct mlx5_ib_dev *dev, u8 port_num,
        return cpu_to_be16(MLX5_CAP_ROCE(dev->mdev, r_roce_min_src_udp_port));
 }
 
+int mlx5_get_roce_gid_type(struct mlx5_ib_dev *dev, u8 port_num,
+                          int index, enum ib_gid_type *gid_type)
+{
+       struct ib_gid_attr attr;
+       union ib_gid gid;
+       int ret;
+
+       ret = ib_get_cached_gid(&dev->ib_dev, port_num, index, &gid, &attr);
+       if (ret)
+               return ret;
+
+       if (!attr.ndev)
+               return -ENODEV;
+
+       dev_put(attr.ndev);
+
+       *gid_type = attr.gid_type;
+
+       return 0;
+}
+
 static int mlx5_use_mad_ifc(struct mlx5_ib_dev *dev)
 {
        if (MLX5_CAP_GEN(dev->mdev, port_type) == MLX5_CAP_PORT_TYPE_IB)