diff options
author | Alex Williamson <[email protected]> | 2022-06-10 16:35:13 -0600 |
---|---|---|
committer | akpm <[email protected]> | 2022-06-16 19:11:32 -0700 |
commit | 034e5afad921f1c08c001bf147fb1ba76ae33498 (patch) | |
tree | 345fc7dbe9433e193e528d1efae2441dcbffec78 | |
parent | 327b18b7aaed5de3b548212e3ab75133bf323759 (diff) |
mm: re-allow pinning of zero pfns
The commit referenced below subtly and inadvertently changed the logic to
disallow pinning of zero pfns. This breaks device assignment with vfio
and potentially various other users of gup. Exclude the zero page test
from the negation.
Link: https://lkml.kernel.org/r/165490039431.944052.12458624139225785964.stgit@omen
Fixes: 1c563432588d ("mm: fix is_pinnable_page against a cma page")
Signed-off-by: Alex Williamson <[email protected]>
Acked-by: Minchan Kim <[email protected]>
Acked-by: David Hildenbrand <[email protected]>
Reported-by: Yishai Hadas <[email protected]>
Cc: Paul E. McKenney <[email protected]>
Cc: John Hubbard <[email protected]>
Cc: John Dias <[email protected]>
Cc: Jason Gunthorpe <[email protected]>
Cc: Zhangfei Gao <[email protected]>
Cc: Matthew Wilcox <[email protected]>
Cc: Joao Martins <[email protected]>
Cc: Yi Liu <[email protected]>
Signed-off-by: Andrew Morton <[email protected]>
-rw-r--r-- | include/linux/mm.h | 2 |
1 files changed, 1 insertions, 1 deletions
diff --git a/include/linux/mm.h b/include/linux/mm.h index bc8f326be0ce..781fae17177d 100644 --- a/include/linux/mm.h +++ b/include/linux/mm.h @@ -1600,7 +1600,7 @@ static inline bool is_pinnable_page(struct page *page) if (mt == MIGRATE_CMA || mt == MIGRATE_ISOLATE) return false; #endif - return !(is_zone_movable_page(page) || is_zero_pfn(page_to_pfn(page))); + return !is_zone_movable_page(page) || is_zero_pfn(page_to_pfn(page)); } #else static inline bool is_pinnable_page(struct page *page) |