aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/net/spider_net.c
diff options
context:
space:
mode:
authorLinas Vepstas <linas@austin.ibm.com>2006-12-13 16:10:06 -0500
committerJeff Garzik <jeff@garzik.org>2007-02-05 16:58:44 -0500
commit75856175c26f89198ec64eb2480ed00c4a39a5d6 (patch)
tree02eb736222b7348f1dc959347949bdcd37120714 /drivers/net/spider_net.c
parent5a028877d2a350ebba3cda924cbf7f3bd2eb2135 (diff)
Spidernet remove rxramfull tasklet
Get rid of the rxramfull tasklet, and let the NAPI poll routine deal with this situation. (The rxramfull interrupt is simply stating that the h/w has run out of room for incoming packets). Signed-off-by: Linas Vepstas <linas@austin.ibm.com> Cc: James K Lewis <jklewis@us.ibm.com> Cc: Arnd Bergmann <arnd@arndb.de> Signed-off-by: Jeff Garzik <jeff@garzik.org>
Diffstat (limited to 'drivers/net/spider_net.c')
-rw-r--r--drivers/net/spider_net.c24
1 files changed, 1 insertions, 23 deletions
diff --git a/drivers/net/spider_net.c b/drivers/net/spider_net.c
index ce27e8d318d..572c7546e15 100644
--- a/drivers/net/spider_net.c
+++ b/drivers/net/spider_net.c
@@ -1221,24 +1221,6 @@ spider_net_set_mac(struct net_device *netdev, void *p)
1221} 1221}
1222 1222
1223/** 1223/**
1224 * spider_net_handle_rxram_full - cleans up RX ring upon RX RAM full interrupt
1225 * @card: card structure
1226 *
1227 * spider_net_handle_rxram_full empties the RX ring so that spider can put
1228 * more packets in it and empty its RX RAM. This is called in bottom half
1229 * context
1230 */
1231static void
1232spider_net_handle_rxram_full(struct spider_net_card *card)
1233{
1234 while (spider_net_decode_one_descr(card, 0))
1235 ;
1236 spider_net_enable_rxchtails(card);
1237 spider_net_enable_rxdmac(card);
1238 netif_rx_schedule(card->netdev);
1239}
1240
1241/**
1242 * spider_net_handle_error_irq - handles errors raised by an interrupt 1224 * spider_net_handle_error_irq - handles errors raised by an interrupt
1243 * @card: card structure 1225 * @card: card structure
1244 * @status_reg: interrupt status register 0 (GHIINT0STS) 1226 * @status_reg: interrupt status register 0 (GHIINT0STS)
@@ -1363,7 +1345,7 @@ spider_net_handle_error_irq(struct spider_net_card *card, u32 status_reg)
1363 pr_err("Spider RX RAM full, incoming packets " 1345 pr_err("Spider RX RAM full, incoming packets "
1364 "might be discarded!\n"); 1346 "might be discarded!\n");
1365 spider_net_rx_irq_off(card); 1347 spider_net_rx_irq_off(card);
1366 tasklet_schedule(&card->rxram_full_tl); 1348 netif_rx_schedule(card->netdev);
1367 show_error = 0; 1349 show_error = 0;
1368 break; 1350 break;
1369 1351
@@ -1895,7 +1877,6 @@ spider_net_stop(struct net_device *netdev)
1895{ 1877{
1896 struct spider_net_card *card = netdev_priv(netdev); 1878 struct spider_net_card *card = netdev_priv(netdev);
1897 1879
1898 tasklet_kill(&card->rxram_full_tl);
1899 netif_poll_disable(netdev); 1880 netif_poll_disable(netdev);
1900 netif_carrier_off(netdev); 1881 netif_carrier_off(netdev);
1901 netif_stop_queue(netdev); 1882 netif_stop_queue(netdev);
@@ -2040,9 +2021,6 @@ spider_net_setup_netdev(struct spider_net_card *card)
2040 2021
2041 pci_set_drvdata(card->pdev, netdev); 2022 pci_set_drvdata(card->pdev, netdev);
2042 2023
2043 card->rxram_full_tl.data = (unsigned long) card;
2044 card->rxram_full_tl.func =
2045 (void (*)(unsigned long)) spider_net_handle_rxram_full;
2046 init_timer(&card->tx_timer); 2024 init_timer(&card->tx_timer);
2047 card->tx_timer.function = 2025 card->tx_timer.function =
2048 (void (*)(unsigned long)) spider_net_cleanup_tx_ring; 2026 (void (*)(unsigned long)) spider_net_cleanup_tx_ring;