Index: linux-2.6.16-rc6-mm1/mm/mempolicy.c =================================================================== --- linux-2.6.16-rc6-mm1.orig/mm/mempolicy.c 2006-03-13 09:46:29.000000000 -0800 +++ linux-2.6.16-rc6-mm1/mm/mempolicy.c 2006-03-14 17:19:29.000000000 -0800 @@ -330,9 +330,14 @@ check_range(struct mm_struct *mm, unsign int err; struct vm_area_struct *first, *vma, *prev; - /* Clear the LRU lists so pages can be isolated */ - if (flags & (MPOL_MF_MOVE | MPOL_MF_MOVE_ALL)) + if (flags & (MPOL_MF_MOVE | MPOL_MF_MOVE_ALL)) { + /* Must have swap device for migration */ + if (nr_swap_pages <=0) + return ERR_PTR(-ENODEV); + + /* Clear the LRU lists so pages can be isolated */ lru_add_drain_all(); + } first = find_vma(mm, start); if (!first)