diff options
| author | Pawel Jakub Dawidek <pjd@FreeBSD.org> | 2007-01-28 20:29:12 +0000 |
|---|---|---|
| committer | Pawel Jakub Dawidek <pjd@FreeBSD.org> | 2007-01-28 20:29:12 +0000 |
| commit | a1ea1a22e9787059f177ce0636e76be1fa23a0ec (patch) | |
| tree | 4b9be15c902e95ab07ddba46bf884932480a50e1 /sys/geom | |
| parent | 3d14f9377c5539cdc182d8f45e74960e9bae7da2 (diff) | |
Notes
Diffstat (limited to 'sys/geom')
| -rw-r--r-- | sys/geom/eli/g_eli.c | 7 |
1 files changed, 7 insertions, 0 deletions
diff --git a/sys/geom/eli/g_eli.c b/sys/geom/eli/g_eli.c index d4b85cd0724ba..0e5b53108c971 100644 --- a/sys/geom/eli/g_eli.c +++ b/sys/geom/eli/g_eli.c @@ -324,6 +324,13 @@ g_eli_worker(void *arg) wr = arg; sc = wr->w_softc; +#ifdef SMP + /* Before sched_bind() to a CPU, wait for all CPUs to go on-line. */ + if (sc->sc_crypto == G_ELI_CRYPTO_SW && g_eli_threads == 0) { + while (!smp_started) + tsleep(wr, 0, "geli:smp", hz / 4); + } +#endif mtx_lock_spin(&sched_lock); sched_prio(curthread, PRIBIO); if (sc->sc_crypto == G_ELI_CRYPTO_SW && g_eli_threads == 0) |
