|
|
@@ -8100,6 +8100,8 @@ static int niu_pci_vpd_scan_props(struct niu *np, u32 start, u32 end)
|
|
|
start += 3;
|
|
|
|
|
|
prop_len = niu_pci_eeprom_read(np, start + 4);
|
|
|
+ if (prop_len < 0)
|
|
|
+ return prop_len;
|
|
|
err = niu_pci_vpd_get_propname(np, start + 5, namebuf, 64);
|
|
|
if (err < 0)
|
|
|
return err;
|
|
|
@@ -8144,8 +8146,12 @@ static int niu_pci_vpd_scan_props(struct niu *np, u32 start, u32 end)
|
|
|
netif_printk(np, probe, KERN_DEBUG, np->dev,
|
|
|
"VPD_SCAN: Reading in property [%s] len[%d]\n",
|
|
|
namebuf, prop_len);
|
|
|
- for (i = 0; i < prop_len; i++)
|
|
|
- *prop_buf++ = niu_pci_eeprom_read(np, off + i);
|
|
|
+ for (i = 0; i < prop_len; i++) {
|
|
|
+ err = niu_pci_eeprom_read(np, off + i);
|
|
|
+ if (err >= 0)
|
|
|
+ *prop_buf = err;
|
|
|
+ ++prop_buf;
|
|
|
+ }
|
|
|
}
|
|
|
|
|
|
start += len;
|