On 4/10/2023 6:07 AM, Leon Romanovsky wrote: > From: Avihai Horon <avihaih@xxxxxxxxxx> > > relaxed_ordering_read HCA capability is set if both the device supports > relaxed ordering (RO) read and RO is set in PCI config space. > > RO in PCI config space can change during runtime. This will change the > value of relaxed_ordering_read HCA capability in FW, but the driver will > not see it since it queries the capabilities only once. > > This can lead to the following scenario: > 1. RO in PCI config space is enabled. > 2. User creates MKey without RO. > 3. RO in PCI config space is disabled. > As a result, relaxed_ordering_read HCA capability is turned off in FW > but remains on in driver copy of the capabilities. > 4. User requests to reconfig the MKey with RO via UMR. > 5. Driver will try to reconfig the MKey with RO read although it > shouldn't (as relaxed_ordering_read HCA capability is really off). > > To fix this, check pcie_relaxed_ordering_enabled() before setting RO > read in UMR. > > Fixes: 896ec9735336 ("RDMA/mlx5: Set mkey relaxed ordering by UMR with ConnectX-7") > Signed-off-by: Avihai Horon <avihaih@xxxxxxxxxx> > Reviewed-by: Shay Drory <shayd@xxxxxxxxxx> > Signed-off-by: Leon Romanovsky <leonro@xxxxxxxxxx> > --- Reviewed-by: Jacob Keller <jacob.e.keller@xxxxxxxxx>