While reviewing the new stack management code, I observed that the MAP_WIREFUTURE flag is not cleared by exec_new_vmspace() when it recycles the current vmspace. Consequently, an mlockall(MCL_FUTURE) could still be in effect on the process after an {f,}execve(2). This violates the specification for mlockall(2).
Also, while I'm here, it's pointless for vm_map_stack() to check the MEMLOCK limit. It will never be asked to wire the stack. Moreover, it doesn't even implement wiring of the stack.