Re: [net-next v9 07/10] net: bnxt: Implement software USO

From: Joe Damato

Date: Tue Apr 07 2026 - 19:23:09 EST


On Tue, Apr 07, 2026 at 03:03:03PM -0700, Joe Damato wrote:

[...]

> v9:
> - Added inline slot check to prevent possible overwriting of in-flight
> headers (suggested by AI).

[...]

> netdev_tx_t bnxt_sw_udp_gso_xmit(struct bnxt *bp,
> struct bnxt_tx_ring_info *txr,
> struct netdev_queue *txq,
> struct sk_buff *skb)
> {

[...]

> +
> + /* BD backpressure alone cannot prevent overwriting in-flight
> + * headers in the inline buffer. Check slot availability directly.
> + */
> + slots = txr->tx_inline_prod - txr->tx_inline_cons;
> + slots = BNXT_SW_USO_MAX_SEGS - slots;
> +
> + if (unlikely(slots < num_segs)) {
> + netif_txq_try_stop(txq, slots, num_segs);
> + return NETDEV_TX_BUSY;

This is the check I added. AI says this is wrong and netdev_queues.h says:

* @get_desc must be a formula or a function call, it must always
* return up-to-date information when evaluated!

which I obviously failed to do, so I'm pretty sure I got this wrong.