2022-06-11 13:46:46

by zhangfei

[permalink] [raw]
Subject: [PATCH] mm: fix is_pinnable_page return value

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 <[email protected]>
---
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


2022-06-11 15:17:48

by Matthew Wilcox

[permalink] [raw]
Subject: Re: [PATCH] mm: fix is_pinnable_page return value

On Sat, Jun 11, 2022 at 09:34:42PM +0800, Zhangfei Gao wrote:
> 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)));

Mailing lists can be read as well as written.

https://lore.kernel.org/linux-mm/165490039431.944052.12458624139225785964.stgit@omen/

2022-06-11 16:16:01

by zhangfei

[permalink] [raw]
Subject: Re: [PATCH] mm: fix is_pinnable_page return value



On 2022/6/11 下午10:56, Matthew Wilcox wrote:
> On Sat, Jun 11, 2022 at 09:34:42PM +0800, Zhangfei Gao wrote:
>> 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)));
> Mailing lists can be read as well as written.
>
> https://lore.kernel.org/linux-mm/165490039431.944052.12458624139225785964.stgit@omen/
Oops, I am stucked in debugging the qemu hung issue, not noticed it has
been fixed.

Thanks Matthew.