[PATCH] mm: fix is_pinnable_page return value

From: Zhangfei Gao
Date: Sat Jun 11 2022 - 09:35:28 EST


Commit 1c563432588d ("mm: fix is_pinnable_page against a cma page")
Changes from
return !(is_zone_movable_page(page) || is_migrate_cma_page(page)) ||
is_zero_pfn(page_to_pfn(page));
to
return !(is_zone_movable_page(page) || is_zero_pfn(page_to_pfn(page)));

Unfortunately, this changes the return value since the ! area is error.
It should be:
return !(is_zone_movable_page(page)) || is_zero_pfn(page_to_pfn(page));

This causes qemu to be hung with a passthrough device.

Fixes: 1c563432588d ("mm: fix is_pinnable_page against a cma page")
Signed-off-by: Zhangfei Gao <zhangfei.gao@xxxxxxxxxx>
---
include/linux/mm.h | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/include/linux/mm.h b/include/linux/mm.h
index bc8f326be0ce..bbbcdde6c4dc 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)
--
2.36.1