Re: [patch 08/18] mm: Adjust system_state check

From: Greg Kroah-Hartman
Date: Mon May 15 2017 - 02:18:40 EST


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 <tglx@xxxxxxxxxxxxx>
> Cc: Mel Gorman <mgorman@xxxxxxxxxxxxxxxxxxx>
> Cc: Greg Kroah-Hartman <gregkh@xxxxxxxxxxxxxxxxxxx>
> ---
> 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 <gregkh@xxxxxxxxxxxxxxxxxxx>

thanks,

greg k-h