On 10/3/07, Matt Mackall <[EMAIL PROTECTED]> wrote:
> On Wed, Oct 03, 2007 at 05:55:10PM +0200, Torsten Kaiser wrote:
> > This patch removes clear_refs_smap() from fs/proc/task_mmu.c by moving
> > its code to a new function. But during the move the main for-loop from
> > clear_refs_smap was changed:
> >
> > old:
> >       for (vma = mm->mmap; vma; vma = vma->vm_next)
> >               if (vma->vm_mm && !is_vm_hugetlb_page(vma))
> >                       walk_page_range(vma->vm_mm, vma->vm_start, 
> > vma->vm_end,
> >                                       &clear_refs_walk, vma);
> >
> > new:
> >       for (vma = mm->mmap; vma; vma = vma->vm_next)
> >               if (!is_vm_hugetlb_page(vma))
> >                       walk_page_range(mm, vma->vm_start, vma->vm_end,
> >                                       &clear_refs_walk, vma);
> >
> > The walk_page_range() is no longer called on vma->vm_mm, but on mm directly.
> > I don't know how this can kill the sata_sil24-driver, but at least it
> > looks suspicious.
>
> That code should be fine. Further, it's pretty unlikely that this code
> ever gets invoked. This whole interface was only recently added by
> Google folks and its usage is pretty obscure.
>
> Oh wait - you're _at_ Google, aren't you? Perhaps you're actually
> using clear_refs.

No. I'm just using Google Mail.

And I'm not using any additional patches apart from what is in the mm-patchset.

> Well I can see no reason why the vma we just got to by the mm->mmap
> would have a vm_mm != mm, but I've certainly been wrong before.
>
> Try changing it to:
>
>         for (vma = mm->mmap; vma; vma = vma->vm_next)
>                 if (!is_vm_hugetlb_page(vma)) {
>                         if (vma->vm_mm != mm)
>                                 printk("WTF: vma->vm_mm %p mm %p\n",
>                                         vma->vm_mm, mm);
>                         walk_page_range(vma->vm_mm, vma->vm_start, 
> vma->vm_end,
>                                         &clear_refs_walk, vma);
>         }

Will try this, but as the error only seems to trigger, if I leave the
pc powered off for more then a hour, you will need to wait until
tomorrow.

Of note might be, that at the time of this error init has not been
started. I'm using a program from initramfs to start the RAID.
The initramfs was primarily build using the genkernel package from
gentoo, but I have removed some parts of it (kernel modules and some
other part I no longer remember)

Torsten
-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to [EMAIL PROTECTED]
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/

Reply via email to