Blob Blame History Raw
From: Luo bin <luobin9@huawei.com>
Date: Wed, 1 Jul 2020 11:16:33 +0800
Subject: hinic: fix passing non negative value to ERR_PTR
Patch-mainline: v5.8-rc5
Git-commit: d3c54f7f18cb82283777998c4bec52e49241c783
References: bsc#1176447

get_dev_cap and set_resources_state functions may return a positive
value because of hardware failure, and the positive return value
can not be passed to ERR_PTR directly.

Fixes: 7dd29ee12865 ("hinic: add sriov feature support")
Signed-off-by: Luo bin <luobin9@huawei.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
Acked-by: Thomas Bogendoerfer <tbogendoerfer@suse.de>
---
 drivers/net/ethernet/huawei/hinic/hinic_hw_dev.c |    2 ++
 1 file changed, 2 insertions(+)

--- a/drivers/net/ethernet/huawei/hinic/hinic_hw_dev.c
+++ b/drivers/net/ethernet/huawei/hinic/hinic_hw_dev.c
@@ -814,6 +814,8 @@ err_aeqs_init:
 err_init_msix:
 err_pfhwdev_alloc:
 	hinic_free_hwif(hwif);
+	if (err > 0)
+		err = -EIO;
 	return ERR_PTR(err);
 }