bnxt_en: stop packet flow during bnxt_queue_stop/start
authorDavid Wei <dw@davidwei.uk>
Thu, 8 Aug 2024 05:15:17 +0000 (22:15 -0700)
committerDavid S. Miller <davem@davemloft.net>
Sun, 11 Aug 2024 12:48:02 +0000 (13:48 +0100)
commitb9d2956e869c78bb356a71dd0a75346da9fd191f
treeba5ac9651ca870d469d8c9a61b51dc624af29b7e
parentd41575f76a6d870b386b2aa75143c5cf9543fb45
bnxt_en: stop packet flow during bnxt_queue_stop/start

The current implementation when resetting a queue while packets are
flowing puts the queue into an inconsistent state.

There needs to be some synchronisation with the FW. Add calls to
bnxt_hwrm_vnic_update() to set the MRU for both the default and ntuple
vnic during queue start/stop. When the MRU is set to 0, flow is stopped.
Each Rx queue belongs to either the default or the ntuple vnic.

With calling bnxt_hwrm_vnic_update() the calls to napi_enable() and
napi_disable() must be removed for reset to work on a queue that has
active traffic flowing e.g. iperf3.

Co-developed-by: Somnath Kotur <somnath.kotur@broadcom.com>
Signed-off-by: Somnath Kotur <somnath.kotur@broadcom.com>
Signed-off-by: David Wei <dw@davidwei.uk>
Signed-off-by: David S. Miller <davem@davemloft.net>
drivers/net/ethernet/broadcom/bnxt/bnxt.c