 -
 -	if (reg_sr & get_irq_mb_rx(priv))
 -		work_done += at91_poll_rx(dev, quota - work_done);
--
--	/*
--	 * The error bits are clear on read,
--	 * so use saved value from irq handler.
--	 */
--	reg_sr |= priv->reg_sr;
--	if (reg_sr & AT91_IRQ_ERR_FRAME)
--		work_done += at91_poll_err(dev, quota - work_done, reg_sr);
--
--	if (work_done < quota) {
--		/* enable IRQs for frame errors and all mailboxes >= rx_next */
--		u32 reg_ier = AT91_IRQ_ERR_FRAME;
--		reg_ier |= get_irq_mb_rx(priv) & ~AT91_MB_MASK(priv->rx_next);
--
--		napi_complete_done(napi, work_done);
--		at91_write(priv, AT91_IER, reg_ier);
--	}
 +    struct net_device *dev = napi->dev;
 +    const struct at91_priv *priv = netdev_priv(dev);
 +    int work_done = 0;

+        napi_complete(napi);
+    }
 
-	return work_done;
+ 	return work_done;
 }

 	}
 
 	return received;
 }
 
-static void at91_poll_err_frame(struct net_device *dev,
-		struct can_frame *cf, u32 reg_sr)
-{
-	struct at91_priv *priv = netdev_priv(dev);
-
-	/* CRC error */
-	if (reg_sr & AT91_IRQ_CERR) {
-		netdev_dbg(dev, "CERR irq\n");
-		dev->stats.rx_errors++;
-		priv->can.can_stats.bus_error++;
-		cf->can_id |= CAN_ERR_PROT | CAN_ERR_BUSERROR;
-	}
-
-	/* Stuffing Error */
-	if (reg_sr & AT91_IRQ_SERR) {
-		netdev_dbg(dev, "SERR irq\n");
-		dev->stats.rx_errors++;
-		priv->can.can_stats.bus_error++;
-		cf->can_id |= CAN_ERR_PROT | CAN_ERR_BUSERROR;
-		cf->data[2] |= CAN_ERR_PROT_STUFF;
-	}
-
-	/* Acknowledgement Error */
-	if (reg_sr & AT91_IRQ_AERR) {
-		netdev_dbg(dev, "AERR irq\n");
-		dev->stats.tx_errors++;
-		cf->can_id |= CAN_ERR_ACK;
-	}
-
-	/* Form error */
-	if (reg_sr & AT91_IRQ_FERR) {
-		netdev_dbg(dev, "FERR irq\n");
-		dev->stats.rx_errors++;
-		priv->can.can_stats.bus_error++;
-		cf->can_id |= CAN_ERR_PROT | CAN_ERR_BUSERROR;
-		cf->data[2] |= CAN_ERR_PROT_FORM;
-	}
-
-	/* Bit Error */
-	if (reg_sr & AT91_IRQ_BERR) {
-		netdev_dbg(dev, "BERR irq\n");
-		dev->stats.tx_errors++;
-		priv->can.can_stats.bus_error++;
-		cf->can_id |= CAN_ERR_PROT | CAN_ERR_BUSERROR;
-		cf->data[2] |= CAN_ERR_PROT_BIT;
-	}
-}
-
-static int at91_poll_err(struct net_device *dev, int quota, u32 reg_sr)
-{
-	struct sk_buff *skb;
