diff options
author | pjd <pjd@FreeBSD.org> | 2008-08-09 19:45:43 +0000 |
---|---|---|
committer | pjd <pjd@FreeBSD.org> | 2008-08-09 19:45:43 +0000 |
commit | 6c7aca77a37e1bb39ca08ed259b195fa287f2cff (patch) | |
tree | 2746edfa9fe6308768dd2d59c051fb71e36c51e4 /sys/crypto | |
parent | c14f239009f6a9eaac1b6cc3d1f7da686e0cbff2 (diff) | |
download | FreeBSD-src-6c7aca77a37e1bb39ca08ed259b195fa287f2cff.zip FreeBSD-src-6c7aca77a37e1bb39ca08ed259b195fa287f2cff.tar.gz |
We don't have to drop a lock around malloc(M_NOWAIT).
Diffstat (limited to 'sys/crypto')
-rw-r--r-- | sys/crypto/via/padlock.c | 8 |
1 files changed, 4 insertions, 4 deletions
diff --git a/sys/crypto/via/padlock.c b/sys/crypto/via/padlock.c index c8e398d..11f74a2 100644 --- a/sys/crypto/via/padlock.c +++ b/sys/crypto/via/padlock.c @@ -221,17 +221,17 @@ padlock_newsession(device_t dev, uint32_t *sidp, struct cryptoini *cri) ses->ses_used = 1; TAILQ_INSERT_TAIL(&sc->sc_sessions, ses, ses_next); } - rw_wunlock(&sc->sc_sessions_lock); if (ses == NULL) { ses = malloc(sizeof(*ses), M_PADLOCK, M_NOWAIT | M_ZERO); - if (ses == NULL) + if (ses == NULL) { + rw_wunlock(&sc->sc_sessions_lock); return (ENOMEM); + } ses->ses_used = 1; - rw_wlock(&sc->sc_sessions_lock); ses->ses_id = sc->sc_sid++; TAILQ_INSERT_TAIL(&sc->sc_sessions, ses, ses_next); - rw_wunlock(&sc->sc_sessions_lock); } + rw_wunlock(&sc->sc_sessions_lock); error = padlock_cipher_setup(ses, encini); if (error != 0) { |