aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/net/ps3_gelic_net.c
diff options
context:
space:
mode:
Diffstat (limited to 'drivers/net/ps3_gelic_net.c')
-rw-r--r--drivers/net/ps3_gelic_net.c9
1 files changed, 7 insertions, 2 deletions
diff --git a/drivers/net/ps3_gelic_net.c b/drivers/net/ps3_gelic_net.c
index 518c5c3ce38..d596df98758 100644
--- a/drivers/net/ps3_gelic_net.c
+++ b/drivers/net/ps3_gelic_net.c
@@ -943,8 +943,8 @@ refill:
943 descr->prev->next_descr_addr = descr->bus_addr; 943 descr->prev->next_descr_addr = descr->bus_addr;
944 944
945 if (dmac_chain_ended) { 945 if (dmac_chain_ended) {
946 gelic_net_enable_rxdmac(card); 946 card->rx_dma_restart_required = 1;
947 dev_dbg(ctodev(card), "reenable rx dma\n"); 947 dev_dbg(ctodev(card), "reenable rx dma scheduled\n");
948 } 948 }
949 949
950 return 1; 950 return 1;
@@ -1020,6 +1020,11 @@ static irqreturn_t gelic_net_interrupt(int irq, void *ptr)
1020 if (!status) 1020 if (!status)
1021 return IRQ_NONE; 1021 return IRQ_NONE;
1022 1022
1023 if (card->rx_dma_restart_required) {
1024 card->rx_dma_restart_required = 0;
1025 gelic_net_enable_rxdmac(card);
1026 }
1027
1023 if (status & GELIC_NET_RXINT) { 1028 if (status & GELIC_NET_RXINT) {
1024 gelic_net_rx_irq_off(card); 1029 gelic_net_rx_irq_off(card);
1025 netif_rx_schedule(netdev); 1030 netif_rx_schedule(netdev);