mirror of
https://github.com/freebsd/freebsd-src.git
synced 2024-11-30 06:32:44 +00:00
efirt: mark dynamic region executing the RT code with the TDP_EFIRT flag
Reviewed by: markj Sponsored by: The FreeBSD Foundation MFC after: 1 week Differential revision: https://reviews.freebsd.org/D47694
This commit is contained in:
parent
38e3125d6d
commit
a03957a706
@ -309,6 +309,9 @@ efi_enter(void)
|
||||
fpu_kern_leave(td, NULL);
|
||||
mtx_unlock(&efi_lock);
|
||||
PMAP_UNLOCK(curpmap);
|
||||
} else {
|
||||
MPASS((td->td_pflags & TDP_EFIRT) == 0);
|
||||
td->td_pflags |= TDP_EFIRT;
|
||||
}
|
||||
return (error);
|
||||
}
|
||||
@ -319,10 +322,13 @@ efi_leave(void)
|
||||
struct thread *td;
|
||||
pmap_t curpmap;
|
||||
|
||||
td = curthread;
|
||||
MPASS((td->td_pflags & TDP_EFIRT) == 0);
|
||||
td->td_pflags &= ~TDP_EFIRT;
|
||||
|
||||
efi_arch_leave();
|
||||
|
||||
curpmap = &curproc->p_vmspace->vm_pmap;
|
||||
td = curthread;
|
||||
fpu_kern_leave(td, NULL);
|
||||
mtx_unlock(&efi_lock);
|
||||
PMAP_UNLOCK(curpmap);
|
||||
|
@ -560,7 +560,7 @@ enum {
|
||||
#define TDP_RESETSPUR 0x04000000 /* Reset spurious page fault history. */
|
||||
#define TDP_NERRNO 0x08000000 /* Last errno is already in td_errno */
|
||||
#define TDP_UIOHELD 0x10000000 /* Current uio has pages held in td_ma */
|
||||
#define TDP_UNUSED0 0x20000000 /* UNUSED */
|
||||
#define TDP_EFIRT 0x20000000 /* In firmware (EFI RT) call */
|
||||
#define TDP_EXECVMSPC 0x40000000 /* Execve destroyed old vmspace */
|
||||
#define TDP_SIGFASTPENDING 0x80000000 /* Pending signal due to sigfastblock */
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user