diff options
| author | Konstantin Belousov <kib@FreeBSD.org> | 2019-06-03 15:41:45 +0000 |
|---|---|---|
| committer | Konstantin Belousov <kib@FreeBSD.org> | 2019-06-03 15:41:45 +0000 |
| commit | b5c45a3e128241a6455129cca7af62469e6c4ba7 (patch) | |
| tree | 2b035ec4aa9a5190a4c6807521cb21380188be2f /sys/dev/efidev | |
| parent | e1216db508f78674f3a9686db294dcfe85d6a3a5 (diff) | |
Notes
Diffstat (limited to 'sys/dev/efidev')
| -rw-r--r-- | sys/dev/efidev/efirt.c | 9 |
1 files changed, 8 insertions, 1 deletions
diff --git a/sys/dev/efidev/efirt.c b/sys/dev/efidev/efirt.c index 73e451d1c14e..2f7f5187b8fc 100644 --- a/sys/dev/efidev/efirt.c +++ b/sys/dev/efidev/efirt.c @@ -275,6 +275,7 @@ efi_enter(void) { struct thread *td; pmap_t curpmap; + int error; if (efi_runtime == NULL) return (ENXIO); @@ -283,7 +284,13 @@ efi_enter(void) PMAP_LOCK(curpmap); mtx_lock(&efi_lock); fpu_kern_enter(td, NULL, FPU_KERN_NOCTX); - return (efi_arch_enter()); + error = efi_arch_enter(); + if (error != 0) { + fpu_kern_leave(td, NULL); + mtx_unlock(&efi_lock); + PMAP_UNLOCK(curpmap); + } + return (error); } static void |
