Re: [PATCH iwl-next] i40e: Remove queue tracking fields from i40e_adminq_ring

From: Przemek Kitszel
Date: Thu Oct 26 2023 - 05:14:44 EST


On 10/26/23 10:38, Ivan Vecera wrote:
Fields 'head', 'tail', 'len', 'bah' and 'bal' in i40e_adminq_ring
are used to store register offsets. These offsets are initialized
and remains constant so there is no need to store them in the
i40e_adminq_ring structure.

Remove these fields from i40e_adminq_ring and use register offset
constants instead. Remove i40e_adminq_init_regs() that originally
stores these constants into these fields.

Finally improve i40e_check_asq_alive() that assumes that
non-zero value of hw->aq.asq.len indicates fully initialized
AdminQ send queue. Replace it by check for non-zero value
of field hw->aq.asq.count that is non-zero when the sending
queue is initialized and is zeroed during shutdown of
the queue.

Signed-off-by: Ivan Vecera <ivecera@xxxxxxxxxx>
---
drivers/net/ethernet/intel/i40e/i40e_adminq.c | 86 +++++++------------
drivers/net/ethernet/intel/i40e/i40e_adminq.h | 7 --
drivers/net/ethernet/intel/i40e/i40e_common.c | 8 +-
drivers/net/ethernet/intel/i40e/i40e_main.c | 8 +-
4 files changed, 39 insertions(+), 70 deletions(-)

Huh, our code is so self similar :F

as with iavf, asq change is semantically different from the rest,
anyway:
Reviewed-by: Przemek Kitszel <przemyslaw.kitszel@xxxxxxxxx>

BTW,
unless you want this applied directly by netdev maintainers (so skipping
intel), you should use "iwl-next" tag and set to: IWL, cc: netdev