On Fri 19-05-17 22:39:36, Firo Yang wrote:
> During showing the pagetypeinfo, we forgot to save the found page
> and dereference a invalid page address from the stack.
> 
> To fix it, save and reference the page address returned by
> pfn_to_online_page().

Thanks for taking catching that and your fix. I have already posted a fix
http://lkml.kernel.org/r/[email protected] earlier
today. Sorry about troubles

> Signed-off-by: Firo Yang <[email protected]>
> ---
>  mm/vmstat.c | 3 ++-
>  1 file changed, 2 insertions(+), 1 deletion(-)
> 
> diff --git a/mm/vmstat.c b/mm/vmstat.c
> index c432e58..6dae6b2 100644
> --- a/mm/vmstat.c
> +++ b/mm/vmstat.c
> @@ -1223,7 +1223,8 @@ static void pagetypeinfo_showblockcount_print(struct 
> seq_file *m,
>       for (pfn = start_pfn; pfn < end_pfn; pfn += pageblock_nr_pages) {
>               struct page *page;
>  
> -             if (!pfn_to_online_page(pfn))
> +             page = pfn_to_online_page(pfn);
> +             if (!page)
>                       continue;
>  
>               /* Watch for unexpected holes punched in the memmap */
> -- 
> 2.9.4
> 

-- 
Michal Hocko
SUSE Labs

Reply via email to