static int efx_mcdi_mac_reconfigure(struct efx_nic *efx) { int rc; rc = efx_mcdi_set_mac(efx); if (rc != 0) return rc; /* Restore the multicast hash registers. */ efx->type->push_multicast_hash(efx); return 0; }
int efx_mcdi_mac_reconfigure(struct efx_nic *efx) { int rc; WARN_ON(!mutex_is_locked(&efx->mac_lock)); rc = efx_mcdi_set_mac(efx); if (rc != 0) return rc; return efx_mcdi_rpc(efx, MC_CMD_SET_MCAST_HASH, efx->multicast_hash.byte, sizeof(efx->multicast_hash), NULL, 0, NULL); }
static int siena_mac_reconfigure(struct efx_nic *efx) { MCDI_DECLARE_BUF(inbuf, MC_CMD_SET_MCAST_HASH_IN_LEN); int rc; BUILD_BUG_ON(MC_CMD_SET_MCAST_HASH_IN_LEN != MC_CMD_SET_MCAST_HASH_IN_HASH0_OFST + sizeof(efx->multicast_hash)); efx_farch_filter_sync_rx_mode(efx); WARN_ON(!mutex_is_locked(&efx->mac_lock)); rc = efx_mcdi_set_mac(efx); if (rc != 0) return rc; memcpy(MCDI_PTR(inbuf, SET_MCAST_HASH_IN_HASH0), efx->multicast_hash.byte, sizeof(efx->multicast_hash)); return efx_mcdi_rpc(efx, MC_CMD_SET_MCAST_HASH, inbuf, sizeof(inbuf), NULL, 0, NULL); }
void siena_finish_flush(struct efx_nic *efx) { if (--efx->fc_disable == 0) efx_mcdi_set_mac(efx); }
void siena_prepare_flush(struct efx_nic *efx) { if (efx->fc_disable++ == 0) efx_mcdi_set_mac(efx); }