summaryrefslogtreecommitdiffstats
path: root/sys/crypto/via/padlock.c
diff options
context:
space:
mode:
Diffstat (limited to 'sys/crypto/via/padlock.c')
-rw-r--r--sys/crypto/via/padlock.c15
1 files changed, 4 insertions, 11 deletions
diff --git a/sys/crypto/via/padlock.c b/sys/crypto/via/padlock.c
index f601d2a..65a7b5d 100644
--- a/sys/crypto/via/padlock.c
+++ b/sys/crypto/via/padlock.c
@@ -171,7 +171,7 @@ padlock_newsession(device_t dev, uint32_t *sidp, struct cryptoini *cri)
struct padlock_session *ses = NULL;
struct cryptoini *encini, *macini;
struct thread *td;
- int error, saved_ctx;
+ int error;
if (sidp == NULL || cri == NULL)
return (EINVAL);
@@ -246,18 +246,11 @@ padlock_newsession(device_t dev, uint32_t *sidp, struct cryptoini *cri)
if (macini != NULL) {
td = curthread;
- if (!is_fpu_kern_thread(0)) {
- error = fpu_kern_enter(td, ses->ses_fpu_ctx,
- FPU_KERN_NORMAL);
- saved_ctx = 1;
- } else {
- error = 0;
- saved_ctx = 0;
- }
+ error = fpu_kern_enter(td, ses->ses_fpu_ctx, FPU_KERN_NORMAL |
+ FPU_KERN_KTHR);
if (error == 0) {
error = padlock_hash_setup(ses, macini);
- if (saved_ctx)
- fpu_kern_leave(td, ses->ses_fpu_ctx);
+ fpu_kern_leave(td, ses->ses_fpu_ctx);
}
if (error != 0) {
padlock_freesession_one(sc, ses, 0);
OpenPOWER on IntegriCloud