Commit 1cd173f6 authored by Linas Vepstas's avatar Linas Vepstas Committed by Jeff Garzik

Spidernet cleanup un-needed API

There is no need to pass a flag into spider_net_decode_one_descr()
so remove this, and perform some othre minor cleanup.
Signed-off-by: default avatarLinas Vepstas <linas@austin.ibm.com>
Cc: James K Lewis <jklewis@us.ibm.com>
Cc: Arnd Bergmann <arnd@arndb.de>
Signed-off-by: default avatarJeff Garzik <jeff@garzik.org>
parent 75856175
...@@ -910,7 +910,6 @@ spider_net_do_ioctl(struct net_device *netdev, struct ifreq *ifr, int cmd) ...@@ -910,7 +910,6 @@ spider_net_do_ioctl(struct net_device *netdev, struct ifreq *ifr, int cmd)
* spider_net_pass_skb_up - takes an skb from a descriptor and passes it on * spider_net_pass_skb_up - takes an skb from a descriptor and passes it on
* @descr: descriptor to process * @descr: descriptor to process
* @card: card structure * @card: card structure
* @napi: whether caller is in NAPI context
* *
* returns 1 on success, 0 if no packet was passed to the stack * returns 1 on success, 0 if no packet was passed to the stack
* *
...@@ -919,7 +918,7 @@ spider_net_do_ioctl(struct net_device *netdev, struct ifreq *ifr, int cmd) ...@@ -919,7 +918,7 @@ spider_net_do_ioctl(struct net_device *netdev, struct ifreq *ifr, int cmd)
*/ */
static int static int
spider_net_pass_skb_up(struct spider_net_descr *descr, spider_net_pass_skb_up(struct spider_net_descr *descr,
struct spider_net_card *card, int napi) struct spider_net_card *card)
{ {
struct sk_buff *skb; struct sk_buff *skb;
struct net_device *netdev; struct net_device *netdev;
...@@ -972,10 +971,7 @@ spider_net_pass_skb_up(struct spider_net_descr *descr, ...@@ -972,10 +971,7 @@ spider_net_pass_skb_up(struct spider_net_descr *descr,
} }
/* pass skb up to stack */ /* pass skb up to stack */
if (napi)
netif_receive_skb(skb); netif_receive_skb(skb);
else
netif_rx_ni(skb);
/* update netdevice statistics */ /* update netdevice statistics */
card->netdev_stats.rx_packets++; card->netdev_stats.rx_packets++;
...@@ -987,16 +983,15 @@ spider_net_pass_skb_up(struct spider_net_descr *descr, ...@@ -987,16 +983,15 @@ spider_net_pass_skb_up(struct spider_net_descr *descr,
/** /**
* spider_net_decode_one_descr - processes an rx descriptor * spider_net_decode_one_descr - processes an rx descriptor
* @card: card structure * @card: card structure
* @napi: whether caller is in NAPI context
* *
* returns 1 if a packet has been sent to the stack, otherwise 0 * Returns 1 if a packet has been sent to the stack, otherwise 0
* *
* processes an rx descriptor by iommu-unmapping the data buffer and passing * Processes an rx descriptor by iommu-unmapping the data buffer and passing
* the packet up to the stack. This function is called in softirq * the packet up to the stack. This function is called in softirq
* context, e.g. either bottom half from interrupt or NAPI polling context * context, e.g. either bottom half from interrupt or NAPI polling context
*/ */
static int static int
spider_net_decode_one_descr(struct spider_net_card *card, int napi) spider_net_decode_one_descr(struct spider_net_card *card)
{ {
struct spider_net_descr_chain *chain = &card->rx_chain; struct spider_net_descr_chain *chain = &card->rx_chain;
struct spider_net_descr *descr = chain->tail; struct spider_net_descr *descr = chain->tail;
...@@ -1005,18 +1000,15 @@ spider_net_decode_one_descr(struct spider_net_card *card, int napi) ...@@ -1005,18 +1000,15 @@ spider_net_decode_one_descr(struct spider_net_card *card, int napi)
status = spider_net_get_descr_status(descr); status = spider_net_get_descr_status(descr);
if (status == SPIDER_NET_DESCR_CARDOWNED) {
/* nothing in the descriptor yet */ /* nothing in the descriptor yet */
result=0; if (status == SPIDER_NET_DESCR_CARDOWNED)
goto out; return 0;
}
if (status == SPIDER_NET_DESCR_NOT_IN_USE) { if (status == SPIDER_NET_DESCR_NOT_IN_USE) {
/* not initialized yet, the ring must be empty */ /* not initialized yet, the ring must be empty */
spider_net_refill_rx_chain(card); spider_net_refill_rx_chain(card);
spider_net_enable_rxdmac(card); spider_net_enable_rxdmac(card);
result=0; return 0;
goto out;
} }
/* descriptor definitively used -- move on tail */ /* descriptor definitively used -- move on tail */
...@@ -1046,13 +1038,10 @@ spider_net_decode_one_descr(struct spider_net_card *card, int napi) ...@@ -1046,13 +1038,10 @@ spider_net_decode_one_descr(struct spider_net_card *card, int napi)
} }
/* ok, we've got a packet in descr */ /* ok, we've got a packet in descr */
result = spider_net_pass_skb_up(descr, card, napi); result = spider_net_pass_skb_up(descr, card);
refill: refill:
descr->dmac_cmd_status = SPIDER_NET_DESCR_NOT_IN_USE;
/* change the descriptor state: */ /* change the descriptor state: */
if (!napi) descr->dmac_cmd_status = SPIDER_NET_DESCR_NOT_IN_USE;
spider_net_refill_rx_chain(card);
out:
return result; return result;
} }
...@@ -1079,7 +1068,7 @@ spider_net_poll(struct net_device *netdev, int *budget) ...@@ -1079,7 +1068,7 @@ spider_net_poll(struct net_device *netdev, int *budget)
packets_to_do = min(*budget, netdev->quota); packets_to_do = min(*budget, netdev->quota);
while (packets_to_do) { while (packets_to_do) {
if (spider_net_decode_one_descr(card, 1)) { if (spider_net_decode_one_descr(card)) {
packets_done++; packets_done++;
packets_to_do--; packets_to_do--;
} else { } else {
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment