diff --git a/drivers/net/Kconfig b/drivers/net/Kconfig
index 7159a39..45403e6 100644
--- a/drivers/net/Kconfig
+++ b/drivers/net/Kconfig
@@ -2301,6 +2301,7 @@
 config MV643XX_ETH
 	tristate "Marvell Discovery (643XX) and Orion ethernet support"
 	depends on MV64360 || MV64X60 || (PPC_MULTIPLATFORM && PPC32) || PLAT_ORION
+	select INET_LRO
 	select PHYLIB
 	help
 	  This driver supports the gigabit ethernet MACs in the
@@ -2310,16 +2311,6 @@
 	  Some boards that use the Discovery chipset are the Momenco
 	  Ocelot C and Jaguar ATX and Pegasos II.
 
-config MV643XX_ETH_LRO
-	tristate "Marvell 643XX ethernet driver LRO support"
-	depends on MV643XX_ETH
-	select INET_LRO
-	help
-	  Say y here if you want to use Large Receive Offload for the
-	  mv643xx_eth driver.
-
-	  If in doubt, say N.
-
 config QLA3XXX
 	tristate "QLogic QLA3XXX Network Driver Support"
 	depends on PCI
diff --git a/drivers/net/mv643xx_eth.c b/drivers/net/mv643xx_eth.c
index 56912ad..d4d5a56 100644
--- a/drivers/net/mv643xx_eth.c
+++ b/drivers/net/mv643xx_eth.c
@@ -351,10 +351,8 @@
 	int rx_desc_area_size;
 	struct sk_buff **rx_skb;
 
-#ifdef CONFIG_MV643XX_ETH_LRO
 	struct net_lro_mgr lro_mgr;
 	struct net_lro_desc lro_arr[8];
-#endif
 };
 
 struct tx_queue {
@@ -516,7 +514,6 @@
 
 
 /* rx napi ******************************************************************/
-#ifdef CONFIG_MV643XX_ETH_LRO
 static int
 mv643xx_get_skb_header(struct sk_buff *skb, void **iphdr, void **tcph,
 		       u64 *hdr_flags, void *priv)
@@ -542,7 +539,6 @@
 
 	return 0;
 }
-#endif
 
 static int rxq_process(struct rx_queue *rxq, int budget)
 {
@@ -612,13 +608,11 @@
 			skb->ip_summed = CHECKSUM_UNNECESSARY;
 		skb->protocol = eth_type_trans(skb, mp->dev);
 
-#ifdef CONFIG_MV643XX_ETH_LRO
 		if (skb->dev->features & NETIF_F_LRO &&
 		    skb->ip_summed == CHECKSUM_UNNECESSARY) {
 			lro_receive_skb(&rxq->lro_mgr, skb, (void *)cmd_sts);
 			lro_flush_needed = 1;
 		} else
-#endif
 			netif_receive_skb(skb);
 
 		continue;
@@ -640,10 +634,8 @@
 		dev_kfree_skb(skb);
 	}
 
-#ifdef CONFIG_MV643XX_ETH_LRO
 	if (lro_flush_needed)
 		lro_flush_all(&rxq->lro_mgr);
-#endif
 
 	if (rx < budget)
 		mp->work_rx &= ~(1 << rxq->index);
@@ -1231,7 +1223,6 @@
 	u32 lro_no_desc = 0;
 	int i;
 
-#ifdef CONFIG_MV643XX_ETH_LRO
 	for (i = 0; i < mp->rxq_count; i++) {
 		struct rx_queue *rxq = mp->rxq + i;
 
@@ -1239,7 +1230,6 @@
 		lro_flushed += rxq->lro_mgr.stats.flushed;
 		lro_no_desc += rxq->lro_mgr.stats.no_desc;
 	}
-#endif
 
 	mp->lro_counters.lro_aggregated = lro_aggregated;
 	mp->lro_counters.lro_flushed = lro_flushed;
@@ -1939,7 +1929,6 @@
 					nexti * sizeof(struct rx_desc);
 	}
 
-#ifdef CONFIG_MV643XX_ETH_LRO
 	rxq->lro_mgr.dev = mp->dev;
 	memset(&rxq->lro_mgr.stats, 0, sizeof(rxq->lro_mgr.stats));
 	rxq->lro_mgr.features = LRO_F_NAPI;
@@ -1952,7 +1941,6 @@
 	rxq->lro_mgr.get_skb_header = mv643xx_get_skb_header;
 
 	memset(&rxq->lro_arr, 0, sizeof(rxq->lro_arr));
-#endif
 
 	return 0;
 
