Skip to content

Commit ccbbfe0

Browse files
avihai1122rleon
authored andcommitted
net/mlx5: Update relaxed ordering read HCA capabilities
Rename existing HCA capability relaxed_ordering_read to relaxed_ordering_read_pci_enabled. This is in accordance with recent PRM change to better describe the capability, as it's set only if both the device supports relaxed ordering (RO) read and RO is enabled in PCI config space. In addition, add new HCA capability relaxed_ordering_read which is set if the device supports RO read, regardless of RO in PCI config space. This will be used in the following patch to allow RO in VFs and VMs. Signed-off-by: Avihai Horon <avihaih@nvidia.com> Reviewed-by: Shay Drory <shayd@nvidia.com> Link: https://lore.kernel.org/r/caa0002fd8135086357dfcc368e2f5cc73b08480.1681131553.git.leon@kernel.org Reviewed-by: Jacob Keller <jacob.e.keller@intel.com> Signed-off-by: Leon Romanovsky <leon@kernel.org>
1 parent d43b020 commit ccbbfe0

4 files changed

Lines changed: 8 additions & 6 deletions

File tree

drivers/infiniband/hw/mlx5/mr.c

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -70,7 +70,8 @@ static void set_mkc_access_pd_addr_fields(void *mkc, int acc, u64 start_addr,
7070
if (acc & IB_ACCESS_RELAXED_ORDERING) {
7171
if (MLX5_CAP_GEN(dev->mdev, relaxed_ordering_write))
7272
MLX5_SET(mkc, mkc, relaxed_ordering_write, 1);
73-
if (MLX5_CAP_GEN(dev->mdev, relaxed_ordering_read) &&
73+
if (MLX5_CAP_GEN(dev->mdev,
74+
relaxed_ordering_read_pci_enabled) &&
7475
pcie_relaxed_ordering_enabled(dev->mdev->pdev))
7576
MLX5_SET(mkc, mkc, relaxed_ordering_read, 1);
7677
}
@@ -791,7 +792,7 @@ static int get_unchangeable_access_flags(struct mlx5_ib_dev *dev,
791792
ret |= IB_ACCESS_RELAXED_ORDERING;
792793

793794
if ((access_flags & IB_ACCESS_RELAXED_ORDERING) &&
794-
MLX5_CAP_GEN(dev->mdev, relaxed_ordering_read) &&
795+
MLX5_CAP_GEN(dev->mdev, relaxed_ordering_read_pci_enabled) &&
795796
!MLX5_CAP_GEN(dev->mdev, relaxed_ordering_read_umr))
796797
ret |= IB_ACCESS_RELAXED_ORDERING;
797798

drivers/infiniband/hw/mlx5/umr.h

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -62,7 +62,7 @@ static inline bool mlx5r_umr_can_reconfig(struct mlx5_ib_dev *dev,
6262
return false;
6363

6464
if ((diffs & IB_ACCESS_RELAXED_ORDERING) &&
65-
MLX5_CAP_GEN(dev->mdev, relaxed_ordering_read) &&
65+
MLX5_CAP_GEN(dev->mdev, relaxed_ordering_read_pci_enabled) &&
6666
!MLX5_CAP_GEN(dev->mdev, relaxed_ordering_read_umr))
6767
return false;
6868

drivers/net/ethernet/mellanox/mlx5/core/en_common.c

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -41,7 +41,7 @@ void mlx5e_mkey_set_relaxed_ordering(struct mlx5_core_dev *mdev, void *mkc)
4141
{
4242
bool ro_pci_enable = pcie_relaxed_ordering_enabled(mdev->pdev);
4343
bool ro_write = MLX5_CAP_GEN(mdev, relaxed_ordering_write);
44-
bool ro_read = MLX5_CAP_GEN(mdev, relaxed_ordering_read);
44+
bool ro_read = MLX5_CAP_GEN(mdev, relaxed_ordering_read_pci_enabled);
4545

4646
MLX5_SET(mkc, mkc, relaxed_ordering_read, ro_pci_enable && ro_read);
4747
MLX5_SET(mkc, mkc, relaxed_ordering_write, ro_write);

include/linux/mlx5/mlx5_ifc.h

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1511,7 +1511,7 @@ struct mlx5_ifc_cmd_hca_cap_bits {
15111511

15121512
u8 log_max_eq_sz[0x8];
15131513
u8 relaxed_ordering_write[0x1];
1514-
u8 relaxed_ordering_read[0x1];
1514+
u8 relaxed_ordering_read_pci_enabled[0x1];
15151515
u8 log_max_mkey[0x6];
15161516
u8 reserved_at_f0[0x6];
15171517
u8 terminate_scatter_list_mkey[0x1];
@@ -1727,7 +1727,8 @@ struct mlx5_ifc_cmd_hca_cap_bits {
17271727

17281728
u8 reserved_at_320[0x3];
17291729
u8 log_max_transport_domain[0x5];
1730-
u8 reserved_at_328[0x3];
1730+
u8 reserved_at_328[0x2];
1731+
u8 relaxed_ordering_read[0x1];
17311732
u8 log_max_pd[0x5];
17321733
u8 reserved_at_330[0x9];
17331734
u8 q_counter_aggregation[0x1];

0 commit comments

Comments
 (0)