linux-kernel.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
From: Andrew Morton <akpm@linux-foundation.org>
To: <abanman@sgi.com>
Cc: Seth Jennings <sjennings@variantweb.net>,
	Greg Kroah-Hartman <gregkh@linuxfoundation.org>,
	Russ Anderson <rja@sgi.com>, <linux-kernel@vger.kernel.org>
Subject: Re: [PATCH] drivers: memory: check for missing sections when testing zones
Date: Fri, 4 Dec 2015 16:03:02 -0800	[thread overview]
Message-ID: <20151204160302.55d7fd03724fa53b54b335f0@linux-foundation.org> (raw)
In-Reply-To: <566082D6.3070905@sgi.com>

On Thu, 3 Dec 2015 11:58:46 -0600 Andrew Banman <abanman@sgi.com> wrote:

> test_pages_in_a_zone does not account for the possibility of missing sections
> in the given pfn range. Since pfn_valid_within always returns 1 when
> CONFIG_HOLES_IN_ZONE is not set, invalid pfns from missing sections
> will pass the test, resulting in a kernel oops. This is remedied by simply
> checking for the presence of the pfn's section. We don't have to remove
> the pfn_valid_within optimization.
> 
> The patch also prevents a crash from offlining memory devices with missing
> sections. Despite this, it's probably best to keep
> 
> [PATCH 3/3] drivers: memory: prohibit offlining of memory blocks withmissing sections
> 
> because missing sections may indicate other problems, like overlapping mem
> blocks and who knows what else (see the discussion at BZ 107781).
> 
> ---
>  mm/memory_hotplug.c | 3 +++
>  1 file changed, 3 insertions(+)
> 
> diff --git a/mm/memory_hotplug.c b/mm/memory_hotplug.c
> index 67d488a..74f5bcd 100644
> --- a/mm/memory_hotplug.c
> +++ b/mm/memory_hotplug.c
> @@ -1383,6 +1383,9 @@ int test_pages_in_a_zone(unsigned long start_pfn, unsigned long end_pfn)
>              pfn < end_pfn;
>              pfn += MAX_ORDER_NR_PAGES) {
>                 i = 0;
> +               /* Make sure the memory section is present */
> +               if (!present_section_nr(pfn_to_section_nr(pfn)))
> +                       continue;
>                 /* This is just a CONFIG_HOLES_IN_ZONE check.*/
>                 while ((i < MAX_ORDER_NR_PAGES) && !pfn_valid_within(pfn + i))
>                         i++;

Please send a Signed-off-by: for this patch.

Your email client is replacing tabs with spaces.

Please confirm that this patch is applicable to current mainline.

Please confirm that this patch is suitable for backporting into -stable
trees.

Thanks.


      reply	other threads:[~2015-12-05  0:03 UTC|newest]

Thread overview: 6+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2015-12-02 15:06 [PATCH 1/3] drivers: memory: clean up section counting Seth Jennings
2015-12-02 15:07 ` [PATCH 2/3] drivers: memory: rename remove_memory_block() to remove_memory_section() Seth Jennings
2015-12-02 15:07 ` [PATCH 3/3] drivers: memory: prohibit offlining of memory blocks with missing sections Seth Jennings
2015-12-02 22:45   ` Andrew Morton
2015-12-03 17:58     ` [PATCH] drivers: memory: check for missing sections when testing zones Andrew Banman
2015-12-05  0:03       ` Andrew Morton [this message]

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=20151204160302.55d7fd03724fa53b54b335f0@linux-foundation.org \
    --to=akpm@linux-foundation.org \
    --cc=abanman@sgi.com \
    --cc=gregkh@linuxfoundation.org \
    --cc=linux-kernel@vger.kernel.org \
    --cc=rja@sgi.com \
    --cc=sjennings@variantweb.net \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).