Changeset View
Changeset View
Standalone View
Standalone View
head/sys/dev/sfxge/common/ef10_rx.c
Show First 20 Lines • Show All 134 Lines • ▼ Show 20 Lines | efx_mcdi_fini_rxq( | ||||
req.emr_in_length = MC_CMD_FINI_RXQ_IN_LEN; | req.emr_in_length = MC_CMD_FINI_RXQ_IN_LEN; | ||||
req.emr_out_buf = payload; | req.emr_out_buf = payload; | ||||
req.emr_out_length = MC_CMD_FINI_RXQ_OUT_LEN; | req.emr_out_length = MC_CMD_FINI_RXQ_OUT_LEN; | ||||
MCDI_IN_SET_DWORD(req, FINI_RXQ_IN_INSTANCE, instance); | MCDI_IN_SET_DWORD(req, FINI_RXQ_IN_INSTANCE, instance); | ||||
efx_mcdi_execute_quiet(enp, &req); | efx_mcdi_execute_quiet(enp, &req); | ||||
if ((req.emr_rc != 0) && (req.emr_rc != EALREADY)) { | if (req.emr_rc != 0) { | ||||
rc = req.emr_rc; | rc = req.emr_rc; | ||||
goto fail1; | goto fail1; | ||||
} | } | ||||
return (0); | return (0); | ||||
fail1: | fail1: | ||||
/* | |||||
* EALREADY is not an error, but indicates that the MC has rebooted and | |||||
* that the RXQ has already been destroyed. | |||||
*/ | |||||
if (rc != EALREADY) | |||||
EFSYS_PROBE1(fail1, efx_rc_t, rc); | EFSYS_PROBE1(fail1, efx_rc_t, rc); | ||||
return (rc); | return (rc); | ||||
} | } | ||||
#if EFSYS_OPT_RX_SCALE | #if EFSYS_OPT_RX_SCALE | ||||
static __checkReturn efx_rc_t | static __checkReturn efx_rc_t | ||||
efx_mcdi_rss_context_alloc( | efx_mcdi_rss_context_alloc( | ||||
__in efx_nic_t *enp, | __in efx_nic_t *enp, | ||||
▲ Show 20 Lines • Show All 654 Lines • ▼ Show 20 Lines | ef10_rx_qflush( | ||||
efx_rc_t rc; | efx_rc_t rc; | ||||
if ((rc = efx_mcdi_fini_rxq(enp, erp->er_index)) != 0) | if ((rc = efx_mcdi_fini_rxq(enp, erp->er_index)) != 0) | ||||
goto fail1; | goto fail1; | ||||
return (0); | return (0); | ||||
fail1: | fail1: | ||||
/* | |||||
* EALREADY is not an error, but indicates that the MC has rebooted and | |||||
* that the RXQ has already been destroyed. Callers need to know that | |||||
* the RXQ flush has completed to avoid waiting until timeout for a | |||||
* flush done event that will not be delivered. | |||||
*/ | |||||
if (rc != EALREADY) | |||||
EFSYS_PROBE1(fail1, efx_rc_t, rc); | EFSYS_PROBE1(fail1, efx_rc_t, rc); | ||||
return (rc); | return (rc); | ||||
} | } | ||||
void | void | ||||
ef10_rx_qenable( | ef10_rx_qenable( | ||||
__in efx_rxq_t *erp) | __in efx_rxq_t *erp) | ||||
{ | { | ||||
▲ Show 20 Lines • Show All 152 Lines • Show Last 20 Lines |