]> git.ipfire.org Git - thirdparty/kernel/stable-queue.git/blob - releases/4.19.31/net-hns-fix-object-reference-leaks-in-hns_dsaf_roce_.patch
Linux 4.14.108
[thirdparty/kernel/stable-queue.git] / releases / 4.19.31 / net-hns-fix-object-reference-leaks-in-hns_dsaf_roce_.patch
1 From d7f8f51ab82906e57af3361c6b6bf4d29706a5d4 Mon Sep 17 00:00:00 2001
2 From: Huang Zijiang <huang.zijiang@zte.com.cn>
3 Date: Thu, 14 Feb 2019 14:41:45 +0800
4 Subject: net: hns: Fix object reference leaks in hns_dsaf_roce_reset()
5
6 [ Upstream commit c969c6e7ab8cb42b5c787c567615474fdbad9d6a ]
7
8 The of_find_device_by_node() takes a reference to the underlying device
9 structure, we should release that reference.
10
11 Signed-off-by: Huang Zijiang <huang.zijiang@zte.com.cn>
12 Signed-off-by: David S. Miller <davem@davemloft.net>
13 Signed-off-by: Sasha Levin <sashal@kernel.org>
14 ---
15 drivers/net/ethernet/hisilicon/hns/hns_dsaf_main.c | 2 ++
16 1 file changed, 2 insertions(+)
17
18 diff --git a/drivers/net/ethernet/hisilicon/hns/hns_dsaf_main.c b/drivers/net/ethernet/hisilicon/hns/hns_dsaf_main.c
19 index 3b9e74be5fbd..b8155f5e71b4 100644
20 --- a/drivers/net/ethernet/hisilicon/hns/hns_dsaf_main.c
21 +++ b/drivers/net/ethernet/hisilicon/hns/hns_dsaf_main.c
22 @@ -3081,6 +3081,7 @@ int hns_dsaf_roce_reset(struct fwnode_handle *dsaf_fwnode, bool dereset)
23 dsaf_dev = dev_get_drvdata(&pdev->dev);
24 if (!dsaf_dev) {
25 dev_err(&pdev->dev, "dsaf_dev is NULL\n");
26 + put_device(&pdev->dev);
27 return -ENODEV;
28 }
29
30 @@ -3088,6 +3089,7 @@ int hns_dsaf_roce_reset(struct fwnode_handle *dsaf_fwnode, bool dereset)
31 if (AE_IS_VER1(dsaf_dev->dsaf_ver)) {
32 dev_err(dsaf_dev->dev, "%s v1 chip doesn't support RoCE!\n",
33 dsaf_dev->ae_dev.name);
34 + put_device(&pdev->dev);
35 return -ENODEV;
36 }
37
38 --
39 2.19.1
40