diff options
| author | Warner Losh <imp@FreeBSD.org> | 2005-10-13 22:12:34 +0000 |
|---|---|---|
| committer | Warner Losh <imp@FreeBSD.org> | 2005-10-13 22:12:34 +0000 |
| commit | 92a6736a5b7c1caa261a1331ab78b28f69ff9e8b (patch) | |
| tree | 843047414098fb359bc7ea097f6a3494097d3ede /sys/dev/ed | |
| parent | fab4f065825b97c44e03de38c4656883642486cc (diff) | |
Notes
Diffstat (limited to 'sys/dev/ed')
| -rw-r--r-- | sys/dev/ed/if_ed_pci.c | 11 |
1 files changed, 9 insertions, 2 deletions
diff --git a/sys/dev/ed/if_ed_pci.c b/sys/dev/ed/if_ed_pci.c index bdb3e7329825..67a655fb74f6 100644 --- a/sys/dev/ed/if_ed_pci.c +++ b/sys/dev/ed/if_ed_pci.c @@ -82,11 +82,18 @@ ed_pci_attach(device_t dev) { struct ed_softc *sc = device_get_softc(dev); int flags = 0; - int error; + int error = ENXIO; + /* + * If this card claims to be a RTL8029, probe it as such. + * However, allow that probe to fail. Some versions of qemu + * claim to be a 8029 in the PCI register, but it doesn't + * implement the 8029 specific registers. In that case, fall + * back to a normal NE2000. + */ if (pci_get_devid(dev) == ED_RTL8029_PCI_ID) error = ed_probe_RTL80x9(dev, PCIR_BAR(0), flags); - else + if (error) error = ed_probe_Novell(dev, PCIR_BAR(0), flags); if (error) { ed_release_resources(dev); |
