| From: Alex Williamson <alex.williamson@redhat.com> |
| Subject: mm: re-allow pinning of zero pfns |
| Date: Fri, 10 Jun 2022 16:35:13 -0600 |
| |
| 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 <alex.williamson@redhat.com> |
| Acked-by: Minchan Kim <minchan@kernel.org> |
| Acked-by: David Hildenbrand <david@redhat.com> |
| Reported-by: Yishai Hadas <yishaih@nvidia.com> |
| Cc: Paul E. McKenney <paulmck@kernel.org> |
| Cc: John Hubbard <jhubbard@nvidia.com> |
| Cc: John Dias <joaodias@google.com> |
| Cc: Jason Gunthorpe <jgg@ziepe.ca> |
| Cc: Zhangfei Gao <zhangfei.gao@linaro.org> |
| Cc: Matthew Wilcox <willy@infradead.org> |
| Cc: Joao Martins <joao.m.martins@oracle.com> |
| Cc: Yi Liu <yi.l.liu@intel.com> |
| Signed-off-by: Andrew Morton <akpm@linux-foundation.org> |
| --- |
| |
| include/linux/mm.h | 2 +- |
| 1 file changed, 1 insertion(+), 1 deletion(-) |
| |
| --- a/include/linux/mm.h~mm-re-allow-pinning-of-zero-pfns |
| +++ a/include/linux/mm.h |
| @@ -1600,7 +1600,7 @@ static inline bool is_pinnable_page(stru |
| 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) |
| _ |