sfc: Initialise IRQ moderation for all NIC types from efx_init_eventq()
authorBen Hutchings <bhutchings@solarflare.com>
Wed, 1 May 2013 15:30:17 +0000 (16:30 +0100)
committerBen Hutchings <bhutchings@solarflare.com>
Thu, 29 Aug 2013 17:12:11 +0000 (18:12 +0100)
Signed-off-by: Ben Hutchings <bhutchings@solarflare.com>
drivers/net/ethernet/sfc/efx.c
drivers/net/ethernet/sfc/farch.c

index 59aa73ccefed421f298aff4140b6cad5c893694f..aec62139420e884eb36cce55e75b72349ade557c 100644 (file)
@@ -331,15 +331,17 @@ static int efx_probe_eventq(struct efx_channel *channel)
 /* Prepare channel's event queue */
 static int efx_init_eventq(struct efx_channel *channel)
 {
+       struct efx_nic *efx = channel->efx;
        int rc;
 
        EFX_WARN_ON_PARANOID(channel->eventq_init);
 
-       netif_dbg(channel->efx, drv, channel->efx->net_dev,
+       netif_dbg(efx, drv, efx->net_dev,
                  "chan %d init event queue\n", channel->channel);
 
        rc = efx_nic_init_eventq(channel);
        if (rc == 0) {
+               efx->type->push_irq_moderation(channel);
                channel->eventq_read_ptr = 0;
                channel->eventq_init = true;
        }
index 904af5c336b4d29bae65953a8e97e904ab69eb89..eb754cfff1ef6c22c4b2bd8d44a6b1d05fb55bb7 100644 (file)
@@ -1357,8 +1357,6 @@ int efx_farch_ev_init(struct efx_channel *channel)
        efx_writeo_table(efx, &reg, efx->type->evq_ptr_tbl_base,
                         channel->channel);
 
-       efx->type->push_irq_moderation(channel);
-
        return 0;
 }