treewide: fix replace nbd@openwrt.org with nbd@nbd.name
[openwrt.org/openwrt.git] / target / linux / generic / patches-3.18 / 077-08-bgmac-add-check-for-oversized-packets.patch
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
From: Felix Fietkau <nbd@nbd.name>
Date: Sun, 12 Apr 2015 22:28:20 +0200
Subject: [PATCH] bgmac: add check for oversized packets
 
In very rare cases, the MAC can catch an internal buffer that is bigger
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@nbd.name>
---
 
--- a/drivers/net/ethernet/broadcom/bgmac.c
+++ b/drivers/net/ethernet/broadcom/bgmac.c
@@ -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);
+                               put_page(virt_to_head_page(buf));
+                               break;
+                       }
+
                        /* Omit CRC. */
                        len -= ETH_FCS_LEN;
 
 
comments