netif_wake_subqueue(ndev, q);
        spin_unlock_irqrestore(&priv->lock, flags);
 
+       /* Receive error message handling */
+       priv->rx_over_errors = priv->stats[RAVB_BE].rx_over_errors;
+       if (info->nc_queues)
+               priv->rx_over_errors += priv->stats[RAVB_NC].rx_over_errors;
+       if (priv->rx_over_errors != ndev->stats.rx_over_errors)
+               ndev->stats.rx_over_errors = priv->rx_over_errors;
+       if (priv->rx_fifo_errors != ndev->stats.rx_fifo_errors)
+               ndev->stats.rx_fifo_errors = priv->rx_fifo_errors;
+
        if (!unmask)
                goto out;
 
        }
        spin_unlock_irqrestore(&priv->lock, flags);
 
-       /* Receive error message handling */
-       priv->rx_over_errors =  priv->stats[RAVB_BE].rx_over_errors;
-       if (info->nc_queues)
-               priv->rx_over_errors += priv->stats[RAVB_NC].rx_over_errors;
-       if (priv->rx_over_errors != ndev->stats.rx_over_errors)
-               ndev->stats.rx_over_errors = priv->rx_over_errors;
-       if (priv->rx_fifo_errors != ndev->stats.rx_fifo_errors)
-               ndev->stats.rx_fifo_errors = priv->rx_fifo_errors;
 out:
        return budget - quota;
 }