--- a/drivers/net/ethernet/lantiq_xrx200.c
+++ b/drivers/net/ethernet/lantiq_xrx200.c
@@ -933,7 +933,7 @@ static void xrx200_hw_receive(struct xrx
 	struct xrx200_priv *priv = netdev_priv(dev);
 	struct ltq_dma_desc *desc = &ch->dma.desc_base[ch->dma.desc];
 	struct sk_buff *skb = ch->skb[ch->dma.desc];
-	int len = (desc->ctl & LTQ_DMA_SIZE_MASK);
+	int len = (desc->ctl & LTQ_DMA_SIZE_MASK) - ETH_FCS_LEN;
 	unsigned long flags;
 
 	spin_lock_irqsave(&priv->hw->lock, flags);