vm_insert_page
Prev | More Memory Management Functions | Next

## 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 “`remap_pfn_range`” 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.

Prev | Up | Next
try_to_release_page | Home | vm_insert_pfn