diff options
author | Christoph Lameter <clameter@engr.sgi.com> | 2006-01-12 01:05:20 -0800 |
---|---|---|
committer | Linus Torvalds <torvalds@g5.osdl.org> | 2006-01-12 09:08:48 -0800 |
commit | f4598c8b3678abd65be3be00ed3d046375a4777e (patch) | |
tree | 497aba8cdeb00b1fe8d227a9b839c1ce8980f3a2 /mm/mempolicy.c | |
parent | 1bc691d357c646700b9523d2aeca02847d3fb3f4 (diff) | |
download | lwn-f4598c8b3678abd65be3be00ed3d046375a4777e.tar.gz lwn-f4598c8b3678abd65be3be00ed3d046375a4777e.zip |
[PATCH] migration: make sure there is no attempt to migrate reserved pages.
This ensures that reserved pages are not migrated. Reserved pages
currently cause the WARN_ON to trigger in migrate_page_add()
Signed-off-by: Christoph Lameter <clameter@sgi.com>
Signed-off-by: Andrew Morton <akpm@osdl.org>
Signed-off-by: Linus Torvalds <torvalds@osdl.org>
Diffstat (limited to 'mm/mempolicy.c')
-rw-r--r-- | mm/mempolicy.c | 4 |
1 files changed, 3 insertions, 1 deletions
diff --git a/mm/mempolicy.c b/mm/mempolicy.c index 1850d0aef4ac..b62cab575a84 100644 --- a/mm/mempolicy.c +++ b/mm/mempolicy.c @@ -208,6 +208,8 @@ static int check_pte_range(struct vm_area_struct *vma, pmd_t *pmd, page = vm_normal_page(vma, addr, *pte); if (!page) continue; + if (PageReserved(page)) + continue; nid = page_to_nid(page); if (node_isset(nid, *nodes) == !!(flags & MPOL_MF_INVERT)) continue; @@ -290,7 +292,7 @@ static inline int check_pgd_range(struct vm_area_struct *vma, static inline int vma_migratable(struct vm_area_struct *vma) { if (vma->vm_flags & ( - VM_LOCKED|VM_IO|VM_HUGETLB|VM_PFNMAP)) + VM_LOCKED|VM_IO|VM_HUGETLB|VM_PFNMAP|VM_RESERVED)) return 0; return 1; } |