diff options
author | Linas Vepstas <linas@austin.ibm.com> | 2006-12-13 16:18:52 -0500 |
---|---|---|
committer | Jeff Garzik <jeff@garzik.org> | 2007-02-05 16:58:44 -0500 |
commit | 80dab7c7e5b7c4e53e9423c22375bfd9cbf7f2c3 (patch) | |
tree | 017fca97141b714eb52c1393100d06cb004fed47 /drivers/net/spider_net.c | |
parent | 7f7223b8f11f9857fba1dbd5474882219a7ae6e9 (diff) |
Spidernet RX Refill
The invocation of the rx ring refill routine is haphazard,
it can be called from a central location.
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.c | 13 |
1 files changed, 4 insertions, 9 deletions
diff --git a/drivers/net/spider_net.c b/drivers/net/spider_net.c index 32a45859dfdd..f58741239196 100644 --- a/drivers/net/spider_net.c +++ b/drivers/net/spider_net.c | |||
@@ -980,17 +980,11 @@ spider_net_decode_one_descr(struct spider_net_card *card) | |||
980 | 980 | ||
981 | status = spider_net_get_descr_status(descr); | 981 | status = spider_net_get_descr_status(descr); |
982 | 982 | ||
983 | /* nothing in the descriptor yet */ | 983 | /* Nothing in the descriptor, or ring must be empty */ |
984 | if (status == SPIDER_NET_DESCR_CARDOWNED) | 984 | if ((status == SPIDER_NET_DESCR_CARDOWNED) || |
985 | (status == SPIDER_NET_DESCR_NOT_IN_USE)) | ||
985 | return 0; | 986 | return 0; |
986 | 987 | ||
987 | if (status == SPIDER_NET_DESCR_NOT_IN_USE) { | ||
988 | /* not initialized yet, the ring must be empty */ | ||
989 | spider_net_refill_rx_chain(card); | ||
990 | spider_net_enable_rxdmac(card); | ||
991 | return 0; | ||
992 | } | ||
993 | |||
994 | /* descriptor definitively used -- move on tail */ | 988 | /* descriptor definitively used -- move on tail */ |
995 | chain->tail = descr->next; | 989 | chain->tail = descr->next; |
996 | 990 | ||
@@ -1074,6 +1068,7 @@ spider_net_poll(struct net_device *netdev, int *budget) | |||
1074 | netdev->quota -= packets_done; | 1068 | netdev->quota -= packets_done; |
1075 | *budget -= packets_done; | 1069 | *budget -= packets_done; |
1076 | spider_net_refill_rx_chain(card); | 1070 | spider_net_refill_rx_chain(card); |
1071 | spider_net_enable_rxdmac(card); | ||
1077 | 1072 | ||
1078 | /* if all packets are in the stack, enable interrupts and return 0 */ | 1073 | /* if all packets are in the stack, enable interrupts and return 0 */ |
1079 | /* if not, return 1 */ | 1074 | /* if not, return 1 */ |