]> git.droids-corp.org - dpdk.git/commit
net/bnxt: fix reordering in NEON Rx
authorRuifeng Wang <ruifeng.wang@arm.com>
Wed, 13 Apr 2022 10:31:56 +0000 (18:31 +0800)
committerAjit Khaparde <ajit.khaparde@broadcom.com>
Tue, 10 May 2022 05:00:14 +0000 (07:00 +0200)
commite7f2effc9220dc5d71b0bb550bcc903badc7bac4
tree75c8f6651d3ae99c833a62ac1dfa8cbaf9b330fe
parent761edd4b09bc324278f8c0951eef13ff5b45b672
net/bnxt: fix reordering in NEON Rx

Rx descriptor contains a valid bit which indicates readiness of the rest
of descriptor words. Hence, the word contains valid bit must be read
prior to other words.

In NEON vector path, two contiguous 8B descriptor are loaded to a single
NEON register. Given vector load ensures no 16B atomicity, read of the
word that includes valid bit could be reordered after read of other words.
In this case, data could be invalid.

Reloaded lower 64b after read barrier. This ensures what fetched is
correct.

Also fixed comments that not pertains to Arm platform architecture.

Fixes: deae85145c64 ("net/bnxt: handle multiple packets per loop in vector Rx")
Cc: stable@dpdk.org
Signed-off-by: Ruifeng Wang <ruifeng.wang@arm.com>
Reviewed-by: Ajit Khaparde <ajit.khaparde@broadcom.com>
drivers/net/bnxt/bnxt_rxtx_vec_neon.c