]> git.ipfire.org Git - thirdparty/kernel/stable.git/commit
bnxt_en: Put the TX producer information in the TX BD opaque field
authorMichael Chan <michael.chan@broadcom.com>
Tue, 14 Nov 2023 00:16:09 +0000 (16:16 -0800)
committerDavid S. Miller <davem@davemloft.net>
Wed, 15 Nov 2023 10:07:39 +0000 (10:07 +0000)
commit34eec1f29a5998305578fcc3e55d491a1795b56d
treef245d7ffbb776e7e023ccf75e98c913fb610441f
parentb3d8c6050481d42c726425fcad248faad8785347
bnxt_en: Put the TX producer information in the TX BD opaque field

Currently, the opaque field in the TX BD is only used for debugging.
The TX completion logic relies on getting one TX completion for each
packet and they always complete in order.

Improve this scheme by putting the producer information (ring index plus
number of BDs for the packet) in the opaque field.  This way, we can
handle TX completion processing by looking at the last TX completion
instead of counting the number of completions.

Since we no longer need to count the exact number of completions, we can
optimize xmit_more by disabling TX completion when the xmit_more
condition is true.  This will be done in later patches.

This patch is only initializing the opaque field in the TX BD and is
not changing the driver's TX completion logic yet.

Reviewed-by: Andy Gospodarek <gospo@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