IB/mlx5: Support default partition key for representor port
authorParav Pandit <parav@nvidia.com>
Wed, 27 Jan 2021 15:00:03 +0000 (17:00 +0200)
committerJason Gunthorpe <jgg@nvidia.com>
Tue, 2 Feb 2021 23:31:44 +0000 (19:31 -0400)
Representor port has only one default pkey.  Hence have simpler query pkey
callback or it.

Link: https://lore.kernel.org/r/20210127150010.1876121-4-leon@kernel.org
Signed-off-by: Parav Pandit <parav@nvidia.com>
Signed-off-by: Leon Romanovsky <leonro@nvidia.com>
Signed-off-by: Jason Gunthorpe <jgg@nvidia.com>
drivers/infiniband/hw/mlx5/main.c

index 477c90b..40fb86d 100644 (file)
@@ -1400,6 +1400,16 @@ static int mlx5_ib_rep_query_port(struct ib_device *ibdev, u8 port,
        return ret;
 }
 
+static int mlx5_ib_rep_query_pkey(struct ib_device *ibdev, u8 port, u16 index,
+                                 u16 *pkey)
+{
+       /* Default special Pkey for representor device port as per the
+        * IB specification 1.3 section 10.9.1.2.
+        */
+       *pkey = 0xffff;
+       return 0;
+}
+
 static int mlx5_ib_query_gid(struct ib_device *ibdev, u8 port, int index,
                             union ib_gid *gid)
 {
@@ -4209,6 +4219,7 @@ static int mlx5_ib_stage_non_default_cb(struct mlx5_ib_dev *dev)
 static const struct ib_device_ops mlx5_ib_dev_port_rep_ops = {
        .get_port_immutable = mlx5_port_rep_immutable,
        .query_port = mlx5_ib_rep_query_port,
+       .query_pkey = mlx5_ib_rep_query_pkey,
 };
 
 static int mlx5_ib_stage_raw_eth_non_default_cb(struct mlx5_ib_dev *dev)