From: David Hildenbrand <david@redhat.com>
To: stable@vger.kernel.org
Cc: linux-mm@kvack.org, Michal Hocko <mhocko@suse.com>,
Greg Kroah-Hartman <gregkh@linuxfoundation.org>,
Andrew Morton <akpm@linux-foundation.org>,
"Aneesh Kumar K . V" <aneesh.kumar@linux.ibm.com>,
Baoquan He <bhe@redhat.com>,
Dan Williams <dan.j.williams@intel.com>,
Oscar Salvador <osalvador@suse.de>,
Wei Yang <richard.weiyang@gmail.com>,
David Hildenbrand <david@redhat.com>
Subject: [PATCH for 4.19-stable v3 09/24] mm/memory_hotplug: make unregister_memory_section() never fail
Date: Tue, 28 Jan 2020 10:50:06 +0100 [thread overview]
Message-ID: <20200128095021.8076-10-david@redhat.com> (raw)
In-Reply-To: <20200128095021.8076-1-david@redhat.com>
commit cb7b3a3685b20d3b5900ff24b2cb96d002960189 upstream.
Failing while removing memory is mostly ignored and cannot really be
handled. Let's treat errors in unregister_memory_section() in a nice way,
warning, but continuing.
Link: http://lkml.kernel.org/r/20190409100148.24703-3-david@redhat.com
Signed-off-by: David Hildenbrand <david@redhat.com>
Cc: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
Cc: "Rafael J. Wysocki" <rafael@kernel.org>
Cc: Ingo Molnar <mingo@kernel.org>
Cc: Andrew Banman <andrew.banman@hpe.com>
Cc: Mike Travis <mike.travis@hpe.com>
Cc: David Hildenbrand <david@redhat.com>
Cc: Oscar Salvador <osalvador@suse.de>
Cc: Michal Hocko <mhocko@suse.com>
Cc: Pavel Tatashin <pasha.tatashin@soleen.com>
Cc: Qian Cai <cai@lca.pw>
Cc: Wei Yang <richard.weiyang@gmail.com>
Cc: Arun KS <arunks@codeaurora.org>
Cc: Mathieu Malaterre <malat@debian.org>
Cc: Andy Lutomirski <luto@kernel.org>
Cc: Benjamin Herrenschmidt <benh@kernel.crashing.org>
Cc: Borislav Petkov <bp@alien8.de>
Cc: Christophe Leroy <christophe.leroy@c-s.fr>
Cc: Dave Hansen <dave.hansen@linux.intel.com>
Cc: Fenghua Yu <fenghua.yu@intel.com>
Cc: Geert Uytterhoeven <geert@linux-m68k.org>
Cc: Heiko Carstens <heiko.carstens@de.ibm.com>
Cc: "H. Peter Anvin" <hpa@zytor.com>
Cc: Ingo Molnar <mingo@redhat.com>
Cc: Joonsoo Kim <iamjoonsoo.kim@lge.com>
Cc: "Kirill A. Shutemov" <kirill.shutemov@linux.intel.com>
Cc: Martin Schwidefsky <schwidefsky@de.ibm.com>
Cc: Masahiro Yamada <yamada.masahiro@socionext.com>
Cc: Michael Ellerman <mpe@ellerman.id.au>
Cc: Mike Rapoport <rppt@linux.ibm.com>
Cc: Nicholas Piggin <npiggin@gmail.com>
Cc: Oscar Salvador <osalvador@suse.com>
Cc: Paul Mackerras <paulus@samba.org>
Cc: Peter Zijlstra <peterz@infradead.org>
Cc: Rich Felker <dalias@libc.org>
Cc: Rob Herring <robh@kernel.org>
Cc: Stefan Agner <stefan@agner.ch>
Cc: Thomas Gleixner <tglx@linutronix.de>
Cc: Tony Luck <tony.luck@intel.com>
Cc: Vasily Gorbik <gor@linux.ibm.com>
Cc: Yoshinori Sato <ysato@users.sourceforge.jp>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
Signed-off-by: David Hildenbrand <david@redhat.com>
---
drivers/base/memory.c | 16 +++++-----------
include/linux/memory.h | 2 +-
mm/memory_hotplug.c | 4 +---
3 files changed, 7 insertions(+), 15 deletions(-)
diff --git a/drivers/base/memory.c b/drivers/base/memory.c
index 119b076eb5e2..5b9950d982dc 100644
--- a/drivers/base/memory.c
+++ b/drivers/base/memory.c
@@ -743,15 +743,18 @@ unregister_memory(struct memory_block *memory)
{
BUG_ON(memory->dev.bus != &memory_subsys);
- /* drop the ref. we got in remove_memory_section() */
+ /* drop the ref. we got via find_memory_block() */
put_device(&memory->dev);
device_unregister(&memory->dev);
}
-static int remove_memory_section(struct mem_section *section)
+void unregister_memory_section(struct mem_section *section)
{
struct memory_block *mem;
+ if (WARN_ON_ONCE(!present_section(section)))
+ return;
+
mutex_lock(&mem_sysfs_mutex);
/*
@@ -772,15 +775,6 @@ static int remove_memory_section(struct mem_section *section)
out_unlock:
mutex_unlock(&mem_sysfs_mutex);
- return 0;
-}
-
-int unregister_memory_section(struct mem_section *section)
-{
- if (!present_section(section))
- return -EINVAL;
-
- return remove_memory_section(section);
}
#endif /* CONFIG_MEMORY_HOTREMOVE */
diff --git a/include/linux/memory.h b/include/linux/memory.h
index a6ddefc60517..e1dc1bb2b787 100644
--- a/include/linux/memory.h
+++ b/include/linux/memory.h
@@ -113,7 +113,7 @@ extern int register_memory_isolate_notifier(struct notifier_block *nb);
extern void unregister_memory_isolate_notifier(struct notifier_block *nb);
int hotplug_memory_register(int nid, struct mem_section *section);
#ifdef CONFIG_MEMORY_HOTREMOVE
-extern int unregister_memory_section(struct mem_section *);
+extern void unregister_memory_section(struct mem_section *);
#endif
extern int memory_dev_init(void);
extern int memory_notify(unsigned long val, void *v);
diff --git a/mm/memory_hotplug.c b/mm/memory_hotplug.c
index 418d589552b3..42c5bc371ffe 100644
--- a/mm/memory_hotplug.c
+++ b/mm/memory_hotplug.c
@@ -488,9 +488,7 @@ static int __remove_section(struct zone *zone, struct mem_section *ms,
if (!valid_section(ms))
return ret;
- ret = unregister_memory_section(ms);
- if (ret)
- return ret;
+ unregister_memory_section(ms);
scn_nr = __section_nr(ms);
start_pfn = section_nr_to_pfn((unsigned long)scn_nr);
--
2.24.1
next prev parent reply other threads:[~2020-01-28 9:51 UTC|newest]
Thread overview: 51+ messages / expand[flat|nested] mbox.gz Atom feed top
2020-01-28 9:49 [PATCH for 4.19-stable v3 00/24] mm/memory_hotplug: backport of pending stable fixes David Hildenbrand
2020-01-28 9:49 ` [PATCH for 4.19-stable v3 01/24] mm/memory_hotplug: make remove_memory() take the device_hotplug_lock David Hildenbrand
2020-01-28 13:49 ` Patch "mm/memory_hotplug: make remove_memory() take the device_hotplug_lock" has been added to the 4.19-stable tree gregkh
2020-01-28 9:49 ` [PATCH for 4.19-stable v3 02/24] mm, sparse: drop pgdat_resize_lock in sparse_add/remove_one_section() David Hildenbrand
2020-01-28 13:49 ` Patch "mm, sparse: drop pgdat_resize_lock in sparse_add/remove_one_section()" has been added to the 4.19-stable tree gregkh
2020-01-28 9:50 ` [PATCH for 4.19-stable v3 03/24] mm, sparse: pass nid instead of pgdat to sparse_add_one_section() David Hildenbrand
2020-01-28 13:49 ` Patch "mm, sparse: pass nid instead of pgdat to sparse_add_one_section()" has been added to the 4.19-stable tree gregkh
2020-01-28 9:50 ` [PATCH for 4.19-stable v3 04/24] drivers/base/memory.c: remove an unnecessary check on NR_MEM_SECTIONS David Hildenbrand
2020-01-28 13:49 ` Patch "drivers/base/memory.c: remove an unnecessary check on NR_MEM_SECTIONS" has been added to the 4.19-stable tree gregkh
2020-01-28 9:50 ` [PATCH for 4.19-stable v3 05/24] mm, memory_hotplug: add nid parameter to arch_remove_memory David Hildenbrand
2020-01-28 13:49 ` Patch "mm, memory_hotplug: add nid parameter to arch_remove_memory" has been added to the 4.19-stable tree gregkh
2020-01-28 9:50 ` [PATCH for 4.19-stable v3 06/24] mm/memory_hotplug: release memory resource after arch_remove_memory() David Hildenbrand
2020-01-28 13:49 ` Patch "mm/memory_hotplug: release memory resource after arch_remove_memory()" has been added to the 4.19-stable tree gregkh
2020-01-28 9:50 ` [PATCH for 4.19-stable v3 07/24] drivers/base/memory.c: clean up relics in function parameters David Hildenbrand
2020-01-28 13:49 ` Patch "drivers/base/memory.c: clean up relics in function parameters" has been added to the 4.19-stable tree gregkh
2020-01-28 9:50 ` [PATCH for 4.19-stable v3 08/24] mm, memory_hotplug: update a comment in unregister_memory() David Hildenbrand
2020-01-28 13:49 ` Patch "mm, memory_hotplug: update a comment in unregister_memory()" has been added to the 4.19-stable tree gregkh
2020-01-28 9:50 ` David Hildenbrand [this message]
2020-01-28 13:49 ` Patch "mm/memory_hotplug: make unregister_memory_section() never fail" " gregkh
2020-01-28 9:50 ` [PATCH for 4.19-stable v3 10/24] mm/memory_hotplug: make __remove_section() never fail David Hildenbrand
2020-01-28 13:49 ` Patch "mm/memory_hotplug: make __remove_section() never fail" has been added to the 4.19-stable tree gregkh
2020-01-28 9:50 ` [PATCH for 4.19-stable v3 11/24] powerpc/mm: Fix section mismatch warning David Hildenbrand
2020-01-28 13:49 ` Patch "powerpc/mm: Fix section mismatch warning" has been added to the 4.19-stable tree gregkh
2020-01-28 9:50 ` [PATCH for 4.19-stable v3 12/24] mm/memory_hotplug: make __remove_pages() and arch_remove_memory() never fail David Hildenbrand
2020-01-28 13:49 ` Patch "mm/memory_hotplug: make __remove_pages() and arch_remove_memory() never fail" has been added to the 4.19-stable tree gregkh
2020-01-28 9:50 ` [PATCH for 4.19-stable v3 13/24] s390x/mm: implement arch_remove_memory() David Hildenbrand
2020-01-28 13:49 ` Patch "s390x/mm: implement arch_remove_memory()" has been added to the 4.19-stable tree gregkh
2020-01-28 9:50 ` [PATCH for 4.19-stable v3 14/24] mm/memory_hotplug: allow arch_remove_memory() without CONFIG_MEMORY_HOTREMOVE David Hildenbrand
2020-01-28 13:49 ` Patch "mm/memory_hotplug: allow arch_remove_memory() without CONFIG_MEMORY_HOTREMOVE" has been added to the 4.19-stable tree gregkh
2020-01-28 9:50 ` [PATCH for 4.19-stable v3 15/24] drivers/base/memory: pass a block_id to init_memory_block() David Hildenbrand
2020-01-28 13:49 ` Patch "drivers/base/memory: pass a block_id to init_memory_block()" has been added to the 4.19-stable tree gregkh
2020-01-28 9:50 ` [PATCH for 4.19-stable v3 16/24] mm/memory_hotplug: create memory block devices after arch_add_memory() David Hildenbrand
2020-01-28 13:49 ` Patch "mm/memory_hotplug: create memory block devices after arch_add_memory()" has been added to the 4.19-stable tree gregkh
2020-01-28 9:50 ` [PATCH for 4.19-stable v3 17/24] mm/memory_hotplug: remove memory block devices before arch_remove_memory() David Hildenbrand
2020-01-28 13:49 ` Patch "mm/memory_hotplug: remove memory block devices before arch_remove_memory()" has been added to the 4.19-stable tree gregkh
2020-01-28 9:50 ` [PATCH for 4.19-stable v3 18/24] mm/memory_hotplug: make unregister_memory_block_under_nodes() never fail David Hildenbrand
2020-01-28 13:49 ` Patch "mm/memory_hotplug: make unregister_memory_block_under_nodes() never fail" has been added to the 4.19-stable tree gregkh
2020-01-28 9:50 ` [PATCH for 4.19-stable v3 19/24] mm/memory_hotplug: remove "zone" parameter from sparse_remove_one_section David Hildenbrand
2020-01-28 13:49 ` Patch "mm/memory_hotplug: remove "zone" parameter from sparse_remove_one_section" has been added to the 4.19-stable tree gregkh
2020-01-28 9:50 ` [PATCH for 4.19-stable v3 20/24] mm/hotplug: kill is_dev_zone() usage in __remove_pages() David Hildenbrand
2020-01-28 13:49 ` Patch "mm/hotplug: kill is_dev_zone() usage in __remove_pages()" has been added to the 4.19-stable tree gregkh
2020-01-28 9:50 ` [PATCH for 4.19-stable v3 21/24] drivers/base/node.c: simplify unregister_memory_block_under_nodes() David Hildenbrand
2020-01-28 13:49 ` Patch "drivers/base/node.c: simplify unregister_memory_block_under_nodes()" has been added to the 4.19-stable tree gregkh
2020-01-28 9:50 ` [PATCH for 4.19-stable v3 22/24] mm/memunmap: don't access uninitialized memmap in memunmap_pages() David Hildenbrand
2020-01-28 13:49 ` Patch "mm/memunmap: don't access uninitialized memmap in memunmap_pages()" has been added to the 4.19-stable tree gregkh
2020-01-28 9:50 ` [PATCH for 4.19-stable v3 23/24] mm/memory_hotplug: fix try_offline_node() David Hildenbrand
2020-01-28 13:49 ` Patch "mm/memory_hotplug: fix try_offline_node()" has been added to the 4.19-stable tree gregkh
2020-01-28 9:50 ` [PATCH for 4.19-stable v3 24/24] mm/memory_hotplug: shrink zones when offlining memory David Hildenbrand
2020-01-28 13:49 ` Patch "mm/memory_hotplug: shrink zones when offlining memory" has been added to the 4.19-stable tree gregkh
2020-01-28 13:50 ` [PATCH for 4.19-stable v3 00/24] mm/memory_hotplug: backport of pending stable fixes Greg Kroah-Hartman
2020-01-29 9:37 ` David Hildenbrand
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=20200128095021.8076-10-david@redhat.com \
--to=david@redhat.com \
--cc=akpm@linux-foundation.org \
--cc=aneesh.kumar@linux.ibm.com \
--cc=bhe@redhat.com \
--cc=dan.j.williams@intel.com \
--cc=gregkh@linuxfoundation.org \
--cc=linux-mm@kvack.org \
--cc=mhocko@suse.com \
--cc=osalvador@suse.de \
--cc=richard.weiyang@gmail.com \
--cc=stable@vger.kernel.org \
/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 an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.