[dpdk-dev,22/53] net/sfc/base: provide simple access to RxQ state in EvQ
Checks
Commit Message
From: Andrew Rybchenko <Andrew.Rybchenko@oktetlabs.ru>
Packed stream Rx datapath requires access to packed stream state
stored in event queue. Number of credits is upstead in event handler
on a new buffer, packets parsing on 64k boundary crossing and
Rx doorbell push to give credits back.
Signed-off-by: Andrew Rybchenko <arybchenko@solarflare.com>
---
drivers/net/sfc/base/ef10_rx.c | 8 ++++----
drivers/net/sfc/base/efx_impl.h | 1 +
2 files changed, 5 insertions(+), 4 deletions(-)
@@ -784,8 +784,7 @@ ef10_rx_qpush_ps_credits(
{
efx_nic_t *enp = erp->er_enp;
efx_dword_t dword;
- efx_evq_rxq_state_t *rxq_state =
- &erp->er_eep->ee_rxq_state[erp->er_label];
+ efx_evq_rxq_state_t *rxq_state = erp->er_ev_qstate;
uint32_t credits;
EFSYS_ASSERT(rxq_state->eers_rx_packed_stream);
@@ -834,8 +833,7 @@ ef10_rx_qps_packet_info(
uint16_t buf_len;
uint8_t *pkt_start;
efx_qword_t *qwordp;
- efx_evq_rxq_state_t *rxq_state =
- &erp->er_eep->ee_rxq_state[erp->er_label];
+ efx_evq_rxq_state_t *rxq_state = erp->er_ev_qstate;
EFSYS_ASSERT(rxq_state->eers_rx_packed_stream);
@@ -994,6 +992,8 @@ ef10_rx_qcreate(
ef10_ev_rxlabel_init(eep, erp, label, type);
+ erp->er_ev_qstate = &erp->er_eep->ee_rxq_state[label];
+
return (0);
fail6:
@@ -761,6 +761,7 @@ struct efx_rxq_s {
unsigned int er_label;
unsigned int er_mask;
efsys_mem_t *er_esmp;
+ efx_evq_rxq_state_t *er_ev_qstate;
};
#define EFX_RXQ_MAGIC 0x15022005