on 26/12/2013 16:05 Konstantin Belousov said the following:
> I provided the following patch yesterday to Peter, after the similar mail.
> 
> diff --git a/sys/vm/vm_map.c b/sys/vm/vm_map.c
> index e3842a3..51b60de 100644
> --- a/sys/vm/vm_map.c
> +++ b/sys/vm/vm_map.c
> @@ -1207,6 +1207,7 @@ charged:
>       }
>       else if ((prev_entry != &map->header) &&
>                (prev_entry->eflags == protoeflags) &&
> +              (cow & (MAP_ENTRY_GROWS_DOWN | MAP_ENTRY_GROWS_UP)) == 0 &&
>                (prev_entry->end == start) &&
>                (prev_entry->wired_count == 0) &&
>                (prev_entry->cred == cred ||
> 
> But there were no core dump available, and I think that your note is also
> valid.  I do not see why cow should be cleared from the stack direction
> bits.
> 
> diff --git a/sys/vm/vm_map.c b/sys/vm/vm_map.c
> index e3842a3..e15e0ca 100644
> --- a/sys/vm/vm_map.c
> +++ b/sys/vm/vm_map.c
> @@ -3339,7 +3340,6 @@ vm_map_stack(vm_map_t map, vm_offset_t addrbos, 
> vm_size_t max_ssize,
>        * NOTE: We explicitly allow bi-directional stacks.
>        */
>       orient = cow & (MAP_STACK_GROWS_DOWN|MAP_STACK_GROWS_UP);
> -     cow &= ~orient;
>       KASSERT(orient != 0, ("No stack grow direction"));
>  
>       if (addrbos < vm_map_min(map) ||
> 

I can confirm that the patch fixes the problem for me.
Thanks!

-- 
Andriy Gapon
_______________________________________________
freebsd-current@freebsd.org mailing list
http://lists.freebsd.org/mailman/listinfo/freebsd-current
To unsubscribe, send any mail to "freebsd-current-unsubscr...@freebsd.org"

Reply via email to