diff options
author | Rafał Miłecki <zajec5@gmail.com> | 2016-07-04 20:00:37 +0200 |
---|---|---|
committer | Zoltan HERPAI <wigyori@uid0.hu> | 2016-07-04 20:00:37 +0200 |
commit | 84394136eea546727ffc6ecdca1af9d558180436 (patch) | |
tree | f63e2ca2c9c4dbc75c012068933a862c88f288a2 /target/linux/generic/patches-4.4/070-0001-bgmac-fix-a-missing-check-for-build_skb.patch | |
parent | 3259bc24af1f2022d673b8fdb23da8030322413a (diff) | |
download | master-187ad058-84394136eea546727ffc6ecdca1af9d558180436.tar.gz master-187ad058-84394136eea546727ffc6ecdca1af9d558180436.tar.bz2 master-187ad058-84394136eea546727ffc6ecdca1af9d558180436.zip |
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 0000000000..7e6dc2035d --- /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 + |