summaryrefslogtreecommitdiffstats
path: root/sys/dev/ex
diff options
context:
space:
mode:
authorimp <imp@FreeBSD.org>2005-01-20 20:03:37 +0000
committerimp <imp@FreeBSD.org>2005-01-20 20:03:37 +0000
commit287b204e53fb4f5d32317a8ac290e1909e316ce7 (patch)
tree2821ea8a19ae826e67aea3e70f7c44196b88ad15 /sys/dev/ex
parentae1e03e941ddd80925287313d5296162f3cc3081 (diff)
downloadFreeBSD-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/dev/ex')
-rw-r--r--sys/dev/ex/if_ex_pccard.c7
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) {
OpenPOWER on IntegriCloud