From: <gregkh@linuxfoundation.org>
To: 20190527111152.16324-10-david@redhat.com,
Jonathan.Cameron@huawei.com, akpm@linux-foundation.org,
alexander.deucher@amd.com, andrew.banman@hpe.com,
aneesh.kumar@linux.ibm.com, anshuman.khandual@arm.com,
ard.biesheuvel@linaro.org, arunks@codeaurora.org,
benh@kernel.crashing.org, bhe@redhat.com, bp@alien8.de,
broonie@kernel.org, cai@lca.pw, catalin.marinas@arm.com,
chris@chris-wilson.co.uk, christophe.leroy@c-s.fr,
cpandya@codeaurora.org, dalias@libc.org,
dan.j.williams@intel.com, dave.hansen@linux.intel.com,
davem@davemloft.net, david@redhat.com, fenghua.yu@intel.com,
gor@linux.ibm.com, gregkh@linuxfoundation.org,
heiko.carstens@de.ibm.com, hpa@zytor.com, iamjoonsoo.kim@lge.com,
kirill.shutemov@linux.intel.com, linux-mm@kvack.org,
logang@deltatee.com, luto@kernel.org, malat@debian.org,
mark.rutland@arm.com, mhocko@suse.com, mike.travis@hpe.com,
mingo@kernel.org, mpe@ellerman.id.au, npiggin@gmail.com,
osalvador@suse.com, osalvador@suse.de, pasha.tatashin@soleen.com,
paulus@samba.org, peterz@infradead.org, rafael@kernel.org,
ri@kvack.org, chard.weiyang@gmail.com, robh@kernel.org,
robin.murphy@arm.com, rppt@linux.vnet.ibm.com,
tglx@linutronix.de, tony.luck@intel.com,
torvalds@linux-foundation.org, will.deacon@arm.com,
yamada.masahiro@socionext.com, yaojun8558363@gmail.com,
ysato@users.sourceforge.jp, yuzhao@google.com
Cc: <stable-commits@vger.kernel.org>
Subject: Patch "mm/memory_hotplug: remove memory block devices before arch_remove_memory()" has been added to the 4.19-stable tree
Date: Tue, 28 Jan 2020 14:49:45 +0100 [thread overview]
Message-ID: <15802193854228@kroah.com> (raw)
In-Reply-To: <20200128095021.8076-18-david@redhat.com>
This is a note to let you know that I've just added the patch titled
mm/memory_hotplug: remove memory block devices before arch_remove_memory()
to the 4.19-stable tree which can be found at:
http://www.kernel.org/git/?p=linux/kernel/git/stable/stable-queue.git;a=summary
The filename of the patch is:
mm-memory_hotplug-remove-memory-block-devices-before-arch_remove_memory.patch
and it can be found in the queue-4.19 subdirectory.
If you, or anyone else, feels it should not be added to the stable tree,
please let <stable@vger.kernel.org> know about it.
From foo@baz Tue 28 Jan 2020 02:32:10 PM CET
From: David Hildenbrand <david@redhat.com>
Date: Tue, 28 Jan 2020 10:50:14 +0100
Subject: mm/memory_hotplug: remove memory block devices before arch_remove_memory()
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>
Message-ID: <20200128095021.8076-18-david@redhat.com>
From: David Hildenbrand <david@redhat.com>
commit 4c4b7f9ba9486c565aead99a198ceeef73ae81f6 upstream.
Let's factor out removing of memory block devices, which is only
necessary for memory added via add_memory() and friends that created
memory block devices. Remove the devices before calling
arch_remove_memory().
This finishes factoring out memory block device handling from
arch_add_memory() and arch_remove_memory().
Link: http://lkml.kernel.org/r/20190527111152.16324-10-david@redhat.com
Signed-off-by: David Hildenbrand <david@redhat.com>
Reviewed-by: Dan Williams <dan.j.williams@intel.com>
Acked-by: Michal Hocko <mhocko@suse.com>
Cc: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
Cc: "Rafael J. Wysocki" <rafael@kernel.org>
Cc: David Hildenbrand <david@redhat.com>
Cc: "mike.travis@hpe.com" <mike.travis@hpe.com>
Cc: Andrew Banman <andrew.banman@hpe.com>
Cc: Ingo Molnar <mingo@kernel.org>
Cc: Alex Deucher <alexander.deucher@amd.com>
Cc: "David S. Miller" <davem@davemloft.net>
Cc: Mark Brown <broonie@kernel.org>
Cc: Chris Wilson <chris@chris-wilson.co.uk>
Cc: Oscar Salvador <osalvador@suse.de>
Cc: Jonathan Cameron <Jonathan.Cameron@huawei.com>
Cc: Arun KS <arunks@codeaurora.org>
Cc: Mathieu Malaterre <malat@debian.org>
Cc: Andy Lutomirski <luto@kernel.org>
Cc: Anshuman Khandual <anshuman.khandual@arm.com>
Cc: Ard Biesheuvel <ard.biesheuvel@linaro.org>
Cc: Baoquan He <bhe@redhat.com>
Cc: Benjamin Herrenschmidt <benh@kernel.crashing.org>
Cc: Borislav Petkov <bp@alien8.de>
Cc: Catalin Marinas <catalin.marinas@arm.com>
Cc: Chintan Pandya <cpandya@codeaurora.org>
Cc: Christophe Leroy <christophe.leroy@c-s.fr>
Cc: Dave Hansen <dave.hansen@linux.intel.com>
Cc: Fenghua Yu <fenghua.yu@intel.com>
Cc: Heiko Carstens <heiko.carstens@de.ibm.com>
Cc: "H. Peter Anvin" <hpa@zytor.com>
Cc: Joonsoo Kim <iamjoonsoo.kim@lge.com>
Cc: Jun Yao <yaojun8558363@gmail.com>
Cc: "Kirill A. Shutemov" <kirill.shutemov@linux.intel.com>
Cc: Logan Gunthorpe <logang@deltatee.com>
Cc: Mark Rutland <mark.rutland@arm.com>
Cc: Masahiro Yamada <yamada.masahiro@socionext.com>
Cc: Michael Ellerman <mpe@ellerman.id.au>
Cc: Mike Rapoport <rppt@linux.vnet.ibm.com>
Cc: Nicholas Piggin <npiggin@gmail.com>
Cc: Oscar Salvador <osalvador@suse.com>
Cc: Paul Mackerras <paulus@samba.org>
Cc: Pavel Tatashin <pasha.tatashin@soleen.com>
Cc: Peter Zijlstra <peterz@infradead.org>
Cc: Qian Cai <cai@lca.pw>
Cc: Rich Felker <dalias@libc.org>
Cc: Rob Herring <robh@kernel.org>
Cc: Robin Murphy <robin.murphy@arm.com>
Cc: Thomas Gleixner <tglx@linutronix.de>
Cc: Tony Luck <tony.luck@intel.com>
Cc: Vasily Gorbik <gor@linux.ibm.com>
Cc: Wei Yang <richard.weiyang@gmail.com>
Cc: Will Deacon <will.deacon@arm.com>
Cc: Yoshinori Sato <ysato@users.sourceforge.jp>
Cc: Yu Zhao <yuzhao@google.com>
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>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
---
drivers/base/memory.c | 37 ++++++++++++++++++-------------------
drivers/base/node.c | 11 ++++++-----
include/linux/memory.h | 2 +-
include/linux/node.h | 6 ++----
mm/memory_hotplug.c | 5 +++--
5 files changed, 30 insertions(+), 31 deletions(-)
--- a/drivers/base/memory.c
+++ b/drivers/base/memory.c
@@ -768,32 +768,31 @@ int create_memory_block_devices(unsigned
return ret;
}
-void unregister_memory_section(struct mem_section *section)
+/*
+ * Remove memory block devices for the given memory area. Start and size
+ * have to be aligned to memory block granularity. Memory block devices
+ * have to be offline.
+ */
+void remove_memory_block_devices(unsigned long start, unsigned long size)
{
+ const int start_block_id = pfn_to_block_id(PFN_DOWN(start));
+ const int end_block_id = pfn_to_block_id(PFN_DOWN(start + size));
struct memory_block *mem;
+ int block_id;
- if (WARN_ON_ONCE(!present_section(section)))
+ if (WARN_ON_ONCE(!IS_ALIGNED(start, memory_block_size_bytes()) ||
+ !IS_ALIGNED(size, memory_block_size_bytes())))
return;
mutex_lock(&mem_sysfs_mutex);
-
- /*
- * Some users of the memory hotplug do not want/need memblock to
- * track all sections. Skip over those.
- */
- mem = find_memory_block(section);
- if (!mem)
- goto out_unlock;
-
- unregister_mem_sect_under_nodes(mem, __section_nr(section));
-
- mem->section_count--;
- if (mem->section_count == 0)
+ for (block_id = start_block_id; block_id != end_block_id; block_id++) {
+ mem = find_memory_block_by_id(block_id, NULL);
+ if (WARN_ON_ONCE(!mem))
+ continue;
+ mem->section_count = 0;
+ unregister_memory_block_under_nodes(mem);
unregister_memory(mem);
- else
- put_device(&mem->dev);
-
-out_unlock:
+ }
mutex_unlock(&mem_sysfs_mutex);
}
--- a/drivers/base/node.c
+++ b/drivers/base/node.c
@@ -453,9 +453,10 @@ int register_mem_sect_under_node(struct
return 0;
}
-/* unregister memory section under all nodes that it spans */
-int unregister_mem_sect_under_nodes(struct memory_block *mem_blk,
- unsigned long phys_index)
+/*
+ * Unregister memory block device under all nodes that it spans.
+ */
+int unregister_memory_block_under_nodes(struct memory_block *mem_blk)
{
NODEMASK_ALLOC(nodemask_t, unlinked_nodes, GFP_KERNEL);
unsigned long pfn, sect_start_pfn, sect_end_pfn;
@@ -468,8 +469,8 @@ int unregister_mem_sect_under_nodes(stru
return -ENOMEM;
nodes_clear(*unlinked_nodes);
- sect_start_pfn = section_nr_to_pfn(phys_index);
- sect_end_pfn = sect_start_pfn + PAGES_PER_SECTION - 1;
+ sect_start_pfn = section_nr_to_pfn(mem_blk->start_section_nr);
+ sect_end_pfn = section_nr_to_pfn(mem_blk->end_section_nr);
for (pfn = sect_start_pfn; pfn <= sect_end_pfn; pfn++) {
int nid;
--- a/include/linux/memory.h
+++ b/include/linux/memory.h
@@ -112,7 +112,7 @@ extern void unregister_memory_notifier(s
extern int register_memory_isolate_notifier(struct notifier_block *nb);
extern void unregister_memory_isolate_notifier(struct notifier_block *nb);
int create_memory_block_devices(unsigned long start, unsigned long size);
-extern void unregister_memory_section(struct mem_section *);
+void remove_memory_block_devices(unsigned long start, unsigned long size);
extern int memory_dev_init(void);
extern int memory_notify(unsigned long val, void *v);
extern int memory_isolate_notify(unsigned long val, void *v);
--- a/include/linux/node.h
+++ b/include/linux/node.h
@@ -72,8 +72,7 @@ extern int register_cpu_under_node(unsig
extern int unregister_cpu_under_node(unsigned int cpu, unsigned int nid);
extern int register_mem_sect_under_node(struct memory_block *mem_blk,
void *arg);
-extern int unregister_mem_sect_under_nodes(struct memory_block *mem_blk,
- unsigned long phys_index);
+extern int unregister_memory_block_under_nodes(struct memory_block *mem_blk);
#ifdef CONFIG_HUGETLBFS
extern void register_hugetlbfs_with_node(node_registration_func_t doregister,
@@ -105,8 +104,7 @@ static inline int register_mem_sect_unde
{
return 0;
}
-static inline int unregister_mem_sect_under_nodes(struct memory_block *mem_blk,
- unsigned long phys_index)
+static inline int unregister_memory_block_under_nodes(struct memory_block *mem_blk)
{
return 0;
}
--- a/mm/memory_hotplug.c
+++ b/mm/memory_hotplug.c
@@ -481,8 +481,6 @@ static void __remove_section(struct zone
if (WARN_ON_ONCE(!valid_section(ms)))
return;
- unregister_memory_section(ms);
-
scn_nr = __section_nr(ms);
start_pfn = section_nr_to_pfn((unsigned long)scn_nr);
__remove_zone(zone, start_pfn);
@@ -1914,6 +1912,9 @@ void __ref __remove_memory(int nid, u64
memblock_free(start, size);
memblock_remove(start, size);
+ /* remove memory block devices before removing memory */
+ remove_memory_block_devices(start, size);
+
arch_remove_memory(nid, start, size, NULL);
__release_memory_resource(start, size);
Patches currently in stable-queue which might be from david@redhat.com are
queue-4.19/mm-memory_hotplug-remove-memory-block-devices-before-arch_remove_memory.patch
queue-4.19/mm-hotplug-kill-is_dev_zone-usage-in-__remove_pages.patch
queue-4.19/mm-memory_hotplug-create-memory-block-devices-after-arch_add_memory.patch
queue-4.19/drivers-base-memory-pass-a-block_id-to-init_memory_block.patch
queue-4.19/drivers-base-memory.c-clean-up-relics-in-function-parameters.patch
queue-4.19/mm-memory_hotplug-update-a-comment-in-unregister_memory.patch
queue-4.19/mm-memory_hotplug-shrink-zones-when-offlining-memory.patch
queue-4.19/mm-memory_hotplug-make-unregister_memory_block_under_nodes-never-fail.patch
queue-4.19/mm-memunmap-don-t-access-uninitialized-memmap-in-memunmap_pages.patch
queue-4.19/mm-memory_hotplug-make-__remove_section-never-fail.patch
queue-4.19/mm-sparse-drop-pgdat_resize_lock-in-sparse_add-remove_one_section.patch
queue-4.19/mm-memory_hotplug-make-unregister_memory_section-never-fail.patch
queue-4.19/mm-memory_hotplug-release-memory-resource-after-arch_remove_memory.patch
queue-4.19/mm-memory_hotplug-add-nid-parameter-to-arch_remove_memory.patch
queue-4.19/powerpc-mm-fix-section-mismatch-warning.patch
queue-4.19/mm-memory_hotplug-allow-arch_remove_memory-without-config_memory_hotremove.patch
queue-4.19/mm-memory_hotplug-make-remove_memory-take-the-device_hotplug_lock.patch
queue-4.19/mm-memory_hotplug-make-__remove_pages-and-arch_remove_memory-never-fail.patch
queue-4.19/mm-memory_hotplug-fix-try_offline_node.patch
queue-4.19/mm-memory_hotplug-remove-zone-parameter-from-sparse_remove_one_section.patch
queue-4.19/drivers-base-memory.c-remove-an-unnecessary-check-on-nr_mem_sections.patch
queue-4.19/drivers-base-node.c-simplify-unregister_memory_block_under_nodes.patch
queue-4.19/s390x-mm-implement-arch_remove_memory.patch
queue-4.19/mm-sparse-pass-nid-instead-of-pgdat-to-sparse_add_one_section.patch
next prev parent reply other threads:[~2020-01-28 13:50 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 ` [PATCH for 4.19-stable v3 09/24] mm/memory_hotplug: make unregister_memory_section() never fail David Hildenbrand
2020-01-28 13:49 ` Patch "mm/memory_hotplug: make unregister_memory_section() never fail" has been added to the 4.19-stable tree 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 ` gregkh [this message]
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=15802193854228@kroah.com \
--to=gregkh@linuxfoundation.org \
--cc=20190527111152.16324-10-david@redhat.com \
--cc=Jonathan.Cameron@huawei.com \
--cc=akpm@linux-foundation.org \
--cc=alexander.deucher@amd.com \
--cc=andrew.banman@hpe.com \
--cc=aneesh.kumar@linux.ibm.com \
--cc=anshuman.khandual@arm.com \
--cc=ard.biesheuvel@linaro.org \
--cc=arunks@codeaurora.org \
--cc=benh@kernel.crashing.org \
--cc=bhe@redhat.com \
--cc=bp@alien8.de \
--cc=broonie@kernel.org \
--cc=cai@lca.pw \
--cc=catalin.marinas@arm.com \
--cc=chard.weiyang@gmail.com \
--cc=chris@chris-wilson.co.uk \
--cc=christophe.leroy@c-s.fr \
--cc=cpandya@codeaurora.org \
--cc=dalias@libc.org \
--cc=dan.j.williams@intel.com \
--cc=dave.hansen@linux.intel.com \
--cc=davem@davemloft.net \
--cc=david@redhat.com \
--cc=fenghua.yu@intel.com \
--cc=gor@linux.ibm.com \
--cc=heiko.carstens@de.ibm.com \
--cc=hpa@zytor.com \
--cc=iamjoonsoo.kim@lge.com \
--cc=kirill.shutemov@linux.intel.com \
--cc=linux-mm@kvack.org \
--cc=logang@deltatee.com \
--cc=luto@kernel.org \
--cc=malat@debian.org \
--cc=mark.rutland@arm.com \
--cc=mhocko@suse.com \
--cc=mike.travis@hpe.com \
--cc=mingo@kernel.org \
--cc=mpe@ellerman.id.au \
--cc=npiggin@gmail.com \
--cc=osalvador@suse.com \
--cc=osalvador@suse.de \
--cc=pasha.tatashin@soleen.com \
--cc=paulus@samba.org \
--cc=peterz@infradead.org \
--cc=rafael@kernel.org \
--cc=ri@kvack.org \
--cc=robh@kernel.org \
--cc=robin.murphy@arm.com \
--cc=rppt@linux.vnet.ibm.com \
--cc=stable-commits@vger.kernel.org \
--cc=tglx@linutronix.de \
--cc=tony.luck@intel.com \
--cc=torvalds@linux-foundation.org \
--cc=will.deacon@arm.com \
--cc=yamada.masahiro@socionext.com \
--cc=yaojun8558363@gmail.com \
--cc=ysato@users.sourceforge.jp \
--cc=yuzhao@google.com \
/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.