From: Sasha Levin Date: Thu, 28 Nov 2019 14:59:55 +0000 (-0500) Subject: fixes for 4.19 X-Git-Tag: v4.4.204~2 X-Git-Url: http://git.ipfire.org/gitweb.cgi?a=commitdiff_plain;h=e7e3a771db096c06c95dcb320c7b607182a28714;p=thirdparty%2Fkernel%2Fstable-queue.git fixes for 4.19 Signed-off-by: Sasha Levin --- diff --git a/queue-4.19/net-hns3-fix-error-handling-int-the-hns3_get_vector_.patch b/queue-4.19/net-hns3-fix-error-handling-int-the-hns3_get_vector_.patch new file mode 100644 index 00000000000..6370559cb28 --- /dev/null +++ b/queue-4.19/net-hns3-fix-error-handling-int-the-hns3_get_vector_.patch @@ -0,0 +1,55 @@ +From 4b01732de5278618d8b013fa300638742392d507 Mon Sep 17 00:00:00 2001 +From: Sasha Levin +Date: Tue, 18 Dec 2018 19:37:48 +0800 +Subject: net: hns3: fix error handling int the hns3_get_vector_ring_chain + +From: Huazhong Tan + +[ Upstream commit cda69d244585bc4497d3bb878c22fe2b6ad647c1 ] + +When hns3_get_vector_ring_chain() failed in the +hns3_nic_init_vector_data(), it should do the error handling instead +of return directly. + +Also, cur_chain should be freed instead of chain and head->next should +be set to NULL in error handling of hns3_get_vector_ring_chain. + +This patch fixes them. + +Fixes: 73b907a083b8 ("net: hns3: bugfix for buffer not free problem during resetting") +Signed-off-by: Huazhong Tan +Signed-off-by: Peng Li +Signed-off-by: David S. Miller +Signed-off-by: Sasha Levin +--- + drivers/net/ethernet/hisilicon/hns3/hns3_enet.c | 5 +++-- + 1 file changed, 3 insertions(+), 2 deletions(-) + +diff --git a/drivers/net/ethernet/hisilicon/hns3/hns3_enet.c b/drivers/net/ethernet/hisilicon/hns3/hns3_enet.c +index 3708f149d0a6a..2f1c4adf1734d 100644 +--- a/drivers/net/ethernet/hisilicon/hns3/hns3_enet.c ++++ b/drivers/net/ethernet/hisilicon/hns3/hns3_enet.c +@@ -2597,9 +2597,10 @@ err_free_chain: + cur_chain = head->next; + while (cur_chain) { + chain = cur_chain->next; +- devm_kfree(&pdev->dev, chain); ++ devm_kfree(&pdev->dev, cur_chain); + cur_chain = chain; + } ++ head->next = NULL; + + return -ENOMEM; + } +@@ -2671,7 +2672,7 @@ static int hns3_nic_init_vector_data(struct hns3_nic_priv *priv) + ret = hns3_get_vector_ring_chain(tqp_vector, + &vector_ring_chain); + if (ret) +- return ret; ++ goto map_ring_fail; + + ret = h->ae_algo->ops->map_ring_to_vector(h, + tqp_vector->vector_irq, &vector_ring_chain); +-- +2.20.1 + diff --git a/queue-4.19/series b/queue-4.19/series index 828f04f14e8..379223a5712 100644 --- a/queue-4.19/series +++ b/queue-4.19/series @@ -306,3 +306,4 @@ powerpc-book3s64-fix-link-stack-flush-on-context-switch.patch kvm-ppc-book3s-hv-flush-link-stack-on-guest-exit-to-host-kernel.patch net-sysfs-fix-netdev_queue_add_kobject-breakage.patch pm-devfreq-fix-kernel-oops-on-governor-module-load.patch +net-hns3-fix-error-handling-int-the-hns3_get_vector_.patch