diff --git a/target/linux/ramips/files/drivers/net/ethernet/ralink/ralink_soc_eth.c b/target/linux/ramips/files/drivers/net/ethernet/ralink/ralink_soc_eth.c
index 6e9f61770852e0b36955ccbb38c39dfcb933497f..068366a7c6946613841dcb631e10a7c04104d8ba 100644
--- a/target/linux/ramips/files/drivers/net/ethernet/ralink/ralink_soc_eth.c
+++ b/target/linux/ramips/files/drivers/net/ethernet/ralink/ralink_soc_eth.c
@@ -764,7 +764,10 @@ static int fe_poll_rx(struct napi_struct *napi, int budget,
 		stats->rx_packets++;
 		stats->rx_bytes += pktlen;
 
-		napi_gro_receive(napi, skb);
+		if (skb->ip_summed == CHECKSUM_NONE)
+			netif_receive_skb(skb);
+		else
+			napi_gro_receive(napi, skb);
 
 		priv->rx_data[idx] = new_data;
 		rxd->rxd1 = (unsigned int) dma_addr;