running get_user_pages() from kernel thread

Izik Eidus
2009-06-16T18:05:34Z

Hey,

ksm is running from its kernel thread context get_user_pages(), but look
like it isnt safe to do get_user_pages() from kernel thread:
get_user_pages may lead into do_swap_page() that may lead into calling
grab_swap_token()

Now grab_swap_token() will do:
current_interval = global_faults - current->mm->... (here is the bug...
(kernel thread doesnt have mm strcture)

So the question is: is this thing is by desgin? (that kernel thread cant
call get_user_pages???), should i use something like switch_mm()??

Thanks.