  	}
  
  	return received;
-@@ -769,57 +799,26 @@
- 	}
- }
- 
+ }
+ 
+-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;

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

 
 	reg_sr = at91_read(priv, AT91_SR);
 	reg_imr = at91_read(priv, AT91_IMR);
@@ -1071,19 +1021,26 @@
 	/* Ignore masked interrupts */
 	reg_sr &= reg_imr;
 	if (!reg_sr)
