On 22/01/12 02:45, Roman Yeryomin wrote: > On 17 January 2012 11:42, Helmut Schaa <helmut.sc...@googlemail.com> wrote: >> @@ -313,6 +312,7 @@ ramips_eth_tx_housekeeping(unsigned long ptr) >> struct net_device *dev = (struct net_device*)ptr; >> struct raeth_priv *priv = netdev_priv(dev); >> >> + spin_lock(&priv->page_lock); >> while ((priv->tx[priv->skb_free_idx].txd2 & TX_DMA_DONE) && >> (priv->tx_skb[priv->skb_free_idx])) { >> dev_kfree_skb_irq(priv->tx_skb[priv->skb_free_idx]); >> @@ -321,6 +321,7 @@ ramips_eth_tx_housekeeping(unsigned long ptr) >> if (priv->skb_free_idx >= NUM_TX_DESC) >> priv->skb_free_idx = 0; >> } >> + spin_unlock(&priv->page_lock); >> >> ramips_fe_int_enable(RAMIPS_TX_DLY_INT); >> } > > Seems that spinlock here introduces performance hit in wifi<->eth path. > Are you sure it's needed? Seems that it works fine also without this spinlock.
helmut, can you verify this ? _______________________________________________ openwrt-devel mailing list openwrt-devel@lists.openwrt.org https://lists.openwrt.org/mailman/listinfo/openwrt-devel