HWPOISON: Use get_user_page_fast in hwpoison madvise
The previous version didn't take the mmap_sem before calling gup(), which is racy. Use get_user_pages_fast() instead which doesn't need any locks. This is also faster of course, but then it doesn't really matter because this is just a testing path. Based on report from Nick Piggin. Cc: npiggin@suse.de Signed-off-by: Andi Kleen <ak@linux.intel.com>
This commit is contained in:
parent
1bfe5febe3
commit
d15f107d97
1 changed files with 1 additions and 2 deletions
|
@ -230,8 +230,7 @@ static int madvise_hwpoison(unsigned long start, unsigned long end)
|
|||
return -EPERM;
|
||||
for (; start < end; start += PAGE_SIZE) {
|
||||
struct page *p;
|
||||
int ret = get_user_pages(current, current->mm, start, 1,
|
||||
0, 0, &p, NULL);
|
||||
int ret = get_user_pages_fast(start, 1, 0, &p);
|
||||
if (ret != 1)
|
||||
return ret;
|
||||
printk(KERN_INFO "Injecting memory failure for page %lx at %lx\n",
|
||||
|
|
Loading…
Reference in a new issue