Linksys EG1032 rev. 3 patch

M. Warner Losh imp at bsdimp.com
Mon Oct 3 12:28:11 PDT 2005


Is rev the right thing to filter based on, or is the subvendor id and
subvendor device?  if a vendor sets the vendor id/vendor device fields
wrong, who is to say that we can know based on the pci revision field
if this device is right or not.  The revision field tends to change a
lot and having a sample size of 1 or 2 (or even 5) likely is
insufficient to know if it can be relied upon to not cause problems
with the next container load of the cards arrives...

I know that the re vs rl decision is made based on the revision in the
device's I/O space right now:

	while (t->rl_name != NULL) {
		if ((pci_get_vendor(dev) == t->rl_vid) &&
		    (pci_get_device(dev) == t->rl_did)) {
... map I/O
			hwrev = CSR_READ_4(sc, RL_TXCFG) & RL_TXCFG_HWREV;
... unmap I/O
			if (t->rl_basetype == hwrev) {
				device_set_desc(dev, t->rl_name);
				return (BUS_PROBE_DEFAULT);
			}
		}
		t++;
	}
	return (ENXIO);

Checking for 0x10 vs 0x15 for a card that has gone from rev 2 to rev 3
just strikes me as unwise.

Warner


More information about the freebsd-current mailing list