Re: [PATCH v3] mm/hotplug: invalid PFNs from pfn_to_online_page()
From: Michal Hocko
Date: Tue Jan 22 2019 - 01:58:26 EST
On Mon 21-01-19 16:27:47, Qian Cai wrote:
[...]
Sorry to miss this before but you want to
> +#define pfn_to_online_page(pfn) \
> +({ \
> + struct page *___page = NULL; \
unsigned long ___pfn = pfn;
> + unsigned long ___nr = pfn_to_section_nr(pfn); \
pfn_to_section_nr(___pfn);
> + \
> + if (___nr < NR_MEM_SECTIONS && online_section_nr(___nr) && \
> + pfn_valid_within(pfn)) \
pfn_valid_within(___pfn))
> + ___page = pfn_to_page(pfn); \
> + ___page; \
> })
to prevent from issues when pfn expression has side effects.
--
Michal Hocko
SUSE Labs