提交 cad8cd9c 编写于 作者: L Larry Finger 提交者: John W. Linville

[PATCH] bcm43xx: Check error returns in initialization routines

A number of the calls in the initialization routines fail to check the returned value for
errors. This patch adds the necessary checks and logs any errors found when appropriate.
Signed-off-by: NLarry Finger <Larry.Finger@lwfinger.net>
Signed-off-by: NJohn W. Linville <linville@tuxdriver.com>
上级 9d4a6040
......@@ -2976,8 +2976,10 @@ static int bcm43xx_chipset_attach(struct bcm43xx_private *bcm)
err = bcm43xx_pctl_set_crystal(bcm, 1);
if (err)
goto out;
bcm43xx_pci_read_config16(bcm, PCI_STATUS, &pci_status);
bcm43xx_pci_write_config16(bcm, PCI_STATUS, pci_status & ~PCI_STATUS_SIG_TARGET_ABORT);
err = bcm43xx_pci_read_config16(bcm, PCI_STATUS, &pci_status);
if (err)
goto out;
err = bcm43xx_pci_write_config16(bcm, PCI_STATUS, pci_status & ~PCI_STATUS_SIG_TARGET_ABORT);
out:
return err;
......@@ -3774,12 +3776,18 @@ static int bcm43xx_attach_board(struct bcm43xx_private *bcm)
}
net_dev->base_addr = (unsigned long)bcm->mmio_addr;
bcm43xx_pci_read_config16(bcm, PCI_SUBSYSTEM_VENDOR_ID,
err = bcm43xx_pci_read_config16(bcm, PCI_SUBSYSTEM_VENDOR_ID,
&bcm->board_vendor);
bcm43xx_pci_read_config16(bcm, PCI_SUBSYSTEM_ID,
if (err)
goto err_iounmap;
err = bcm43xx_pci_read_config16(bcm, PCI_SUBSYSTEM_ID,
&bcm->board_type);
bcm43xx_pci_read_config16(bcm, PCI_REVISION_ID,
if (err)
goto err_iounmap;
err = bcm43xx_pci_read_config16(bcm, PCI_REVISION_ID,
&bcm->board_revision);
if (err)
goto err_iounmap;
err = bcm43xx_chipset_attach(bcm);
if (err)
......@@ -3870,6 +3878,7 @@ static int bcm43xx_attach_board(struct bcm43xx_private *bcm)
pci_release_regions(pci_dev);
err_pci_disable:
pci_disable_device(pci_dev);
printk(KERN_ERR PFX "Unable to attach board\n");
goto out;
}
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册