Denis Kirjanov 021da5
From b896d6e6e524451d3912eb83c57e1cb952d8f84b Mon Sep 17 00:00:00 2001
Denis Kirjanov 021da5
From: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
Denis Kirjanov 021da5
Date: Mon, 3 May 2021 13:56:49 +0200
Denis Kirjanov 021da5
Subject: [PATCH 14/19] Revert "niu: fix missing checks of niu_pci_eeprom_read"
Denis Kirjanov 021da5
Git-commit: 7930742d6a0ff091c85b92ef4e076432d8d8cb79
Denis Kirjanov 021da5
Patch-mainline: v5.13-rc3
Denis Kirjanov 021da5
References: git-fixes
Denis Kirjanov 021da5
Denis Kirjanov 021da5
This reverts commit 26fd962bde0b15e54234fe762d86bc0349df1de4.
Denis Kirjanov 021da5
Denis Kirjanov 021da5
Because of recent interactions with developers from @umn.edu, all
Denis Kirjanov 021da5
commits from them have been recently re-reviewed to ensure if they were
Denis Kirjanov 021da5
correct or not.
Denis Kirjanov 021da5
Denis Kirjanov 021da5
Upon review, this commit was found to be incorrect for the reasons
Denis Kirjanov 021da5
below, so it must be reverted.  It will be fixed up "correctly" in a
Denis Kirjanov 021da5
later kernel change.
Denis Kirjanov 021da5
Denis Kirjanov 021da5
The change here was incorrect.  While it is nice to check if
Denis Kirjanov 021da5
niu_pci_eeprom_read() succeeded or not when using the data, any error
Denis Kirjanov 021da5
that might have happened was not propagated upwards properly, causing
Denis Kirjanov 021da5
the kernel to assume that these reads were successful, which results in
Denis Kirjanov 021da5
invalid data in the buffer that was to contain the successfully read
Denis Kirjanov 021da5
data.
Denis Kirjanov 021da5
Denis Kirjanov 021da5
Cc: Kangjie Lu <kjlu@umn.edu>
Denis Kirjanov 021da5
Cc: Shannon Nelson <shannon.lee.nelson@gmail.com>
Denis Kirjanov 021da5
Cc: David S. Miller <davem@davemloft.net>
Denis Kirjanov 021da5
Fixes: 26fd962bde0b ("niu: fix missing checks of niu_pci_eeprom_read")
Denis Kirjanov 021da5
Cc: stable <stable@vger.kernel.org>
Denis Kirjanov 021da5
Link: https://lore.kernel.org/r/20210503115736.2104747-23-gregkh@linuxfoundation.org
Denis Kirjanov 021da5
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
Denis Kirjanov 021da5
Signed-off-by: Denis Kirjanov <denis.kirjanov@suse.com>
Denis Kirjanov 021da5
---
Denis Kirjanov 021da5
 drivers/net/ethernet/sun/niu.c | 10 ++--------
Denis Kirjanov 021da5
 1 file changed, 2 insertions(+), 8 deletions(-)
Denis Kirjanov 021da5
Denis Kirjanov 021da5
diff --git a/drivers/net/ethernet/sun/niu.c b/drivers/net/ethernet/sun/niu.c
Denis Kirjanov 021da5
index 3f0e34bdf772..1c0aee4ada92 100644
Denis Kirjanov 021da5
--- a/drivers/net/ethernet/sun/niu.c
Denis Kirjanov 021da5
+++ b/drivers/net/ethernet/sun/niu.c
Denis Kirjanov 021da5
@@ -8119,8 +8119,6 @@ static int niu_pci_vpd_scan_props(struct niu *np, u32 start, u32 end)
Denis Kirjanov 021da5
 		start += 3;
Denis Kirjanov 021da5
 
Denis Kirjanov 021da5
 		prop_len = niu_pci_eeprom_read(np, start + 4);
Denis Kirjanov 021da5
-		if (prop_len < 0)
Denis Kirjanov 021da5
-			return prop_len;
Denis Kirjanov 021da5
 		err = niu_pci_vpd_get_propname(np, start + 5, namebuf, 64);
Denis Kirjanov 021da5
 		if (err < 0)
Denis Kirjanov 021da5
 			return err;
Denis Kirjanov 021da5
@@ -8165,12 +8163,8 @@ static int niu_pci_vpd_scan_props(struct niu *np, u32 start, u32 end)
Denis Kirjanov 021da5
 			netif_printk(np, probe, KERN_DEBUG, np->dev,
Denis Kirjanov 021da5
 				     "VPD_SCAN: Reading in property [%s] len[%d]\n",
Denis Kirjanov 021da5
 				     namebuf, prop_len);
Denis Kirjanov 021da5
-			for (i = 0; i < prop_len; i++) {
Denis Kirjanov 021da5
-				err = niu_pci_eeprom_read(np, off + i);
Denis Kirjanov 021da5
-				if (err >= 0)
Denis Kirjanov 021da5
-					*prop_buf = err;
Denis Kirjanov 021da5
-				++prop_buf;
Denis Kirjanov 021da5
-			}
Denis Kirjanov 021da5
+			for (i = 0; i < prop_len; i++)
Denis Kirjanov 021da5
+				*prop_buf++ = niu_pci_eeprom_read(np, off + i);
Denis Kirjanov 021da5
 		}
Denis Kirjanov 021da5
 
Denis Kirjanov 021da5
 		start += len;
Denis Kirjanov 021da5
-- 
Denis Kirjanov 021da5
2.16.4
Denis Kirjanov 021da5