From db1f2f6ee7235850deec730b827aff71e2b15e21 Mon Sep 17 00:00:00 2001 From: Matthew Dillon Date: Sun, 17 Oct 2010 12:56:44 -0700 Subject: [PATCH] kernel - Fix padlock panic in hw crypto * padlock_freesession_one() was zeroing out the structure which caused ses_freeaddr to be lost. Restore ses_freeaddr. Reported-by: lentferj --- sys/crypto/via/padlock.c | 2 ++ 1 file changed, 2 insertions(+) diff --git a/sys/crypto/via/padlock.c b/sys/crypto/via/padlock.c index 7ee0dbe0ab..6c6b2ae8c5 100644 --- a/sys/crypto/via/padlock.c +++ b/sys/crypto/via/padlock.c @@ -262,6 +262,7 @@ padlock_freesession_one(struct padlock_softc *sc, struct padlock_session *ses, int locked) { uint32_t sid = ses->ses_id; + void *freeaddr = ses->ses_freeaddr; if (!locked) spin_lock(&sc->sc_sessions_lock); @@ -270,6 +271,7 @@ padlock_freesession_one(struct padlock_softc *sc, struct padlock_session *ses, bzero(ses, sizeof(*ses)); ses->ses_used = 0; ses->ses_id = sid; + ses->ses_freeaddr = freeaddr; TAILQ_INSERT_HEAD(&sc->sc_sessions, ses, ses_next); if (!locked) spin_unlock(&sc->sc_sessions_lock); -- 2.11.4.GIT