Author: nbd
Date: 2015-01-24 23:45:16 +0100 (Sat, 24 Jan 2015)
New Revision: 44116

Modified:
   trunk/target/linux/ramips/files/drivers/net/ethernet/ralink/ralink_soc_eth.c
Log:
ralink: use fe_max_buf_size to get rx buffer size

the rx_buf_size now is 1534 when mtu is 1500.
the ethernet frame with vlan tag and FCS is 1522.
so the buffer is enough.

Signed-off-by: michael lee <[email protected]>

Modified: 
trunk/target/linux/ramips/files/drivers/net/ethernet/ralink/ralink_soc_eth.c
===================================================================
--- 
trunk/target/linux/ramips/files/drivers/net/ethernet/ralink/ralink_soc_eth.c    
    2015-01-24 22:45:10 UTC (rev 44115)
+++ 
trunk/target/linux/ramips/files/drivers/net/ethernet/ralink/ralink_soc_eth.c    
    2015-01-24 22:45:16 UTC (rev 44116)
@@ -178,7 +178,7 @@
 
 static inline int fe_max_buf_size(int frag_size)
 {
-       return frag_size - FE_RX_HLEN -
+       return frag_size - NET_SKB_PAD - NET_IP_ALIGN -
                SKB_DATA_ALIGN(sizeof(struct skb_shared_info));
 }
 
@@ -1284,13 +1284,11 @@
        if (old_mtu > ETH_DATA_LEN && new_mtu > ETH_DATA_LEN)
                return 0;
 
-       if (new_mtu <= ETH_DATA_LEN) {
+       if (new_mtu <= ETH_DATA_LEN)
                priv->frag_size = fe_max_frag_size(ETH_DATA_LEN);
-               priv->rx_buf_size = MAX_RX_LENGTH;
-       } else {
+       else
                priv->frag_size = PAGE_SIZE;
-               priv->rx_buf_size = fe_max_buf_size(PAGE_SIZE);
-       }
+       priv->rx_buf_size = fe_max_buf_size(priv->frag_size);
 
        if (!netif_running(dev))
                return 0;
@@ -1443,7 +1441,7 @@
        priv->soc = soc;
        priv->msg_enable = netif_msg_init(fe_msg_level, FE_DEFAULT_MSG_ENABLE);
        priv->frag_size = fe_max_frag_size(ETH_DATA_LEN);
-       priv->rx_buf_size = MAX_RX_LENGTH;
+       priv->rx_buf_size = fe_max_buf_size(priv->frag_size);
        if (priv->frag_size > PAGE_SIZE) {
                dev_err(&pdev->dev, "error frag size.\n");
                err = -EINVAL;
_______________________________________________
openwrt-commits mailing list
[email protected]
https://lists.openwrt.org/cgi-bin/mailman/listinfo/openwrt-commits

Reply via email to