fbnic: Fix initialization of mailbox descriptor rings
authorAlexander Duyck <alexanderduyck@fb.com>
Tue, 6 May 2025 15:59:39 +0000 (08:59 -0700)
committerPaolo Abeni <pabeni@redhat.com>
Thu, 8 May 2025 09:33:30 +0000 (11:33 +0200)
commitf34343cc11afc7bb1f881c3492bee3484016bf71
tree4bb7d480f8e2bd09235ed19dc0d3deb695e9b342
parentbdc6470a4fc3f5a0bcd2e9d76f9fa352a042974b
fbnic: Fix initialization of mailbox descriptor rings

Address to issues with the FW mailbox descriptor initialization.

We need to reverse the order of accesses when we invalidate an entry versus
writing an entry. When writing an entry we write upper and then lower as
the lower 32b contain the valid bit that makes the entire address valid.
However for invalidation we should write it in the reverse order so that
the upper is marked invalid before we update it.

Without this change we may see FW attempt to access pages with the upper
32b of the address set to 0 which will likely result in DMAR faults due to
write access failures on mailbox shutdown.

Fixes: da3cde08209e ("eth: fbnic: Add FW communication mechanism")
Signed-off-by: Alexander Duyck <alexanderduyck@fb.com>
Reviewed-by: Simon Horman <horms@kernel.org>
Reviewed-by: Jacob Keller <jacob.e.keller@intel.com>
Link: https://patch.msgid.link/174654717972.499179.8083789731819297034.stgit@ahduyck-xeon-server.home.arpa
Reviewed-by: Jakub Kicinski <kuba@kernel.org>
Signed-off-by: Paolo Abeni <pabeni@redhat.com>
drivers/net/ethernet/meta/fbnic/fbnic_fw.c