@@ -3980,6 +3980,7 @@ static int __devinit skge_probe(struct p
struct net_device *dev, *dev1;
struct skge_hw *hw;
int err, using_dac = 0;
+ u32 reg;
err = pci_enable_device(pdev);
if (err) {
@@ -4008,15 +4009,17 @@ static int __devinit skge_probe(struct p
goto err_out_free_regions;
}
+ pci_read_config_dword(pdev, PCI_DEV_REG2, ®);
+
+ /* set size of available VPD, only impacts sysfs */
+ err = pci_vpd_truncate(pdev, 1ul << (((reg & PCI_VPD_ROM_SZ) >> 14) + 8));
+ if (err)
+ dev_warn(&pdev->dev, "Can't set VPD size\n");
+
#ifdef __BIG_ENDIAN
/* byte swap descriptors in hardware */
- {
- u32 reg;
-
- pci_read_config_dword(pdev, PCI_DEV_REG2, ®);
- reg |= PCI_REV_DESC;
- pci_write_config_dword(pdev, PCI_DEV_REG2, reg);
- }
+ reg |= PCI_REV_DESC;
+ pci_write_config_dword(pdev, PCI_DEV_REG2, reg);
#endif
err = -ENOMEM;
Read configuration register during probe and use it to size the available VPD. Signed-off-by: Stephen Hemminger <shemminger@vyatta.com>