pasemi_mac: Clean TX ring in poll
authorOlof Johansson <olof@lixom.net>
Sat, 15 Sep 2007 20:53:19 +0000 (13:53 -0700)
committerDavid S. Miller <davem@sunset.davemloft.net>
Wed, 10 Oct 2007 23:51:00 +0000 (16:51 -0700)
Unfortunately there's no timeout for how long a packet can sit on
the TX ring after completion before an interrupt is generated, and
we want to have a threshold that's larger than one packet per interrupt.

So we have to have a timer that occasionally cleans the TX ring even
though there hasn't been an interrupt. Instead of setting up a dedicated
timer for this, just clean it in the NAPI poll routine instead.

[ Resolved conflicts with napi_struct changes... -DaveM ]

Signed-off-by: Olof Johansson <olof@lixom.net>
Signed-off-by: Jeff Garzik <jeff@garzik.org>
Signed-off-by: David S. Miller <davem@davemloft.net>
drivers/net/pasemi_mac.c

index 916a76e28a87d92943fc38b346c501bf8e9037d5..48c117038fefd9850ac80759f7d20823edfcd41c 100644 (file)
@@ -1078,6 +1078,7 @@ static int pasemi_mac_poll(struct napi_struct *napi, int budget)
        struct net_device *dev = mac->netdev;
        int pkts;
 
+       pasemi_mac_clean_tx(mac);
        pkts = pasemi_mac_clean_rx(mac, budget);
        if (pkts < budget) {
                /* all done, no more packets present */