This is a note to let you know that I've just added the patch titled bgmac: add check for oversized packets to the 3.18-stable tree which can be found at: http://www.kernel.org/git/?p=linux/kernel/git/stable/stable-queue.git;a=summary The filename of the patch is: bgmac-add-check-for-oversized-packets.patch and it can be found in the queue-3.18 subdirectory. If you, or anyone else, feels it should not be added to the stable tree, please let <stable@xxxxxxxxxxxxxxx> know about it. >From 6a6c708469c9e10fd87adcc3abff164270538d62 Mon Sep 17 00:00:00 2001 From: Felix Fietkau <nbd@xxxxxxxxxxx> Date: Tue, 14 Apr 2015 12:07:58 +0200 Subject: bgmac: add check for oversized packets From: Felix Fietkau <nbd@xxxxxxxxxxx> commit 6a6c708469c9e10fd87adcc3abff164270538d62 upstream. 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@xxxxxxxxxxx> Signed-off-by: David S. Miller <davem@xxxxxxxxxxxxx> Signed-off-by: Amit Pundir <amit.pundir@xxxxxxxxxx> Signed-off-by: Greg Kroah-Hartman <gregkh@xxxxxxxxxxxxxxxxxxx> --- drivers/net/ethernet/broadcom/bgmac.c | 7 +++++++ 1 file changed, 7 insertions(+) --- a/drivers/net/ethernet/broadcom/bgmac.c +++ b/drivers/net/ethernet/broadcom/bgmac.c @@ -373,6 +373,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; Patches currently in stable-queue which might be from nbd@xxxxxxxxxxx are queue-3.18/bgmac-reset-enable-ethernet-core-before-using-it.patch queue-3.18/bgmac-add-check-for-oversized-packets.patch