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