summaryrefslogtreecommitdiffstats
path: root/sys
diff options
context:
space:
mode:
authorphk <phk@FreeBSD.org>2003-09-28 20:48:13 +0000
committerphk <phk@FreeBSD.org>2003-09-28 20:48:13 +0000
commit050117a32706566ff27f8d7610837a96932e0d3d (patch)
tree4c59531a9f82b488f7fca22115ecb97e22c4abb0 /sys
parent184a5c6d6515c512601948f88c75a8e3ce1bf3c4 (diff)
downloadFreeBSD-src-050117a32706566ff27f8d7610837a96932e0d3d.zip
FreeBSD-src-050117a32706566ff27f8d7610837a96932e0d3d.tar.gz
I don't know from where the notion that device driver should or
even could call VOP_REVOKE() on vnodes associated with its dev_t's has originated, but it stops right here. If there are things people belive destroy_dev() needs to learn how to do, please tell me about it, preferably with a reproducible test case. Include <sys/uio.h> in bluetooth code rather than rely on <sys/vnode.h> to do so. The fact that some of the USB code needs to include <sys/vnode.h> still disturbs me greatly, but I do not have time to chase that.
Diffstat (limited to 'sys')
-rw-r--r--sys/dev/nmdm/nmdm.c4
-rw-r--r--sys/dev/usb/ugen.c8
-rw-r--r--sys/dev/usb/uhid.c6
-rw-r--r--sys/dev/usb/ulpt.c10
-rw-r--r--sys/dev/usb/ums.c5
-rw-r--r--sys/dev/usb/uscanner.c4
-rw-r--r--sys/net/if.c2
-rw-r--r--sys/netgraph/bluetooth/drivers/ubt/ng_ubt.c15
-rw-r--r--sys/netgraph/bluetooth/drivers/ubtbcmfw/ubtbcmfw.c16
9 files changed, 5 insertions, 65 deletions
diff --git a/sys/dev/nmdm/nmdm.c b/sys/dev/nmdm/nmdm.c
index a899176..1511e9b 100644
--- a/sys/dev/nmdm/nmdm.c
+++ b/sys/dev/nmdm/nmdm.c
@@ -604,8 +604,8 @@ nmdmshutdown(void)
nextdev2 = makedev(CDEV_MAJOR, (i+i) + 1);
ptr1 = nextdev1->si_drv1;
if (ptr1) {
- revoke_and_destroy_dev(nextdev1);
- revoke_and_destroy_dev(nextdev2);
+ destroy_dev(nextdev1);
+ destroy_dev(nextdev2);
free(ptr1, M_NLMDM);
} else {
freedev(nextdev1);
diff --git a/sys/dev/usb/ugen.c b/sys/dev/usb/ugen.c
index b056d2f..6232918 100644
--- a/sys/dev/usb/ugen.c
+++ b/sys/dev/usb/ugen.c
@@ -273,7 +273,6 @@ ugen_destroy_devnodes(struct ugen_softc *sc)
{
int endptno;
dev_t dev;
- struct vnode *vp;
/* destroy all devices for the other (existing) endpoints as well */
for (endptno = 1; endptno < USB_MAX_ENDPOINTS; endptno++) {
@@ -289,9 +288,6 @@ ugen_destroy_devnodes(struct ugen_softc *sc)
*/
dev = makedev(UGEN_CDEV_MAJOR,
UGENMINOR(USBDEVUNIT(sc->sc_dev), endptno));
- vp = SLIST_FIRST(&dev->si_hlist);
- if (vp)
- VOP_REVOKE(vp, REVOKEALL);
destroy_dev(dev);
}
@@ -860,7 +856,6 @@ USB_DETACH(ugen)
int maj, mn;
#elif defined(__FreeBSD__)
dev_t dev;
- struct vnode *vp;
#endif
#if defined(__NetBSD__) || defined(__OpenBSD__)
@@ -901,9 +896,6 @@ USB_DETACH(ugen)
#elif defined(__FreeBSD__)
/* destroy the device for the control endpoint */
dev = makedev(UGEN_CDEV_MAJOR, UGENMINOR(USBDEVUNIT(sc->sc_dev), 0));
- vp = SLIST_FIRST(&dev->si_hlist);
- if (vp)
- VOP_REVOKE(vp, REVOKEALL);
destroy_dev(dev);
ugen_destroy_devnodes(sc);
#endif
diff --git a/sys/dev/usb/uhid.c b/sys/dev/usb/uhid.c
index 57f8e29..1a2c42b 100644
--- a/sys/dev/usb/uhid.c
+++ b/sys/dev/usb/uhid.c
@@ -304,8 +304,6 @@ USB_DETACH(uhid)
int s;
#if defined(__NetBSD__) || defined(__OpenBSD__)
int maj, mn;
-#elif defined(__FreeBSD__)
- struct vnode *vp;
#endif
#if defined(__NetBSD__) || defined(__OpenBSD__)
@@ -339,10 +337,6 @@ USB_DETACH(uhid)
mn = self->dv_unit;
vdevgone(maj, mn, mn, VCHR);
#elif defined(__FreeBSD__)
- vp = SLIST_FIRST(&sc->dev->si_hlist);
- if (vp)
- VOP_REVOKE(vp, REVOKEALL);
-
destroy_dev(sc->dev);
#endif
diff --git a/sys/dev/usb/ulpt.c b/sys/dev/usb/ulpt.c
index 46a452c..6df5ff3 100644
--- a/sys/dev/usb/ulpt.c
+++ b/sys/dev/usb/ulpt.c
@@ -58,7 +58,6 @@ __FBSDID("$FreeBSD$");
#endif
#include <sys/uio.h>
#include <sys/conf.h>
-#include <sys/vnode.h>
#include <sys/syslog.h>
#include <sys/sysctl.h>
@@ -376,8 +375,6 @@ USB_DETACH(ulpt)
int s;
#if defined(__NetBSD__) || defined(__OpenBSD__)
int maj, mn;
-#elif defined(__FreeBSD__)
- struct vnode *vp;
#endif
#if defined(__NetBSD__) || defined(__OpenBSD__)
@@ -414,13 +411,6 @@ USB_DETACH(ulpt)
mn = self->dv_unit;
vdevgone(maj, mn, mn, VCHR);
#elif defined(__FreeBSD__)
- vp = SLIST_FIRST(&sc->dev->si_hlist);
- if (vp)
- VOP_REVOKE(vp, REVOKEALL);
- vp = SLIST_FIRST(&sc->dev_noprime->si_hlist);
- if (vp)
- VOP_REVOKE(vp, REVOKEALL);
-
destroy_dev(sc->dev);
destroy_dev(sc->dev_noprime);
#endif
diff --git a/sys/dev/usb/ums.c b/sys/dev/usb/ums.c
index 72240bf..d3acf92 100644
--- a/sys/dev/usb/ums.c
+++ b/sys/dev/usb/ums.c
@@ -367,7 +367,6 @@ Static int
ums_detach(device_t self)
{
struct ums_softc *sc = device_get_softc(self);
- struct vnode *vp;
if (sc->sc_enabled)
ums_disable(sc);
@@ -377,10 +376,6 @@ ums_detach(device_t self)
free(sc->sc_loc_btn, M_USB);
free(sc->sc_ibuf, M_USB);
- vp = SLIST_FIRST(&sc->dev->si_hlist);
- if (vp)
- VOP_REVOKE(vp, REVOKEALL);
-
/* someone waiting for data */
/*
* XXX If we wakeup the process here, the device will be gone by
diff --git a/sys/dev/usb/uscanner.c b/sys/dev/usb/uscanner.c
index 8615d9a..5d82960 100644
--- a/sys/dev/usb/uscanner.c
+++ b/sys/dev/usb/uscanner.c
@@ -620,7 +620,6 @@ USB_DETACH(uscanner)
int maj, mn;
#elif defined(__FreeBSD__)
dev_t dev;
- struct vnode *vp;
#endif
#if defined(__NetBSD__) || defined(__OpenBSD__)
@@ -657,9 +656,6 @@ USB_DETACH(uscanner)
#elif defined(__FreeBSD__)
/* destroy the device for the control endpoint */
dev = makedev(USCANNER_CDEV_MAJOR, USBDEVUNIT(sc->sc_dev));
- vp = SLIST_FIRST(&dev->si_hlist);
- if (vp)
- VOP_REVOKE(vp, REVOKEALL);
destroy_dev(dev);
#endif
diff --git a/sys/net/if.c b/sys/net/if.c
index bddf781..42e3c57 100644
--- a/sys/net/if.c
+++ b/sys/net/if.c
@@ -470,7 +470,7 @@ if_detach(ifp)
* Clean up all addresses.
*/
ifaddr_byindex(ifp->if_index) = NULL;
- revoke_and_destroy_dev(ifdev_byindex(ifp->if_index));
+ destroy_dev(ifdev_byindex(ifp->if_index));
ifdev_byindex(ifp->if_index) = NULL;
while (if_index > 0 && ifaddr_byindex(if_index) == NULL)
diff --git a/sys/netgraph/bluetooth/drivers/ubt/ng_ubt.c b/sys/netgraph/bluetooth/drivers/ubt/ng_ubt.c
index 625e92b8..5f98d8d 100644
--- a/sys/netgraph/bluetooth/drivers/ubt/ng_ubt.c
+++ b/sys/netgraph/bluetooth/drivers/ubt/ng_ubt.c
@@ -40,7 +40,7 @@
#include <sys/malloc.h>
#include <sys/kernel.h>
#include <sys/poll.h>
-#include <sys/vnode.h>
+#include <sys/uio.h>
#include <machine/bus.h>
#include <dev/usb/usb.h>
@@ -2704,7 +2704,6 @@ ubt_create_device_nodes(ubt_softc_p sc)
Static void
ubt_destroy_device_nodes(ubt_softc_p sc)
{
- struct vnode *vp = NULL;
/*
* Wait for processes to go away. This should be safe as we will not
@@ -2721,28 +2720,16 @@ ubt_destroy_device_nodes(ubt_softc_p sc)
/* Destroy device nodes */
if (sc->sc_bulk_dev != NODEV) {
- vp = SLIST_FIRST(&sc->sc_bulk_dev->si_hlist);
- if (vp != NULL)
- VOP_REVOKE(vp, REVOKEALL);
-
destroy_dev(sc->sc_bulk_dev);
sc->sc_bulk_dev = NODEV;
}
if (sc->sc_intr_dev != NODEV) {
- vp = SLIST_FIRST(&sc->sc_intr_dev->si_hlist);
- if (vp != NULL)
- VOP_REVOKE(vp, REVOKEALL);
-
destroy_dev(sc->sc_intr_dev);
sc->sc_intr_dev = NODEV;
}
if (sc->sc_ctrl_dev != NODEV) {
- vp = SLIST_FIRST(&sc->sc_ctrl_dev->si_hlist);
- if (vp != NULL)
- VOP_REVOKE(vp, REVOKEALL);
-
destroy_dev(sc->sc_ctrl_dev);
sc->sc_ctrl_dev = NODEV;
}
diff --git a/sys/netgraph/bluetooth/drivers/ubtbcmfw/ubtbcmfw.c b/sys/netgraph/bluetooth/drivers/ubtbcmfw/ubtbcmfw.c
index acd51ce..5fbcd06 100644
--- a/sys/netgraph/bluetooth/drivers/ubtbcmfw/ubtbcmfw.c
+++ b/sys/netgraph/bluetooth/drivers/ubtbcmfw/ubtbcmfw.c
@@ -39,7 +39,7 @@
#include <sys/poll.h>
#include <sys/proc.h>
#include <sys/sysctl.h>
-#include <sys/vnode.h>
+#include <sys/uio.h>
#include <dev/usb/usb.h>
#include <dev/usb/usbdi.h>
@@ -220,8 +220,6 @@ USB_DETACH(ubtbcmfw)
{
USB_DETACH_START(ubtbcmfw, sc);
- struct vnode *vp = NULL;
-
sc->sc_dying = 1;
if (-- sc->sc_refcnt >= 0) {
@@ -236,28 +234,16 @@ USB_DETACH(ubtbcmfw)
/* Destroy device nodes */
if (sc->sc_bulk_out_dev != NODEV) {
- vp = SLIST_FIRST(&sc->sc_bulk_out_dev->si_hlist);
- if (vp != NULL)
- VOP_REVOKE(vp, REVOKEALL);
-
destroy_dev(sc->sc_bulk_out_dev);
sc->sc_bulk_out_dev = NODEV;
}
if (sc->sc_intr_in_dev != NODEV) {
- vp = SLIST_FIRST(&sc->sc_intr_in_dev->si_hlist);
- if (vp != NULL)
- VOP_REVOKE(vp, REVOKEALL);
-
destroy_dev(sc->sc_intr_in_dev);
sc->sc_intr_in_dev = NODEV;
}
if (sc->sc_ctrl_dev != NODEV) {
- vp = SLIST_FIRST(&sc->sc_ctrl_dev->si_hlist);
- if (vp != NULL)
- VOP_REVOKE(vp, REVOKEALL);
-
destroy_dev(sc->sc_ctrl_dev);
sc->sc_ctrl_dev = NODEV;
}
OpenPOWER on IntegriCloud