The function is called from __meminit context and calls other__meminit functions but isn't it self mark as such today:

WARNING: vmlinux.o(.text.unlikely+0x4516): Section mismatch in reference from the function init_reserved_page() to the function .meminit.text:early_pfn_to_nid()The function init_reserved_page() referencesthe function __meminit early_pfn_to_nid().This is often because init_reserved_page lacks a __meminitannotation or the annotation of early_pfn_to_nid is wrong.

On most compilers, we don't notice this because the functiongets inlined all the time. Adding __meminit here fixes theharmless warning for the old versions and is generally thecorrect annotation.