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
          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
 
        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 {
 
 
 /* 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)
 
        return 0;
 }
-#endif
 
 static int rxq_process(struct rx_queue *rxq, int budget)
 {
                        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;
                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);
        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;
 
                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;
                                        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;
        rxq->lro_mgr.get_skb_header = mv643xx_get_skb_header;
 
        memset(&rxq->lro_arr, 0, sizeof(rxq->lro_arr));
-#endif
 
        return 0;