summaryrefslogtreecommitdiffstats
path: root/sys/crypto
diff options
context:
space:
mode:
authorpjd <pjd@FreeBSD.org>2008-08-09 19:45:43 +0000
committerpjd <pjd@FreeBSD.org>2008-08-09 19:45:43 +0000
commit6c7aca77a37e1bb39ca08ed259b195fa287f2cff (patch)
tree2746edfa9fe6308768dd2d59c051fb71e36c51e4 /sys/crypto
parentc14f239009f6a9eaac1b6cc3d1f7da686e0cbff2 (diff)
downloadFreeBSD-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.c8
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) {
OpenPOWER on IntegriCloud