Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- diff -rupN linux-3.3.4-orig/arch/arm/mach-dove/common.c linux-3.3.4/arch/arm/mach-dove/common.c
- --- linux-3.3.4-orig/arch/arm/mach-dove/common.c 2012-04-28 01:17:35.000000000 +0800
- +++ linux-3.3.4/arch/arm/mach-dove/common.c 2012-05-07 17:58:22.746247051 +0800
- @@ -88,7 +88,7 @@ void __init dove_ehci1_init(void)
- ****************************************************************************/
- void __init dove_ge00_init(struct mv643xx_eth_platform_data *eth_data)
- {
- - orion_ge00_init(eth_data,
- + orion_ge00_init(eth_data, 1600,
- DOVE_GE00_PHYS_BASE, IRQ_DOVE_GE00_SUM,
- 0, get_tclk());
- }
- diff -rupN linux-3.3.4-orig/arch/arm/mach-kirkwood/common.c linux-3.3.4/arch/arm/mach-kirkwood/common.c
- --- linux-3.3.4-orig/arch/arm/mach-kirkwood/common.c 2012-04-28 01:17:35.000000000 +0800
- +++ linux-3.3.4/arch/arm/mach-kirkwood/common.c 2012-05-07 17:58:22.750247010 +0800
- @@ -85,7 +85,7 @@ void __init kirkwood_ge00_init(struct mv
- {
- kirkwood_clk_ctrl |= CGC_GE0;
- - orion_ge00_init(eth_data,
- + orion_ge00_init(eth_data, 1600,
- GE00_PHYS_BASE, IRQ_KIRKWOOD_GE00_SUM,
- IRQ_KIRKWOOD_GE00_ERR, kirkwood_tclk);
- }
- @@ -99,7 +99,7 @@ void __init kirkwood_ge01_init(struct mv
- kirkwood_clk_ctrl |= CGC_GE1;
- - orion_ge01_init(eth_data,
- + orion_ge01_init(eth_data, 1600,
- GE01_PHYS_BASE, IRQ_KIRKWOOD_GE01_SUM,
- IRQ_KIRKWOOD_GE01_ERR, kirkwood_tclk);
- }
- diff -rupN linux-3.3.4-orig/arch/arm/mach-mv78xx0/common.c linux-3.3.4/arch/arm/mach-mv78xx0/common.c
- --- linux-3.3.4-orig/arch/arm/mach-mv78xx0/common.c 2012-04-28 01:17:35.000000000 +0800
- +++ linux-3.3.4/arch/arm/mach-mv78xx0/common.c 2012-05-07 17:58:22.758246917 +0800
- @@ -197,7 +197,7 @@ void __init mv78xx0_ehci2_init(void)
- ****************************************************************************/
- void __init mv78xx0_ge00_init(struct mv643xx_eth_platform_data *eth_data)
- {
- - orion_ge00_init(eth_data,
- + orion_ge00_init(eth_data, 0,
- GE00_PHYS_BASE, IRQ_MV78XX0_GE00_SUM,
- IRQ_MV78XX0_GE_ERR, get_tclk());
- }
- @@ -208,7 +208,7 @@ void __init mv78xx0_ge00_init(struct mv6
- ****************************************************************************/
- void __init mv78xx0_ge01_init(struct mv643xx_eth_platform_data *eth_data)
- {
- - orion_ge01_init(eth_data,
- + orion_ge01_init(eth_data, 0,
- GE01_PHYS_BASE, IRQ_MV78XX0_GE01_SUM,
- NO_IRQ, get_tclk());
- }
- diff -rupN linux-3.3.4-orig/arch/arm/mach-orion5x/common.c linux-3.3.4/arch/arm/mach-orion5x/common.c
- --- linux-3.3.4-orig/arch/arm/mach-orion5x/common.c 2012-04-28 01:17:35.000000000 +0800
- +++ linux-3.3.4/arch/arm/mach-orion5x/common.c 2012-05-07 17:58:22.762246865 +0800
- @@ -92,7 +92,7 @@ void __init orion5x_ehci1_init(void)
- ****************************************************************************/
- void __init orion5x_eth_init(struct mv643xx_eth_platform_data *eth_data)
- {
- - orion_ge00_init(eth_data,
- + orion_ge00_init(eth_data, 0,
- ORION5X_ETH_PHYS_BASE, IRQ_ORION5X_ETH_SUM,
- IRQ_ORION5X_ETH_ERR, orion5x_tclk);
- }
- diff -rupN linux-3.3.4-orig/arch/arm/plat-orion/common.c linux-3.3.4/arch/arm/plat-orion/common.c
- --- linux-3.3.4-orig/arch/arm/plat-orion/common.c 2012-04-28 01:17:35.000000000 +0800
- +++ linux-3.3.4/arch/arm/plat-orion/common.c 2012-05-07 17:58:22.762246865 +0800
- @@ -257,6 +257,7 @@ static struct platform_device orion_ge00
- };
- void __init orion_ge00_init(struct mv643xx_eth_platform_data *eth_data,
- + int tx_csum_limit,
- unsigned long mapbase,
- unsigned long irq,
- unsigned long irq_err,
- @@ -264,6 +265,8 @@ void __init orion_ge00_init(struct mv643
- {
- fill_resources(&orion_ge00_shared, orion_ge00_shared_resources,
- mapbase + 0x2000, SZ_16K - 1, irq_err);
- + if (tx_csum_limit > 0)
- + orion_ge00_shared_data.tx_csum_limit = tx_csum_limit;
- ge_complete(&orion_ge00_shared_data, tclk,
- orion_ge00_resources, irq, &orion_ge00_shared,
- eth_data, &orion_ge00);
- @@ -310,6 +313,7 @@ static struct platform_device orion_ge01
- };
- void __init orion_ge01_init(struct mv643xx_eth_platform_data *eth_data,
- + int tx_csum_limit,
- unsigned long mapbase,
- unsigned long irq,
- unsigned long irq_err,
- @@ -317,6 +321,8 @@ void __init orion_ge01_init(struct mv643
- {
- fill_resources(&orion_ge01_shared, orion_ge01_shared_resources,
- mapbase + 0x2000, SZ_16K - 1, irq_err);
- + if (tx_csum_limit > 0)
- + orion_ge01_shared_data.tx_csum_limit = tx_csum_limit;
- ge_complete(&orion_ge01_shared_data, tclk,
- orion_ge01_resources, irq, &orion_ge01_shared,
- eth_data, &orion_ge01);
- diff -rupN linux-3.3.4-orig/arch/arm/plat-orion/include/plat/common.h linux-3.3.4/arch/arm/plat-orion/include/plat/common.h
- --- linux-3.3.4-orig/arch/arm/plat-orion/include/plat/common.h 2012-04-28 01:17:35.000000000 +0800
- +++ linux-3.3.4/arch/arm/plat-orion/include/plat/common.h 2012-05-07 17:58:22.778246655 +0800
- @@ -37,12 +37,14 @@ void __init orion_rtc_init(unsigned long
- unsigned long irq);
- void __init orion_ge00_init(struct mv643xx_eth_platform_data *eth_data,
- + int tx_csum_limit,
- unsigned long mapbase,
- unsigned long irq,
- unsigned long irq_err,
- int tclk);
- void __init orion_ge01_init(struct mv643xx_eth_platform_data *eth_data,
- + int tx_csum_limit,
- unsigned long mapbase,
- unsigned long irq,
- unsigned long irq_err,
- diff -rupN linux-3.3.4-orig/drivers/net/ethernet/marvell/mv643xx_eth.c linux-3.3.4/drivers/net/ethernet/marvell/mv643xx_eth.c
- --- linux-3.3.4-orig/drivers/net/ethernet/marvell/mv643xx_eth.c 2012-04-28 01:17:35.000000000 +0800
- +++ linux-3.3.4/drivers/net/ethernet/marvell/mv643xx_eth.c 2012-05-07 17:58:22.794246454 +0800
- @@ -965,12 +965,15 @@ static int txq_reclaim(struct tx_queue *
- txq->tx_desc_count--;
- skb = NULL;
- - if (cmd_sts & TX_LAST_DESC)
- + if (cmd_sts & TX_LAST_DESC) {
- skb = __skb_dequeue(&txq->tx_skb);
- - if (cmd_sts & ERROR_SUMMARY) {
- - netdev_info(mp->dev, "tx error\n");
- - mp->dev->stats.tx_errors++;
- + /*Error status only valid for last descriptor*/
- + /*ignore under run error*/
- + if (unlikely(cmd_sts & ERROR_SUMMARY) && unlikely(!(cmd_sts & 0x00000002))) {
- + netdev_info(mp->dev, "tx error\n");
- + mp->dev->stats.tx_errors++;
- + }
- }
- if (cmd_sts & TX_FIRST_DESC) {
Advertisement
Add Comment
Please, Sign In to add comment