-From: Felix Fietkau <nbd@openwrt.org>
+From: Felix Fietkau <nbd@nbd.name>
Date: Sun, 12 Apr 2015 22:28:20 +0200
Subject: [PATCH] bgmac: add check for oversized packets
than it's supposed to be. Instead of crashing the kernel, simply pass
the buffer back to the hardware
-Signed-off-by: Felix Fietkau <nbd@openwrt.org>
+Signed-off-by: Felix Fietkau <nbd@nbd.name>
---
--- a/drivers/net/ethernet/broadcom/bgmac.c
+++ b/drivers/net/ethernet/broadcom/bgmac.c
-@@ -428,6 +428,13 @@ static int bgmac_dma_rx_read(struct bgma
+@@ -445,6 +445,13 @@ static int bgmac_dma_rx_read(struct bgma
break;
}
+ if (len > BGMAC_RX_ALLOC_SIZE) {
+ bgmac_err(bgmac, "Found oversized packet at slot %d, DMA issue!\n",
+ ring->start);
-+ kfree(buf);
++ put_page(virt_to_head_page(buf));
+ break;
+ }
+