iavf_init_tx_cidx() has the same initial value as ixl_init_tx_cidx()
had: the end of the ring, which is right for the report status queue
(iavf_init_tx_rsqs()) but makes iavf_isc_txd_credits_update_hwb()
report one descriptor too many on the first update after an
initialization. Head writeback is off by default in iavf
(hw.iavf.enable_head_writeback). With it on, the netmap TX ring of a VF
shows no free slot as soon as the NIC has caught up after two or more
packets were submitted in one txsync. See the ixl change for the
details.
Initialize tx_cidx_processed to 0 in head writeback mode.
Signed-off-by: Wanpeng Qian <wanpengqian@gmail.com>
Sponsored by: keelos.dev