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. Regards, Roman _______________________________________________ openwrt-devel mailing list openwrt-devel@lists.openwrt.org https://lists.openwrt.org/mailman/listinfo/openwrt-devel