Re: [patch] mspec - special memory driver and do_no_pfn handler

From: Nick Piggin <>
Date: 2006-03-18 00:56:02
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 

To unsubscribe from this list: send the line "unsubscribe linux-ia64" in
the body of a message to
More majordomo info at
Received on Sat Mar 18 00:56:10 2006

This archive was generated by hypermail 2.1.8 : 2006-03-18 00:56:18 EST