Skip to content

Commit

Permalink
Spidernet RX Refill
Browse files Browse the repository at this point in the history
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>
  • Loading branch information
Linas Vepstas authored and Jeff Garzik committed Feb 5, 2007
1 parent 7f7223b commit 80dab7c
Showing 1 changed file with 4 additions and 9 deletions.
13 changes: 4 additions & 9 deletions drivers/net/spider_net.c
Original file line number Diff line number Diff line change
Expand Up @@ -980,17 +980,11 @@ spider_net_decode_one_descr(struct spider_net_card *card)

status = spider_net_get_descr_status(descr);

/* nothing in the descriptor yet */
if (status == SPIDER_NET_DESCR_CARDOWNED)
/* Nothing in the descriptor, or ring must be empty */
if ((status == SPIDER_NET_DESCR_CARDOWNED) ||
(status == SPIDER_NET_DESCR_NOT_IN_USE))
return 0;

if (status == SPIDER_NET_DESCR_NOT_IN_USE) {
/* not initialized yet, the ring must be empty */
spider_net_refill_rx_chain(card);
spider_net_enable_rxdmac(card);
return 0;
}

/* descriptor definitively used -- move on tail */
chain->tail = descr->next;

Expand Down Expand Up @@ -1074,6 +1068,7 @@ spider_net_poll(struct net_device *netdev, int *budget)
netdev->quota -= packets_done;
*budget -= packets_done;
spider_net_refill_rx_chain(card);
spider_net_enable_rxdmac(card);

/* if all packets are in the stack, enable interrupts and return 0 */
/* if not, return 1 */
Expand Down

0 comments on commit 80dab7c

Please sign in to comment.