diff options
Diffstat (limited to 'drivers/net/mv643xx_eth.c')
-rw-r--r-- | drivers/net/mv643xx_eth.c | 5 |
1 files changed, 3 insertions, 2 deletions
diff --git a/drivers/net/mv643xx_eth.c b/drivers/net/mv643xx_eth.c index b56fdf0dc875..7253a499d9c8 100644 --- a/drivers/net/mv643xx_eth.c +++ b/drivers/net/mv643xx_eth.c | |||
@@ -906,7 +906,8 @@ static int txq_reclaim(struct tx_queue *txq, int budget, int force) | |||
906 | if (skb != NULL) { | 906 | if (skb != NULL) { |
907 | if (skb_queue_len(&mp->rx_recycle) < | 907 | if (skb_queue_len(&mp->rx_recycle) < |
908 | mp->default_rx_ring_size && | 908 | mp->default_rx_ring_size && |
909 | skb_recycle_check(skb, mp->skb_size)) | 909 | skb_recycle_check(skb, mp->skb_size + |
910 | dma_get_cache_alignment() - 1)) | ||
910 | __skb_queue_head(&mp->rx_recycle, skb); | 911 | __skb_queue_head(&mp->rx_recycle, skb); |
911 | else | 912 | else |
912 | dev_kfree_skb(skb); | 913 | dev_kfree_skb(skb); |
@@ -2478,8 +2479,8 @@ static int mv643xx_eth_shared_remove(struct platform_device *pdev) | |||
2478 | struct mv643xx_eth_shared_platform_data *pd = pdev->dev.platform_data; | 2479 | struct mv643xx_eth_shared_platform_data *pd = pdev->dev.platform_data; |
2479 | 2480 | ||
2480 | if (pd == NULL || pd->shared_smi == NULL) { | 2481 | if (pd == NULL || pd->shared_smi == NULL) { |
2481 | mdiobus_free(msp->smi_bus); | ||
2482 | mdiobus_unregister(msp->smi_bus); | 2482 | mdiobus_unregister(msp->smi_bus); |
2483 | mdiobus_free(msp->smi_bus); | ||
2483 | } | 2484 | } |
2484 | if (msp->err_interrupt != NO_IRQ) | 2485 | if (msp->err_interrupt != NO_IRQ) |
2485 | free_irq(msp->err_interrupt, msp); | 2486 | free_irq(msp->err_interrupt, msp); |