On Fri 24-11-17 10:17:58, Jiri Slaby wrote:
On 11/22/2017, 01:09 PM, Michal Hocko wrote:
--- a/mm/debug-pagealloc.c +++ b/mm/debug-pagealloc.c @@ -34,6 +34,8 @@ static inline void set_page_poison(struct page *page) struct page_ext *page_ext; page_ext = lookup_page_ext(page);
- if (page_ext)
__set_bit(PAGE_EXT_DEBUG_POISON, &page_ext->flags);return;
} @@ -42,6 +44,8 @@ static inline void clear_page_poison(struct page *page) struct page_ext *page_ext; page_ext = lookup_page_ext(page);
- if (page_ext)
__clear_bit(PAGE_EXT_DEBUG_POISON, &page_ext->flags);return;
} @@ -50,6 +54,8 @@ static inline bool page_poison(struct page *page) struct page_ext *page_ext; page_ext = lookup_page_ext(page);
- if (page_ext)
return test_bit(PAGE_EXT_DEBUG_POISON, &page_ext->flags);return false;
Now I am confused, your SLE12-SP2's backport in patches.fixes/0001-mm-check-the-return-value-of-lookup_page_ext-for-all.patch does the opposite in all three:
if (!page_ext)
return;
Dohh, because I screwed up! Thanks for catching this. I will repost the fixed patch as a reply to this email.