VM_INSERT_PAGE

Section: Memory Management in Linux (9)
Updated: February 2011
Index Return to Main Contents
 

NAME

vm_insert_page - insert single page into user vma  

SYNOPSIS

int vm_insert_page(struct vm_area_struct * vma, unsigned long addr, struct page * page);
 

ARGUMENTS

vma

user vma to map to

addr

target user address of this page

page

source kernel page
 

DESCRIPTION

This allows drivers to insert individual pages they've allocated into a user vma.

The page has to be a nice clean _individual_ kernel allocation. If you allocate a compound page, you need to have marked it as such (__GFP_COMP), or manually just split the page up yourself (see split_page).

NOTE! Traditionally this was done with lqremap_pfn_rangerq which took an arbitrary page protection parameter. This doesn't allow that. Your vma protection will have to be set up correctly, which means that if you want a shared writable mapping, you'd better ask for a shared writable mapping!

The page does not need to be reserved.  

COPYRIGHT