summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorimp <imp@FreeBSD.org>2008-11-21 03:03:57 +0000
committerimp <imp@FreeBSD.org>2008-11-21 03:03:57 +0000
commit8725ce537786f401a75b1bf5d1142bacb2eb9513 (patch)
tree0b31d1541ac19bfd34d56fad4885be97a7ff7065
parent1c382cbab03138e8f0748a30ad83473a1a52371c (diff)
downloadFreeBSD-src-8725ce537786f401a75b1bf5d1142bacb2eb9513.zip
FreeBSD-src-8725ce537786f401a75b1bf5d1142bacb2eb9513.tar.gz
Create a /dev/cardbus%d.cis, to be compatible with older versions of
the software. This is a trivial amount of code to keep wireless monitoring software working... I plan on removing it in 9.0.
-rw-r--r--sys/dev/cardbus/cardbus_device.c6
-rw-r--r--sys/dev/cardbus/cardbusvar.h1
2 files changed, 6 insertions, 1 deletions
diff --git a/sys/dev/cardbus/cardbus_device.c b/sys/dev/cardbus/cardbus_device.c
index 513caba..b930444 100644
--- a/sys/dev/cardbus/cardbus_device.c
+++ b/sys/dev/cardbus/cardbus_device.c
@@ -118,7 +118,9 @@ cardbus_device_create(struct cardbus_softc *sc, struct cardbus_devinfo *devi,
devi->sc_cisdev = make_dev(&cardbus_cdevsw, minor, 0, 0, 0666,
"cardbus%d.%d.cis", device_get_unit(sc->sc_dev),
devi->pci.cfg.func);
- /* XXX need cardbus%d.cis compat layer here ? */
+ if (devi->pci.cfg.func == 0)
+ devi->sc_cisdev_compat = make_dev_alias(devi->sc_cisdev,
+ "cardbus%d.cis", device_get_unit(sc->sc_dev));
devi->sc_cisdev->si_drv1 = devi;
return (0);
}
@@ -128,6 +130,8 @@ cardbus_device_destroy(struct cardbus_devinfo *devi)
{
if (devi->sc_cisdev)
destroy_dev(devi->sc_cisdev);
+ if (devi->sc_cisdev_compat)
+ destroy_dev(devi->sc_cisdev_compat);
return (0);
}
diff --git a/sys/dev/cardbus/cardbusvar.h b/sys/dev/cardbus/cardbusvar.h
index 6264f69..941cc0a6 100644
--- a/sys/dev/cardbus/cardbusvar.h
+++ b/sys/dev/cardbus/cardbusvar.h
@@ -60,6 +60,7 @@ struct cardbus_devinfo
} funce;
uint32_t fepresent; /* bit mask of funce values present */
struct cdev *sc_cisdev;
+ struct cdev *sc_cisdev_compat;
struct cis_buffer sc_cis;
};
OpenPOWER on IntegriCloud