diff --git a/include/linux/mmzone.h b/include/linux/mmzone.h index 8b8349ffa1cd..998f10249f13 100644 --- a/include/linux/mmzone.h +++ b/include/linux/mmzone.h @@ -1457,8 +1457,9 @@ static inline int subsection_map_index(unsigned long pfn) static inline int pfn_section_valid(struct mem_section *ms, unsigned long pfn) { int idx = subsection_map_index(pfn); + struct mem_section_usage *usage = READ_ONCE(ms->usage); - return test_bit(idx, READ_ONCE(ms->usage)->subsection_map); + return usage ? test_bit(idx, usage->subsection_map) : 0; } #else static inline int pfn_section_valid(struct mem_section *ms, unsigned long pfn)