diff options
author | bms <bms@FreeBSD.org> | 2004-10-19 15:30:47 +0000 |
---|---|---|
committer | bms <bms@FreeBSD.org> | 2004-10-19 15:30:47 +0000 |
commit | 8112f95a8c58a972c772b025bf4229fb1623a162 (patch) | |
tree | ae738eb2bfc0766ef7c2f4d5a69586338cd50d82 | |
parent | 504a86a63b9be990f6de8ffdb3813215380bf163 (diff) | |
download | FreeBSD-src-8112f95a8c58a972c772b025bf4229fb1623a162.zip FreeBSD-src-8112f95a8c58a972c772b025bf4229fb1623a162.tar.gz |
Detach the Rhine completely on shutdown, rather than merely stopping it
as the original logic did. This fixes a race with vr_intr() which was
masked on UP systems and manifested on SMP systems.
PR: kern/62889
MFC after: 1 day
-rw-r--r-- | sys/dev/vr/if_vr.c | 4 | ||||
-rw-r--r-- | sys/pci/if_vr.c | 4 |
2 files changed, 2 insertions, 6 deletions
diff --git a/sys/dev/vr/if_vr.c b/sys/dev/vr/if_vr.c index b1eeebb..096a481 100644 --- a/sys/dev/vr/if_vr.c +++ b/sys/dev/vr/if_vr.c @@ -1692,7 +1692,5 @@ vr_shutdown(device_t dev) { struct vr_softc *sc = device_get_softc(dev); - VR_LOCK(sc); - vr_stop(sc); - VR_UNLOCK(sc); + vr_detach(sc); } diff --git a/sys/pci/if_vr.c b/sys/pci/if_vr.c index b1eeebb..096a481 100644 --- a/sys/pci/if_vr.c +++ b/sys/pci/if_vr.c @@ -1692,7 +1692,5 @@ vr_shutdown(device_t dev) { struct vr_softc *sc = device_get_softc(dev); - VR_LOCK(sc); - vr_stop(sc); - VR_UNLOCK(sc); + vr_detach(sc); } |