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

Reply via email to