Re: vm_ops.page_mkwrite() fails with vmalloc on 2.6.23

From: Jaya Kumar
Date: Thu Nov 01 2007 - 04:03:01 EST


On Oct 30, 2007 11:47 AM, Hugh Dickins <hugh@xxxxxxxxxxx> wrote:
>
> I don't understand why you suggested an anon_vma, nor why Jaya is
> suggesting a private list. All vmas mapping /dev/fb0 will be kept
> in the prio_tree rooted in its struct address_space (__vma_link_file
> in mm/mmap.c). And page_mkclean gets page_mkclean_file to walk that
> very tree. The missing part is just the setting of page->mapping to
> point to that struct address_space (and clearing it before finally
> freeing the pages), and the setting of page->index as you described.
> Isn't it?

Oops, sorry that I missed that. Now I understand. I think:

page->mapping = vma->vm_file->f_mapping
page->index = ((addr - vma->vm_start) >> PAGE_SHIFT) + vma->vm_pgoff

at nopage time and then before the driver vfrees, I'll clear mapping
for all those pages.

Thanks,
jaya
-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/