kstack_contains(): account for struct pcb on stack

for arm64, arm, powerpc, and riscv

Reviewed by:	jhb
Sponsored by:	The FreeBSD Foundation
MFC after:	1 week
Differential revision:	https://reviews.freebsd.org/D38320
This commit is contained in:
Konstantin Belousov 2023-02-01 01:49:54 +02:00
parent 3f08bd5653
commit 83a49712af
4 changed files with 8 additions and 4 deletions

View File

@ -78,7 +78,8 @@ static __inline bool
kstack_contains(struct thread *td, vm_offset_t va, size_t len)
{
return (va >= td->td_kstack && va + len >= va &&
va + len <= td->td_kstack + td->td_kstack_pages * PAGE_SIZE);
va + len <= td->td_kstack + td->td_kstack_pages * PAGE_SIZE -
sizeof(struct pcb));
}
#endif /* _SYS_PROC_H_ */

View File

@ -53,7 +53,8 @@ static __inline bool
kstack_contains(struct thread *td, vm_offset_t va, size_t len)
{
return (va >= td->td_kstack && va + len >= va &&
va + len <= td->td_kstack + td->td_kstack_pages * PAGE_SIZE);
va + len <= td->td_kstack + td->td_kstack_pages * PAGE_SIZE -
sizeof(struct pcb));
}
#endif /* _SYS_PROC_H_ */

View File

@ -48,7 +48,8 @@ static __inline bool
kstack_contains(struct thread *td, vm_offset_t va, size_t len)
{
return (va >= td->td_kstack && va + len >= va &&
va + len <= td->td_kstack + td->td_kstack_pages * PAGE_SIZE);
va + len <= td->td_kstack + td->td_kstack_pages * PAGE_SIZE -
sizeof(struct pcb));
}
#endif /* _SYS_PROC_H_ */

View File

@ -63,7 +63,8 @@ static __inline bool
kstack_contains(struct thread *td, vm_offset_t va, size_t len)
{
return (va >= td->td_kstack && va + len >= va &&
va + len <= td->td_kstack + td->td_kstack_pages * PAGE_SIZE);
va + len <= td->td_kstack + td->td_kstack_pages * PAGE_SIZE -
sizeof(struct pcb));
}
#endif /* _SYS_PROC_H_ */