Patch "IB/mlx5: Call io_stop_wc() after writing to WC MMIO" has been added to the 6.0-stable tree

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



This is a note to let you know that I've just added the patch titled

    IB/mlx5: Call io_stop_wc() after writing to WC MMIO

to the 6.0-stable tree which can be found at:
    http://www.kernel.org/git/?p=linux/kernel/git/stable/stable-queue.git;a=summary

The filename of the patch is:
     ib-mlx5-call-io_stop_wc-after-writing-to-wc-mmio.patch
and it can be found in the queue-6.0 subdirectory.

If you, or anyone else, feels it should not be added to the stable tree,
please let <stable@xxxxxxxxxxxxxxx> know about it.



commit da1aef13acaf3b266a51ff20baf2699f7caf334b
Author: Jason Gunthorpe <jgg@xxxxxxxxxx>
Date:   Fri Jul 29 13:33:38 2022 -0300

    IB/mlx5: Call io_stop_wc() after writing to WC MMIO
    
    [ Upstream commit 19d6214ad6dfffda1a5bdc2b34ea75ba45a1a60a ]
    
    This new function is defined only on ARM and serves to guarantee a barrier
    in the WC operation. The barrier means that another run of this loop will
    not combine with the stores this loop created.
    
    On x86 this is happening implicitly because of the spin_unlock().
    
    Link: https://lore.kernel.org/r/0-v1-c5dade92f363+11-mlx5_io_stop_wc_jgg@xxxxxxxxxx
    Suggested-by: Pavel Shamis <Pavel.Shamis@xxxxxxx>
    Signed-off-by: Jason Gunthorpe <jgg@xxxxxxxxxx>
    Signed-off-by: Leon Romanovsky <leon@xxxxxxxxxx>
    Stable-dep-of: 13ad1125b941 ("RDMA/mlx5: Don't compare mkey tags in DEVX indirect mkey")
    Signed-off-by: Sasha Levin <sashal@xxxxxxxxxx>

diff --git a/drivers/infiniband/hw/mlx5/mem.c b/drivers/infiniband/hw/mlx5/mem.c
index 6191aa833ac2..6b29e9ca323e 100644
--- a/drivers/infiniband/hw/mlx5/mem.c
+++ b/drivers/infiniband/hw/mlx5/mem.c
@@ -152,6 +152,7 @@ static int post_send_nop(struct mlx5_ib_dev *dev, struct ib_qp *ibqp, u64 wr_id,
 	for (i = 0; i < 8; i++)
 		mlx5_write64(&mmio_wqe[i * 2],
 			     bf->bfreg->map + bf->offset + i * 8);
+	io_stop_wc();
 
 	bf->offset ^= bf->buf_size;
 



[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Index of Archives]     [Linux USB Devel]     [Linux Audio Users]     [Yosemite News]     [Linux Kernel]     [Linux SCSI]

  Powered by Linux