Commit 96ce96f1 authored by Heiner Kallweit's avatar Heiner Kallweit Committed by David S. Miller

cxgb4: Validate VPD checksum with pci_vpd_check_csum()

Validate the VPD checksum with pci_vpd_check_csum() to simplify the code.
Signed-off-by: default avatarHeiner Kallweit <hkallweit1@gmail.com>
Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
parent 58a9b5d2
...@@ -2745,7 +2745,7 @@ int t4_get_raw_vpd_params(struct adapter *adapter, struct vpd_params *p) ...@@ -2745,7 +2745,7 @@ int t4_get_raw_vpd_params(struct adapter *adapter, struct vpd_params *p)
{ {
int i, ret = 0, addr; int i, ret = 0, addr;
int ec, sn, pn, na; int ec, sn, pn, na;
u8 *vpd, csum, base_val = 0; u8 *vpd, base_val = 0;
unsigned int vpdr_len, kw_offset, id_len; unsigned int vpdr_len, kw_offset, id_len;
vpd = vmalloc(VPD_LEN); vpd = vmalloc(VPD_LEN);
...@@ -2800,13 +2800,9 @@ int t4_get_raw_vpd_params(struct adapter *adapter, struct vpd_params *p) ...@@ -2800,13 +2800,9 @@ int t4_get_raw_vpd_params(struct adapter *adapter, struct vpd_params *p)
var += PCI_VPD_INFO_FLD_HDR_SIZE; \ var += PCI_VPD_INFO_FLD_HDR_SIZE; \
} while (0) } while (0)
FIND_VPD_KW(i, "RV"); ret = pci_vpd_check_csum(vpd, VPD_LEN);
for (csum = 0; i >= 0; i--) if (ret) {
csum += vpd[i]; dev_err(adapter->pdev_dev, "VPD checksum incorrect or missing\n");
if (csum) {
dev_err(adapter->pdev_dev,
"corrupted VPD EEPROM, actual csum %u\n", csum);
ret = -EINVAL; ret = -EINVAL;
goto out; goto out;
} }
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment