On Sun, May 14, 2017 at 08:27:24PM +0200, Thomas Gleixner wrote:
> To enable smp_processor_id() and might_sleep() debug checks earlier, it's
> required to add system states between SYSTEM_BOOTING and SYSTEM_RUNNING.
> 
> get_nid_for_pfn() checks for system_state == BOOTING to decide whether to
> use early_pfn_to_nid() when CONFIG_DEFERRED_STRUCT_PAGE_INIT=y.
> 
> That check is dubious, because the switch to state RUNNING happes way after
> page_alloc_init_late() has been invoked.
> 
> Change the check to less than RUNNING state so it covers the new
> intermediate states as well.
> 
> Signed-off-by: Thomas Gleixner <t...@linutronix.de>
> Cc: Mel Gorman <mgor...@techsingularity.net>
> Cc: Greg Kroah-Hartman <gre...@linuxfoundation.org>
> ---
>  drivers/base/node.c |    2 +-
>  1 file changed, 1 insertion(+), 1 deletion(-)
> 
> --- a/drivers/base/node.c
> +++ b/drivers/base/node.c
> @@ -377,7 +377,7 @@ static int __ref get_nid_for_pfn(unsigne
>       if (!pfn_valid_within(pfn))
>               return -1;
>  #ifdef CONFIG_DEFERRED_STRUCT_PAGE_INIT
> -     if (system_state == SYSTEM_BOOTING)
> +     if (system_state < SYSTEM_RUNNING)

Someone better comment the place where these are defined that they need
to be in a specific order, I don't think they have been tested this way
in the past...

With that change:
        Acked-by: Greg Kroah-Hartman <gre...@linuxfoundation.org>

thanks,

greg k-h

Reply via email to