summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorbms <bms@FreeBSD.org>2004-10-19 15:30:47 +0000
committerbms <bms@FreeBSD.org>2004-10-19 15:30:47 +0000
commit8112f95a8c58a972c772b025bf4229fb1623a162 (patch)
treeae738eb2bfc0766ef7c2f4d5a69586338cd50d82
parent504a86a63b9be990f6de8ffdb3813215380bf163 (diff)
downloadFreeBSD-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.c4
-rw-r--r--sys/pci/if_vr.c4
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);
}
OpenPOWER on IntegriCloud