diff options
author | Rafał Miłecki <zajec5@gmail.com> | 2016-06-20 22:38:01 +0200 |
---|---|---|
committer | Rafał Miłecki <zajec5@gmail.com> | 2016-06-20 23:07:31 +0200 |
commit | 65a22d84ad1a921751ac9e5a1a5b52dad6967e16 (patch) | |
tree | ad4c581f2eefb65070f89320346289f16a169cd7 /target/linux/generic/patches-4.4/070-0001-bgmac-fix-a-missing-check-for-build_skb.patch | |
parent | 4bd0edba1ea545954901d4f9e01db60a7d97a7bb (diff) | |
download | mtk-20170518-65a22d84ad1a921751ac9e5a1a5b52dad6967e16.zip mtk-20170518-65a22d84ad1a921751ac9e5a1a5b52dad6967e16.tar.gz mtk-20170518-65a22d84ad1a921751ac9e5a1a5b52dad6967e16.tar.bz2 |
kernel: backport bgmac changes from net-next
Signed-off-by: Rafał Miłecki <zajec5@gmail.com>
Diffstat (limited to 'target/linux/generic/patches-4.4/070-0001-bgmac-fix-a-missing-check-for-build_skb.patch')
-rw-r--r-- | target/linux/generic/patches-4.4/070-0001-bgmac-fix-a-missing-check-for-build_skb.patch | 28 |
1 files changed, 28 insertions, 0 deletions
diff --git a/target/linux/generic/patches-4.4/070-0001-bgmac-fix-a-missing-check-for-build_skb.patch b/target/linux/generic/patches-4.4/070-0001-bgmac-fix-a-missing-check-for-build_skb.patch new file mode 100644 index 0000000..7e6dc20 --- /dev/null +++ b/target/linux/generic/patches-4.4/070-0001-bgmac-fix-a-missing-check-for-build_skb.patch @@ -0,0 +1,28 @@ +From f1640c3ddeec12804bc9a21feee85fc15aca95f6 Mon Sep 17 00:00:00 2001 +From: wangweidong <wangweidong1@huawei.com> +Date: Wed, 13 Jan 2016 11:06:41 +0800 +Subject: [PATCH] bgmac: fix a missing check for build_skb + +when build_skb failed, it may occure a NULL pointer. +So add a 'NULL check' for it. + +Signed-off-by: Weidong Wang <wangweidong1@huawei.com> +Signed-off-by: David S. Miller <davem@davemloft.net> +--- + drivers/net/ethernet/broadcom/bgmac.c | 5 +++++ + 1 file changed, 5 insertions(+) + +--- a/drivers/net/ethernet/broadcom/bgmac.c ++++ b/drivers/net/ethernet/broadcom/bgmac.c +@@ -466,6 +466,11 @@ static int bgmac_dma_rx_read(struct bgma + len -= ETH_FCS_LEN; + + skb = build_skb(buf, BGMAC_RX_ALLOC_SIZE); ++ if (unlikely(skb)) { ++ bgmac_err(bgmac, "build_skb failed\n"); ++ put_page(virt_to_head_page(buf)); ++ break; ++ } + skb_put(skb, BGMAC_RX_FRAME_OFFSET + + BGMAC_RX_BUF_OFFSET + len); + skb_pull(skb, BGMAC_RX_FRAME_OFFSET + |