diff options
author | imp <imp@FreeBSD.org> | 2005-01-20 20:03:37 +0000 |
---|---|---|
committer | imp <imp@FreeBSD.org> | 2005-01-20 20:03:37 +0000 |
commit | 287b204e53fb4f5d32317a8ac290e1909e316ce7 (patch) | |
tree | 2821ea8a19ae826e67aea3e70f7c44196b88ad15 /sys | |
parent | ae1e03e941ddd80925287313d5296162f3cc3081 (diff) | |
download | FreeBSD-src-287b204e53fb4f5d32317a8ac290e1909e316ce7.zip FreeBSD-src-287b204e53fb4f5d32317a8ac290e1909e316ce7.tar.gz |
Only match ethernet functions. I've not seen any multifunction cards
(from a PC Card sense), so this should be a nop. The
pseudo-multifunction cards (eg Silicom ones) need a special driver
anyway..
Diffstat (limited to 'sys')
-rw-r--r-- | sys/dev/ex/if_ex_pccard.c | 7 |
1 files changed, 7 insertions, 0 deletions
diff --git a/sys/dev/ex/if_ex_pccard.c b/sys/dev/ex/if_ex_pccard.c index 1d1c383..d0daa92 100644 --- a/sys/dev/ex/if_ex_pccard.c +++ b/sys/dev/ex/if_ex_pccard.c @@ -48,6 +48,7 @@ __FBSDID("$FreeBSD$"); #include <dev/ex/if_exvar.h> #include <dev/pccard/pccardvar.h> +#include <dev/pccard/pccard_cis.h> #include "pccarddevs.h" @@ -88,6 +89,12 @@ static int ex_pccard_match(device_t dev) { const struct pccard_product *pp; + /* Make sure we're a network function */ + error = pccard_get_function(dev, &fcn); + if (error != 0) + return (error); + if (fcn != PCCARD_FUNCTION_NETWORK) + return (ENXIO); if ((pp = pccard_product_lookup(dev, ex_pccard_products, sizeof(ex_pccard_products[0]), NULL)) != NULL) { |