]> git.ipfire.org Git - thirdparty/kernel/stable.git/commitdiff
rpmsg: glink: smem: Ensure ordering during tx
authorBjorn Andersson <bjorn.andersson@linaro.org>
Tue, 21 Apr 2020 12:40:10 +0000 (13:40 +0100)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Fri, 24 Apr 2020 06:01:06 +0000 (08:01 +0200)
[ Upstream commit 9d32497361ff89d2fc8306407de6f04b2bfb2836 ]

Ensure the ordering of the fifo write and the update of the write index,
so that the index is not updated before the data has landed in the fifo.

Acked-By: Chris Lew <clew@codeaurora.org>
Reported-by: Arun Kumar Neelakantam <aneela@codeaurora.org>
Signed-off-by: Bjorn Andersson <bjorn.andersson@linaro.org>
Signed-off-by: Lee Jones <lee.jones@linaro.org>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
drivers/rpmsg/qcom_glink_smem.c

index 69a14041ef1fecc26d15c3537ab6ca98e59096ab..ed616b0bc563db9e3575538aa08d82aa4dacb473 100644 (file)
@@ -181,6 +181,9 @@ static void glink_smem_tx_write(struct qcom_glink_pipe *glink_pipe,
        if (head >= pipe->native.length)
                head -= pipe->native.length;
 
+       /* Ensure ordering of fifo and head update */
+       wmb();
+
        *pipe->head = cpu_to_le32(head);
 }