bnxt_en: Synchronize tx when xdp redirects happen on same ring
authorPavan Chebbi <pavan.chebbi@broadcom.com>
Sat, 2 Apr 2022 00:21:10 +0000 (20:21 -0400)
committerDavid S. Miller <davem@davemloft.net>
Mon, 4 Apr 2022 11:44:50 +0000 (12:44 +0100)
commit4f81def272de17dc4bbd89ac38f49b2676c9b3d2
tree0c65c2d7d7bc7e2d37b9eee8649b0b0e895566da
parent20921c0c86092b4082c91bd7c88305da74e5520b
bnxt_en: Synchronize tx when xdp redirects happen on same ring

If there are more CPUs than the number of TX XDP rings, multiple XDP
redirects can select the same TX ring based on the CPU on which
XDP redirect is called.  Add locking when needed and use static
key to decide whether to take the lock.

Fixes: f18c2b77b2e4 ("bnxt_en: optimized XDP_REDIRECT support")
Signed-off-by: Pavan Chebbi <pavan.chebbi@broadcom.com>
Signed-off-by: Michael Chan <michael.chan@broadcom.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
drivers/net/ethernet/broadcom/bnxt/bnxt.c
drivers/net/ethernet/broadcom/bnxt/bnxt.h
drivers/net/ethernet/broadcom/bnxt/bnxt_xdp.c
drivers/net/ethernet/broadcom/bnxt/bnxt_xdp.h