On Wednesday 12 November 2008 00:22, Jiri Kosina wrote: > On Sun, 2 Nov 2008, Denys Vlasenko wrote: > > > I fully bisected it, and the final "buggy" patch seems to have been > > > Denys Vlasenko's patch: cb8f488c33539f096580e202f5438a809195008f (see > > > http://github.com/jonsmirl/digispeaker/commit/cb8f488c33539f096580e202f5438a809195008f) > > > Denys: Any reason you removed "!prev" in front of "expand_stack"? > > > Looks like I erroneously thought it can't be NULL, > > or that expand_upwards() is ok with getting NULL vma parameter. > > I looked again and neither is true. > > Sorry, looks like I indeed broke this. > > Hmm, so ... ? Seems like this didn't get fixed in Linus' tree yet? I found my original email in "sent" folder. The patch in that mail does NOT remove !prev. That change had beed added by someone else. See attached file with original email. Ok, I think we are not much interested in who did it, let's fix it for good. Signed-off-by: Denys Vlasenko -- vda --- linux-2.6.28-rc4/mm/mmap.c Mon Nov 10 01:36:15 2008 +++ linux-2.6.28-rc4.fix/mm/mmap.c Wed Nov 12 01:21:39 2008 @@ -1704,7 +1704,7 @@ vma = find_vma_prev(mm, addr, &prev); if (vma && (vma->vm_start <= addr)) return vma; - if (expand_stack(prev, addr)) + if (!prev || expand_stack(prev, addr)) return NULL; if (prev->vm_flags & VM_LOCKED) { if (mlock_vma_pages_range(prev, addr, prev->vm_end) < 0)