platform/mellanox: mlxbf-tmfifo: Fix a memory barrier issue
authorLiming Sun <limings@nvidia.com>
Sat, 8 May 2021 00:30:12 +0000 (20:30 -0400)
committerHans de Goede <hdegoede@redhat.com>
Wed, 19 May 2021 13:24:52 +0000 (15:24 +0200)
commit1c0e5701c5e792c090aef0e5b9b8923c334d9324
treeda8834c666b89c3898ced373638c25a2dcbf9e4c
parent9795d8232a24be9e1e1cc408a6bdc01c40e2cedc
platform/mellanox: mlxbf-tmfifo: Fix a memory barrier issue

The virtio framework uses wmb() when updating avail->idx. It
guarantees the write order, but not necessarily loading order
for the code accessing the memory. This commit adds a load barrier
after reading the avail->idx to make sure all the data in the
descriptor is visible. It also adds a barrier when returning the
packet to virtio framework to make sure read/writes are visible to
the virtio code.

Fixes: 1357dfd7261f ("platform/mellanox: Add TmFifo driver for Mellanox BlueField Soc")
Signed-off-by: Liming Sun <limings@nvidia.com>
Reviewed-by: Vadim Pasternak <vadimp@nvidia.com>
Link: https://lore.kernel.org/r/1620433812-17911-1-git-send-email-limings@nvidia.com
Signed-off-by: Hans de Goede <hdegoede@redhat.com>
drivers/platform/mellanox/mlxbf-tmfifo.c