Messages in this thread | | | Date | Wed, 30 Mar 2022 16:53:37 -0400 | From | Steven Rostedt <> | Subject | Re: [BUG] Crash on x86_32 for: mm: page_alloc: avoid merging non-fallbackable pageblocks with others |
| |
On Wed, 30 Mar 2022 16:29:28 -0400 Zi Yan <ziy@nvidia.com> wrote:
> diff --git a/mm/page_alloc.c b/mm/page_alloc.c > index bdc8f60ae462..83a90e2973b7 100644 > --- a/mm/page_alloc.c > +++ b/mm/page_alloc.c > @@ -1108,6 +1108,8 @@ static inline void __free_one_page(struct page *page, > > buddy_pfn = __find_buddy_pfn(pfn, order); > buddy = page + (buddy_pfn - pfn); > + if (!page_is_buddy(page, buddy, order)) > + goto done_merging; > buddy_mt = get_pageblock_migratetype(buddy); > > if (migratetype != buddy_mt >
The above did not apply to Linus's tree, nor even the problem commit (before or after), but I found where the code is, and added it manually.
It does appear to allow the machine to boot.
-- Steve
| |