summaryrefslogtreecommitdiffstats
path: root/sys/dev/ep
diff options
context:
space:
mode:
authoradrian <adrian@FreeBSD.org>2014-08-21 00:57:32 +0000
committeradrian <adrian@FreeBSD.org>2014-08-21 00:57:32 +0000
commit5a060fa7839ed3be38abc8f964e12e79ec18cd11 (patch)
tree0531fc05c9560bd9344fc2e62873d4c1dabb8f7b /sys/dev/ep
parent0789e26a48a8221cdc72b9fed374581cfb429c17 (diff)
downloadFreeBSD-src-5a060fa7839ed3be38abc8f964e12e79ec18cd11.zip
FreeBSD-src-5a060fa7839ed3be38abc8f964e12e79ec18cd11.tar.gz
Add missing locking.
Whilst here, assert that the lock is held when calling epstop(). Tested: ep0: <3com Megahertz 574B>
Diffstat (limited to 'sys/dev/ep')
-rw-r--r--sys/dev/ep/if_ep.c5
1 files changed, 5 insertions, 0 deletions
diff --git a/sys/dev/ep/if_ep.c b/sys/dev/ep/if_ep.c
index 863c545..74c6a86 100644
--- a/sys/dev/ep/if_ep.c
+++ b/sys/dev/ep/if_ep.c
@@ -343,7 +343,9 @@ ep_attach(struct ep_softc *sc)
EP_FSET(sc, F_RX_FIRST);
sc->top = sc->mcur = 0;
+ EP_LOCK(sc);
epstop(sc);
+ EP_UNLOCK(sc);
return (0);
}
@@ -1000,6 +1002,9 @@ epwatchdog(struct ep_softc *sc)
static void
epstop(struct ep_softc *sc)
{
+
+ EP_ASSERT_LOCKED(sc);
+
CSR_WRITE_2(sc, EP_COMMAND, RX_DISABLE);
CSR_WRITE_2(sc, EP_COMMAND, RX_DISCARD_TOP_PACK);
EP_BUSY_WAIT(sc);
OpenPOWER on IntegriCloud