Messages in this thread | | | Date | Sat, 18 Mar 2006 00:56:02 +1100 | From | Nick Piggin <> | Subject | Re: [patch] mspec - special memory driver and do_no_pfn handler |
| |
Carsten Otte wrote: > Jes Sorensen wrote: > >>Index: linux-2.6/include/linux/mm.h >>=================================================================== >>--- linux-2.6.orig/include/linux/mm.h >>+++ linux-2.6/include/linux/mm.h >>@@ -199,6 +199,7 @@ >> void (*open)(struct vm_area_struct * area); >> void (*close)(struct vm_area_struct * area); >> struct page * (*nopage)(struct vm_area_struct * area, unsigned long address, int *type); >>+ long (*nopfn)(struct vm_area_struct * area, unsigned long address, int *type); >> int (*populate)(struct vm_area_struct * area, unsigned long address, unsigned long len, pgprot_t prot, unsigned long pgoff, int nonblock); >> #ifdef CONFIG_NUMA >> int (*set_policy)(struct vm_area_struct *vma, struct mempolicy *new); > > If you use address as parameter to nopfn, it won't work with highmem > on 32bit systems. Alternative would be to use (unsigned long) phys. page > frame number. >
It is vaddr, so that should be OK. Return is pfn, which is the important one.
> Your work in memory.c looks like the right thing to do. > Afaics it will work for xip as well once I figure how to > do COW. Cool stuff :-). >
I think you may be able to use VM_PFNMAP in much the same way as remap_pfn_range does. You won't be able to support get_user_pages, of course.
-- SUSE Labs, Novell Inc. Send instant messages to your online friends http://au.messenger.yahoo.com
- To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/
| |