|
@@ -521,27 +521,10 @@ static int macb_poll(struct napi_struct *napi, int budget)
|
|
macb_writel(bp, RSR, status);
|
|
macb_writel(bp, RSR, status);
|
|
|
|
|
|
work_done = 0;
|
|
work_done = 0;
|
|
- if (!status) {
|
|
|
|
- /*
|
|
|
|
- * This may happen if an interrupt was pending before
|
|
|
|
- * this function was called last time, and no packets
|
|
|
|
- * have been received since.
|
|
|
|
- */
|
|
|
|
- napi_complete(napi);
|
|
|
|
- goto out;
|
|
|
|
- }
|
|
|
|
|
|
|
|
dev_dbg(&bp->pdev->dev, "poll: status = %08lx, budget = %d\n",
|
|
dev_dbg(&bp->pdev->dev, "poll: status = %08lx, budget = %d\n",
|
|
(unsigned long)status, budget);
|
|
(unsigned long)status, budget);
|
|
|
|
|
|
- if (!(status & MACB_BIT(REC))) {
|
|
|
|
- dev_warn(&bp->pdev->dev,
|
|
|
|
- "No RX buffers complete, status = %02lx\n",
|
|
|
|
- (unsigned long)status);
|
|
|
|
- napi_complete(napi);
|
|
|
|
- goto out;
|
|
|
|
- }
|
|
|
|
-
|
|
|
|
work_done = macb_rx(bp, budget);
|
|
work_done = macb_rx(bp, budget);
|
|
if (work_done < budget)
|
|
if (work_done < budget)
|
|
napi_complete(napi);
|
|
napi_complete(napi);
|
|
@@ -550,7 +533,6 @@ static int macb_poll(struct napi_struct *napi, int budget)
|
|
* We've done what we can to clean the buffers. Make sure we
|
|
* We've done what we can to clean the buffers. Make sure we
|
|
* get notified when new packets arrive.
|
|
* get notified when new packets arrive.
|
|
*/
|
|
*/
|
|
-out:
|
|
|
|
macb_writel(bp, IER, MACB_RX_INT_FLAGS);
|
|
macb_writel(bp, IER, MACB_RX_INT_FLAGS);
|
|
|
|
|
|
/* TODO: Handle errors */
|
|
/* TODO: Handle errors */
|