Commit bc590b47 authored by Heiner Kallweit's avatar Heiner Kallweit Committed by Paolo Abeni

r8169: check for PCI read error in probe

Check whether first PCI read returns 0xffffffff. Currently, if this is
the case, the user sees the following misleading message:
unknown chip XID fcf, contact r8169 maintainers (see MAINTAINERS file)
Signed-off-by: default avatarHeiner Kallweit <hkallweit1@gmail.com>
Reviewed-by: default avatarSimon Horman <simon.horman@corigine.com>
Link: https://lore.kernel.org/r/75b54d23-fefe-2bf4-7e80-c9d3bc91af11@gmail.comSigned-off-by: default avatarPaolo Abeni <pabeni@redhat.com>
parent 3ea3c9cf
...@@ -5164,6 +5164,7 @@ static int rtl_init_one(struct pci_dev *pdev, const struct pci_device_id *ent) ...@@ -5164,6 +5164,7 @@ static int rtl_init_one(struct pci_dev *pdev, const struct pci_device_id *ent)
int jumbo_max, region, rc; int jumbo_max, region, rc;
enum mac_version chipset; enum mac_version chipset;
struct net_device *dev; struct net_device *dev;
u32 txconfig;
u16 xid; u16 xid;
dev = devm_alloc_etherdev(&pdev->dev, sizeof (*tp)); dev = devm_alloc_etherdev(&pdev->dev, sizeof (*tp));
...@@ -5218,7 +5219,13 @@ static int rtl_init_one(struct pci_dev *pdev, const struct pci_device_id *ent) ...@@ -5218,7 +5219,13 @@ static int rtl_init_one(struct pci_dev *pdev, const struct pci_device_id *ent)
tp->mmio_addr = pcim_iomap_table(pdev)[region]; tp->mmio_addr = pcim_iomap_table(pdev)[region];
xid = (RTL_R32(tp, TxConfig) >> 20) & 0xfcf; txconfig = RTL_R32(tp, TxConfig);
if (txconfig == ~0U) {
dev_err(&pdev->dev, "PCI read failed\n");
return -EIO;
}
xid = (txconfig >> 20) & 0xfcf;
/* Identify chip attached to board */ /* Identify chip attached to board */
chipset = rtl8169_get_mac_version(xid, tp->supports_gmii); chipset = rtl8169_get_mac_version(xid, tp->supports_gmii);
......
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