* incoming
@ 2020-04-21 1:13 Andrew Morton
2020-04-21 1:13 ` [patch 01/15] sh: fix build error in mm/init.c Andrew Morton
` (67 more replies)
0 siblings, 68 replies; 215+ messages in thread
From: Andrew Morton @ 2020-04-21 1:13 UTC (permalink / raw)
To: Linus Torvalds; +Cc: mm-commits, linux-mm
15 fixes, based on ae83d0b416db002fe95601e7f97f64b59514d936:
Masahiro Yamada <masahiroy@kernel.org>:
sh: fix build error in mm/init.c
Kees Cook <keescook@chromium.org>:
slub: avoid redzone when choosing freepointer location
Peter Xu <peterx@redhat.com>:
mm/userfaultfd: disable userfaultfd-wp on x86_32
Bartosz Golaszewski <bgolaszewski@baylibre.com>:
MAINTAINERS: add an entry for kfifo
Longpeng <longpeng2@huawei.com>:
mm/hugetlb: fix a addressing exception caused by huge_pte_offset
Michal Hocko <mhocko@suse.com>:
mm, gup: return EINTR when gup is interrupted by fatal signals
Christophe JAILLET <christophe.jaillet@wanadoo.fr>:
checkpatch: fix a typo in the regex for $allocFunctions
George Burgess IV <gbiv@google.com>:
tools/build: tweak unused value workaround
Muchun Song <songmuchun@bytedance.com>:
mm/ksm: fix NULL pointer dereference when KSM zero page is enabled
Hugh Dickins <hughd@google.com>:
mm/shmem: fix build without THP
Jann Horn <jannh@google.com>:
vmalloc: fix remap_vmalloc_range() bounds checks
Hugh Dickins <hughd@google.com>:
shmem: fix possible deadlocks on shmlock_user_lock
Yang Shi <yang.shi@linux.alibaba.com>:
mm: shmem: disable interrupt when acquiring info->lock in userfaultfd_copy path
Sudip Mukherjee <sudipm.mukherjee@gmail.com>:
coredump: fix null pointer dereference on coredump
Lucas Stach <l.stach@pengutronix.de>:
tools/vm: fix cross-compile build
MAINTAINERS | 7 +++++++
arch/sh/mm/init.c | 2 +-
arch/x86/Kconfig | 2 +-
fs/coredump.c | 2 ++
fs/proc/vmcore.c | 5 +++--
include/linux/vmalloc.h | 2 +-
mm/gup.c | 2 +-
mm/hugetlb.c | 14 ++++++++------
mm/ksm.c | 12 ++++++++++--
mm/shmem.c | 13 ++++++++-----
mm/slub.c | 12 ++++++++++--
mm/vmalloc.c | 16 +++++++++++++---
samples/vfio-mdev/mdpy.c | 2 +-
scripts/checkpatch.pl | 2 +-
tools/build/feature/test-sync-compare-and-swap.c | 2 +-
tools/vm/Makefile | 2 ++
16 files changed, 70 insertions(+), 27 deletions(-)
^ permalink raw reply [flat|nested] 215+ messages in thread
* [patch 01/15] sh: fix build error in mm/init.c
2020-04-21 1:13 incoming Andrew Morton
@ 2020-04-21 1:13 ` Andrew Morton
2020-04-21 1:13 ` [patch 02/15] slub: avoid redzone when choosing freepointer location Andrew Morton
` (66 subsequent siblings)
67 siblings, 0 replies; 215+ messages in thread
From: Andrew Morton @ 2020-04-21 1:13 UTC (permalink / raw)
To: akpm, dalias, geert+renesas, linux-mm, linux, logang, masahiroy,
mm-commits, sfr, torvalds, ysato
From: Masahiro Yamada <masahiroy@kernel.org>
Subject: sh: fix build error in mm/init.c
The closing parenthesis is missing.
Link: http://lkml.kernel.org/r/20200413014743.16353-1-masahiroy@kernel.org
Fixes: bfeb022f8fe4 ("mm/memory_hotplug: add pgprot_t to mhp_params")
Signed-off-by: Masahiro Yamada <masahiroy@kernel.org>
Reviewed-by: Geert Uytterhoeven <geert+renesas@glider.be>
Reviewed-by: Logan Gunthorpe <logang@deltatee.com>
Cc: Stephen Rothwell <sfr@canb.auug.org.au>
Cc: Guenter Roeck <linux@roeck-us.net>
Cc: Yoshinori Sato <ysato@users.sourceforge.jp>
Cc: Rich Felker <dalias@libc.org>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
---
arch/sh/mm/init.c | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
--- a/arch/sh/mm/init.c~sh-fix-build-error-in-mm-initc
+++ a/arch/sh/mm/init.c
@@ -412,7 +412,7 @@ int arch_add_memory(int nid, u64 start,
unsigned long nr_pages = size >> PAGE_SHIFT;
int ret;
- if (WARN_ON_ONCE(params->pgprot.pgprot != PAGE_KERNEL.pgprot)
+ if (WARN_ON_ONCE(params->pgprot.pgprot != PAGE_KERNEL.pgprot))
return -EINVAL;
/* We only have ZONE_NORMAL, so this is easy.. */
_
^ permalink raw reply [flat|nested] 215+ messages in thread
* [patch 02/15] slub: avoid redzone when choosing freepointer location
2020-04-21 1:13 incoming Andrew Morton
2020-04-21 1:13 ` [patch 01/15] sh: fix build error in mm/init.c Andrew Morton
@ 2020-04-21 1:13 ` Andrew Morton
2020-04-21 1:13 ` [patch 03/15] mm/userfaultfd: disable userfaultfd-wp on x86_32 Andrew Morton
` (65 subsequent siblings)
67 siblings, 0 replies; 215+ messages in thread
From: Andrew Morton @ 2020-04-21 1:13 UTC (permalink / raw)
To: akpm, cl, elver, iamjoonsoo.kim, keescook, linux-mm, mm-commits,
penberg, rientjes, torvalds
From: Kees Cook <keescook@chromium.org>
Subject: slub: avoid redzone when choosing freepointer location
Marco Elver reported system crashes when booting with "slub_debug=Z". The
freepointer location (s->offset) was not taking into account that the
"inuse" size that includes the redzone area should not be used by the
freelist pointer. Change the calculation to save the area of the object
that an inline freepointer may be written into.
Link: http://lkml.kernel.org/r/202004151054.BD695840@keescook
Link: https://lore.kernel.org/linux-mm/20200415164726.GA234932@google.com
Fixes: 3202fa62fb43 ("slub: relocate freelist pointer to middle of object")
Signed-off-by: Kees Cook <keescook@chromium.org>
Reported-by: Marco Elver <elver@google.com>
Tested-by: Marco Elver <elver@google.com>
Cc: Christoph Lameter <cl@linux.com>
Cc: Pekka Enberg <penberg@kernel.org>
Cc: David Rientjes <rientjes@google.com>
Cc: Joonsoo Kim <iamjoonsoo.kim@lge.com>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
---
mm/slub.c | 12 ++++++++++--
1 file changed, 10 insertions(+), 2 deletions(-)
--- a/mm/slub.c~slub-avoid-redzone-when-choosing-freepointer-location
+++ a/mm/slub.c
@@ -3533,6 +3533,7 @@ static int calculate_sizes(struct kmem_c
{
slab_flags_t flags = s->flags;
unsigned int size = s->object_size;
+ unsigned int freepointer_area;
unsigned int order;
/*
@@ -3541,6 +3542,13 @@ static int calculate_sizes(struct kmem_c
* the possible location of the free pointer.
*/
size = ALIGN(size, sizeof(void *));
+ /*
+ * This is the area of the object where a freepointer can be
+ * safely written. If redzoning adds more to the inuse size, we
+ * can't use that portion for writing the freepointer, so
+ * s->offset must be limited within this for the general case.
+ */
+ freepointer_area = size;
#ifdef CONFIG_SLUB_DEBUG
/*
@@ -3582,13 +3590,13 @@ static int calculate_sizes(struct kmem_c
*/
s->offset = size;
size += sizeof(void *);
- } else if (size > sizeof(void *)) {
+ } else if (freepointer_area > sizeof(void *)) {
/*
* Store freelist pointer near middle of object to keep
* it away from the edges of the object to avoid small
* sized over/underflows from neighboring allocations.
*/
- s->offset = ALIGN(size / 2, sizeof(void *));
+ s->offset = ALIGN(freepointer_area / 2, sizeof(void *));
}
#ifdef CONFIG_SLUB_DEBUG
_
^ permalink raw reply [flat|nested] 215+ messages in thread
* [patch 03/15] mm/userfaultfd: disable userfaultfd-wp on x86_32
2020-04-21 1:13 incoming Andrew Morton
2020-04-21 1:13 ` [patch 01/15] sh: fix build error in mm/init.c Andrew Morton
2020-04-21 1:13 ` [patch 02/15] slub: avoid redzone when choosing freepointer location Andrew Morton
@ 2020-04-21 1:13 ` Andrew Morton
2020-04-21 1:13 ` [patch 04/15] MAINTAINERS: add an entry for kfifo Andrew Morton
` (64 subsequent siblings)
67 siblings, 0 replies; 215+ messages in thread
From: Andrew Morton @ 2020-04-21 1:13 UTC (permalink / raw)
To: aarcange, akpm, hdanton, linux-mm, lkp, mm-commits,
naresh.kamboju, peterx, torvalds
From: Peter Xu <peterx@redhat.com>
Subject: mm/userfaultfd: disable userfaultfd-wp on x86_32
Userfaultfd-wp is not yet working on 32bit hosts, but it's accidentally
enabled previously. Disable it.
Link: http://lkml.kernel.org/r/20200413141608.109211-1-peterx@redhat.com
Fixes: 5a281062af1d ("userfaultfd: wp: add WP pagetable tracking to x86")
Signed-off-by: Peter Xu <peterx@redhat.com>
Reported-by: Naresh Kamboju <naresh.kamboju@linaro.org>
Reported-by: kernel test robot <lkp@intel.com>
Tested-by: Naresh Kamboju <naresh.kamboju@linaro.org>
Reviewed-by: Andrea Arcangeli <aarcange@redhat.com>
Cc: Hillf Danton <hdanton@sina.com>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
---
arch/x86/Kconfig | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
--- a/arch/x86/Kconfig~mm-userfaultfd-disable-userfaultfd-wp-on-x86_32
+++ a/arch/x86/Kconfig
@@ -149,7 +149,7 @@ config X86
select HAVE_ARCH_TRACEHOOK
select HAVE_ARCH_TRANSPARENT_HUGEPAGE
select HAVE_ARCH_TRANSPARENT_HUGEPAGE_PUD if X86_64
- select HAVE_ARCH_USERFAULTFD_WP if USERFAULTFD
+ select HAVE_ARCH_USERFAULTFD_WP if X86_64 && USERFAULTFD
select HAVE_ARCH_VMAP_STACK if X86_64
select HAVE_ARCH_WITHIN_STACK_FRAMES
select HAVE_ASM_MODVERSIONS
_
^ permalink raw reply [flat|nested] 215+ messages in thread
* [patch 04/15] MAINTAINERS: add an entry for kfifo
2020-04-21 1:13 incoming Andrew Morton
` (2 preceding siblings ...)
2020-04-21 1:13 ` [patch 03/15] mm/userfaultfd: disable userfaultfd-wp on x86_32 Andrew Morton
@ 2020-04-21 1:13 ` Andrew Morton
2020-04-21 1:13 ` [patch 05/15] mm/hugetlb: fix a addressing exception caused by huge_pte_offset Andrew Morton
` (63 subsequent siblings)
67 siblings, 0 replies; 215+ messages in thread
From: Andrew Morton @ 2020-04-21 1:13 UTC (permalink / raw)
To: akpm, andriy.shevchenko, bgolaszewski, gregkh, joe,
linus.walleij, linux-mm, mm-commits, torvalds
From: Bartosz Golaszewski <bgolaszewski@baylibre.com>
Subject: MAINTAINERS: add an entry for kfifo
Kfifo has been written by Stefani Seibold and she's implicitly expected to
Ack any changes to it. She's not however officially listed as kfifo
maintainer which leads to delays in patch review. This patch proposes to
add an explitic entry for kfifo to MAINTAINERS file.
[akpm@linux-foundation.org: alphasort F: entries, per Joe]
[akpm@linux-foundation.org: remove colon, per Bartosz]
Link: http://lkml.kernel.org/r/20200124174533.21815-1-brgl@bgdev.pl
Link: http://lkml.kernel.org/r/20200413104250.26683-1-brgl@bgdev.pl
Signed-off-by: Bartosz Golaszewski <bgolaszewski@baylibre.com>
Acked by Stefani Seibold <stefani@seibold.net>
Cc: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
Cc: Linus Walleij <linus.walleij@linaro.org>
Cc: Andy Shevchenko <andriy.shevchenko@linux.intel.com>
Cc: Joe Perches <joe@perches.com>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
---
MAINTAINERS | 7 +++++++
1 file changed, 7 insertions(+)
--- a/MAINTAINERS~maintainers-add-an-entry-for-kfifo
+++ a/MAINTAINERS
@@ -9416,6 +9416,13 @@ F: include/linux/keyctl.h
F: include/uapi/linux/keyctl.h
F: security/keys/
+KFIFO
+M: Stefani Seibold <stefani@seibold.net>
+S: Maintained
+F: include/linux/kfifo.h
+F: lib/kfifo.c
+F: samples/kfifo/
+
KGDB / KDB /debug_core
M: Jason Wessel <jason.wessel@windriver.com>
M: Daniel Thompson <daniel.thompson@linaro.org>
_
^ permalink raw reply [flat|nested] 215+ messages in thread
* [patch 05/15] mm/hugetlb: fix a addressing exception caused by huge_pte_offset
2020-04-21 1:13 incoming Andrew Morton
` (3 preceding siblings ...)
2020-04-21 1:13 ` [patch 04/15] MAINTAINERS: add an entry for kfifo Andrew Morton
@ 2020-04-21 1:13 ` Andrew Morton
2020-04-21 1:13 ` [patch 06/15] mm, gup: return EINTR when gup is interrupted by fatal signals Andrew Morton
` (62 subsequent siblings)
67 siblings, 0 replies; 215+ messages in thread
From: Andrew Morton @ 2020-04-21 1:13 UTC (permalink / raw)
To: akpm, jgg, linux-mm, longpeng2, mike.kravetz, mm-commits,
sean.j.christopherson, stable, torvalds, willy
From: Longpeng <longpeng2@huawei.com>
Subject: mm/hugetlb: fix a addressing exception caused by huge_pte_offset
Our machine encountered a panic(addressing exception) after run for a long
time and the calltrace is:
RIP: 0010:[<ffffffff9dff0587>] [<ffffffff9dff0587>] hugetlb_fault+0x307/0xbe0
RSP: 0018:ffff9567fc27f808 EFLAGS: 00010286
RAX: e800c03ff1258d48 RBX: ffffd3bb003b69c0 RCX: e800c03ff1258d48
RDX: 17ff3fc00eda72b7 RSI: 00003ffffffff000 RDI: e800c03ff1258d48
RBP: ffff9567fc27f8c8 R08: e800c03ff1258d48 R09: 0000000000000080
R10: ffffaba0704c22a8 R11: 0000000000000001 R12: ffff95c87b4b60d8
R13: 00005fff00000000 R14: 0000000000000000 R15: ffff9567face8074
FS: 00007fe2d9ffb700(0000) GS:ffff956900e40000(0000) knlGS:0000000000000000
CS: 0010 DS: 0000 ES: 0000 CR0: 0000000080050033
CR2: ffffd3bb003b69c0 CR3: 000000be67374000 CR4: 00000000003627e0
DR0: 0000000000000000 DR1: 0000000000000000 DR2: 0000000000000000
DR3: 0000000000000000 DR6: 00000000fffe0ff0 DR7: 0000000000000400
Call Trace:
[<ffffffff9df9b71b>] ? unlock_page+0x2b/0x30
[<ffffffff9dff04a2>] ? hugetlb_fault+0x222/0xbe0
[<ffffffff9dff1405>] follow_hugetlb_page+0x175/0x540
[<ffffffff9e15b825>] ? cpumask_next_and+0x35/0x50
[<ffffffff9dfc7230>] __get_user_pages+0x2a0/0x7e0
[<ffffffff9dfc648d>] __get_user_pages_unlocked+0x15d/0x210
[<ffffffffc068cfc5>] __gfn_to_pfn_memslot+0x3c5/0x460 [kvm]
[<ffffffffc06b28be>] try_async_pf+0x6e/0x2a0 [kvm]
[<ffffffffc06b4b41>] tdp_page_fault+0x151/0x2d0 [kvm]
...
[<ffffffffc06a6f90>] kvm_arch_vcpu_ioctl_run+0x330/0x490 [kvm]
[<ffffffffc068d919>] kvm_vcpu_ioctl+0x309/0x6d0 [kvm]
[<ffffffff9deaa8c2>] ? dequeue_signal+0x32/0x180
[<ffffffff9deae34d>] ? do_sigtimedwait+0xcd/0x230
[<ffffffff9e03aed0>] do_vfs_ioctl+0x3f0/0x540
[<ffffffff9e03b0c1>] SyS_ioctl+0xa1/0xc0
[<ffffffff9e53879b>] system_call_fastpath+0x22/0x27
For 1G hugepages, huge_pte_offset() wants to return NULL or pudp, but it
may return a wrong 'pmdp' if there is a race. Please look at the
following code snippet:
...
pud = pud_offset(p4d, addr);
if (sz != PUD_SIZE && pud_none(*pud))
return NULL;
/* hugepage or swap? */
if (pud_huge(*pud) || !pud_present(*pud))
return (pte_t *)pud;
pmd = pmd_offset(pud, addr);
if (sz != PMD_SIZE && pmd_none(*pmd))
return NULL;
/* hugepage or swap? */
if (pmd_huge(*pmd) || !pmd_present(*pmd))
return (pte_t *)pmd;
...
The following sequence would trigger this bug:
1. CPU0: sz = PUD_SIZE and *pud = 0 , continue
1. CPU0: "pud_huge(*pud)" is false
2. CPU1: calling hugetlb_no_page and set *pud to xxxx8e7(PRESENT)
3. CPU0: "!pud_present(*pud)" is false, continue
4. CPU0: pmd = pmd_offset(pud, addr) and maybe return a wrong pmdp
However, we want CPU0 to return NULL or pudp in this case.
We must make sure there is exactly one dereference of pud and pmd.
Link: http://lkml.kernel.org/r/20200413010342.771-1-longpeng2@huawei.com
Signed-off-by: Longpeng <longpeng2@huawei.com>
Reviewed-by: Mike Kravetz <mike.kravetz@oracle.com>
Reviewed-by: Jason Gunthorpe <jgg@mellanox.com>
Cc: Matthew Wilcox <willy@infradead.org>
Cc: Sean Christopherson <sean.j.christopherson@intel.com>
Cc: <stable@vger.kernel.org>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
---
mm/hugetlb.c | 14 ++++++++------
1 file changed, 8 insertions(+), 6 deletions(-)
--- a/mm/hugetlb.c~mm-hugetlb-fix-a-addressing-exception-caused-by-huge_pte_offset
+++ a/mm/hugetlb.c
@@ -5365,8 +5365,8 @@ pte_t *huge_pte_offset(struct mm_struct
{
pgd_t *pgd;
p4d_t *p4d;
- pud_t *pud;
- pmd_t *pmd;
+ pud_t *pud, pud_entry;
+ pmd_t *pmd, pmd_entry;
pgd = pgd_offset(mm, addr);
if (!pgd_present(*pgd))
@@ -5376,17 +5376,19 @@ pte_t *huge_pte_offset(struct mm_struct
return NULL;
pud = pud_offset(p4d, addr);
- if (sz != PUD_SIZE && pud_none(*pud))
+ pud_entry = READ_ONCE(*pud);
+ if (sz != PUD_SIZE && pud_none(pud_entry))
return NULL;
/* hugepage or swap? */
- if (pud_huge(*pud) || !pud_present(*pud))
+ if (pud_huge(pud_entry) || !pud_present(pud_entry))
return (pte_t *)pud;
pmd = pmd_offset(pud, addr);
- if (sz != PMD_SIZE && pmd_none(*pmd))
+ pmd_entry = READ_ONCE(*pmd);
+ if (sz != PMD_SIZE && pmd_none(pmd_entry))
return NULL;
/* hugepage or swap? */
- if (pmd_huge(*pmd) || !pmd_present(*pmd))
+ if (pmd_huge(pmd_entry) || !pmd_present(pmd_entry))
return (pte_t *)pmd;
return NULL;
_
^ permalink raw reply [flat|nested] 215+ messages in thread
* [patch 06/15] mm, gup: return EINTR when gup is interrupted by fatal signals
2020-04-21 1:13 incoming Andrew Morton
` (4 preceding siblings ...)
2020-04-21 1:13 ` [patch 05/15] mm/hugetlb: fix a addressing exception caused by huge_pte_offset Andrew Morton
@ 2020-04-21 1:13 ` Andrew Morton
2020-04-21 1:13 ` [patch 07/15] checkpatch: fix a typo in the regex for $allocFunctions Andrew Morton
` (61 subsequent siblings)
67 siblings, 0 replies; 215+ messages in thread
From: Andrew Morton @ 2020-04-21 1:13 UTC (permalink / raw)
To: akpm, hdanton, linux-mm, mhocko, mm-commits, peterx, torvalds
From: Michal Hocko <mhocko@suse.com>
Subject: mm, gup: return EINTR when gup is interrupted by fatal signals
EINTR is the usual error code which other killable interfaces return.
This is the case for the other fatal_signal_pending break out from the
same function. Make the code consistent.
ERESTARTSYS is also quite confusing because the signal is fatal and so no
restart will happen before returning to the userspace.
Link: http://lkml.kernel.org/r/20200409071133.31734-1-mhocko@kernel.org
Signed-off-by: Michal Hocko <mhocko@suse.com>
Acked-by: Linus Torvalds <torvalds@linux-foundation.org>
Cc: Peter Xu <peterx@redhat.com>
Cc: Hillf Danton <hdanton@sina.com>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
---
mm/gup.c | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
--- a/mm/gup.c~mm-gup-return-eintr-when-gup-is-interrupted-by-fatal-signals
+++ a/mm/gup.c
@@ -1088,7 +1088,7 @@ retry:
* potentially allocating memory.
*/
if (fatal_signal_pending(current)) {
- ret = -ERESTARTSYS;
+ ret = -EINTR;
goto out;
}
cond_resched();
_
^ permalink raw reply [flat|nested] 215+ messages in thread
* [patch 07/15] checkpatch: fix a typo in the regex for $allocFunctions
2020-04-21 1:13 incoming Andrew Morton
` (5 preceding siblings ...)
2020-04-21 1:13 ` [patch 06/15] mm, gup: return EINTR when gup is interrupted by fatal signals Andrew Morton
@ 2020-04-21 1:13 ` Andrew Morton
2020-04-21 1:14 ` [patch 08/15] tools/build: tweak unused value workaround Andrew Morton
` (60 subsequent siblings)
67 siblings, 0 replies; 215+ messages in thread
From: Andrew Morton @ 2020-04-21 1:13 UTC (permalink / raw)
To: akpm, christophe.jaillet, joe, linux-mm, mm-commits, torvalds
From: Christophe JAILLET <christophe.jaillet@wanadoo.fr>
Subject: checkpatch: fix a typo in the regex for $allocFunctions
Here, we look for function such as 'netdev_alloc_skb_ip_align', so a '_'
is missing in the regex.
To make sure:
grep -r --include=*.c skbip_a * | wc ==> 0 results
grep -r --include=*.c skb_ip_a * | wc ==> 112 results
Link: http://lkml.kernel.org/r/20200407190029.892-1-christophe.jaillet@wanadoo.fr
Signed-off-by: Christophe JAILLET <christophe.jaillet@wanadoo.fr>
Acked-by: Joe Perches <joe@perches.com>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
---
scripts/checkpatch.pl | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
--- a/scripts/checkpatch.pl~checkpatch-fix-a-typo-in-the-regex-for-allocfunctions
+++ a/scripts/checkpatch.pl
@@ -479,7 +479,7 @@ our $allocFunctions = qr{(?x:
(?:kv|k|v)[czm]alloc(?:_node|_array)? |
kstrdup(?:_const)? |
kmemdup(?:_nul)?) |
- (?:\w+)?alloc_skb(?:ip_align)? |
+ (?:\w+)?alloc_skb(?:_ip_align)? |
# dev_alloc_skb/netdev_alloc_skb, et al
dma_alloc_coherent
)};
_
^ permalink raw reply [flat|nested] 215+ messages in thread
* [patch 08/15] tools/build: tweak unused value workaround
2020-04-21 1:13 incoming Andrew Morton
` (6 preceding siblings ...)
2020-04-21 1:13 ` [patch 07/15] checkpatch: fix a typo in the regex for $allocFunctions Andrew Morton
@ 2020-04-21 1:14 ` Andrew Morton
2020-04-21 1:14 ` [patch 09/15] mm/ksm: fix NULL pointer dereference when KSM zero page is enabled Andrew Morton
` (59 subsequent siblings)
67 siblings, 0 replies; 215+ messages in thread
From: Andrew Morton @ 2020-04-21 1:14 UTC (permalink / raw)
To: akpm, gbiv, linux-mm, mm-commits, ndesaulniers, torvalds
From: George Burgess IV <gbiv@google.com>
Subject: tools/build: tweak unused value workaround
Clang has -Wself-assign enabled by default under -Wall, which always gets
-Werror'ed on this file, causing sync-compare-and-swap to be disabled by
default. The generally-accepted way to spell "this value is intentionally
unused," is casting it to `void`. This is accepted by both GCC and Clang
with -Wall enabled: https://godbolt.org/z/qqZ9r3
Link: http://lkml.kernel.org/r/20200414195638.156123-1-gbiv@google.com
Signed-off-by: George Burgess IV <gbiv@google.com>
Cc: Nick Desaulniers <ndesaulniers@google.com>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
---
tools/build/feature/test-sync-compare-and-swap.c | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
--- a/tools/build/feature/test-sync-compare-and-swap.c~tools-build-tweak-unused-value-workaround
+++ a/tools/build/feature/test-sync-compare-and-swap.c
@@ -7,7 +7,7 @@ int main(int argc, char *argv[])
{
uint64_t old, new = argc;
- argv = argv;
+ (void)argv;
do {
old = __sync_val_compare_and_swap(&x, 0, 0);
} while (!__sync_bool_compare_and_swap(&x, old, new));
_
^ permalink raw reply [flat|nested] 215+ messages in thread
* [patch 09/15] mm/ksm: fix NULL pointer dereference when KSM zero page is enabled
2020-04-21 1:13 incoming Andrew Morton
` (7 preceding siblings ...)
2020-04-21 1:14 ` [patch 08/15] tools/build: tweak unused value workaround Andrew Morton
@ 2020-04-21 1:14 ` Andrew Morton
2020-04-21 1:14 ` [patch 10/15] mm/shmem: fix build without THP Andrew Morton
` (58 subsequent siblings)
67 siblings, 0 replies; 215+ messages in thread
From: Andrew Morton @ 2020-04-21 1:14 UTC (permalink / raw)
To: akpm, david, duanxiongchun, hughd, imbrenda, ktkhai, linux-mm,
Markus.Elfring, mm-commits, songmuchun, stable, torvalds,
yang.shi
From: Muchun Song <songmuchun@bytedance.com>
Subject: mm/ksm: fix NULL pointer dereference when KSM zero page is enabled
find_mergeable_vma() can return NULL. In this case, it leads to a crash
when we access vm_mm(its offset is 0x40) later in write_protect_page. And
this case did happen on our server. The following call trace is captured
in kernel 4.19 with the following patch applied and KSM zero page enabled
on our server.
commit e86c59b1b12d ("mm/ksm: improve deduplication of zero pages with colouring")
So add a vma check to fix it.
--------------------------------------------------------------------------
BUG: unable to handle kernel NULL pointer dereference at 0000000000000040
Oops: 0000 [#1] SMP NOPTI
CPU: 9 PID: 510 Comm: ksmd Kdump: loaded Tainted: G OE 4.19.36.bsk.9-amd64 #4.19.36.bsk.9
RIP: 0010:try_to_merge_one_page+0xc7/0x760
Code: 24 58 65 48 33 34 25 28 00 00 00 89 e8 0f 85 a3 06 00 00 48 83 c4
60 5b 5d 41 5c 41 5d 41 5e 41 5f c3 48 8b 46 08 a8 01 75 b8 <49>
8b 44 24 40 4c 8d 7c 24 20 b9 07 00 00 00 4c 89 e6 4c 89 ff 48
RSP: 0018:ffffadbdd9fffdb0 EFLAGS: 00010246
RAX: ffffda83ffd4be08 RBX: ffffda83ffd4be40 RCX: 0000002c6e800000
RDX: 0000000000000000 RSI: ffffda83ffd4be40 RDI: 0000000000000000
RBP: ffffa11939f02ec0 R08: 0000000094e1a447 R09: 00000000abe76577
R10: 0000000000000962 R11: 0000000000004e6a R12: 0000000000000000
R13: ffffda83b1e06380 R14: ffffa18f31f072c0 R15: ffffda83ffd4be40
FS: 0000000000000000(0000) GS:ffffa0da43b80000(0000) knlGS:0000000000000000
CS: 0010 DS: 0000 ES: 0000 CR0: 0000000080050033
CR2: 0000000000000040 CR3: 0000002c77c0a003 CR4: 00000000007626e0
DR0: 0000000000000000 DR1: 0000000000000000 DR2: 0000000000000000
DR3: 0000000000000000 DR6: 00000000fffe0ff0 DR7: 0000000000000400
PKRU: 55555554
Call Trace:
? follow_page_pte+0x36d/0x5e0
ksm_scan_thread+0x115e/0x1960
? remove_wait_queue+0x60/0x60
kthread+0xf5/0x130
? try_to_merge_with_ksm_page+0x90/0x90
? kthread_create_worker_on_cpu+0x70/0x70
ret_from_fork+0x1f/0x30
--------------------------------------------------------------------------
[songmuchun@bytedance.com: if the vma is out of date, just exit]
Link: http://lkml.kernel.org/r/20200416025034.29780-1-songmuchun@bytedance.com
[akpm@linux-foundation.org: add the conventional braces, replace /** with /*]
Link: http://lkml.kernel.org/r/20200416025034.29780-1-songmuchun@bytedance.com
Link: http://lkml.kernel.org/r/20200414132905.83819-1-songmuchun@bytedance.com
Fixes: e86c59b1b12d ("mm/ksm: improve deduplication of zero pages with colouring")
Signed-off-by: Muchun Song <songmuchun@bytedance.com>
Co-developed-by: Xiongchun Duan <duanxiongchun@bytedance.com>
Reviewed-by: David Hildenbrand <david@redhat.com>
Reviewed-by: Kirill Tkhai <ktkhai@virtuozzo.com>
Cc: Hugh Dickins <hughd@google.com>
Cc: Yang Shi <yang.shi@linux.alibaba.com>
Cc: Claudio Imbrenda <imbrenda@linux.vnet.ibm.com>
Cc: Markus Elfring <Markus.Elfring@web.de>
Cc: <stable@vger.kernel.org>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
---
mm/ksm.c | 12 ++++++++++--
1 file changed, 10 insertions(+), 2 deletions(-)
--- a/mm/ksm.c~mm-ksm-fix-null-pointer-dereference-when-ksm-zero-page-is-enabled
+++ a/mm/ksm.c
@@ -2112,8 +2112,16 @@ static void cmp_and_merge_page(struct pa
down_read(&mm->mmap_sem);
vma = find_mergeable_vma(mm, rmap_item->address);
- err = try_to_merge_one_page(vma, page,
- ZERO_PAGE(rmap_item->address));
+ if (vma) {
+ err = try_to_merge_one_page(vma, page,
+ ZERO_PAGE(rmap_item->address));
+ } else {
+ /*
+ * If the vma is out of date, we do not need to
+ * continue.
+ */
+ err = 0;
+ }
up_read(&mm->mmap_sem);
/*
* In case of failure, the page was not really empty, so we
_
^ permalink raw reply [flat|nested] 215+ messages in thread
* [patch 10/15] mm/shmem: fix build without THP
2020-04-21 1:13 incoming Andrew Morton
` (8 preceding siblings ...)
2020-04-21 1:14 ` [patch 09/15] mm/ksm: fix NULL pointer dereference when KSM zero page is enabled Andrew Morton
@ 2020-04-21 1:14 ` Andrew Morton
2020-04-21 1:14 ` [patch 11/15] vmalloc: fix remap_vmalloc_range() bounds checks Andrew Morton
` (57 subsequent siblings)
67 siblings, 0 replies; 215+ messages in thread
From: Andrew Morton @ 2020-04-21 1:14 UTC (permalink / raw)
To: akpm, hughd, linux-mm, mm-commits, rdunlap, torvalds
From: Hugh Dickins <hughd@google.com>
Subject: mm/shmem: fix build without THP
Some optimizers don't notice that shmem_punch_compound() is always true
(PageTransCompound() being false) without CONFIG_TRANSPARENT_HUGEPAGE==y:
use IS_ENABLED to help them to avoid the BUILD_BUG inside HPAGE_PMD_NR.
Link: http://lkml.kernel.org/r/alpine.LSU.2.11.2004142339170.10035@eggly.anvils
Fixes: 71725ed10c40 ("mm: huge tmpfs: try to split_huge_page() when punching hole")
Signed-off-by: Hugh Dickins <hughd@google.com>
Reported-by: Randy Dunlap <rdunlap@infradead.org>
Tested-by: Randy Dunlap <rdunlap@infradead.org>
Acked-by: Randy Dunlap <rdunlap@infradead.org>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
---
mm/shmem.c | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
--- a/mm/shmem.c~mm-shmem-fix-build-without-thp
+++ a/mm/shmem.c
@@ -952,7 +952,7 @@ static void shmem_undo_range(struct inod
VM_BUG_ON_PAGE(PageWriteback(page), page);
if (shmem_punch_compound(page, start, end))
truncate_inode_page(mapping, page);
- else {
+ else if (IS_ENABLED(CONFIG_TRANSPARENT_HUGEPAGE)) {
/* Wipe the page and don't get stuck */
clear_highpage(page);
flush_dcache_page(page);
_
^ permalink raw reply [flat|nested] 215+ messages in thread
* [patch 11/15] vmalloc: fix remap_vmalloc_range() bounds checks
2020-04-21 1:13 incoming Andrew Morton
` (9 preceding siblings ...)
2020-04-21 1:14 ` [patch 10/15] mm/shmem: fix build without THP Andrew Morton
@ 2020-04-21 1:14 ` Andrew Morton
2020-04-21 1:14 ` [patch 12/15] shmem: fix possible deadlocks on shmlock_user_lock Andrew Morton
` (56 subsequent siblings)
67 siblings, 0 replies; 215+ messages in thread
From: Andrew Morton @ 2020-04-21 1:14 UTC (permalink / raw)
To: akpm, andriin, ast, daniel, jannh, john.fastabend, kafai,
kpsingh, linux-mm, mm-commits, songliubraving, torvalds, yhs
From: Jann Horn <jannh@google.com>
Subject: vmalloc: fix remap_vmalloc_range() bounds checks
remap_vmalloc_range() has had various issues with the bounds checks it
promises to perform ("This function checks that addr is a valid vmalloc'ed
area, and that it is big enough to cover the vma") over time, e.g.:
- not detecting pgoff<<PAGE_SHIFT overflow
- not detecting (pgoff<<PAGE_SHIFT)+usize overflow
- not checking whether addr and addr+(pgoff<<PAGE_SHIFT) are the same
vmalloc allocation
- comparing a potentially wildly out-of-bounds pointer with the end of the
vmalloc region
In particular, since commit fc9702273e2e ("bpf: Add mmap() support for
BPF_MAP_TYPE_ARRAY"), unprivileged users can cause kernel null pointer
dereferences by calling mmap() on a BPF map with a size that is bigger
than the distance from the start of the BPF map to the end of the address
space. This could theoretically be used as a kernel ASLR bypass, by using
whether mmap() with a given offset oopses or returns an error code to
perform a binary search over the possible address range.
To allow remap_vmalloc_range_partial() to verify that addr and
addr+(pgoff<<PAGE_SHIFT) are in the same vmalloc region, pass the offset
to remap_vmalloc_range_partial() instead of adding it to the pointer in
remap_vmalloc_range().
In remap_vmalloc_range_partial(), fix the check against get_vm_area_size()
by using size comparisons instead of pointer comparisons, and add checks
for pgoff.
Link: http://lkml.kernel.org/r/20200415222312.236431-1-jannh@google.com
Cc: stable@vger.kernel.org
Fixes: 833423143c3a ("[PATCH] mm: introduce remap_vmalloc_range()")
Signed-off-by: Jann Horn <jannh@google.com>
Cc: Alexei Starovoitov <ast@kernel.org>
Cc: Daniel Borkmann <daniel@iogearbox.net>
Cc: Martin KaFai Lau <kafai@fb.com>
Cc: Song Liu <songliubraving@fb.com>
Cc: Yonghong Song <yhs@fb.com>
Cc: Andrii Nakryiko <andriin@fb.com>
Cc: John Fastabend <john.fastabend@gmail.com>
Cc: KP Singh <kpsingh@chromium.org>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
---
fs/proc/vmcore.c | 5 +++--
include/linux/vmalloc.h | 2 +-
mm/vmalloc.c | 16 +++++++++++++---
samples/vfio-mdev/mdpy.c | 2 +-
4 files changed, 18 insertions(+), 7 deletions(-)
--- a/fs/proc/vmcore.c~vmalloc-fix-remap_vmalloc_range-bounds-checks
+++ a/fs/proc/vmcore.c
@@ -266,7 +266,8 @@ static int vmcoredd_mmap_dumps(struct vm
if (start < offset + dump->size) {
tsz = min(offset + (u64)dump->size - start, (u64)size);
buf = dump->buf + start - offset;
- if (remap_vmalloc_range_partial(vma, dst, buf, tsz)) {
+ if (remap_vmalloc_range_partial(vma, dst, buf, 0,
+ tsz)) {
ret = -EFAULT;
goto out_unlock;
}
@@ -624,7 +625,7 @@ static int mmap_vmcore(struct file *file
tsz = min(elfcorebuf_sz + elfnotes_sz - (size_t)start, size);
kaddr = elfnotes_buf + start - elfcorebuf_sz - vmcoredd_orig_sz;
if (remap_vmalloc_range_partial(vma, vma->vm_start + len,
- kaddr, tsz))
+ kaddr, 0, tsz))
goto fail;
size -= tsz;
--- a/include/linux/vmalloc.h~vmalloc-fix-remap_vmalloc_range-bounds-checks
+++ a/include/linux/vmalloc.h
@@ -137,7 +137,7 @@ extern void vunmap(const void *addr);
extern int remap_vmalloc_range_partial(struct vm_area_struct *vma,
unsigned long uaddr, void *kaddr,
- unsigned long size);
+ unsigned long pgoff, unsigned long size);
extern int remap_vmalloc_range(struct vm_area_struct *vma, void *addr,
unsigned long pgoff);
--- a/mm/vmalloc.c~vmalloc-fix-remap_vmalloc_range-bounds-checks
+++ a/mm/vmalloc.c
@@ -34,6 +34,7 @@
#include <linux/llist.h>
#include <linux/bitops.h>
#include <linux/rbtree_augmented.h>
+#include <linux/overflow.h>
#include <linux/uaccess.h>
#include <asm/tlbflush.h>
@@ -3054,6 +3055,7 @@ finished:
* @vma: vma to cover
* @uaddr: target user address to start at
* @kaddr: virtual address of vmalloc kernel memory
+ * @pgoff: offset from @kaddr to start at
* @size: size of map area
*
* Returns: 0 for success, -Exxx on failure
@@ -3066,9 +3068,15 @@ finished:
* Similar to remap_pfn_range() (see mm/memory.c)
*/
int remap_vmalloc_range_partial(struct vm_area_struct *vma, unsigned long uaddr,
- void *kaddr, unsigned long size)
+ void *kaddr, unsigned long pgoff,
+ unsigned long size)
{
struct vm_struct *area;
+ unsigned long off;
+ unsigned long end_index;
+
+ if (check_shl_overflow(pgoff, PAGE_SHIFT, &off))
+ return -EINVAL;
size = PAGE_ALIGN(size);
@@ -3082,8 +3090,10 @@ int remap_vmalloc_range_partial(struct v
if (!(area->flags & (VM_USERMAP | VM_DMA_COHERENT)))
return -EINVAL;
- if (kaddr + size > area->addr + get_vm_area_size(area))
+ if (check_add_overflow(size, off, &end_index) ||
+ end_index > get_vm_area_size(area))
return -EINVAL;
+ kaddr += off;
do {
struct page *page = vmalloc_to_page(kaddr);
@@ -3122,7 +3132,7 @@ int remap_vmalloc_range(struct vm_area_s
unsigned long pgoff)
{
return remap_vmalloc_range_partial(vma, vma->vm_start,
- addr + (pgoff << PAGE_SHIFT),
+ addr, pgoff,
vma->vm_end - vma->vm_start);
}
EXPORT_SYMBOL(remap_vmalloc_range);
--- a/samples/vfio-mdev/mdpy.c~vmalloc-fix-remap_vmalloc_range-bounds-checks
+++ a/samples/vfio-mdev/mdpy.c
@@ -418,7 +418,7 @@ static int mdpy_mmap(struct mdev_device
return -EINVAL;
return remap_vmalloc_range_partial(vma, vma->vm_start,
- mdev_state->memblk,
+ mdev_state->memblk, 0,
vma->vm_end - vma->vm_start);
}
_
^ permalink raw reply [flat|nested] 215+ messages in thread
* [patch 12/15] shmem: fix possible deadlocks on shmlock_user_lock
2020-04-21 1:13 incoming Andrew Morton
` (10 preceding siblings ...)
2020-04-21 1:14 ` [patch 11/15] vmalloc: fix remap_vmalloc_range() bounds checks Andrew Morton
@ 2020-04-21 1:14 ` Andrew Morton
2020-04-21 1:14 ` [patch 13/15] mm: shmem: disable interrupt when acquiring info->lock in userfaultfd_copy path Andrew Morton
` (55 subsequent siblings)
67 siblings, 0 replies; 215+ messages in thread
From: Andrew Morton @ 2020-04-21 1:14 UTC (permalink / raw)
To: akpm, hughd, linux-mm, mm-commits, torvalds, yang.shi
From: Hugh Dickins <hughd@google.com>
Subject: shmem: fix possible deadlocks on shmlock_user_lock
Recent commit 71725ed10c40 ("mm: huge tmpfs: try to split_huge_page() when
punching hole") has allowed syzkaller to probe deeper, uncovering a
long-standing lockdep issue between the irq-unsafe shmlock_user_lock, the
irq-safe xa_lock on mapping->i_pages, and shmem inode's info->lock which
nests inside xa_lock (or tree_lock) since 4.8's shmem_uncharge().
user_shm_lock(), servicing SysV shmctl(SHM_LOCK), wants shmlock_user_lock
while its caller shmem_lock() holds info->lock with interrupts disabled;
but hugetlbfs_file_setup() calls user_shm_lock() with interrupts enabled,
and might be interrupted by a writeback endio wanting xa_lock on i_pages.
This may not risk an actual deadlock, since shmem inodes do not take part
in writeback accounting, but there are several easy ways to avoid it.
Requiring interrupts disabled for shmlock_user_lock would be easy, but
it's a high-level global lock for which that seems inappropriate.
Instead, recall that the use of info->lock to guard info->flags in
shmem_lock() dates from pre-3.1 days, when races with SHMEM_PAGEIN and
SHMEM_TRUNCATE could occur: nowadays it serves no purpose, the only flag
added or removed is VM_LOCKED itself, and calls to shmem_lock() an inode
are already serialized by the caller. Take info->lock out of the chain
and the possibility of deadlock or lockdep warning goes away.
Link: http://lkml.kernel.org/r/alpine.LSU.2.11.2004161707410.16322@eggly.anvils
Reported-by: syzbot+c8a8197c8852f566b9d9@syzkaller.appspotmail.com
Link: https://lore.kernel.org/lkml/000000000000e5838c05a3152f53@google.com/
Reported-by: syzbot+40b71e145e73f78f81ad@syzkaller.appspotmail.com
Link: https://lore.kernel.org/lkml/0000000000003712b305a331d3b1@google.com/
Fixes: 4595ef88d136 ("shmem: make shmem_inode_info::lock irq-safe")
Signed-off-by: Hugh Dickins <hughd@google.com>
Cc: Yang Shi <yang.shi@linux.alibaba.com>
Acked-by: Yang Shi <yang.shi@linux.alibaba.com>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
---
mm/shmem.c | 7 +++++--
1 file changed, 5 insertions(+), 2 deletions(-)
--- a/mm/shmem.c~shmem-fix-possible-deadlocks-on-shmlock_user_lock
+++ a/mm/shmem.c
@@ -2179,7 +2179,11 @@ int shmem_lock(struct file *file, int lo
struct shmem_inode_info *info = SHMEM_I(inode);
int retval = -ENOMEM;
- spin_lock_irq(&info->lock);
+ /*
+ * What serializes the accesses to info->flags?
+ * ipc_lock_object() when called from shmctl_do_lock(),
+ * no serialization needed when called from shm_destroy().
+ */
if (lock && !(info->flags & VM_LOCKED)) {
if (!user_shm_lock(inode->i_size, user))
goto out_nomem;
@@ -2194,7 +2198,6 @@ int shmem_lock(struct file *file, int lo
retval = 0;
out_nomem:
- spin_unlock_irq(&info->lock);
return retval;
}
_
^ permalink raw reply [flat|nested] 215+ messages in thread
* [patch 13/15] mm: shmem: disable interrupt when acquiring info->lock in userfaultfd_copy path
2020-04-21 1:13 incoming Andrew Morton
` (11 preceding siblings ...)
2020-04-21 1:14 ` [patch 12/15] shmem: fix possible deadlocks on shmlock_user_lock Andrew Morton
@ 2020-04-21 1:14 ` Andrew Morton
2020-04-21 1:14 ` [patch 14/15] coredump: fix null pointer dereference on coredump Andrew Morton
` (54 subsequent siblings)
67 siblings, 0 replies; 215+ messages in thread
From: Andrew Morton @ 2020-04-21 1:14 UTC (permalink / raw)
To: aarcange, akpm, hughd, linux-mm, mm-commits, torvalds, yang.shi
From: Yang Shi <yang.shi@linux.alibaba.com>
Subject: mm: shmem: disable interrupt when acquiring info->lock in userfaultfd_copy path
Syzbot reported the below lockdep splat:
WARNING: possible irq lock inversion dependency detected
5.6.0-rc7-syzkaller #0 Not tainted
--------------------------------------------------------
syz-executor.0/10317 just changed the state of lock:
ffff888021d16568 (&(&info->lock)->rlock){+.+.}, at: spin_lock
include/linux/spinlock.h:338 [inline]
ffff888021d16568 (&(&info->lock)->rlock){+.+.}, at:
shmem_mfill_atomic_pte+0x1012/0x21c0 mm/shmem.c:2407
but this lock was taken by another, SOFTIRQ-safe lock in the past:
(&(&xa->xa_lock)->rlock#5){..-.}
and interrupts could create inverse lock ordering between them.
other info that might help us debug this:
Possible interrupt unsafe locking scenario:
CPU0 CPU1
---- ----
lock(&(&info->lock)->rlock);
local_irq_disable();
lock(&(&xa->xa_lock)->rlock#5);
lock(&(&info->lock)->rlock);
<Interrupt>
lock(&(&xa->xa_lock)->rlock#5);
*** DEADLOCK ***
The full report is quite lengthy, please see:
https://lore.kernel.org/linux-mm/alpine.LSU.2.11.2004152007370.13597@eggly.anvils/T/#m813b412c5f78e25ca8c6c7734886ed4de43f241d
It is because CPU 0 held info->lock with IRQ enabled in userfaultfd_copy
path, then CPU 1 is splitting a THP which held xa_lock and info->lock in
IRQ disabled context at the same time. If softirq comes in to acquire
xa_lock, the deadlock would be triggered.
The fix is to acquire/release info->lock with *_irq version instead of
plain spin_{lock,unlock} to make it softirq safe.
Link: http://lkml.kernel.org/r/1587061357-122619-1-git-send-email-yang.shi@linux.alibaba.com
Fixes: 4c27fe4c4c84 ("userfaultfd: shmem: add shmem_mcopy_atomic_pte for userfaultfd support")
Signed-off-by: Yang Shi <yang.shi@linux.alibaba.com>
Reported-by: syzbot+e27980339d305f2dbfd9@syzkaller.appspotmail.com
Tested-by: syzbot+e27980339d305f2dbfd9@syzkaller.appspotmail.com
Acked-by: Hugh Dickins <hughd@google.com>
Cc: Andrea Arcangeli <aarcange@redhat.com>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
---
mm/shmem.c | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)
--- a/mm/shmem.c~mm-shmem-disable-interrupt-when-acquiring-info-lock-in-userfaultfd_copy-path
+++ a/mm/shmem.c
@@ -2402,11 +2402,11 @@ static int shmem_mfill_atomic_pte(struct
lru_cache_add_anon(page);
- spin_lock(&info->lock);
+ spin_lock_irq(&info->lock);
info->alloced++;
inode->i_blocks += BLOCKS_PER_PAGE;
shmem_recalc_inode(inode);
- spin_unlock(&info->lock);
+ spin_unlock_irq(&info->lock);
inc_mm_counter(dst_mm, mm_counter_file(page));
page_add_file_rmap(page, false);
_
^ permalink raw reply [flat|nested] 215+ messages in thread
* [patch 14/15] coredump: fix null pointer dereference on coredump
2020-04-21 1:13 incoming Andrew Morton
` (12 preceding siblings ...)
2020-04-21 1:14 ` [patch 13/15] mm: shmem: disable interrupt when acquiring info->lock in userfaultfd_copy path Andrew Morton
@ 2020-04-21 1:14 ` Andrew Morton
2020-04-21 1:14 ` [patch 15/15] tools/vm: fix cross-compile build Andrew Morton
` (53 subsequent siblings)
67 siblings, 0 replies; 215+ messages in thread
From: Andrew Morton @ 2020-04-21 1:14 UTC (permalink / raw)
To: akpm, linux-mm, matthew.ruffell, mm-commits, nhorman, pabs3,
stable, sudipm.mukherjee, torvalds, viro
From: Sudip Mukherjee <sudipm.mukherjee@gmail.com>
Subject: coredump: fix null pointer dereference on coredump
If the core_pattern is set to "|" and any process segfaults then we get
a null pointer derefernce while trying to coredump. The call stack shows:
[ 108.212680] RIP: 0010:do_coredump+0x628/0x11c0
When the core_pattern has only "|" there is no use of trying the coredump
and we can check that while formating the corename and exit with an error.
After this change I get:
[ 48.453756] format_corename failed
[ 48.453758] Aborting core
Link: http://lkml.kernel.org/r/20200416194612.21418-1-sudipm.mukherjee@gmail.com
Fixes: 315c69261dd3 ("coredump: split pipe command whitespace before expanding template")
Signed-off-by: Sudip Mukherjee <sudipm.mukherjee@gmail.com>
Reported-by: Matthew Ruffell <matthew.ruffell@canonical.com>
Cc: Paul Wise <pabs3@bonedaddy.net>
Cc: Alexander Viro <viro@zeniv.linux.org.uk>
Cc: Neil Horman <nhorman@tuxdriver.com>
Cc: <stable@vger.kernel.org>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
---
fs/coredump.c | 2 ++
1 file changed, 2 insertions(+)
--- a/fs/coredump.c~coredump-fix-null-pointer-dereference-on-coredump
+++ a/fs/coredump.c
@@ -211,6 +211,8 @@ static int format_corename(struct core_n
return -ENOMEM;
(*argv)[(*argc)++] = 0;
++pat_ptr;
+ if (!(*pat_ptr))
+ return -ENOMEM;
}
/* Repeat as long as we have more pattern to process and more output
_
^ permalink raw reply [flat|nested] 215+ messages in thread
* [patch 15/15] tools/vm: fix cross-compile build
2020-04-21 1:13 incoming Andrew Morton
` (13 preceding siblings ...)
2020-04-21 1:14 ` [patch 14/15] coredump: fix null pointer dereference on coredump Andrew Morton
@ 2020-04-21 1:14 ` Andrew Morton
2020-04-21 2:00 ` + mm-memory_hotplug-refrain-from-adding-memory-into-an-impossible-node.patch added to -mm tree Andrew Morton
` (52 subsequent siblings)
67 siblings, 0 replies; 215+ messages in thread
From: Andrew Morton @ 2020-04-21 1:14 UTC (permalink / raw)
To: akpm, l.stach, linux-mm, martin, mm-commits, stable, torvalds
From: Lucas Stach <l.stach@pengutronix.de>
Subject: tools/vm: fix cross-compile build
7ed1c1901fe5 (tools: fix cross-compile var clobbering) moved the setup of
the CC variable to tools/scripts/Makefile.include to make the behavior
consistent across all the tools Makefiles. As the vm tools missed the
include we end up with the wrong CC in a cross-compiling evironment.
Link: http://lkml.kernel.org/r/20200416104748.25243-1-l.stach@pengutronix.de
Fixes: 7ed1c1901fe5 (tools: fix cross-compile var clobbering)
Signed-off-by: Lucas Stach <l.stach@pengutronix.de>
Cc: Martin Kelly <martin@martingkelly.com>
Cc: <stable@vger.kernel.org>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
---
tools/vm/Makefile | 2 ++
1 file changed, 2 insertions(+)
--- a/tools/vm/Makefile~tools-vm-fix-cross-compile-build
+++ a/tools/vm/Makefile
@@ -1,6 +1,8 @@
# SPDX-License-Identifier: GPL-2.0
# Makefile for vm tools
#
+include ../scripts/Makefile.include
+
TARGETS=page-types slabinfo page_owner_sort
LIB_DIR = ../lib/api
_
^ permalink raw reply [flat|nested] 215+ messages in thread
* + mm-memory_hotplug-refrain-from-adding-memory-into-an-impossible-node.patch added to -mm tree
2020-04-21 1:13 incoming Andrew Morton
` (14 preceding siblings ...)
2020-04-21 1:14 ` [patch 15/15] tools/vm: fix cross-compile build Andrew Morton
@ 2020-04-21 2:00 ` Andrew Morton
2020-04-21 2:48 ` + x86-mm-define-mm_p4d_folded.patch " Andrew Morton
` (51 subsequent siblings)
67 siblings, 0 replies; 215+ messages in thread
From: Andrew Morton @ 2020-04-21 2:00 UTC (permalink / raw)
To: dan.j.williams, dave.hansen, david, mhocko, mm-commits, vishal.l.verma
The patch titled
Subject: mm/memory_hotplug: refrain from adding memory into an impossible node
has been added to the -mm tree. Its filename is
mm-memory_hotplug-refrain-from-adding-memory-into-an-impossible-node.patch
This patch should soon appear at
http://ozlabs.org/~akpm/mmots/broken-out/mm-memory_hotplug-refrain-from-adding-memory-into-an-impossible-node.patch
and later at
http://ozlabs.org/~akpm/mmotm/broken-out/mm-memory_hotplug-refrain-from-adding-memory-into-an-impossible-node.patch
Before you just go and hit "reply", please:
a) Consider who else should be cc'ed
b) Prefer to cc a suitable mailing list as well
c) Ideally: find the original patch on the mailing list and do a
reply-to-all to that, adding suitable additional cc's
*** Remember to use Documentation/process/submit-checklist.rst when testing your code ***
The -mm tree is included into linux-next and is updated
there every 3-4 working days
------------------------------------------------------
From: Vishal Verma <vishal.l.verma@intel.com>
Subject: mm/memory_hotplug: refrain from adding memory into an impossible node
A misbehaving qemu created a situation where the ACPI SRAT table
advertised one fewer proximity domains than intended. The NFIT table did
describe all the expected proximity domains. This caused the device dax
driver to assign an impossible target_node to the device, and when
hotplugged as system memory, this would fail with the following signature:
[ +0.001627] BUG: kernel NULL pointer dereference, address: 0000000000000088
[ +0.001331] #PF: supervisor read access in kernel mode
[ +0.000975] #PF: error_code(0x0000) - not-present page
[ +0.000976] PGD 80000001767d4067 P4D 80000001767d4067 PUD 10e0c4067 PMD 0
[ +0.001338] Oops: 0000 [#1] SMP PTI
[ +0.000676] CPU: 4 PID: 22737 Comm: kswapd3 Tainted: G O 5.6.0-rc5 #9
[ +0.001457] Hardware name: QEMU Standard PC (i440FX + PIIX, 1996),
BIOS rel-1.13.0-0-gf21b5a4aeb02-prebuilt.qemu.org 04/01/2014
[ +0.001990] RIP: 0010:prepare_kswapd_sleep+0x7c/0xc0
[ +0.000780] Code: 89 df e8 87 fd ff ff 89 c2 31 c0 84 d2 74 e6 0f 1f 44
00 00 48 8b 05 fb af 7a 01 48 63 93 88 1d 01 00 48 8b
84 d0 20 0f 00 00 <48> 3b 98 88 00 00 00 75 28 f0 80 a0
80 00 00 00 fe f0 80 a3 38 20
[ +0.002877] RSP: 0018:ffffc900017a3e78 EFLAGS: 00010202
[ +0.000805] RAX: 0000000000000000 RBX: ffff8881209e0000 RCX: 0000000000000000
[ +0.001115] RDX: 0000000000000003 RSI: 0000000000000000 RDI: ffff8881209e0e80
[ +0.001098] RBP: 0000000000000000 R08: 0000000000000000 R09: 0000000000008000
[ +0.001092] R10: 0000000000000000 R11: 0000000000000003 R12: 0000000000000003
[ +0.001092] R13: 0000000000000003 R14: 0000000000000000 R15: ffffc900017a3ec8
[ +0.001091] FS: 0000000000000000(0000) GS:ffff888318c00000(0000) knlGS:0000000000000000
[ +0.001275] CS: 0010 DS: 0000 ES: 0000 CR0: 0000000080050033
[ +0.000882] CR2: 0000000000000088 CR3: 0000000120b50002 CR4: 00000000001606e0
[ +0.001095] Call Trace:
[ +0.000388] kswapd+0x103/0x520
[ +0.000494] ? finish_wait+0x80/0x80
[ +0.000547] ? balance_pgdat+0x5a0/0x5a0
[ +0.000607] kthread+0x120/0x140
[ +0.000508] ? kthread_create_on_node+0x60/0x60
[ +0.000706] ret_from_fork+0x3a/0x50
Add a check in the add_memory path to fail if the node to which we are
adding memory is in the node_possible_map
Link: http://lkml.kernel.org/r/20200416225438.15208-1-vishal.l.verma@intel.com
Signed-off-by: Vishal Verma <vishal.l.verma@intel.com>
Acked-by: David Hildenbrand <david@redhat.com>
Acked-by: Michal Hocko <mhocko@suse.com>
Cc: David Hildenbrand <david@redhat.com>
Cc: Dan Williams <dan.j.williams@intel.com>
Cc: Dave Hansen <dave.hansen@linux.intel.com>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
---
mm/memory_hotplug.c | 5 +++++
1 file changed, 5 insertions(+)
--- a/mm/memory_hotplug.c~mm-memory_hotplug-refrain-from-adding-memory-into-an-impossible-node
+++ a/mm/memory_hotplug.c
@@ -1017,6 +1017,11 @@ int __ref add_memory_resource(int nid, s
if (ret)
return ret;
+ if (!node_possible(nid)) {
+ WARN(1, "node %d was absent from the node_possible_map\n", nid);
+ return -EINVAL;
+ }
+
mem_hotplug_begin();
/*
_
Patches currently in -mm which might be from vishal.l.verma@intel.com are
mm-memory_hotplug-refrain-from-adding-memory-into-an-impossible-node.patch
^ permalink raw reply [flat|nested] 215+ messages in thread
* + x86-mm-define-mm_p4d_folded.patch added to -mm tree
2020-04-21 1:13 incoming Andrew Morton
` (15 preceding siblings ...)
2020-04-21 2:00 ` + mm-memory_hotplug-refrain-from-adding-memory-into-an-impossible-node.patch added to -mm tree Andrew Morton
@ 2020-04-21 2:48 ` Andrew Morton
2020-04-21 2:52 ` + mm-debug-add-tests-validating-architecture-page-table-helpers-v17.patch " Andrew Morton
` (50 subsequent siblings)
67 siblings, 0 replies; 215+ messages in thread
From: Andrew Morton @ 2020-04-21 2:48 UTC (permalink / raw)
To: anshuman.khandual, kirill, mingo, mm-commits, tglx
The patch titled
Subject: x86/mm: define mm_p4d_folded()
has been added to the -mm tree. Its filename is
x86-mm-define-mm_p4d_folded.patch
This patch should soon appear at
http://ozlabs.org/~akpm/mmots/broken-out/x86-mm-define-mm_p4d_folded.patch
and later at
http://ozlabs.org/~akpm/mmotm/broken-out/x86-mm-define-mm_p4d_folded.patch
Before you just go and hit "reply", please:
a) Consider who else should be cc'ed
b) Prefer to cc a suitable mailing list as well
c) Ideally: find the original patch on the mailing list and do a
reply-to-all to that, adding suitable additional cc's
*** Remember to use Documentation/process/submit-checklist.rst when testing your code ***
The -mm tree is included into linux-next and is updated
there every 3-4 working days
------------------------------------------------------
From: Anshuman Khandual <anshuman.khandual@arm.com>
Subject: x86/mm: define mm_p4d_folded()
This just defines mm_p4d_folded() to check whether P4D page table level is
folded at runtime.
Link: http://lkml.kernel.org/r/1587436495-22033-2-git-send-email-anshuman.khandual@arm.com
Signed-off-by: Kirill A. Shutemov <kirill@shutemov.name>
Signed-off-by: Anshuman Khandual <anshuman.khandual@arm.com>
Cc: Thomas Gleixner <tglx@linutronix.de>
Cc: Ingo Molnar <mingo@kernel.org>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
---
arch/x86/include/asm/pgtable_64.h | 6 ++++++
1 file changed, 6 insertions(+)
--- a/arch/x86/include/asm/pgtable_64.h~x86-mm-define-mm_p4d_folded
+++ a/arch/x86/include/asm/pgtable_64.h
@@ -53,6 +53,12 @@ static inline void sync_initial_page_tab
struct mm_struct;
+#define mm_p4d_folded mm_p4d_folded
+static inline bool mm_p4d_folded(struct mm_struct *mm)
+{
+ return !pgtable_l5_enabled();
+}
+
void set_pte_vaddr_p4d(p4d_t *p4d_page, unsigned long vaddr, pte_t new_pte);
void set_pte_vaddr_pud(pud_t *pud_page, unsigned long vaddr, pte_t new_pte);
_
Patches currently in -mm which might be from anshuman.khandual@arm.com are
powerpc-mm-drop-platform-defined-pmd_mknotpresent.patch
mm-thp-rename-pmd_mknotpresent-as-pmd_mknotvalid.patch
x86-mm-define-mm_p4d_folded.patch
mm-debug-add-tests-validating-architecture-page-table-helpers.patch
mm-debug-add-tests-validating-architecture-page-table-helpers-v17.patch
^ permalink raw reply [flat|nested] 215+ messages in thread
* + mm-debug-add-tests-validating-architecture-page-table-helpers-v17.patch added to -mm tree
2020-04-21 1:13 incoming Andrew Morton
` (16 preceding siblings ...)
2020-04-21 2:48 ` + x86-mm-define-mm_p4d_folded.patch " Andrew Morton
@ 2020-04-21 2:52 ` Andrew Morton
2020-04-21 2:59 ` + mm-mmapc-add-more-sanity-checks-to-get_unmapped_area.patch " Andrew Morton
` (49 subsequent siblings)
67 siblings, 0 replies; 215+ messages in thread
From: Andrew Morton @ 2020-04-21 2:52 UTC (permalink / raw)
To: anshuman.khandual, benh, borntraeger, bp, cai, catalin.marinas,
christophe.leroy, gerald.schaefer, gor, heiko.carstens, hpa,
kirill, mingo, mingo, mm-commits, mpe, palmer, paul.walmsley,
paulus, rppt, tglx, vgupta, will
The patch titled
Subject: mm-debug-add-tests-validating-architecture-page-table-helpers-v17
has been added to the -mm tree. Its filename is
mm-debug-add-tests-validating-architecture-page-table-helpers-v17.patch
This patch should soon appear at
http://ozlabs.org/~akpm/mmots/broken-out/mm-debug-add-tests-validating-architecture-page-table-helpers-v17.patch
and later at
http://ozlabs.org/~akpm/mmotm/broken-out/mm-debug-add-tests-validating-architecture-page-table-helpers-v17.patch
Before you just go and hit "reply", please:
a) Consider who else should be cc'ed
b) Prefer to cc a suitable mailing list as well
c) Ideally: find the original patch on the mailing list and do a
reply-to-all to that, adding suitable additional cc's
*** Remember to use Documentation/process/submit-checklist.rst when testing your code ***
The -mm tree is included into linux-next and is updated
there every 3-4 working days
------------------------------------------------------
From: Anshuman Khandual <anshuman.khandual@arm.com>
Subject: mm-debug-add-tests-validating-architecture-page-table-helpers-v17
- debug_vm_pgtable() is now called from late_initcall() per Linus
- Explicitly enable DEBUG_VM_PGTABLE when ARCH_HAS_DEBUG_VM_PGTABLE and
DEBUG_VM
- Added #ifdef documentation per Gerald
- Dropped page table helper semantics documentation (will be added via
later patches)
- Split the X86 changes defining mm_p4d_folded() into a new prerequisite
patch
Link: http://lkml.kernel.org/r/1587436495-22033-3-git-send-email-anshuman.khandual@arm.com
Suggested-by: Catalin Marinas <catalin.marinas@arm.com>
Reviewed-by: Ingo Molnar <mingo@kernel.org>
Tested-by: Gerald Schaefer <gerald.schaefer@de.ibm.com> # s390
Tested-by: Christophe Leroy <christophe.leroy@c-s.fr> # ppc32
Signed-off-by: Qian Cai <cai@lca.pw>
Signed-off-by: Christophe Leroy <christophe.leroy@c-s.fr>
Signed-off-by: Anshuman Khandual <anshuman.khandual@arm.com>
Cc: Mike Rapoport <rppt@linux.ibm.com>
Cc: Vineet Gupta <vgupta@synopsys.com>
Cc: Catalin Marinas <catalin.marinas@arm.com>
Cc: Will Deacon <will@kernel.org>
Cc: Benjamin Herrenschmidt <benh@kernel.crashing.org>
Cc: Paul Mackerras <paulus@samba.org>
Cc: Michael Ellerman <mpe@ellerman.id.au>
Cc: Heiko Carstens <heiko.carstens@de.ibm.com>
Cc: Vasily Gorbik <gor@linux.ibm.com>
Cc: Christian Borntraeger <borntraeger@de.ibm.com>
Cc: Thomas Gleixner <tglx@linutronix.de>
Cc: Ingo Molnar <mingo@redhat.com>
Cc: Borislav Petkov <bp@alien8.de>
Cc: "H. Peter Anvin" <hpa@zytor.com>
Cc: Kirill A. Shutemov <kirill@shutemov.name>
Cc: Paul Walmsley <paul.walmsley@sifive.com>
Cc: Palmer Dabbelt <palmer@dabbelt.com>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
---
include/linux/mmdebug.h | 5 -----
init/main.c | 2 --
lib/Kconfig.debug | 3 +--
mm/debug_vm_pgtable.c | 34 ++++++++++++----------------------
4 files changed, 13 insertions(+), 31 deletions(-)
--- a/include/linux/mmdebug.h~mm-debug-add-tests-validating-architecture-page-table-helpers-v17
+++ a/include/linux/mmdebug.h
@@ -64,9 +64,4 @@ void dump_mm(const struct mm_struct *mm)
#define VM_BUG_ON_PGFLAGS(cond, page) BUILD_BUG_ON_INVALID(cond)
#endif
-#ifdef CONFIG_DEBUG_VM_PGTABLE
-void debug_vm_pgtable(void);
-#else
-static inline void debug_vm_pgtable(void) { }
-#endif
#endif
--- a/init/main.c~mm-debug-add-tests-validating-architecture-page-table-helpers-v17
+++ a/init/main.c
@@ -54,7 +54,6 @@
#include <linux/delayacct.h>
#include <linux/unistd.h>
#include <linux/utsname.h>
-#include <linux/mmdebug.h>
#include <linux/rmap.h>
#include <linux/mempolicy.h>
#include <linux/key.h>
@@ -1358,7 +1357,6 @@ static int __ref kernel_init(void *unuse
kernel_init_freeable();
/* need to finish all async __init code before freeing the memory */
async_synchronize_full();
- debug_vm_pgtable();
ftrace_free_init_mem();
free_initmem();
mark_readonly();
--- a/lib/Kconfig.debug~mm-debug-add-tests-validating-architecture-page-table-helpers-v17
+++ a/lib/Kconfig.debug
@@ -699,8 +699,7 @@ config DEBUG_VM_PGTABLE
depends on MMU
depends on !IA64 && !ARM
depends on ARCH_HAS_DEBUG_VM_PGTABLE || EXPERT
- default n if !ARCH_HAS_DEBUG_VM_PGTABLE
- default y if DEBUG_VM
+ default y if ARCH_HAS_DEBUG_VM_PGTABLE && DEBUG_VM
help
This option provides a debug method which can be used to test
architecture page table helper functions on various platforms in
--- a/mm/debug_vm_pgtable.c~mm-debug-add-tests-validating-architecture-page-table-helpers-v17
+++ a/mm/debug_vm_pgtable.c
@@ -30,18 +30,6 @@
#include <asm/pgalloc.h>
#include <asm/pgtable.h>
-/*
- * Basic operations
- *
- * mkold(entry) = An old and not a young entry
- * mkyoung(entry) = A young and not an old entry
- * mkdirty(entry) = A dirty and not a clean entry
- * mkclean(entry) = A clean and not a dirty entry
- * mkwrite(entry) = A write and not a write protected entry
- * wrprotect(entry) = A write protected and not a write entry
- * pxx_bad(entry) = A mapped and non-table entry
- * pxx_same(entry1, entry2) = Both entries hold the exact same value
- */
#define VMFLAGS (VM_READ|VM_WRITE|VM_EXEC)
/*
@@ -107,13 +95,13 @@ static void __init pud_basic_tests(unsig
*/
WARN_ON(!pud_bad(pud_mkhuge(pud)));
}
-#else
+#else /* !CONFIG_HAVE_ARCH_TRANSPARENT_HUGEPAGE_PUD */
static void __init pud_basic_tests(unsigned long pfn, pgprot_t prot) { }
-#endif
-#else
+#endif /* CONFIG_HAVE_ARCH_TRANSPARENT_HUGEPAGE_PUD */
+#else /* !CONFIG_TRANSPARENT_HUGEPAGE */
static void __init pmd_basic_tests(unsigned long pfn, pgprot_t prot) { }
static void __init pud_basic_tests(unsigned long pfn, pgprot_t prot) { }
-#endif
+#endif /* CONFIG_TRANSPARENT_HUGEPAGE */
static void __init p4d_basic_tests(unsigned long pfn, pgprot_t prot)
{
@@ -163,13 +151,13 @@ static void __init pud_populate_tests(st
pud = READ_ONCE(*pudp);
WARN_ON(pud_bad(pud));
}
-#else
+#else /* !__PAGETABLE_PUD_FOLDED */
static void __init pud_clear_tests(struct mm_struct *mm, pud_t *pudp) { }
static void __init pud_populate_tests(struct mm_struct *mm, pud_t *pudp,
pmd_t *pmdp)
{
}
-#endif
+#endif /* PAGETABLE_PUD_FOLDED */
#ifndef __PAGETABLE_P4D_FOLDED
static void __init p4d_clear_tests(struct mm_struct *mm, p4d_t *p4dp)
@@ -237,7 +225,7 @@ static void __init pgd_populate_tests(st
pgd = READ_ONCE(*pgdp);
WARN_ON(pgd_bad(pgd));
}
-#else
+#else /* !__PAGETABLE_P4D_FOLDED */
static void __init p4d_clear_tests(struct mm_struct *mm, p4d_t *p4dp) { }
static void __init pgd_clear_tests(struct mm_struct *mm, pgd_t *pgdp) { }
static void __init p4d_populate_tests(struct mm_struct *mm, p4d_t *p4dp,
@@ -248,7 +236,7 @@ static void __init pgd_populate_tests(st
p4d_t *p4dp)
{
}
-#endif
+#endif /* PAGETABLE_P4D_FOLDED */
static void __init pte_clear_tests(struct mm_struct *mm, pte_t *ptep,
unsigned long vaddr)
@@ -301,7 +289,7 @@ static unsigned long __init get_random_v
return random_vaddr;
}
-void __init debug_vm_pgtable(void)
+static int __init debug_vm_pgtable(void)
{
struct mm_struct *mm;
pgd_t *pgdp;
@@ -322,7 +310,7 @@ void __init debug_vm_pgtable(void)
mm = mm_alloc();
if (!mm) {
pr_err("mm_struct allocation failed\n");
- return;
+ return 1;
}
/*
@@ -389,4 +377,6 @@ void __init debug_vm_pgtable(void)
mm_dec_nr_pmds(mm);
mm_dec_nr_ptes(mm);
mmdrop(mm);
+ return 0;
}
+late_initcall(debug_vm_pgtable);
_
Patches currently in -mm which might be from anshuman.khandual@arm.com are
powerpc-mm-drop-platform-defined-pmd_mknotpresent.patch
mm-thp-rename-pmd_mknotpresent-as-pmd_mknotvalid.patch
x86-mm-define-mm_p4d_folded.patch
mm-debug-add-tests-validating-architecture-page-table-helpers.patch
mm-debug-add-tests-validating-architecture-page-table-helpers-v17.patch
^ permalink raw reply [flat|nested] 215+ messages in thread
* + mm-mmapc-add-more-sanity-checks-to-get_unmapped_area.patch added to -mm tree
2020-04-21 1:13 incoming Andrew Morton
` (17 preceding siblings ...)
2020-04-21 2:52 ` + mm-debug-add-tests-validating-architecture-page-table-helpers-v17.patch " Andrew Morton
@ 2020-04-21 2:59 ` Andrew Morton
2020-04-21 2:59 ` + mm-mmapc-do-not-allow-mappings-outside-of-allowed-limits.patch " Andrew Morton
` (48 subsequent siblings)
67 siblings, 0 replies; 215+ messages in thread
From: Andrew Morton @ 2020-04-21 2:59 UTC (permalink / raw)
To: agordeev, mm-commits
The patch titled
Subject: mm/mmap.c: add more sanity checks to get_unmapped_area()
has been added to the -mm tree. Its filename is
mm-mmapc-add-more-sanity-checks-to-get_unmapped_area.patch
This patch should soon appear at
http://ozlabs.org/~akpm/mmots/broken-out/mm-mmapc-add-more-sanity-checks-to-get_unmapped_area.patch
and later at
http://ozlabs.org/~akpm/mmotm/broken-out/mm-mmapc-add-more-sanity-checks-to-get_unmapped_area.patch
Before you just go and hit "reply", please:
a) Consider who else should be cc'ed
b) Prefer to cc a suitable mailing list as well
c) Ideally: find the original patch on the mailing list and do a
reply-to-all to that, adding suitable additional cc's
*** Remember to use Documentation/process/submit-checklist.rst when testing your code ***
The -mm tree is included into linux-next and is updated
there every 3-4 working days
------------------------------------------------------
From: Alexander Gordeev <agordeev@linux.ibm.com>
Subject: mm/mmap.c: add more sanity checks to get_unmapped_area()
Generic get_unmapped_area() function does sanity checks of address and
length of the area to be mapped. Yet, it lacks checking against
mmap_min_addr and mmap_end limits.
At the same time the default implementation of functions
arch_get_unmapped_area[_topdown]() and some architecture callbacks do
mmap_min_addr and mmap_end checks on their own.
Put additional checks into the generic code and do not let architecture
callbacks to get away with a possible area outside of the allowed limits.
That could also relieve arch_get_unmapped_area[_topdown]() callbacks of
own address and length sanity checks.
Link: http://lkml.kernel.org/r/d14f2cff3c891ef2c4b0337d737c6f04beacb124.1584958099.git.agordeev@linux.ibm.com
Signed-off-by: Alexander Gordeev <agordeev@linux.ibm.com>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
---
mm/mmap.c | 5 +++--
1 file changed, 3 insertions(+), 2 deletions(-)
--- a/mm/mmap.c~mm-mmapc-add-more-sanity-checks-to-get_unmapped_area
+++ a/mm/mmap.c
@@ -2208,12 +2208,13 @@ get_unmapped_area(struct file *file, uns
unsigned long (*get_area)(struct file *, unsigned long,
unsigned long, unsigned long, unsigned long);
+ const unsigned long mmap_end = arch_get_mmap_end(addr);
unsigned long error = arch_mmap_check(addr, len, flags);
if (error)
return error;
/* Careful about overflows.. */
- if (len > TASK_SIZE)
+ if (len > mmap_end - mmap_min_addr)
return -ENOMEM;
get_area = current->mm->get_unmapped_area;
@@ -2234,7 +2235,7 @@ get_unmapped_area(struct file *file, uns
if (IS_ERR_VALUE(addr))
return addr;
- if (addr > TASK_SIZE - len)
+ if ((addr < mmap_min_addr) || (addr > mmap_end - len))
return -ENOMEM;
if (offset_in_page(addr))
return -EINVAL;
_
Patches currently in -mm which might be from agordeev@linux.ibm.com are
mm-mmapc-add-more-sanity-checks-to-get_unmapped_area.patch
mm-mmapc-do-not-allow-mappings-outside-of-allowed-limits.patch
^ permalink raw reply [flat|nested] 215+ messages in thread
* + mm-mmapc-do-not-allow-mappings-outside-of-allowed-limits.patch added to -mm tree
2020-04-21 1:13 incoming Andrew Morton
` (18 preceding siblings ...)
2020-04-21 2:59 ` + mm-mmapc-add-more-sanity-checks-to-get_unmapped_area.patch " Andrew Morton
@ 2020-04-21 2:59 ` Andrew Morton
2020-04-21 3:07 ` + initrdmem=-option-to-specify-initrd-physical-address-checkpatch-fixes.patch " Andrew Morton
` (47 subsequent siblings)
67 siblings, 0 replies; 215+ messages in thread
From: Andrew Morton @ 2020-04-21 2:59 UTC (permalink / raw)
To: agordeev, mm-commits
The patch titled
Subject: mm/mmap.c: do not allow mappings outside of allowed limits
has been added to the -mm tree. Its filename is
mm-mmapc-do-not-allow-mappings-outside-of-allowed-limits.patch
This patch should soon appear at
http://ozlabs.org/~akpm/mmots/broken-out/mm-mmapc-do-not-allow-mappings-outside-of-allowed-limits.patch
and later at
http://ozlabs.org/~akpm/mmotm/broken-out/mm-mmapc-do-not-allow-mappings-outside-of-allowed-limits.patch
Before you just go and hit "reply", please:
a) Consider who else should be cc'ed
b) Prefer to cc a suitable mailing list as well
c) Ideally: find the original patch on the mailing list and do a
reply-to-all to that, adding suitable additional cc's
*** Remember to use Documentation/process/submit-checklist.rst when testing your code ***
The -mm tree is included into linux-next and is updated
there every 3-4 working days
------------------------------------------------------
From: Alexander Gordeev <agordeev@linux.ibm.com>
Subject: mm/mmap.c: do not allow mappings outside of allowed limits
It is possible to request a fixed mapping address below mmap_min_addr and
succeed. This update adds early checks of mmap_min_addr and mmap_end
boundaries and fixes the above issue.
Link: http://lkml.kernel.org/r/d6da1319114a331095052638f0ffa3ccb0be58f1.1584958099.git.agordeev@linux.ibm.com
Signed-off-by: Alexander Gordeev <agordeev@linux.ibm.com>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
---
mm/mmap.c | 23 ++++++++++++++---------
1 file changed, 14 insertions(+), 9 deletions(-)
--- a/mm/mmap.c~mm-mmapc-do-not-allow-mappings-outside-of-allowed-limits
+++ a/mm/mmap.c
@@ -62,6 +62,14 @@
#define arch_mmap_check(addr, len, flags) (0)
#endif
+#ifndef arch_get_mmap_end
+#define arch_get_mmap_end(addr) (TASK_SIZE)
+#endif
+
+#ifndef arch_get_mmap_base
+#define arch_get_mmap_base(addr, base) (base)
+#endif
+
#ifdef CONFIG_HAVE_ARCH_MMAP_RND_BITS
const int mmap_rnd_bits_min = CONFIG_ARCH_MMAP_RND_BITS_MIN;
const int mmap_rnd_bits_max = CONFIG_ARCH_MMAP_RND_BITS_MAX;
@@ -1369,6 +1377,7 @@ unsigned long do_mmap(struct file *file,
unsigned long pgoff, unsigned long *populate,
struct list_head *uf)
{
+ const unsigned long mmap_end = arch_get_mmap_end(addr);
struct mm_struct *mm = current->mm;
int pkey = 0;
@@ -1391,8 +1400,12 @@ unsigned long do_mmap(struct file *file,
if (flags & MAP_FIXED_NOREPLACE)
flags |= MAP_FIXED;
- if (!(flags & MAP_FIXED))
+ if (flags & MAP_FIXED) {
+ if ((addr < mmap_min_addr) || (addr > mmap_end))
+ return -ENOMEM;
+ } else {
addr = round_hint_to_min(addr);
+ }
/* Careful about overflows.. */
len = PAGE_ALIGN(len);
@@ -2089,14 +2102,6 @@ unsigned long vm_unmapped_area(struct vm
return addr;
}
-#ifndef arch_get_mmap_end
-#define arch_get_mmap_end(addr) (TASK_SIZE)
-#endif
-
-#ifndef arch_get_mmap_base
-#define arch_get_mmap_base(addr, base) (base)
-#endif
^ permalink raw reply [flat|nested] 215+ messages in thread
* + initrdmem=-option-to-specify-initrd-physical-address-checkpatch-fixes.patch added to -mm tree
2020-04-21 1:13 incoming Andrew Morton
` (19 preceding siblings ...)
2020-04-21 2:59 ` + mm-mmapc-do-not-allow-mappings-outside-of-allowed-limits.patch " Andrew Morton
@ 2020-04-21 3:07 ` Andrew Morton
2020-04-21 3:58 ` + initrdmem=-option-to-specify-initrd-physical-address.patch " Andrew Morton
` (46 subsequent siblings)
67 siblings, 0 replies; 215+ messages in thread
From: Andrew Morton @ 2020-04-21 3:07 UTC (permalink / raw)
To: akpm, bp, hpa, mingo, mjg59, mm-commits, rdunlap, rminnich, tglx
The patch titled
Subject: initrdmem=-option-to-specify-initrd-physical-address-checkpatch-fixes
has been added to the -mm tree. Its filename is
initrdmem=-option-to-specify-initrd-physical-address-checkpatch-fixes.patch
This patch should soon appear at
http://ozlabs.org/~akpm/mmots/broken-out/initrdmem%3D-option-to-specify-initrd-physical-address-checkpatch-fixes.patch
and later at
http://ozlabs.org/~akpm/mmotm/broken-out/initrdmem%3D-option-to-specify-initrd-physical-address-checkpatch-fixes.patch
Before you just go and hit "reply", please:
a) Consider who else should be cc'ed
b) Prefer to cc a suitable mailing list as well
c) Ideally: find the original patch on the mailing list and do a
reply-to-all to that, adding suitable additional cc's
*** Remember to use Documentation/process/submit-checklist.rst when testing your code ***
The -mm tree is included into linux-next and is updated
there every 3-4 working days
------------------------------------------------------
From: Andrew Morton <akpm@linux-foundation.org>
Subject: initrdmem=-option-to-specify-initrd-physical-address-checkpatch-fixes
Cc: Borislav Petkov <bp@alien8.de>
WARNING: 'adddress' may be misspelled - perhaps 'address'?
#64: FILE: Documentation/admin-guide/kernel-parameters.txt:1717:
+ initrdmem= [KNL] Specify a physical adddress and size from which
WARNING: please, no spaces at the start of a line
#82: FILE: arch/x86/kernel/setup.c:240:
+ if (ramdisk_image == 0) {$
WARNING: braces {} are not necessary for single statement blocks
#82: FILE: arch/x86/kernel/setup.c:240:
+ if (ramdisk_image == 0) {
+ ramdisk_image = phys_initrd_start;
+ }
ERROR: code indent should use tabs where possible
#83: FILE: arch/x86/kernel/setup.c:241:
+ ramdisk_image = phys_initrd_start;$
WARNING: please, no spaces at the start of a line
#83: FILE: arch/x86/kernel/setup.c:241:
+ ramdisk_image = phys_initrd_start;$
WARNING: please, no spaces at the start of a line
#84: FILE: arch/x86/kernel/setup.c:242:
+ }$
WARNING: please, no spaces at the start of a line
#92: FILE: arch/x86/kernel/setup.c:251:
+ if (ramdisk_size == 0) {$
WARNING: braces {} are not necessary for single statement blocks
#92: FILE: arch/x86/kernel/setup.c:251:
+ if (ramdisk_size == 0) {
+ ramdisk_size = phys_initrd_size;
+ }
ERROR: code indent should use tabs where possible
#93: FILE: arch/x86/kernel/setup.c:252:
+ ramdisk_size = phys_initrd_size;$
WARNING: please, no spaces at the start of a line
#93: FILE: arch/x86/kernel/setup.c:252:
+ ramdisk_size = phys_initrd_size;$
WARNING: please, no spaces at the start of a line
#94: FILE: arch/x86/kernel/setup.c:253:
+ }$
WARNING: please, no spaces at the start of a line
#124: FILE: init/do_mounts_initrd.c:55:
+ return early_initrdmem(p);$
WARNING: Missing Signed-off-by: line by nominal patch author 'ron minnich <rminnich@gmail.com>'
total: 2 errors, 11 warnings, 56 lines checked
NOTE: For some of the reported defects, checkpatch may be able to
mechanically convert to the typical style using --fix or --fix-inplace.
NOTE: Whitespace errors detected.
You may wish to use scripts/cleanpatch or scripts/cleanfile
./patches/initrdmem=-option-to-specify-initrd-physical-address.patch has style problems, please review.
NOTE: If any of the errors are false positives, please report
them to the maintainer, see CHECKPATCH in MAINTAINERS.
Please run checkpatch prior to sending patches
Cc: Borislav Petkov <bp@alien8.de>
Cc: H. Peter Anvin (Intel) <hpa@zytor.com>
Cc: Ingo Molnar <mingo@redhat.com>
Cc: Matthew Garrett <mjg59@google.com>
Cc: Randy Dunlap <rdunlap@infradead.org>
Cc: Ronald G. Minnich <rminnich@gmail.com>
Cc: Thomas Gleixner <tglx@linutronix.de>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
---
Documentation/admin-guide/kernel-parameters.txt | 12 ++++++------
arch/x86/kernel/setup.c | 12 ++++++------
init/do_mounts_initrd.c | 2 +-
3 files changed, 13 insertions(+), 13 deletions(-)
--- a/arch/x86/kernel/setup.c~initrdmem=-option-to-specify-initrd-physical-address-checkpatch-fixes
+++ a/arch/x86/kernel/setup.c
@@ -237,9 +237,9 @@ static u64 __init get_ramdisk_image(void
ramdisk_image |= (u64)boot_params.ext_ramdisk_image << 32;
- if (ramdisk_image == 0) {
- ramdisk_image = phys_initrd_start;
- }
+ if (ramdisk_image == 0)
+ ramdisk_image = phys_initrd_start;
+
return ramdisk_image;
}
static u64 __init get_ramdisk_size(void)
@@ -248,9 +248,9 @@ static u64 __init get_ramdisk_size(void)
ramdisk_size |= (u64)boot_params.ext_ramdisk_size << 32;
- if (ramdisk_size == 0) {
- ramdisk_size = phys_initrd_size;
- }
+ if (ramdisk_size == 0)
+ ramdisk_size = phys_initrd_size;
+
return ramdisk_size;
}
--- a/Documentation/admin-guide/kernel-parameters.txt~initrdmem=-option-to-specify-initrd-physical-address-checkpatch-fixes
+++ a/Documentation/admin-guide/kernel-parameters.txt
@@ -1762,12 +1762,12 @@
initrd= [BOOT] Specify the location of the initial ramdisk
- initrdmem= [KNL] Specify a physical adddress and size from which
- to load the initrd. If an initrd is compiled in or
- specified in the bootparams, it takes priority
- over this setting.
- Format: ss[KMG],nn[KMG]
- Default is 0, 0
+ initrdmem= [KNL] Specify a physical address and size from which to
+ load the initrd. If an initrd is compiled in or
+ specified in the bootparams, it takes priority over this
+ setting.
+ Format: ss[KMG],nn[KMG]
+ Default is 0, 0
init_on_alloc= [MM] Fill newly allocated pages and heap objects with
zeroes.
--- a/init/do_mounts_initrd.c~initrdmem=-option-to-specify-initrd-physical-address-checkpatch-fixes
+++ a/init/do_mounts_initrd.c
@@ -52,7 +52,7 @@ early_param("initrdmem", early_initrdmem
*/
static int __init early_initrd(char *p)
{
- return early_initrdmem(p);
+ return early_initrdmem(p);
}
early_param("initrd", early_initrd);
_
Patches currently in -mm which might be from akpm@linux-foundation.org are
mm-memcg-fix-error-return-value-of-mem_cgroup_css_alloc-fix.patch
squashfs-migrate-from-ll_rw_block-usage-to-bio-fix.patch
drivers-tty-serial-sh-scic-suppress-uninitialized-var-warning.patch
mm.patch
mm-slub-fix-corrupted-freechain-in-deactivate_slab-fix.patch
memcg-optimize-memorynuma_stat-like-memorystat-fix.patch
mm-remove-__vmalloc_node_flags_caller-fix.patch
mm-switch-the-test_vmalloc-module-to-use-__vmalloc_node-fix.patch
mm-remove-vmalloc_user_node_flags-fix.patch
mm-replace-zero-length-array-with-flexible-array-member-fix.patch
mm-hugetlb-fix-a-typo-in-comment-manitained-maintained-v2-checkpatch-fixes.patch
initrdmem=-option-to-specify-initrd-physical-address-checkpatch-fixes.patch
linux-next-fix.patch
kernel-forkc-export-kernel_thread-to-modules.patch
^ permalink raw reply [flat|nested] 215+ messages in thread
* + initrdmem=-option-to-specify-initrd-physical-address.patch added to -mm tree
2020-04-21 1:13 incoming Andrew Morton
` (20 preceding siblings ...)
2020-04-21 3:07 ` + initrdmem=-option-to-specify-initrd-physical-address-checkpatch-fixes.patch " Andrew Morton
@ 2020-04-21 3:58 ` Andrew Morton
2020-04-21 5:43 ` mmotm 2020-04-20-22-43 uploaded Andrew Morton
` (45 subsequent siblings)
67 siblings, 0 replies; 215+ messages in thread
From: Andrew Morton @ 2020-04-21 3:58 UTC (permalink / raw)
To: bp, hpa, mingo, mjg59, mm-commits, rdunlap, rminnich, tglx
The patch titled
Subject: initrdmem= option to specify initrd physical address
has been added to the -mm tree. Its filename is
initrdmem=-option-to-specify-initrd-physical-address.patch
This patch should soon appear at
http://ozlabs.org/~akpm/mmots/broken-out/initrdmem%3D-option-to-specify-initrd-physical-address.patch
and later at
http://ozlabs.org/~akpm/mmotm/broken-out/initrdmem%3D-option-to-specify-initrd-physical-address.patch
Before you just go and hit "reply", please:
a) Consider who else should be cc'ed
b) Prefer to cc a suitable mailing list as well
c) Ideally: find the original patch on the mailing list and do a
reply-to-all to that, adding suitable additional cc's
*** Remember to use Documentation/process/submit-checklist.rst when testing your code ***
The -mm tree is included into linux-next and is updated
there every 3-4 working days
------------------------------------------------------
From: ron minnich <rminnich@gmail.com>
Subject: initrdmem= option to specify initrd physical address
This patch adds the initrdmem option:
initrdmem=ss[KMG],nn[KMG]
which is used to specify the physical address of the initrd, almost always
an address in FLASH. It also adds code for x86 to use the existing
phys_init_start and phys_init_size variables in the kernel. This is
useful in cases where we wish to place a kernel and initrd in FLASH, but
there is no firmware file system structure in the FLASH.
One such situation occurs when we have reclaimed unused FLASH space on
UEFI systems by, e.g., taking it from the Management Engine. For example,
on many systems, the ME is given half the FLASH part; not only is 2.75M of
an 8M part unused; but 10.75M of a 16M part is unused. We can use this
space to contain an initrd, but need to tell Linux where it is.
This space is "raw": due to, e.g., UEFI limitations: it can not be added
to UEFI firmware volumes without rebuilding UEFI from source or writing a
UEFI device driver. We can reference it only as a physical address and
size.
At the same time, should we netboot a kernel or load it from GRUB or
syslinux, we want to have the option of not using the physical address
specification. Then, should we wish, it is easy to boot the kernel and
provide an initrd; or boot the the kernel and let it use the initrd in
FLASH. In practice this has proven to be very helpful as we integrate
Linux into FLASH on x86.
Hence, the most flexible and convenient path is to enable the initrdmem
command line flag in a way that it is the last choice tried.
For example, on the DigitalLoggers Atomic Pi, we burn an image into FLASH
with a built-in command line which includes:
initrdmem=0xff968000,0x200000
which specifies a location and size.
Link: http://lkml.kernel.org/r/CAP6exYLK11rhreX=6QPyDQmW7wPHsKNEFtXE47pjx41xS6O7-A@mail.gmail.com
Signed-off-by: Ronald G. Minnich <rminnich@gmail.com>
Reviewed-by: H. Peter Anvin (Intel) <hpa@zytor.com>
Cc: Matthew Garrett <mjg59@google.com>
Cc: Thomas Gleixner <tglx@linutronix.de>
Cc: Ingo Molnar <mingo@redhat.com>
Cc: Borislav Petkov <bp@alien8.de>
Cc: Randy Dunlap <rdunlap@infradead.org>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
---
Documentation/admin-guide/kernel-parameters.txt | 7 +++++++
arch/x86/kernel/setup.c | 6 ++++++
init/do_mounts_initrd.c | 13 ++++++++++++-
3 files changed, 25 insertions(+), 1 deletion(-)
--- a/arch/x86/kernel/setup.c~initrdmem=-option-to-specify-initrd-physical-address
+++ a/arch/x86/kernel/setup.c
@@ -237,6 +237,9 @@ static u64 __init get_ramdisk_image(void
ramdisk_image |= (u64)boot_params.ext_ramdisk_image << 32;
+ if (ramdisk_image == 0) {
+ ramdisk_image = phys_initrd_start;
+ }
return ramdisk_image;
}
static u64 __init get_ramdisk_size(void)
@@ -245,6 +248,9 @@ static u64 __init get_ramdisk_size(void)
ramdisk_size |= (u64)boot_params.ext_ramdisk_size << 32;
+ if (ramdisk_size == 0) {
+ ramdisk_size = phys_initrd_size;
+ }
return ramdisk_size;
}
--- a/Documentation/admin-guide/kernel-parameters.txt~initrdmem=-option-to-specify-initrd-physical-address
+++ a/Documentation/admin-guide/kernel-parameters.txt
@@ -1762,6 +1762,13 @@
initrd= [BOOT] Specify the location of the initial ramdisk
+ initrdmem= [KNL] Specify a physical adddress and size from which
+ to load the initrd. If an initrd is compiled in or
+ specified in the bootparams, it takes priority
+ over this setting.
+ Format: ss[KMG],nn[KMG]
+ Default is 0, 0
+
init_on_alloc= [MM] Fill newly allocated pages and heap objects with
zeroes.
Format: 0 | 1
--- a/init/do_mounts_initrd.c~initrdmem=-option-to-specify-initrd-physical-address
+++ a/init/do_mounts_initrd.c
@@ -28,7 +28,7 @@ static int __init no_initrd(char *str)
__setup("noinitrd", no_initrd);
-static int __init early_initrd(char *p)
+static int __init early_initrdmem(char *p)
{
phys_addr_t start;
unsigned long size;
@@ -43,6 +43,17 @@ static int __init early_initrd(char *p)
}
return 0;
}
+early_param("initrdmem", early_initrdmem);
+
+/*
+ * This is here as the initrd keyword has been in use since 11/2018
+ * on ARM, PowerPC, and MIPS.
+ * It should not be; it is reserved for bootloaders.
+ */
+static int __init early_initrd(char *p)
+{
+ return early_initrdmem(p);
+}
early_param("initrd", early_initrd);
static int init_linuxrc(struct subprocess_info *info, struct cred *new)
_
Patches currently in -mm which might be from rminnich@gmail.com are
initrdmem=-option-to-specify-initrd-physical-address.patch
^ permalink raw reply [flat|nested] 215+ messages in thread
* mmotm 2020-04-20-22-43 uploaded
2020-04-21 1:13 incoming Andrew Morton
` (21 preceding siblings ...)
2020-04-21 3:58 ` + initrdmem=-option-to-specify-initrd-physical-address.patch " Andrew Morton
@ 2020-04-21 5:43 ` Andrew Morton
2020-04-22 1:36 ` + mm-swapfilec-found_free-could-be-represented-by-tmp-max.patch added to -mm tree Andrew Morton
` (44 subsequent siblings)
67 siblings, 0 replies; 215+ messages in thread
From: Andrew Morton @ 2020-04-21 5:43 UTC (permalink / raw)
To: broonie, linux-fsdevel, linux-kernel, linux-mm, linux-next,
mhocko, mm-commits, sfr
The mm-of-the-moment snapshot 2020-04-20-22-43 has been uploaded to
http://www.ozlabs.org/~akpm/mmotm/
mmotm-readme.txt says
README for mm-of-the-moment:
http://www.ozlabs.org/~akpm/mmotm/
This is a snapshot of my -mm patch queue. Uploaded at random hopefully
more than once a week.
You will need quilt to apply these patches to the latest Linus release (5.x
or 5.x-rcY). The series file is in broken-out.tar.gz and is duplicated in
http://ozlabs.org/~akpm/mmotm/series
The file broken-out.tar.gz contains two datestamp files: .DATE and
.DATE-yyyy-mm-dd-hh-mm-ss. Both contain the string yyyy-mm-dd-hh-mm-ss,
followed by the base kernel version against which this patch series is to
be applied.
This tree is partially included in linux-next. To see which patches are
included in linux-next, consult the `series' file. Only the patches
within the #NEXT_PATCHES_START/#NEXT_PATCHES_END markers are included in
linux-next.
A full copy of the full kernel tree with the linux-next and mmotm patches
already applied is available through git within an hour of the mmotm
release. Individual mmotm releases are tagged. The master branch always
points to the latest release, so it's constantly rebasing.
https://github.com/hnaz/linux-mm
The directory http://www.ozlabs.org/~akpm/mmots/ (mm-of-the-second)
contains daily snapshots of the -mm tree. It is updated more frequently
than mmotm, and is untested.
A git copy of this tree is also available at
https://github.com/hnaz/linux-mm
This mmotm tree contains the following patches against 5.7-rc2:
(patches marked "*" will be included in linux-next)
* sh-fix-build-error-in-mm-initc.patch
* slub-avoid-redzone-when-choosing-freepointer-location.patch
* mm-userfaultfd-disable-userfaultfd-wp-on-x86_32.patch
* maintainers-add-an-entry-for-kfifo.patch
* mm-hugetlb-fix-a-addressing-exception-caused-by-huge_pte_offset.patch
* mm-gup-return-eintr-when-gup-is-interrupted-by-fatal-signals.patch
* checkpatch-fix-a-typo-in-the-regex-for-allocfunctions.patch
* tools-build-tweak-unused-value-workaround.patch
* mm-ksm-fix-null-pointer-dereference-when-ksm-zero-page-is-enabled.patch
* mm-shmem-fix-build-without-thp.patch
* vmalloc-fix-remap_vmalloc_range-bounds-checks.patch
* shmem-fix-possible-deadlocks-on-shmlock_user_lock.patch
* mm-shmem-disable-interrupt-when-acquiring-info-lock-in-userfaultfd_copy-path.patch
* coredump-fix-null-pointer-dereference-on-coredump.patch
* tools-vm-fix-cross-compile-build.patch
* proc-kpageflags-prevent-an-integer-overflow-in-stable_page_flags.patch
* proc-kpageflags-do-not-use-uninitialized-struct-pages.patch
* ipc-mqueuec-change-__do_notify-to-bypass-check_kill_permission-v2.patch
* mm-memcg-fix-error-return-value-of-mem_cgroup_css_alloc.patch
* mm-memcg-fix-error-return-value-of-mem_cgroup_css_alloc-fix.patch
* kcov-cleanup-debug-messages.patch
* kcov-fix-potential-use-after-free-in-kcov_remote_start.patch
* kcov-move-t-kcov-assignments-into-kcov_start-stop.patch
* kcov-move-t-kcov_sequence-assignment.patch
* kcov-use-t-kcov_mode-as-enabled-indicator.patch
* kcov-collect-coverage-from-interrupts.patch
* usb-core-kcov-collect-coverage-from-usb-complete-callback.patch
* mm-page_alloc-fix-watchdog-soft-lockups-during-set_zone_contiguous.patch
* kernel-kcovc-fix-typos-in-kcov_remote_start-documentation.patch
* scripts-decodecode-fix-trapping-instruction-formatting.patch
* fs-binfmt_elfc-allocate-initialized-memory-in-fill_thread_core_info.patch
* squashfs-squashfs_fsh-replace-zero-length-array-with-flexible-array-member.patch
* squashfs-migrate-from-ll_rw_block-usage-to-bio.patch
* squashfs-migrate-from-ll_rw_block-usage-to-bio-fix.patch
* ocfs2-add-missing-annotation-for-dlm_empty_lockres.patch
* drivers-tty-serial-sh-scic-suppress-uninitialized-var-warning.patch
* ramfs-support-o_tmpfile.patch
* kernel-watchdog-flush-all-printk-nmi-buffers-when-hardlockup-detected.patch
mm.patch
* usercopy-mark-dma-kmalloc-caches-as-usercopy-caches.patch
* mm-slub-fix-corrupted-freechain-in-deactivate_slab.patch
* mm-slub-fix-corrupted-freechain-in-deactivate_slab-fix.patch
* mm-dump_page-do-not-crash-with-invalid-mapping-pointer.patch
* mm-move-readahead-prototypes-from-mmh.patch
* mm-return-void-from-various-readahead-functions.patch
* mm-ignore-return-value-of-readpages.patch
* mm-move-readahead-nr_pages-check-into-read_pages.patch
* mm-add-new-readahead_control-api.patch
* mm-use-readahead_control-to-pass-arguments.patch
* mm-rename-various-offset-parameters-to-index.patch
* mm-rename-readahead-loop-variable-to-i.patch
* mm-remove-page_offset-from-readahead-loop.patch
* mm-put-readahead-pages-in-cache-earlier.patch
* mm-add-readahead-address-space-operation.patch
* mm-move-end_index-check-out-of-readahead-loop.patch
* mm-add-page_cache_readahead_unbounded.patch
* mm-document-why-we-dont-set-pagereadahead.patch
* mm-use-memalloc_nofs_save-in-readahead-path.patch
* fs-convert-mpage_readpages-to-mpage_readahead.patch
* btrfs-convert-from-readpages-to-readahead.patch
* erofs-convert-uncompressed-files-from-readpages-to-readahead.patch
* erofs-convert-compressed-files-from-readpages-to-readahead.patch
* ext4-convert-from-readpages-to-readahead.patch
* ext4-pass-the-inode-to-ext4_mpage_readpages.patch
* f2fs-convert-from-readpages-to-readahead.patch
* f2fs-pass-the-inode-to-f2fs_mpage_readpages.patch
* fuse-convert-from-readpages-to-readahead.patch
* fuse-convert-from-readpages-to-readahead-fix.patch
* iomap-convert-from-readpages-to-readahead.patch
* mm-swapfile-use-list_prevnext_entry-instead-of-open-coding.patch
* mm-swap_state-fix-a-data-race-in-swapin_nr_pages.patch
* mm-swap-properly-update-readahead-statistics-in-unuse_pte_range.patch
* mm-swapfilec-offset-is-only-used-when-there-is-more-slots.patch
* mm-swapfilec-explicitly-show-ssd-non-ssd-is-handled-mutually-exclusive.patch
* mm-swapfilec-remove-the-unnecessary-goto-for-ssd-case.patch
* mm-swapfilec-simplify-the-calculation-of-n_goal.patch
* mm-swapfilec-remove-the-extra-check-in-scan_swap_map_slots.patch
* memcg-optimize-memorynuma_stat-like-memorystat.patch
* memcg-optimize-memorynuma_stat-like-memorystat-fix.patch
* h8300-remove-usage-of-__arch_use_5level_hack.patch
* arm-add-support-for-folded-p4d-page-tables.patch
* arm64-add-support-for-folded-p4d-page-tables.patch
* hexagon-remove-__arch_use_5level_hack.patch
* ia64-add-support-for-folded-p4d-page-tables.patch
* nios2-add-support-for-folded-p4d-page-tables.patch
* openrisc-add-support-for-folded-p4d-page-tables.patch
* powerpc-add-support-for-folded-p4d-page-tables.patch
* sh-fault-modernize-printing-of-kernel-messages.patch
* sh-drop-__pxd_offset-macros-that-duplicate-pxd_index-ones.patch
* sh-add-support-for-folded-p4d-page-tables.patch
* unicore32-remove-__arch_use_5level_hack.patch
* asm-generic-remove-pgtable-nop4d-hackh.patch
* mm-remove-__arch_has_5level_hack-and-include-asm-generic-5level-fixuph.patch
* mm-gupc-further-document-vma_permits_fault.patch
* proc-pid-smaps-add-pmd-migration-entry-parsing.patch
* mm-mmap-fix-the-adjusted-length-error.patch
* mm-memory-remove-unnecessary-pte_devmap-case-in-copy_one_pte.patch
* x86-hyperv-use-vmalloc_exec-for-the-hypercall-page.patch
* x86-fix-vmap-arguments-in-map_irq_stack.patch
* staging-android-ion-use-vmap-instead-of-vm_map_ram.patch
* staging-media-ipu3-use-vmap-instead-of-reimplementing-it.patch
* dma-mapping-use-vmap-insted-of-reimplementing-it.patch
* powerpc-add-an-ioremap_phb-helper.patch
* powerpc-remove-__ioremap_at-and-__iounmap_at.patch
* mm-remove-__get_vm_area.patch
* mm-unexport-unmap_kernel_range_noflush.patch
* mm-rename-config_pgtable_mapping-to-config_zsmalloc_pgtable_mapping.patch
* mm-only-allow-page-table-mappings-for-built-in-zsmalloc.patch
* mm-pass-addr-as-unsigned-long-to-vb_free.patch
* mm-remove-vmap_page_range_noflush-and-vunmap_page_range.patch
* mm-rename-vmap_page_range-to-map_kernel_range.patch
* mm-dont-return-the-number-of-pages-from-map_kernel_range_noflush.patch
* mm-remove-map_vm_range.patch
* mm-remove-unmap_vmap_area.patch
* mm-remove-the-prot-argument-from-vm_map_ram.patch
* mm-enforce-that-vmap-cant-map-pages-executable.patch
* gpu-drm-remove-the-powerpc-hack-in-drm_legacy_sg_alloc.patch
* mm-remove-the-pgprot-argument-to-__vmalloc.patch
* mm-remove-the-prot-argument-to-__vmalloc_node.patch
* mm-remove-both-instances-of-__vmalloc_node_flags.patch
* mm-remove-__vmalloc_node_flags_caller.patch
* mm-remove-__vmalloc_node_flags_caller-fix.patch
* mm-switch-the-test_vmalloc-module-to-use-__vmalloc_node.patch
* mm-switch-the-test_vmalloc-module-to-use-__vmalloc_node-fix.patch
* mm-remove-vmalloc_user_node_flags.patch
* mm-remove-vmalloc_user_node_flags-fix.patch
* arm64-use-__vmalloc_node-in-arch_alloc_vmap_stack.patch
* powerpc-use-__vmalloc_node-in-alloc_vm_stack.patch
* s390-use-__vmalloc_node-in-stack_alloc.patch
* mm-init-report-kasan-tag-information-stored-in-page-flags.patch
* mm-clarify-__gfp_memalloc-usage.patch
* mm-memblock-replace-dereferences-of-memblock_regionnid-with-api-calls.patch
* mm-make-early_pfn_to_nid-and-related-defintions-close-to-each-other.patch
* mm-remove-config_have_memblock_node_map-option.patch
* mm-free_area_init-use-maximal-zone-pfns-rather-than-zone-sizes.patch
* mm-use-free_area_init-instead-of-free_area_init_nodes.patch
* alpha-simplify-detection-of-memory-zone-boundaries.patch
* arm-simplify-detection-of-memory-zone-boundaries.patch
* arm64-simplify-detection-of-memory-zone-boundaries-for-uma-configs.patch
* csky-simplify-detection-of-memory-zone-boundaries.patch
* m68k-mm-simplify-detection-of-memory-zone-boundaries.patch
* parisc-simplify-detection-of-memory-zone-boundaries.patch
* sparc32-simplify-detection-of-memory-zone-boundaries.patch
* unicore32-simplify-detection-of-memory-zone-boundaries.patch
* xtensa-simplify-detection-of-memory-zone-boundaries.patch
* mm-memmap_init-iterate-over-memblock-regions-rather-that-check-each-pfn.patch
* mm-memmap_init-iterate-over-memblock-regions-rather-that-check-each-pfn-fix.patch
* mm-remove-early_pfn_in_nid-and-config_nodes_span_other_nodes.patch
* mm-free_area_init-allow-defining-max_zone_pfn-in-descending-order.patch
* mm-rename-free_area_init_node-to-free_area_init_memoryless_node.patch
* mm-clean-up-free_area_init_node-and-its-helpers.patch
* mm-simplify-find_min_pfn_with_active_regions.patch
* docs-vm-update-memory-models-documentation.patch
* mm-page_allocc-bad_-is-not-necessary-when-pagehwpoison.patch
* mm-page_allocc-bad_flags-is-not-necessary-for-bad_page.patch
* mm-page_allocc-rename-free_pages_check_bad-to-check_free_page_bad.patch
* mm-page_allocc-rename-free_pages_check-to-check_free_page.patch
* mm-page_allocc-extract-check__page_bad-common-part-to-page_bad_reason.patch
* mmpage_alloccma-conditionally-prefer-cma-pageblocks-for-movable-allocations.patch
* mmpage_alloccma-conditionally-prefer-cma-pageblocks-for-movable-allocations-fix.patch
* mm-call-touch_nmi_watchdog-on-max-order-boundaries-in-deferred-init.patch
* mm-initialize-deferred-pages-with-interrupts-enabled.patch
* mm-call-cond_resched-from-deferred_init_memmap.patch
* mm-remove-unused-free_bootmem_with_active_regions.patch
* mm-page_allocc-only-tune-sysctl_lowmem_reserve_ratio-value-once-when-changing-it.patch
* mm-page_allocc-clear-out-zone-lowmem_reserve-if-the-zone-is-empty.patch
* mm-vmstatc-do-not-show-lowmem-reserve-protection-information-of-empty-zone.patch
* mm-page_alloc-use-ac-high_zoneidx-for-classzone_idx.patch
* mm-page_alloc-integrate-classzone_idx-and-high_zoneidx.patch
* mm-page_allocc-use-node_mask_none-in-build_zonelists.patch
* mm-rename-gfpflags_to_migratetype-to-gfp_migratetype-for-same-convention.patch
* mm-vmscanc-use-update_lru_size-in-update_lru_sizes.patch
* hugetlb_cgroup-remove-unused-variable-i.patch
* khugepaged-add-self-test.patch
* khugepaged-add-self-test-fix.patch
* khugepaged-do-not-stop-collapse-if-less-than-half-ptes-are-referenced.patch
* khugepaged-drain-all-lru-caches-before-scanning-pages.patch
* khugepaged-drain-lru-add-pagevec-after-swapin.patch
* khugepaged-allow-to-collapse-a-page-shared-across-fork.patch
* khugepaged-allow-to-collapse-pte-mapped-compound-pages.patch
* thp-change-cow-semantics-for-anon-thp.patch
* khugepaged-introduce-max_ptes_shared-tunable.patch
* khugepaged-introduce-max_ptes_shared-tunable-fix.patch
* hugetlbfs-add-arch_hugetlb_valid_size.patch
* hugetlbfs-move-hugepagesz=-parsing-to-arch-independent-code.patch
* hugetlbfs-remove-hugetlb_add_hstate-warning-for-existing-hstate.patch
* hugetlbfs-remove-hugetlb_add_hstate-warning-for-existing-hstate-fix.patch
* hugetlbfs-clean-up-command-line-processing.patch
* mm-thp-dont-need-drain-lru-cache-when-splitting-and-mlocking-thp.patch
* powerpc-mm-drop-platform-defined-pmd_mknotpresent.patch
* mm-thp-rename-pmd_mknotpresent-as-pmd_mknotvalid.patch
* drivers-base-memoryc-cache-memory-blocks-in-xarray-to-accelerate-lookup.patch
* drivers-base-memoryc-cache-memory-blocks-in-xarray-to-accelerate-lookup-fix.patch
* mm-memory_hotplug-refrain-from-adding-memory-into-an-impossible-node.patch
* powerpc-pseries-hotplug-memory-stop-checking-is_mem_section_removable.patch
* mm-memory_hotplug-remove-is_mem_section_removable.patch
* mm-replace-zero-length-array-with-flexible-array-member.patch
* mm-replace-zero-length-array-with-flexible-array-member-fix.patch
* mm-memory_hotplug-fix-a-typo-in-comment-recoreded-recorded.patch
* mm-ksm-fix-a-typo-in-comment-alreaady-already.patch
* mm-ksm-fix-a-typo-in-comment-alreaady-already-v2.patch
* mm-mmap-fix-a-typo-in-comment-compatbility-compatibility.patch
* mm-hugetlb-fix-a-typo-in-comment-manitained-maintained.patch
* mm-hugetlb-fix-a-typo-in-comment-manitained-maintained-v2.patch
* mm-hugetlb-fix-a-typo-in-comment-manitained-maintained-v2-checkpatch-fixes.patch
* mm-vmsan-fix-some-typos-in-comment.patch
* mm-compaction-fix-a-typo-in-comment-pessemistic-pessimistic.patch
* mm-memblock-fix-a-typo-in-comment-implict-implicit.patch
* mm-list_lru-fix-a-typo-in-comment-numbesr-numbers.patch
* mm-filemap-fix-a-typo-in-comment-unneccssary-unnecessary.patch
* mm-frontswap-fix-some-typos-in-frontswapc.patch
* mm-memcg-fix-some-typos-in-memcontrolc.patch
* mm-fix-a-typo-in-comment-strucure-structure.patch
* mm-slub-fix-a-typo-in-comment-disambiguiation-disambiguation.patch
* mm-sparse-fix-a-typo-in-comment-convienence-convenience.patch
* mm-page-writeback-fix-a-typo-in-comment-effictive-effective.patch
* mm-memory-fix-a-typo-in-comment-attampt-attempt.patch
* mm-use-false-for-bool-variable.patch
* info-task-hung-in-generic_file_write_iter.patch
* info-task-hung-in-generic_file_write-fix.patch
* kernel-hung_taskc-monitor-killed-tasks.patch
* proc-rename-catch-function-argument.patch
* proc-rename-struct-proc_fs_info-to-proc_fs_opts.patch
* proc-allow-to-mount-many-instances-of-proc-in-one-pid-namespace.patch
* proc-instantiate-only-pids-that-we-can-ptrace-on-hidepid=4-mount-option.patch
* proc-add-option-to-mount-only-a-pids-subset.patch
* docs-proc-add-documentation-for-hidepid=4-and-subset=pid-options-and-new-mount-behavior.patch
* proc-use-human-readable-values-for-hidepid.patch
* proc-use-named-enums-for-better-readability.patch
* x86-mm-define-mm_p4d_folded.patch
* mm-debug-add-tests-validating-architecture-page-table-helpers.patch
* mm-debug-add-tests-validating-architecture-page-table-helpers-v17.patch
* userc-make-uidhash_table-static.patch
* parisc-add-sysctl-file-interface-panic_on_stackoverflow.patch
* kernel-hung_taskc-introduce-sysctl-to-print-all-traces-when-a-hung-task-is-detected.patch
* dynamic_debug-add-an-option-to-enable-dynamic-debug-for-modules-only.patch
* dynamic_debug-add-an-option-to-enable-dynamic-debug-for-modules-only-v2.patch
* lib-math-avoid-trailing-n-hidden-in-pr_fmt.patch
* lib-add-might_fault-to-strncpy_from_user.patch
* lib-optimize-cpumask_local_spread.patch
* lib-test_lockupc-make-test_inode-static.patch
* checkpatch-additional-maintainer-section-entry-ordering-checks.patch
* checkpatch-look-for-c99-comments-in-ctx_locate_comment.patch
* fs-binfmt_elf-remove-redundant-elf_map-ifndef.patch
* elfnote-mark-all-note-sections-shf_alloc.patch
* initrdmem=-option-to-specify-initrd-physical-address.patch
* initrdmem=-option-to-specify-initrd-physical-address-checkpatch-fixes.patch
* fat-dont-allow-to-mount-if-the-fat-length-==-0.patch
* fat-improve-the-readahead-for-fat-entries.patch
* fs-seq_filec-seq_read-update-pr_info_ratelimited.patch
* umh-fix-refcount-underflow-in-fork_usermode_blob.patch
* kexec-prevent-removal-of-memory-in-use-by-a-loaded-kexec-image.patch
* mm-memory_hotplug-allow-arch-override-of-non-boot-memory-resource-names.patch
* arm64-memory-give-hotplug-memory-a-different-resource-name.patch
* panic-add-sysctl-to-dump-all-cpus-backtraces-on-oops-event.patch
* kernel-relayc-fix-read_pos-error-when-multiple-readers.patch
* aio-simplify-read_events.patch
* selftests-x86-pkeys-move-selftests-to-arch-neutral-directory.patch
* selftests-vm-pkeys-rename-all-references-to-pkru-to-a-generic-name.patch
* selftests-vm-pkeys-move-generic-definitions-to-header-file.patch
* selftests-vm-pkeys-move-some-definitions-to-arch-specific-header.patch
* selftests-vm-pkeys-make-gcc-check-arguments-of-sigsafe_printf.patch
* selftests-vm-pkeys-use-sane-types-for-pkey-register.patch
* selftests-vm-pkeys-add-helpers-for-pkey-bits.patch
* selftests-vm-pkeys-fix-pkey_disable_clear.patch
* selftests-vm-pkeys-fix-assertion-in-pkey_disable_set-clear.patch
* selftests-vm-pkeys-fix-alloc_random_pkey-to-make-it-really-random.patch
* selftests-vm-pkeys-use-the-correct-huge-page-size.patch
* selftests-vm-pkeys-introduce-generic-pkey-abstractions.patch
* selftests-vm-pkeys-introduce-powerpc-support.patch
* selftests-vm-pkeys-fix-number-of-reserved-powerpc-pkeys.patch
* selftests-vm-pkeys-fix-assertion-in-test_pkey_alloc_exhaust.patch
* selftests-vm-pkeys-improve-checks-to-determine-pkey-support.patch
* selftests-vm-pkeys-associate-key-on-a-mapped-page-and-detect-access-violation.patch
* selftests-vm-pkeys-associate-key-on-a-mapped-page-and-detect-write-violation.patch
* selftests-vm-pkeys-detect-write-violation-on-a-mapped-access-denied-key-page.patch
* selftests-vm-pkeys-introduce-a-sub-page-allocator.patch
* selftests-vm-pkeys-test-correct-behaviour-of-pkey-0.patch
* selftests-vm-pkeys-override-access-right-definitions-on-powerpc.patch
* selftests-vm-pkeys-use-the-correct-page-size-on-powerpc.patch
* selftests-vm-pkeys-fix-multilib-builds-for-x86.patch
* tools-testing-selftests-vm-remove-duplicate-headers.patch
* ipc-msg-add-missing-annotation-for-freeque.patch
* ipc-use-a-work-queue-to-free_ipc.patch
* ipc-convert-ipcs_idr-to-xarray.patch
linux-next.patch
linux-next-fix.patch
* amdgpu-a-null-mm-does-not-mean-a-thread-is-a-kthread.patch
* i915-gvt-remove-unused-xen-bits.patch
* kernel-move-use_mm-unuse_mm-to-kthreadc.patch
* kernel-move-use_mm-unuse_mm-to-kthreadc-v2.patch
* kernel-better-document-the-use_mm-unuse_mm-api-contract.patch
* kernel-better-document-the-use_mm-unuse_mm-api-contract-v2.patch
* kernel-set-user_ds-in-kthread_use_mm.patch
* mm-kmemleak-silence-kcsan-splats-in-checksum.patch
* kallsyms-printk-add-loglvl-to-print_ip_sym.patch
* alpha-add-show_stack_loglvl.patch
* arc-add-show_stack_loglvl.patch
* arm-asm-add-loglvl-to-c_backtrace.patch
* arm-add-loglvl-to-unwind_backtrace.patch
* arm-add-loglvl-to-dump_backtrace.patch
* arm-wire-up-dump_backtrace_entrystm.patch
* arm-add-show_stack_loglvl.patch
* arm64-add-loglvl-to-dump_backtrace.patch
* arm64-add-show_stack_loglvl.patch
* c6x-add-show_stack_loglvl.patch
* csky-add-show_stack_loglvl.patch
* h8300-add-show_stack_loglvl.patch
* hexagon-add-show_stack_loglvl.patch
* ia64-pass-log-level-as-arg-into-ia64_do_show_stack.patch
* ia64-add-show_stack_loglvl.patch
* m68k-add-show_stack_loglvl.patch
* microblaze-add-loglvl-to-microblaze_unwind_inner.patch
* microblaze-add-loglvl-to-microblaze_unwind.patch
* microblaze-add-show_stack_loglvl.patch
* mips-add-show_stack_loglvl.patch
* nds32-add-show_stack_loglvl.patch
* nios2-add-show_stack_loglvl.patch
* openrisc-add-show_stack_loglvl.patch
* parisc-add-show_stack_loglvl.patch
* powerpc-add-show_stack_loglvl.patch
* riscv-add-show_stack_loglvl.patch
* s390-add-show_stack_loglvl.patch
* sh-add-loglvl-to-dump_mem.patch
* sh-remove-needless-printk.patch
* sh-add-loglvl-to-printk_address.patch
* sh-add-loglvl-to-show_trace.patch
* sh-add-show_stack_loglvl.patch
* sparc-add-show_stack_loglvl.patch
* um-sysrq-remove-needless-variable-sp.patch
* um-add-show_stack_loglvl.patch
* unicore32-remove-unused-pmode-argument-in-c_backtrace.patch
* unicore32-add-loglvl-to-c_backtrace.patch
* unicore32-add-show_stack_loglvl.patch
* x86-add-missing-const-qualifiers-for-log_lvl.patch
* x86-add-show_stack_loglvl.patch
* xtensa-add-loglvl-to-show_trace.patch
* xtensa-add-show_stack_loglvl.patch
* sysrq-use-show_stack_loglvl.patch
* x86-amd_gart-print-stacktrace-for-a-leak-with-kern_err.patch
* power-use-show_stack_loglvl.patch
* kdb-dont-play-with-console_loglevel.patch
* sched-print-stack-trace-with-kern_info.patch
* kernel-use-show_stack_loglvl.patch
* kernel-rename-show_stack_loglvl-=-show_stack.patch
* mm-frontswap-mark-various-intentional-data-races.patch
* mm-page_io-mark-various-intentional-data-races.patch
* mm-page_io-mark-various-intentional-data-races-v2.patch
* mm-swap_state-mark-various-intentional-data-races.patch
* mm-filemap-fix-a-data-race-in-filemap_fault.patch
* mm-swapfile-fix-and-annotate-various-data-races.patch
* mm-swapfile-fix-and-annotate-various-data-races-v2.patch
* mm-page_counter-fix-various-data-races-at-memsw.patch
* mm-memcontrol-fix-a-data-race-in-scan-count.patch
* mm-list_lru-fix-a-data-race-in-list_lru_count_one.patch
* mm-mempool-fix-a-data-race-in-mempool_free.patch
* mm-util-annotate-an-data-race-at-vm_committed_as.patch
* mm-rmap-annotate-a-data-race-at-tlb_flush_batched.patch
* mm-annotate-a-data-race-in-page_zonenum.patch
* mm-swap-annotate-data-races-for-lru_rotate_pvecs.patch
* net-zerocopy-use-vm_insert_pages-for-tcp-rcv-zerocopy.patch
* mm-mmapc-add-more-sanity-checks-to-get_unmapped_area.patch
* mm-mmapc-do-not-allow-mappings-outside-of-allowed-limits.patch
* mm-pass-task-and-mm-to-do_madvise.patch
* mm-introduce-external-memory-hinting-api.patch
* mm-introduce-external-memory-hinting-api-fix.patch
* mm-check-fatal-signal-pending-of-target-process.patch
* pid-move-pidfd_get_pid-function-to-pidc.patch
* mm-support-both-pid-and-pidfd-for-process_madvise.patch
* mm-madvise-employ-mmget_still_valid-for-write-lock.patch
* mm-madvise-allow-ksm-hints-for-remote-api.patch
* fix-read-buffer-overflow-in-delta-ipc.patch
make-sure-nobodys-leaking-resources.patch
releasing-resources-with-children.patch
mutex-subsystem-synchro-test-module.patch
kernel-forkc-export-kernel_thread-to-modules.patch
workaround-for-a-pci-restoring-bug.patch
^ permalink raw reply [flat|nested] 215+ messages in thread
* + mm-swapfilec-found_free-could-be-represented-by-tmp-max.patch added to -mm tree
2020-04-21 1:13 incoming Andrew Morton
` (22 preceding siblings ...)
2020-04-21 5:43 ` mmotm 2020-04-20-22-43 uploaded Andrew Morton
@ 2020-04-22 1:36 ` Andrew Morton
2020-04-22 1:36 ` + mm-swapfilec-tmp-is-always-smaller-than-max.patch " Andrew Morton
` (43 subsequent siblings)
67 siblings, 0 replies; 215+ messages in thread
From: Andrew Morton @ 2020-04-22 1:36 UTC (permalink / raw)
To: hughd, mm-commits, richard.weiyang, tim.c.chen, ying.huang
The patch titled
Subject: mm/swapfile.c: found_free could be represented by (tmp < max)
has been added to the -mm tree. Its filename is
mm-swapfilec-found_free-could-be-represented-by-tmp-max.patch
This patch should soon appear at
http://ozlabs.org/~akpm/mmots/broken-out/mm-swapfilec-found_free-could-be-represented-by-tmp-max.patch
and later at
http://ozlabs.org/~akpm/mmotm/broken-out/mm-swapfilec-found_free-could-be-represented-by-tmp-max.patch
Before you just go and hit "reply", please:
a) Consider who else should be cc'ed
b) Prefer to cc a suitable mailing list as well
c) Ideally: find the original patch on the mailing list and do a
reply-to-all to that, adding suitable additional cc's
*** Remember to use Documentation/process/submit-checklist.rst when testing your code ***
The -mm tree is included into linux-next and is updated
there every 3-4 working days
------------------------------------------------------
From: Wei Yang <richard.weiyang@gmail.com>
Subject: mm/swapfile.c: found_free could be represented by (tmp < max)
This is not necessary to use the variable found_free to record the status.
Just check tmp and max is enough.
Link: http://lkml.kernel.org/r/20200421213824.8099-1-richard.weiyang@gmail.com
Signed-off-by: Wei Yang <richard.weiyang@gmail.com>
Reviewed-by: "Huang, Ying" <ying.huang@intel.com>
Cc: Tim Chen <tim.c.chen@linux.intel.com>
Cc: Hugh Dickins <hughd@google.com>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
---
mm/swapfile.c | 11 +++--------
1 file changed, 3 insertions(+), 8 deletions(-)
--- a/mm/swapfile.c~mm-swapfilec-found_free-could-be-represented-by-tmp-max
+++ a/mm/swapfile.c
@@ -601,7 +601,6 @@ static bool scan_swap_map_try_ssd_cluste
{
struct percpu_cluster *cluster;
struct swap_cluster_info *ci;
- bool found_free;
unsigned long tmp, max;
new_cluster:
@@ -623,8 +622,6 @@ new_cluster:
return false;
}
- found_free = false;
-
/*
* Other CPUs can use our cluster if they can't find a free cluster,
* check if there is still free entry in the cluster
@@ -638,21 +635,19 @@ new_cluster:
}
ci = lock_cluster(si, tmp);
while (tmp < max) {
- if (!si->swap_map[tmp]) {
- found_free = true;
+ if (!si->swap_map[tmp])
break;
- }
tmp++;
}
unlock_cluster(ci);
- if (!found_free) {
+ if (tmp >= max) {
cluster_set_null(&cluster->index);
goto new_cluster;
}
cluster->next = tmp + 1;
*offset = tmp;
*scan_base = tmp;
- return found_free;
+ return tmp < max;
}
static void __del_from_avail_list(struct swap_info_struct *p)
_
Patches currently in -mm which might be from richard.weiyang@gmail.com are
mm-swapfilec-offset-is-only-used-when-there-is-more-slots.patch
mm-swapfilec-explicitly-show-ssd-non-ssd-is-handled-mutually-exclusive.patch
mm-swapfilec-remove-the-unnecessary-goto-for-ssd-case.patch
mm-swapfilec-simplify-the-calculation-of-n_goal.patch
mm-swapfilec-remove-the-extra-check-in-scan_swap_map_slots.patch
mm-swapfilec-found_free-could-be-represented-by-tmp-max.patch
mm-swapfilec-tmp-is-always-smaller-than-max.patch
mm-swapfilec-omit-a-duplicate-code-by-compare-tmp-and-max-first.patch
mm-page_allocc-bad_-is-not-necessary-when-pagehwpoison.patch
mm-page_allocc-bad_flags-is-not-necessary-for-bad_page.patch
mm-page_allocc-rename-free_pages_check_bad-to-check_free_page_bad.patch
mm-page_allocc-rename-free_pages_check-to-check_free_page.patch
mm-page_allocc-extract-check__page_bad-common-part-to-page_bad_reason.patch
mm-page_allocc-use-node_mask_none-in-build_zonelists.patch
mm-rename-gfpflags_to_migratetype-to-gfp_migratetype-for-same-convention.patch
mm-vmscanc-use-update_lru_size-in-update_lru_sizes.patch
^ permalink raw reply [flat|nested] 215+ messages in thread
* + mm-swapfilec-tmp-is-always-smaller-than-max.patch added to -mm tree
2020-04-21 1:13 incoming Andrew Morton
` (23 preceding siblings ...)
2020-04-22 1:36 ` + mm-swapfilec-found_free-could-be-represented-by-tmp-max.patch added to -mm tree Andrew Morton
@ 2020-04-22 1:36 ` Andrew Morton
2020-04-22 1:36 ` + mm-swapfilec-omit-a-duplicate-code-by-compare-tmp-and-max-first.patch " Andrew Morton
` (42 subsequent siblings)
67 siblings, 0 replies; 215+ messages in thread
From: Andrew Morton @ 2020-04-22 1:36 UTC (permalink / raw)
To: hughd, mm-commits, richard.weiyang, tim.c.chen, ying.huang
The patch titled
Subject: mm/swapfile.c: tmp is always smaller than max
has been added to the -mm tree. Its filename is
mm-swapfilec-tmp-is-always-smaller-than-max.patch
This patch should soon appear at
http://ozlabs.org/~akpm/mmots/broken-out/mm-swapfilec-tmp-is-always-smaller-than-max.patch
and later at
http://ozlabs.org/~akpm/mmotm/broken-out/mm-swapfilec-tmp-is-always-smaller-than-max.patch
Before you just go and hit "reply", please:
a) Consider who else should be cc'ed
b) Prefer to cc a suitable mailing list as well
c) Ideally: find the original patch on the mailing list and do a
reply-to-all to that, adding suitable additional cc's
*** Remember to use Documentation/process/submit-checklist.rst when testing your code ***
The -mm tree is included into linux-next and is updated
there every 3-4 working days
------------------------------------------------------
From: Wei Yang <richard.weiyang@gmail.com>
Subject: mm/swapfile.c: tmp is always smaller than max
If tmp is bigger or equal to max, we would jump to new_cluster.
Return true directly.
Link: http://lkml.kernel.org/r/20200421213824.8099-2-richard.weiyang@gmail.com
Signed-off-by: Wei Yang <richard.weiyang@gmail.com>
Reviewed-by: "Huang, Ying" <ying.huang@intel.com>
Cc: Tim Chen <tim.c.chen@linux.intel.com>
Cc: Hugh Dickins <hughd@google.com>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
---
mm/swapfile.c | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
--- a/mm/swapfile.c~mm-swapfilec-tmp-is-always-smaller-than-max
+++ a/mm/swapfile.c
@@ -647,7 +647,7 @@ new_cluster:
cluster->next = tmp + 1;
*offset = tmp;
*scan_base = tmp;
- return tmp < max;
+ return true;
}
static void __del_from_avail_list(struct swap_info_struct *p)
_
Patches currently in -mm which might be from richard.weiyang@gmail.com are
mm-swapfilec-offset-is-only-used-when-there-is-more-slots.patch
mm-swapfilec-explicitly-show-ssd-non-ssd-is-handled-mutually-exclusive.patch
mm-swapfilec-remove-the-unnecessary-goto-for-ssd-case.patch
mm-swapfilec-simplify-the-calculation-of-n_goal.patch
mm-swapfilec-remove-the-extra-check-in-scan_swap_map_slots.patch
mm-swapfilec-found_free-could-be-represented-by-tmp-max.patch
mm-swapfilec-tmp-is-always-smaller-than-max.patch
mm-swapfilec-omit-a-duplicate-code-by-compare-tmp-and-max-first.patch
mm-page_allocc-bad_-is-not-necessary-when-pagehwpoison.patch
mm-page_allocc-bad_flags-is-not-necessary-for-bad_page.patch
mm-page_allocc-rename-free_pages_check_bad-to-check_free_page_bad.patch
mm-page_allocc-rename-free_pages_check-to-check_free_page.patch
mm-page_allocc-extract-check__page_bad-common-part-to-page_bad_reason.patch
mm-page_allocc-use-node_mask_none-in-build_zonelists.patch
mm-rename-gfpflags_to_migratetype-to-gfp_migratetype-for-same-convention.patch
mm-vmscanc-use-update_lru_size-in-update_lru_sizes.patch
^ permalink raw reply [flat|nested] 215+ messages in thread
* + mm-swapfilec-omit-a-duplicate-code-by-compare-tmp-and-max-first.patch added to -mm tree
2020-04-21 1:13 incoming Andrew Morton
` (24 preceding siblings ...)
2020-04-22 1:36 ` + mm-swapfilec-tmp-is-always-smaller-than-max.patch " Andrew Morton
@ 2020-04-22 1:36 ` Andrew Morton
2020-04-23 22:36 ` + kasan-initialise-array-in-kasan_memcmp-test.patch " Andrew Morton
` (41 subsequent siblings)
67 siblings, 0 replies; 215+ messages in thread
From: Andrew Morton @ 2020-04-22 1:36 UTC (permalink / raw)
To: hughd, mm-commits, richard.weiyang, tim.c.chen, ying.huang
The patch titled
Subject: mm/swapfile.c: omit a duplicate code by compare tmp and max first
has been added to the -mm tree. Its filename is
mm-swapfilec-omit-a-duplicate-code-by-compare-tmp-and-max-first.patch
This patch should soon appear at
http://ozlabs.org/~akpm/mmots/broken-out/mm-swapfilec-omit-a-duplicate-code-by-compare-tmp-and-max-first.patch
and later at
http://ozlabs.org/~akpm/mmotm/broken-out/mm-swapfilec-omit-a-duplicate-code-by-compare-tmp-and-max-first.patch
Before you just go and hit "reply", please:
a) Consider who else should be cc'ed
b) Prefer to cc a suitable mailing list as well
c) Ideally: find the original patch on the mailing list and do a
reply-to-all to that, adding suitable additional cc's
*** Remember to use Documentation/process/submit-checklist.rst when testing your code ***
The -mm tree is included into linux-next and is updated
there every 3-4 working days
------------------------------------------------------
From: Wei Yang <richard.weiyang@gmail.com>
Subject: mm/swapfile.c: omit a duplicate code by compare tmp and max first
There are two duplicate code to handle the case when there is no available
swap entry. To avoid this, we can compare tmp and max first and let the
second guard do its job.
No functional change is expected.
Link: http://lkml.kernel.org/r/20200421213824.8099-3-richard.weiyang@gmail.com
Signed-off-by: Wei Yang <richard.weiyang@gmail.com>
Reviewed-by: "Huang, Ying" <ying.huang@intel.com>
Cc: Tim Chen <tim.c.chen@linux.intel.com>
Cc: Hugh Dickins <hughd@google.com>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
---
mm/swapfile.c | 18 ++++++++----------
1 file changed, 8 insertions(+), 10 deletions(-)
--- a/mm/swapfile.c~mm-swapfilec-omit-a-duplicate-code-by-compare-tmp-and-max-first
+++ a/mm/swapfile.c
@@ -629,17 +629,15 @@ new_cluster:
tmp = cluster->next;
max = min_t(unsigned long, si->max,
(cluster_next(&cluster->index) + 1) * SWAPFILE_CLUSTER);
- if (tmp >= max) {
- cluster_set_null(&cluster->index);
- goto new_cluster;
- }
- ci = lock_cluster(si, tmp);
- while (tmp < max) {
- if (!si->swap_map[tmp])
- break;
- tmp++;
+ if (tmp < max) {
+ ci = lock_cluster(si, tmp);
+ while (tmp < max) {
+ if (!si->swap_map[tmp])
+ break;
+ tmp++;
+ }
+ unlock_cluster(ci);
}
- unlock_cluster(ci);
if (tmp >= max) {
cluster_set_null(&cluster->index);
goto new_cluster;
_
Patches currently in -mm which might be from richard.weiyang@gmail.com are
mm-swapfilec-offset-is-only-used-when-there-is-more-slots.patch
mm-swapfilec-explicitly-show-ssd-non-ssd-is-handled-mutually-exclusive.patch
mm-swapfilec-remove-the-unnecessary-goto-for-ssd-case.patch
mm-swapfilec-simplify-the-calculation-of-n_goal.patch
mm-swapfilec-remove-the-extra-check-in-scan_swap_map_slots.patch
mm-swapfilec-found_free-could-be-represented-by-tmp-max.patch
mm-swapfilec-tmp-is-always-smaller-than-max.patch
mm-swapfilec-omit-a-duplicate-code-by-compare-tmp-and-max-first.patch
mm-page_allocc-bad_-is-not-necessary-when-pagehwpoison.patch
mm-page_allocc-bad_flags-is-not-necessary-for-bad_page.patch
mm-page_allocc-rename-free_pages_check_bad-to-check_free_page_bad.patch
mm-page_allocc-rename-free_pages_check-to-check_free_page.patch
mm-page_allocc-extract-check__page_bad-common-part-to-page_bad_reason.patch
mm-page_allocc-use-node_mask_none-in-build_zonelists.patch
mm-rename-gfpflags_to_migratetype-to-gfp_migratetype-for-same-convention.patch
mm-vmscanc-use-update_lru_size-in-update_lru_sizes.patch
^ permalink raw reply [flat|nested] 215+ messages in thread
* + kasan-initialise-array-in-kasan_memcmp-test.patch added to -mm tree
2020-04-21 1:13 incoming Andrew Morton
` (25 preceding siblings ...)
2020-04-22 1:36 ` + mm-swapfilec-omit-a-duplicate-code-by-compare-tmp-and-max-first.patch " Andrew Morton
@ 2020-04-23 22:36 ` Andrew Morton
2020-04-23 22:38 ` + kvm-svm-change-flag-passed-to-gup-fast-in-sev_pin_memory.patch " Andrew Morton
` (40 subsequent siblings)
67 siblings, 0 replies; 215+ messages in thread
From: Andrew Morton @ 2020-04-23 22:36 UTC (permalink / raw)
To: aryabinin, danielmicay, dja, dvyukov, glider, mm-commits
The patch titled
Subject: kasan: initialise array in kasan_memcmp test
has been added to the -mm tree. Its filename is
kasan-initialise-array-in-kasan_memcmp-test.patch
This patch should soon appear at
http://ozlabs.org/~akpm/mmots/broken-out/kasan-initialise-array-in-kasan_memcmp-test.patch
and later at
http://ozlabs.org/~akpm/mmotm/broken-out/kasan-initialise-array-in-kasan_memcmp-test.patch
Before you just go and hit "reply", please:
a) Consider who else should be cc'ed
b) Prefer to cc a suitable mailing list as well
c) Ideally: find the original patch on the mailing list and do a
reply-to-all to that, adding suitable additional cc's
*** Remember to use Documentation/process/submit-checklist.rst when testing your code ***
The -mm tree is included into linux-next and is updated
there every 3-4 working days
------------------------------------------------------
From: Daniel Axtens <dja@axtens.net>
Subject: kasan: initialise array in kasan_memcmp test
memcmp may bail out before accessing all the memory if the buffers contain
differing bytes. kasan_memcmp calls memcmp with a stack array. Stack
variables are not necessarily initialised (in the absence of a compiler
plugin, at least). Sometimes this causes the memcpy to bail early thus
fail to trigger kasan.
Make sure the array initialised to zero in the code.
No other test is dependent on the contents of an array on the stack.
Link: http://lkml.kernel.org/r/20200423154503.5103-4-dja@axtens.net
Signed-off-by: Daniel Axtens <dja@axtens.net>
Reviewed-by: Dmitry Vyukov <dvyukov@google.com>
Cc: Andrey Ryabinin <aryabinin@virtuozzo.com>
Cc: Alexander Potapenko <glider@google.com>
Cc: Daniel Micay <danielmicay@gmail.com>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
---
lib/test_kasan.c | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
--- a/lib/test_kasan.c~kasan-initialise-array-in-kasan_memcmp-test
+++ a/lib/test_kasan.c
@@ -638,7 +638,7 @@ static noinline void __init kasan_memcmp
{
char *ptr;
size_t size = 24;
- int arr[9];
+ int arr[9] = {};
pr_info("out-of-bounds in memcmp\n");
ptr = kmalloc(size, GFP_KERNEL | __GFP_ZERO);
_
Patches currently in -mm which might be from dja@axtens.net are
kasan-stop-tests-being-eliminated-as-dead-code-with-fortify_source.patch
stringh-fix-incompatibility-between-fortify_source-and-kasan.patch
kasan-initialise-array-in-kasan_memcmp-test.patch
^ permalink raw reply [flat|nested] 215+ messages in thread
* + kvm-svm-change-flag-passed-to-gup-fast-in-sev_pin_memory.patch added to -mm tree
2020-04-21 1:13 incoming Andrew Morton
` (26 preceding siblings ...)
2020-04-23 22:36 ` + kasan-initialise-array-in-kasan_memcmp-test.patch " Andrew Morton
@ 2020-04-23 22:38 ` Andrew Morton
2020-04-23 22:41 ` + mm-pass-task-and-mm-to-do_madvise-fix.patch " Andrew Morton
` (39 subsequent siblings)
67 siblings, 0 replies; 215+ messages in thread
From: Andrew Morton @ 2020-04-23 22:38 UTC (permalink / raw)
To: bp, brijesh.singh, hpa, hubcap, ira.weiny, Janakarajan.Natarajan,
jmattson, joro, mingo, mm-commits, pbonzini,
sean.j.christopherson, tglx, vkuznets, wanpengli
The patch titled
Subject: arch/x86/kvm/svm/sev.c: change flag passed to GUP fast in sev_pin_memory()
has been added to the -mm tree. Its filename is
kvm-svm-change-flag-passed-to-gup-fast-in-sev_pin_memory.patch
This patch should soon appear at
http://ozlabs.org/~akpm/mmots/broken-out/kvm-svm-change-flag-passed-to-gup-fast-in-sev_pin_memory.patch
and later at
http://ozlabs.org/~akpm/mmotm/broken-out/kvm-svm-change-flag-passed-to-gup-fast-in-sev_pin_memory.patch
Before you just go and hit "reply", please:
a) Consider who else should be cc'ed
b) Prefer to cc a suitable mailing list as well
c) Ideally: find the original patch on the mailing list and do a
reply-to-all to that, adding suitable additional cc's
*** Remember to use Documentation/process/submit-checklist.rst when testing your code ***
The -mm tree is included into linux-next and is updated
there every 3-4 working days
------------------------------------------------------
From: Janakarajan Natarajan <Janakarajan.Natarajan@amd.com>
Subject: arch/x86/kvm/svm/sev.c: change flag passed to GUP fast in sev_pin_memory()
When trying to lock read-only pages, sev_pin_memory() fails because
FOLL_WRITE is used as the flag for get_user_pages_fast().
Commit 73b0140bf0fe ("mm/gup: change GUP fast to use flags rather than a
write 'bool'") updated the get_user_pages_fast() call sites to use flags,
but incorrectly updated the call in sev_pin_memory(). As the original
coding of this call was correct, revert the change made by that commit.
Link: http://lkml.kernel.org/r/20200423152419.87202-1-Janakarajan.Natarajan@amd.com
Fixes: 73b0140bf0fe ("mm/gup: change GUP fast to use flags rather than a write 'bool'")
Signed-off-by: Janakarajan Natarajan <Janakarajan.Natarajan@amd.com>
Reviewed-by: Ira Weiny <ira.weiny@intel.com>
Cc: Paolo Bonzini <pbonzini@redhat.com>
Cc: Sean Christopherson <sean.j.christopherson@intel.com>
Cc: Vitaly Kuznetsov <vkuznets@redhat.com>
Cc: Wanpeng Li <wanpengli@tencent.com>
Cc: Jim Mattson <jmattson@google.com>
Cc: Joerg Roedel <joro@8bytes.org>
Cc: Thomas Gleixner <tglx@linutronix.de>
Cc: Ingo Molnar <mingo@redhat.com>
Cc: Borislav Petkov <bp@alien8.de>
Cc: "H . Peter Anvin" <hpa@zytor.com>
Cc: Mike Marshall <hubcap@omnibond.com>
Cc: Brijesh Singh <brijesh.singh@amd.com>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
---
arch/x86/kvm/svm/sev.c | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
--- a/arch/x86/kvm/svm/sev.c~kvm-svm-change-flag-passed-to-gup-fast-in-sev_pin_memory
+++ a/arch/x86/kvm/svm/sev.c
@@ -345,7 +345,7 @@ static struct page **sev_pin_memory(stru
return NULL;
/* Pin the user virtual address. */
- npinned = get_user_pages_fast(uaddr, npages, FOLL_WRITE, pages);
+ npinned = get_user_pages_fast(uaddr, npages, write ? FOLL_WRITE : 0, pages);
if (npinned != npages) {
pr_err("SEV: Failure locking %lu pages.\n", npages);
goto err;
_
Patches currently in -mm which might be from Janakarajan.Natarajan@amd.com are
kvm-svm-change-flag-passed-to-gup-fast-in-sev_pin_memory.patch
^ permalink raw reply [flat|nested] 215+ messages in thread
* + mm-pass-task-and-mm-to-do_madvise-fix.patch added to -mm tree
2020-04-21 1:13 incoming Andrew Morton
` (27 preceding siblings ...)
2020-04-23 22:38 ` + kvm-svm-change-flag-passed-to-gup-fast-in-sev_pin_memory.patch " Andrew Morton
@ 2020-04-23 22:41 ` Andrew Morton
2020-04-23 22:44 ` + mm-support-vector-address-ranges-for-process_madvise.patch " Andrew Morton
` (38 subsequent siblings)
67 siblings, 0 replies; 215+ messages in thread
From: Andrew Morton @ 2020-04-23 22:41 UTC (permalink / raw)
To: axboe, jannh, minchan, mm-commits
The patch titled
Subject: fs: use current->mm for io_uring
has been added to the -mm tree. Its filename is
mm-pass-task-and-mm-to-do_madvise-fix.patch
This patch should soon appear at
http://ozlabs.org/~akpm/mmots/broken-out/mm-pass-task-and-mm-to-do_madvise-fix.patch
and later at
http://ozlabs.org/~akpm/mmotm/broken-out/mm-pass-task-and-mm-to-do_madvise-fix.patch
Before you just go and hit "reply", please:
a) Consider who else should be cc'ed
b) Prefer to cc a suitable mailing list as well
c) Ideally: find the original patch on the mailing list and do a
reply-to-all to that, adding suitable additional cc's
*** Remember to use Documentation/process/submit-checklist.rst when testing your code ***
The -mm tree is included into linux-next and is updated
there every 3-4 working days
------------------------------------------------------
From: Minchan Kim <minchan@kernel.org>
Subject: fs: use current->mm for io_uring
per-request by Jens,
https://lore.kernel.org/io-uring/46e5b8bf-0f14-caff-f706-91794191e730@kernel.dk/
Andrew, please fold this into "mm/madvise: pass task and mm to do_madvise"
Link: http://lkml.kernel.org/r/20200423145215.72666-1-minchan@kernel.org
Signed-off-by: Minchan Kim <minchan@kernel.org>
Cc: Jens Axboe <axboe@kernel.dk>
Cc: Jann Horn <jannh@google.com>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
---
fs/io_uring.c | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
--- a/fs/io_uring.c~mm-pass-task-and-mm-to-do_madvise-fix
+++ a/fs/io_uring.c
@@ -3267,7 +3267,7 @@ static int io_madvise(struct io_kiocb *r
if (force_nonblock)
return -EAGAIN;
- ret = do_madvise(NULL, req->work.mm, ma->addr, ma->len, ma->advice);
+ ret = do_madvise(NULL, current->mm, ma->addr, ma->len, ma->advice);
if (ret < 0)
req_set_fail_links(req);
io_cqring_add_event(req, ret);
_
Patches currently in -mm which might be from minchan@kernel.org are
mm-pass-task-and-mm-to-do_madvise.patch
mm-pass-task-and-mm-to-do_madvise-fix.patch
mm-introduce-external-memory-hinting-api.patch
mm-introduce-external-memory-hinting-api-fix.patch
mm-check-fatal-signal-pending-of-target-process.patch
pid-move-pidfd_get_pid-function-to-pidc.patch
mm-support-both-pid-and-pidfd-for-process_madvise.patch
^ permalink raw reply [flat|nested] 215+ messages in thread
* + mm-support-vector-address-ranges-for-process_madvise.patch added to -mm tree
2020-04-21 1:13 incoming Andrew Morton
` (28 preceding siblings ...)
2020-04-23 22:41 ` + mm-pass-task-and-mm-to-do_madvise-fix.patch " Andrew Morton
@ 2020-04-23 22:44 ` Andrew Morton
2020-04-23 22:44 ` + mm-support-vector-address-ranges-for-process_madvise-fix.patch " Andrew Morton
` (37 subsequent siblings)
67 siblings, 0 replies; 215+ messages in thread
From: Andrew Morton @ 2020-04-23 22:44 UTC (permalink / raw)
To: arjunroy, bgeffon, dancol, hannes, joaodias, joel, mhocko,
minchan, mm-commits, oleksandr, rientjes, shakeelb, sj38.park,
sonnyrao, sspatil, surenb, timmurray, vbabka
The patch titled
Subject: mm: support vector address ranges for process_madvise
has been added to the -mm tree. Its filename is
mm-support-vector-address-ranges-for-process_madvise.patch
This patch should soon appear at
http://ozlabs.org/~akpm/mmots/broken-out/mm-support-vector-address-ranges-for-process_madvise.patch
and later at
http://ozlabs.org/~akpm/mmotm/broken-out/mm-support-vector-address-ranges-for-process_madvise.patch
Before you just go and hit "reply", please:
a) Consider who else should be cc'ed
b) Prefer to cc a suitable mailing list as well
c) Ideally: find the original patch on the mailing list and do a
reply-to-all to that, adding suitable additional cc's
*** Remember to use Documentation/process/submit-checklist.rst when testing your code ***
The -mm tree is included into linux-next and is updated
there every 3-4 working days
------------------------------------------------------
From: Minchan Kim <minchan@kernel.org>
Subject: mm: support vector address ranges for process_madvise
This patch extends a) process_madvise(2) support vector address ranges in
a system call and then b) support the vector address ranges to local
process as well as external process.
Android app has thousands of vmas due to zygote so it's totally waste of
CPU and power if we should call the syscall one by one for each vma.
(With testing 2000-vma syscall vs 1-vector syscall, it showed 15%
performance improvement. I think it would be bigger in real practice
because the testing ran very cache friendly environment).
Another potential use case for the vector range is to amortize the cost of
TLB shootdowns for multiple ranges when using MADV_DONTNEED; this could
benefit users like TCP receive zerocopy and malloc implementations. In
future, we could find more usecases for other advises so let's make it
happens as API since we introduce a new syscall at this moment. With
that, existing madvise(2) user could replace it with process_madvise(2)
with their own pid if they want to have batch address ranges support
feature.
So finally, the API is as follows,
ssize_t process_madvise(idtype_t idtype, id_t id,
const struct iovec *iovec, unsigned long vlen,
int advice, unsigned long flags);
DESCRIPTION
The process_madvise() system call is used to give advice or directions
to the kernel about the address ranges from external process as well as
local process. It provides the advice to address ranges of process
described by iovec and vlen. The goal of such advice is to improve system
or application performance.
The idtype and id arguments select the target process to be advised as
follows:
idtype == P_PID
select the process whose process ID matches id
idtype == P_PIDFD
select the process referred to by the PID file descriptor
specified in id. (See pidofd_open(2) for further information)
The pointer iovec points to an array of iovec structures, defined in
<sys/uio.h> as:
struct iovec {
void *iov_base; /* starting address */
size_t iov_len; /* number of bytes to be advised */
};
The iovec describes address ranges beginning at address(iov_base)
and with size length of bytes(iov_len).
The vlen represents the number of elements in iovec.
The advice is indicated in the advice argument, which is one of the
following at this moment if the target process specified by idtype and
id is external.
MADV_COLD
MADV_PAGEOUT
MADV_MERGEABLE
MADV_UNMERGEABLE
Permission to provide a hint to external process is governed by a
ptrace access mode PTRACE_MODE_ATTACH_FSCREDS check; see ptrace(2).
The process_madvise supports every advice madvise(2) has if target
process is in same thread group with calling process so user could
use process_madvise(2) to extend existing madvise(2) to support
vector address ranges.
RETURN VALUE
On success, process_madvise() returns the number of bytes advised.
This return value may be less than the total number of requested
bytes, if an error occurred. The caller should check return value
to determine whether a partial advice occurred.
Link: http://lkml.kernel.org/r/20200423145215.72666-2-minchan@kernel.org
Signed-off-by: Minchan Kim <minchan@kernel.org>
Cc: David Rientjes <rientjes@google.com>
Cc: Arjun Roy <arjunroy@google.com>
Cc: Tim Murray <timmurray@google.com>
Cc: Daniel Colascione <dancol@google.com>
Cc: Sonny Rao <sonnyrao@google.com>
Cc: Brian Geffon <bgeffon@google.com>
Cc: Shakeel Butt <shakeelb@google.com>
Cc: John Dias <joaodias@google.com>
Cc: Joel Fernandes <joel@joelfernandes.org>
Cc: SeongJae Park <sj38.park@gmail.com>
Cc: Oleksandr Natalenko <oleksandr@redhat.com>
Cc: Suren Baghdasaryan <surenb@google.com>
Cc: Sandeep Patil <sspatil@google.com>
Cc: Michal Hocko <mhocko@suse.com>
Cc: Johannes Weiner <hannes@cmpxchg.org>
Cc: Vlastimil Babka <vbabka@suse.cz>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
---
mm/madvise.c | 47 ++++++++++++++++++++++++++++++++++++++++-------
1 file changed, 40 insertions(+), 7 deletions(-)
--- a/mm/madvise.c~mm-support-vector-address-ranges-for-process_madvise
+++ a/mm/madvise.c
@@ -1195,20 +1195,39 @@ SYSCALL_DEFINE3(madvise, unsigned long,
return do_madvise(current, current->mm, start, len_in, behavior);
}
-SYSCALL_DEFINE6(process_madvise, int, which, pid_t, upid, unsigned long, start,
- size_t, len_in, int, behavior, unsigned long, flags)
+static int do_process_madvise(struct task_struct *target_task,
+ struct mm_struct *mm, struct iov_iter *iter, int behavior)
{
- int ret;
+ struct iovec iovec;
+ int ret = 0;
+
+ while (iov_iter_count(iter)) {
+ iovec = iov_iter_iovec(iter);
+ ret = do_madvise(target_task, mm, (unsigned long)iovec.iov_base,
+ iovec.iov_len, behavior);
+ if (ret < 0)
+ break;
+ iov_iter_advance(iter, iovec.iov_len);
+ }
+
+ return ret;
+}
+
+SYSCALL_DEFINE6(process_madvise, int, which, pid_t, upid,
+ const struct iovec __user *, vec, unsigned long, vlen,
+ int, behavior, unsigned long, flags)
+{
+ ssize_t ret;
struct pid *pid;
struct task_struct *task;
struct mm_struct *mm;
+ struct iovec iovstack[UIO_FASTIOV];
+ struct iovec *iov = iovstack;
+ struct iov_iter iter;
if (flags != 0)
return -EINVAL;
- if (!process_madvise_behavior_valid(behavior))
- return -EINVAL;
-
switch (which) {
case P_PID:
if (upid <= 0)
@@ -1236,13 +1255,27 @@ SYSCALL_DEFINE6(process_madvise, int, wh
goto put_pid;
}
+ if (task->mm != current->mm &&
+ !process_madvise_behavior_valid(behavior)) {
+ ret = -EINVAL;
+ goto release_task;
+ }
+
mm = mm_access(task, PTRACE_MODE_ATTACH_FSCREDS);
if (IS_ERR_OR_NULL(mm)) {
ret = IS_ERR(mm) ? PTR_ERR(mm) : -ESRCH;
goto release_task;
}
- ret = do_madvise(task, mm, start, len_in, behavior);
+ ret = import_iovec(READ, vec, vlen, ARRAY_SIZE(iovstack), &iov, &iter);
+ if (ret >= 0) {
+ size_t total_len = iov_iter_count(&iter);
+
+ ret = do_process_madvise(task, mm, &iter, behavior);
+ if (ret >= 0)
+ ret = total_len - iov_iter_count(&iter);
+ kfree(iov);
+ }
mmput(mm);
release_task:
put_task_struct(task);
_
Patches currently in -mm which might be from minchan@kernel.org are
mm-pass-task-and-mm-to-do_madvise.patch
mm-pass-task-and-mm-to-do_madvise-fix.patch
mm-introduce-external-memory-hinting-api.patch
mm-introduce-external-memory-hinting-api-fix.patch
mm-check-fatal-signal-pending-of-target-process.patch
pid-move-pidfd_get_pid-function-to-pidc.patch
mm-support-both-pid-and-pidfd-for-process_madvise.patch
mm-support-vector-address-ranges-for-process_madvise.patch
mm-support-vector-address-ranges-for-process_madvise-fix.patch
^ permalink raw reply [flat|nested] 215+ messages in thread
* + mm-support-vector-address-ranges-for-process_madvise-fix.patch added to -mm tree
2020-04-21 1:13 incoming Andrew Morton
` (29 preceding siblings ...)
2020-04-23 22:44 ` + mm-support-vector-address-ranges-for-process_madvise.patch " Andrew Morton
@ 2020-04-23 22:44 ` Andrew Morton
2020-04-23 22:48 ` + kasan-stop-tests-being-eliminated-as-dead-code-with-fortify_source.patch " Andrew Morton
` (36 subsequent siblings)
67 siblings, 0 replies; 215+ messages in thread
From: Andrew Morton @ 2020-04-23 22:44 UTC (permalink / raw)
To: arjunroy, bgeffon, dancol, hannes, joaodias, joel, mhocko,
minchan, mm-commits, oleksandr, rientjes, shakeelb, sj38.park,
sonnyrao, sspatil, surenb, timmurray, vbabka
The patch titled
Subject: mm: support compat_sys_process_madvise
has been added to the -mm tree. Its filename is
mm-support-vector-address-ranges-for-process_madvise-fix.patch
This patch should soon appear at
http://ozlabs.org/~akpm/mmots/broken-out/mm-support-vector-address-ranges-for-process_madvise-fix.patch
and later at
http://ozlabs.org/~akpm/mmotm/broken-out/mm-support-vector-address-ranges-for-process_madvise-fix.patch
Before you just go and hit "reply", please:
a) Consider who else should be cc'ed
b) Prefer to cc a suitable mailing list as well
c) Ideally: find the original patch on the mailing list and do a
reply-to-all to that, adding suitable additional cc's
*** Remember to use Documentation/process/submit-checklist.rst when testing your code ***
The -mm tree is included into linux-next and is updated
there every 3-4 working days
------------------------------------------------------
From: Minchan Kim <minchan@kernel.org>
Subject: mm: support compat_sys_process_madvise
This patch supports compat syscall for process_madvise
Link: http://lkml.kernel.org/r/20200423195835.GA46847@google.com
Signed-off-by: Minchan Kim <minchan@kernel.org>
Cc: Arjun Roy <arjunroy@google.com>
Cc: Brian Geffon <bgeffon@google.com>
Cc: Daniel Colascione <dancol@google.com>
Cc: David Rientjes <rientjes@google.com>
Cc: Joel Fernandes <joel@joelfernandes.org>
Cc: Johannes Weiner <hannes@cmpxchg.org>
Cc: John Dias <joaodias@google.com>
Cc: Michal Hocko <mhocko@suse.com>
Cc: Oleksandr Natalenko <oleksandr@redhat.com>
Cc: Sandeep Patil <sspatil@google.com>
Cc: SeongJae Park <sj38.park@gmail.com>
Cc: Shakeel Butt <shakeelb@google.com>
Cc: Sonny Rao <sonnyrao@google.com>
Cc: Suren Baghdasaryan <surenb@google.com>
Cc: Tim Murray <timmurray@google.com>
Cc: Vlastimil Babka <vbabka@suse.cz>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
---
arch/arm64/include/asm/unistd32.h | 2
arch/mips/kernel/syscalls/syscall_n32.tbl | 2
arch/parisc/kernel/syscalls/syscall.tbl | 2
arch/powerpc/kernel/syscalls/syscall.tbl | 2
arch/s390/kernel/syscalls/syscall.tbl | 2
arch/sparc/kernel/syscalls/syscall.tbl | 2
arch/x86/entry/syscalls/syscall_32.tbl | 2
arch/x86/entry/syscalls/syscall_64.tbl | 3 -
include/linux/compat.h | 3 +
include/uapi/asm-generic/unistd.h | 3 -
kernel/sys_ni.c | 1
mm/madvise.c | 60 +++++++++++++++-----
12 files changed, 60 insertions(+), 24 deletions(-)
--- a/arch/arm64/include/asm/unistd32.h~mm-support-vector-address-ranges-for-process_madvise-fix
+++ a/arch/arm64/include/asm/unistd32.h
@@ -884,7 +884,7 @@ __SYSCALL(__NR_openat2, sys_openat2)
#define __NR_pidfd_getfd 438
__SYSCALL(__NR_pidfd_getfd, sys_pidfd_getfd)
#define __NR_process_madvise 439
-__SYSCALL(__NR_process_madvise, sys_process_madvise)
+__SYSCALL(__NR_process_madvise, compat_sys_process_madvise)
/*
* Please add new compat syscalls above this comment and update
--- a/arch/mips/kernel/syscalls/syscall_n32.tbl~mm-support-vector-address-ranges-for-process_madvise-fix
+++ a/arch/mips/kernel/syscalls/syscall_n32.tbl
@@ -376,4 +376,4 @@
435 n32 clone3 __sys_clone3
437 n32 openat2 sys_openat2
438 n32 pidfd_getfd sys_pidfd_getfd
-439 n32 process_madvise sys_process_madvise
+439 n32 process_madvise compat_sys_process_madvise
--- a/arch/parisc/kernel/syscalls/syscall.tbl~mm-support-vector-address-ranges-for-process_madvise-fix
+++ a/arch/parisc/kernel/syscalls/syscall.tbl
@@ -435,4 +435,4 @@
435 common clone3 sys_clone3_wrapper
437 common openat2 sys_openat2
438 common pidfd_getfd sys_pidfd_getfd
-439 common process_madvise sys_process_madvise
+439 common process_madvise sys_process_madvise compat_sys_process_madvise
--- a/arch/powerpc/kernel/syscalls/syscall.tbl~mm-support-vector-address-ranges-for-process_madvise-fix
+++ a/arch/powerpc/kernel/syscalls/syscall.tbl
@@ -527,4 +527,4 @@
435 spu clone3 sys_ni_syscall
437 common openat2 sys_openat2
438 common pidfd_getfd sys_pidfd_getfd
-439 common process_madvise sys_process_madvise
+439 common process_madvise sys_process_madvise compat_sys_process_madvise
--- a/arch/s390/kernel/syscalls/syscall.tbl~mm-support-vector-address-ranges-for-process_madvise-fix
+++ a/arch/s390/kernel/syscalls/syscall.tbl
@@ -440,4 +440,4 @@
435 common clone3 sys_clone3 sys_clone3
437 common openat2 sys_openat2 sys_openat2
438 common pidfd_getfd sys_pidfd_getfd sys_pidfd_getfd
-439 common process_madvise sys_process_madvise sys_process_madvise
+439 common process_madvise sys_process_madvise compat_sys_process_madvise
--- a/arch/sparc/kernel/syscalls/syscall.tbl~mm-support-vector-address-ranges-for-process_madvise-fix
+++ a/arch/sparc/kernel/syscalls/syscall.tbl
@@ -483,4 +483,4 @@
# 435 reserved for clone3
437 common openat2 sys_openat2
438 common pidfd_getfd sys_pidfd_getfd
-439 common process_madvise sys_process_madvise
+439 common process_madvise sys_process_madvise compat_sys_process_madvise
--- a/arch/x86/entry/syscalls/syscall_32.tbl~mm-support-vector-address-ranges-for-process_madvise-fix
+++ a/arch/x86/entry/syscalls/syscall_32.tbl
@@ -442,4 +442,4 @@
435 i386 clone3 sys_clone3
437 i386 openat2 sys_openat2
438 i386 pidfd_getfd sys_pidfd_getfd
-439 i386 process_madvise sys_process_madvise
+439 i386 process_madvise sys_process_madvise compat_sys_process_madvise
--- a/arch/x86/entry/syscalls/syscall_64.tbl~mm-support-vector-address-ranges-for-process_madvise-fix
+++ a/arch/x86/entry/syscalls/syscall_64.tbl
@@ -359,7 +359,7 @@
435 common clone3 sys_clone3
437 common openat2 sys_openat2
438 common pidfd_getfd sys_pidfd_getfd
-439 common process_madvise sys_process_madvise
+439 64 process_madvise sys_process_madvise
#
# x32-specific system call numbers start at 512 to avoid cache impact
@@ -403,3 +403,4 @@
545 x32 execveat compat_sys_execveat
546 x32 preadv2 compat_sys_preadv64v2
547 x32 pwritev2 compat_sys_pwritev64v2
+548 x32 process_madvise compat_sys_process_madvise
--- a/include/linux/compat.h~mm-support-vector-address-ranges-for-process_madvise-fix
+++ a/include/linux/compat.h
@@ -820,6 +820,9 @@ asmlinkage long compat_sys_pwritev64v2(u
unsigned long vlen, loff_t pos, rwf_t flags);
#endif
+asmlinkage ssize_t compat_sys_process_madvise(int which,
+ compat_pid_t upid, const struct compat_iovec __user *vec,
+ unsigned long vlen, int behavior, unsigned long flags);
/*
* Deprecated system calls which are still defined in
--- a/include/uapi/asm-generic/unistd.h~mm-support-vector-address-ranges-for-process_madvise-fix
+++ a/include/uapi/asm-generic/unistd.h
@@ -856,7 +856,8 @@ __SYSCALL(__NR_openat2, sys_openat2)
#define __NR_pidfd_getfd 438
__SYSCALL(__NR_pidfd_getfd, sys_pidfd_getfd)
#define __NR_process_madvise 439
-__SYSCALL(__NR_process_madvise, sys_process_madvise)
+__SC_COMP(__NR_process_madvise, sys_process_madvise, \
+ compat_sys_process_madvise)
#undef __NR_syscalls
#define __NR_syscalls 440
--- a/kernel/sys_ni.c~mm-support-vector-address-ranges-for-process_madvise-fix
+++ a/kernel/sys_ni.c
@@ -281,6 +281,7 @@ COND_SYSCALL(munlockall);
COND_SYSCALL(mincore);
COND_SYSCALL(madvise);
COND_SYSCALL(process_madvise);
+COND_SYSCALL_COMPAT(process_madvise);
COND_SYSCALL(remap_file_pages);
COND_SYSCALL(mbind);
COND_SYSCALL_COMPAT(mbind);
--- a/mm/madvise.c~mm-support-vector-address-ranges-for-process_madvise-fix
+++ a/mm/madvise.c
@@ -1195,7 +1195,7 @@ SYSCALL_DEFINE3(madvise, unsigned long,
return do_madvise(current, current->mm, start, len_in, behavior);
}
-static int do_process_madvise(struct task_struct *target_task,
+static int process_madvise_vec(struct task_struct *target_task,
struct mm_struct *mm, struct iov_iter *iter, int behavior)
{
struct iovec iovec;
@@ -1213,17 +1213,14 @@ static int do_process_madvise(struct tas
return ret;
}
-SYSCALL_DEFINE6(process_madvise, int, which, pid_t, upid,
- const struct iovec __user *, vec, unsigned long, vlen,
- int, behavior, unsigned long, flags)
+ssize_t do_process_madvise(int which, pid_t upid, struct iov_iter *iter,
+ int behavior, unsigned long flags)
{
ssize_t ret;
struct pid *pid;
struct task_struct *task;
struct mm_struct *mm;
- struct iovec iovstack[UIO_FASTIOV];
- struct iovec *iov = iovstack;
- struct iov_iter iter;
+ size_t total_len = iov_iter_count(iter);
if (flags != 0)
return -EINVAL;
@@ -1267,15 +1264,10 @@ SYSCALL_DEFINE6(process_madvise, int, wh
goto release_task;
}
- ret = import_iovec(READ, vec, vlen, ARRAY_SIZE(iovstack), &iov, &iter);
- if (ret >= 0) {
- size_t total_len = iov_iter_count(&iter);
+ ret = process_madvise_vec(task, mm, iter, behavior);
+ if (ret >= 0)
+ ret = total_len - iov_iter_count(iter);
- ret = do_process_madvise(task, mm, &iter, behavior);
- if (ret >= 0)
- ret = total_len - iov_iter_count(&iter);
- kfree(iov);
- }
mmput(mm);
release_task:
put_task_struct(task);
@@ -1283,3 +1275,41 @@ put_pid:
put_pid(pid);
return ret;
}
+
+SYSCALL_DEFINE6(process_madvise, int, which, pid_t, upid,
+ const struct iovec __user *, vec, unsigned long, vlen,
+ int, behavior, unsigned long, flags)
+{
+ ssize_t ret;
+ struct iovec iovstack[UIO_FASTIOV];
+ struct iovec *iov = iovstack;
+ struct iov_iter iter;
+
+ ret = import_iovec(READ, vec, vlen, ARRAY_SIZE(iovstack), &iov, &iter);
+ if (ret >= 0) {
+ ret = do_process_madvise(which, upid, &iter, behavior, flags);
+ kfree(iov);
+ }
+ return ret;
+}
+
+#ifdef CONFIG_COMPAT
+COMPAT_SYSCALL_DEFINE6(process_madvise, int, which, compat_pid_t, upid,
+ const struct compat_iovec __user *, vec, unsigned long, vlen,
+ int, behavior, unsigned long, flags)
+
+{
+ ssize_t ret;
+ struct iovec iovstack[UIO_FASTIOV];
+ struct iovec *iov = iovstack;
+ struct iov_iter iter;
+
+ ret = compat_import_iovec(READ, vec, vlen, ARRAY_SIZE(iovstack),
+ &iov, &iter);
+ if (ret >= 0) {
+ ret = do_process_madvise(which, upid, &iter, behavior, flags);
+ kfree(iov);
+ }
+ return ret;
+}
+#endif
_
Patches currently in -mm which might be from minchan@kernel.org are
mm-pass-task-and-mm-to-do_madvise.patch
mm-pass-task-and-mm-to-do_madvise-fix.patch
mm-introduce-external-memory-hinting-api.patch
mm-introduce-external-memory-hinting-api-fix.patch
mm-check-fatal-signal-pending-of-target-process.patch
pid-move-pidfd_get_pid-function-to-pidc.patch
mm-support-both-pid-and-pidfd-for-process_madvise.patch
mm-support-vector-address-ranges-for-process_madvise.patch
mm-support-vector-address-ranges-for-process_madvise-fix.patch
^ permalink raw reply [flat|nested] 215+ messages in thread
* + kasan-stop-tests-being-eliminated-as-dead-code-with-fortify_source.patch added to -mm tree
2020-04-21 1:13 incoming Andrew Morton
` (30 preceding siblings ...)
2020-04-23 22:44 ` + mm-support-vector-address-ranges-for-process_madvise-fix.patch " Andrew Morton
@ 2020-04-23 22:48 ` Andrew Morton
2020-04-23 22:48 ` + stringh-fix-incompatibility-between-fortify_source-and-kasan.patch " Andrew Morton
` (35 subsequent siblings)
67 siblings, 0 replies; 215+ messages in thread
From: Andrew Morton @ 2020-04-23 22:48 UTC (permalink / raw)
To: aryabinin, danielmicay, dja, dvyukov, glider, mm-commits
The patch titled
Subject: kasan: stop tests being eliminated as dead code with FORTIFY_SOURCE
has been added to the -mm tree. Its filename is
kasan-stop-tests-being-eliminated-as-dead-code-with-fortify_source.patch
This patch should soon appear at
http://ozlabs.org/~akpm/mmots/broken-out/kasan-stop-tests-being-eliminated-as-dead-code-with-fortify_source.patch
and later at
http://ozlabs.org/~akpm/mmotm/broken-out/kasan-stop-tests-being-eliminated-as-dead-code-with-fortify_source.patch
Before you just go and hit "reply", please:
a) Consider who else should be cc'ed
b) Prefer to cc a suitable mailing list as well
c) Ideally: find the original patch on the mailing list and do a
reply-to-all to that, adding suitable additional cc's
*** Remember to use Documentation/process/submit-checklist.rst when testing your code ***
The -mm tree is included into linux-next and is updated
there every 3-4 working days
------------------------------------------------------
From: Daniel Axtens <dja@axtens.net>
Subject: kasan: stop tests being eliminated as dead code with FORTIFY_SOURCE
Patch series "Fix some incompatibilites between KASAN and FORTIFY_SOURCE", v3.
3 KASAN self-tests fail on a kernel with both KASAN and FORTIFY_SOURCE:
memchr, memcmp and strlen. I have observed this on x86 and powerpc.
When FORTIFY_SOURCE is on, a number of functions are replaced with
fortified versions, which attempt to check the sizes of the operands.
However, these functions often directly invoke __builtin_foo() once they
have performed the fortify check.
This breaks things in 2 ways:
- the three function calls are technically dead code, and can be
eliminated. When __builtin_ versions are used, the compiler can detect
this.
- Using __builtins may bypass KASAN checks if the compiler decides to
inline it's own implementation as sequence of instructions, rather than
emit a function call that goes out to a KASAN-instrumented
implementation.
The patches address each reason in turn. Finally, test_memcmp used a
stack array without explicit initialisation, which can sometimes break
too, so fix that up.
This patch (of 3):
3 KASAN self-tests fail on a kernel with both KASAN and FORTIFY_SOURCE:
memchr, memcmp and strlen.
When FORTIFY_SOURCE is on, a number of functions are replaced with
fortified versions, which attempt to check the sizes of the operands.
However, these functions often directly invoke __builtin_foo() once they
have performed the fortify check. The compiler can detect that the
results of these functions are not used, and knows that they have no other
side effects, and so can eliminate them as dead code.
Why are only memchr, memcmp and strlen affected?
================================================
Of string and string-like functions, kasan_test tests:
* strchr -> not affected, no fortified version
* strrchr -> likewise
* strcmp -> likewise
* strncmp -> likewise
* strnlen -> not affected, the fortify source implementation calls the
underlying strnlen implementation which is instrumented, not
a builtin
* strlen -> affected, the fortify souce implementation calls a __builtin
version which the compiler can determine is dead.
* memchr -> likewise
* memcmp -> likewise
* memset -> not affected, the compiler knows that memset writes to its
first argument and therefore is not dead.
Why does this not affect the functions normally?
================================================
In string.h, these functions are not marked as __pure, so the compiler
cannot know that they do not have side effects. If relevant functions are
marked as __pure in string.h, we see the following warnings and the
functions are elided:
lib/test_kasan.c: In function `kasan_memchr':
lib/test_kasan.c:606:2: warning: statement with no effect [-Wunused-value]
memchr(ptr, '1', size + 1);
^~~~~~~~~~~~~~~~~~~~~~~~~~
lib/test_kasan.c: In function `kasan_memcmp':
lib/test_kasan.c:622:2: warning: statement with no effect [-Wunused-value]
memcmp(ptr, arr, size+1);
^~~~~~~~~~~~~~~~~~~~~~~~
lib/test_kasan.c: In function `kasan_strings':
lib/test_kasan.c:645:2: warning: statement with no effect [-Wunused-value]
strchr(ptr, '1');
^~~~~~~~~~~~~~~~
...
This annotation would make sense to add and could be added at any point, so
the behaviour of test_kasan.c should change.
The fix
=======
Make all the functions that are pure write their results to a global,
which makes them live. The strlen and memchr tests now pass.
The memcmp test still fails to trigger, which is addressed in the next
patch.
Link: http://lkml.kernel.org/r/20200423154503.5103-1-dja@axtens.net
Link: http://lkml.kernel.org/r/20200423154503.5103-2-dja@axtens.net
Fixes: 0c96350a2d2f ("lib/test_kasan.c: add tests for several string/memory API functions")
Signed-off-by: Daniel Axtens <dja@axtens.net>
Reviewed-by: Dmitry Vyukov <dvyukov@google.com>
Cc: Daniel Micay <danielmicay@gmail.com>
Cc: Andrey Ryabinin <aryabinin@virtuozzo.com>
Cc: Alexander Potapenko <glider@google.com>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
---
lib/test_kasan.c | 30 +++++++++++++++++++-----------
1 file changed, 19 insertions(+), 11 deletions(-)
--- a/lib/test_kasan.c~kasan-stop-tests-being-eliminated-as-dead-code-with-fortify_source
+++ a/lib/test_kasan.c
@@ -24,6 +24,14 @@
#include <asm/page.h>
/*
+ * We assign some test results to these globals to make sure the tests
+ * are not eliminated as dead code.
+ */
+
+int kasan_int_result;
+void *kasan_ptr_result;
+
+/*
* Note: test functions are marked noinline so that their names appear in
* reports.
*/
@@ -622,7 +630,7 @@ static noinline void __init kasan_memchr
if (!ptr)
return;
- memchr(ptr, '1', size + 1);
+ kasan_ptr_result = memchr(ptr, '1', size + 1);
kfree(ptr);
}
@@ -637,8 +645,7 @@ static noinline void __init kasan_memcmp
if (!ptr)
return;
- memset(arr, 0, sizeof(arr));
- memcmp(ptr, arr, size+1);
+ kasan_int_result = memcmp(ptr, arr, size + 1);
kfree(ptr);
}
@@ -661,22 +668,22 @@ static noinline void __init kasan_string
* will likely point to zeroed byte.
*/
ptr += 16;
- strchr(ptr, '1');
+ kasan_ptr_result = strchr(ptr, '1');
pr_info("use-after-free in strrchr\n");
- strrchr(ptr, '1');
+ kasan_ptr_result = strrchr(ptr, '1');
pr_info("use-after-free in strcmp\n");
- strcmp(ptr, "2");
+ kasan_int_result = strcmp(ptr, "2");
pr_info("use-after-free in strncmp\n");
- strncmp(ptr, "2", 1);
+ kasan_int_result = strncmp(ptr, "2", 1);
pr_info("use-after-free in strlen\n");
- strlen(ptr);
+ kasan_int_result = strlen(ptr);
pr_info("use-after-free in strnlen\n");
- strnlen(ptr, 1);
+ kasan_int_result = strnlen(ptr, 1);
}
static noinline void __init kasan_bitops(void)
@@ -743,11 +750,12 @@ static noinline void __init kasan_bitops
__test_and_change_bit(BITS_PER_LONG + BITS_PER_BYTE, bits);
pr_info("out-of-bounds in test_bit\n");
- (void)test_bit(BITS_PER_LONG + BITS_PER_BYTE, bits);
+ kasan_int_result = test_bit(BITS_PER_LONG + BITS_PER_BYTE, bits);
#if defined(clear_bit_unlock_is_negative_byte)
pr_info("out-of-bounds in clear_bit_unlock_is_negative_byte\n");
- clear_bit_unlock_is_negative_byte(BITS_PER_LONG + BITS_PER_BYTE, bits);
+ kasan_int_result = clear_bit_unlock_is_negative_byte(BITS_PER_LONG +
+ BITS_PER_BYTE, bits);
#endif
kfree(bits);
}
_
Patches currently in -mm which might be from dja@axtens.net are
kasan-stop-tests-being-eliminated-as-dead-code-with-fortify_source.patch
stringh-fix-incompatibility-between-fortify_source-and-kasan.patch
kasan-initialise-array-in-kasan_memcmp-test.patch
^ permalink raw reply [flat|nested] 215+ messages in thread
* + stringh-fix-incompatibility-between-fortify_source-and-kasan.patch added to -mm tree
2020-04-21 1:13 incoming Andrew Morton
` (31 preceding siblings ...)
2020-04-23 22:48 ` + kasan-stop-tests-being-eliminated-as-dead-code-with-fortify_source.patch " Andrew Morton
@ 2020-04-23 22:48 ` Andrew Morton
2020-04-23 23:03 ` + powerpc-add-support-for-folded-p4d-page-tables-fix.patch " Andrew Morton
` (34 subsequent siblings)
67 siblings, 0 replies; 215+ messages in thread
From: Andrew Morton @ 2020-04-23 22:48 UTC (permalink / raw)
To: aryabinin, danielmicay, dja, dvyukov, glider, mm-commits
The patch titled
Subject: string.h: fix incompatibility between FORTIFY_SOURCE and KASAN
has been added to the -mm tree. Its filename is
stringh-fix-incompatibility-between-fortify_source-and-kasan.patch
This patch should soon appear at
http://ozlabs.org/~akpm/mmots/broken-out/stringh-fix-incompatibility-between-fortify_source-and-kasan.patch
and later at
http://ozlabs.org/~akpm/mmotm/broken-out/stringh-fix-incompatibility-between-fortify_source-and-kasan.patch
Before you just go and hit "reply", please:
a) Consider who else should be cc'ed
b) Prefer to cc a suitable mailing list as well
c) Ideally: find the original patch on the mailing list and do a
reply-to-all to that, adding suitable additional cc's
*** Remember to use Documentation/process/submit-checklist.rst when testing your code ***
The -mm tree is included into linux-next and is updated
there every 3-4 working days
------------------------------------------------------
From: Daniel Axtens <dja@axtens.net>
Subject: string.h: fix incompatibility between FORTIFY_SOURCE and KASAN
The memcmp KASAN self-test fails on a kernel with both KASAN and
FORTIFY_SOURCE.
When FORTIFY_SOURCE is on, a number of functions are replaced with
fortified versions, which attempt to check the sizes of the operands.
However, these functions often directly invoke __builtin_foo() once they
have performed the fortify check. Using __builtins may bypass KASAN
checks if the compiler decides to inline it's own implementation as
sequence of instructions, rather than emit a function call that goes out
to a KASAN-instrumented implementation.
Why is only memcmp affected?
============================
Of the string and string-like functions that kasan_test tests, only memcmp
is replaced by an inline sequence of instructions in my testing on x86
with gcc version 9.2.1 20191008 (Ubuntu 9.2.1-9ubuntu2).
I believe this is due to compiler heuristics. For example, if I annotate
kmalloc calls with the alloc_size annotation (and disable some fortify
compile-time checking!), the compiler will replace every memset except the
one in kmalloc_uaf_memset with inline instructions. (I have some WIP
patches to add this annotation.)
Does this affect other functions in string.h?
=============================================
Yes. Anything that uses __builtin_* rather than __real_* could be
affected. This looks like:
- strncpy
- strcat
- strlen
- strlcpy maybe, under some circumstances?
- strncat under some circumstances
- memset
- memcpy
- memmove
- memcmp (as noted)
- memchr
- strcpy
Whether a function call is emitted always depends on the compiler. Most
bugs should get caught by FORTIFY_SOURCE, but the missed memcmp test shows
that this is not always the case.
Isn't FORTIFY_SOURCE disabled with KASAN?
========================================-
The string headers on all arches supporting KASAN disable fortify with
kasan, but only when address sanitisation is _also_ disabled. For example
from x86:
#if defined(CONFIG_KASAN) && !defined(__SANITIZE_ADDRESS__)
/*
* For files that are not instrumented (e.g. mm/slub.c) we
* should use not instrumented version of mem* functions.
*/
#define memcpy(dst, src, len) __memcpy(dst, src, len)
#define memmove(dst, src, len) __memmove(dst, src, len)
#define memset(s, c, n) __memset(s, c, n)
#ifndef __NO_FORTIFY
#define __NO_FORTIFY /* FORTIFY_SOURCE uses __builtin_memcpy, etc. */
#endif
#endif
This comes from commit 6974f0c4555e ("include/linux/string.h: add the
option of fortified string.h functions"), and doesn't work when KASAN is
enabled and the file is supposed to be sanitised - as with test_kasan.c
I'm pretty sure this is not wrong, but not as expansive it should be:
* we shouldn't use __builtin_memcpy etc in files where we don't have
instrumentation - it could devolve into a function call to memcpy,
which will be instrumented. Rather, we should use __memcpy which
by convention is not instrumented.
* we also shouldn't be using __builtin_memcpy when we have a KASAN
instrumented file, because it could be replaced with inline asm
that will not be instrumented.
What is correct behaviour?
==========================
Firstly, there is some overlap between fortification and KASAN: both
provide some level of _runtime_ checking. Only fortify provides
compile-time checking.
KASAN and fortify can pick up different things at runtime:
- Some fortify functions, notably the string functions, could easily be
modified to consider sub-object sizes (e.g. members within a struct),
and I have some WIP patches to do this. KASAN cannot detect these
because it cannot insert poision between members of a struct.
- KASAN can detect many over-reads/over-writes when the sizes of both
operands are unknown, which fortify cannot.
So there are a couple of options:
1) Flip the test: disable fortify in santised files and enable it in
unsanitised files. This at least stops us missing KASAN checking, but
we lose the fortify checking.
2) Make the fortify code always call out to real versions. Do this only
for KASAN, for fear of losing the inlining opportunities we get from
__builtin_*.
(We can't use kasan_check_{read,write}: because the fortify functions are
_extern inline_, you can't include _static_ inline functions without a
compiler warning. kasan_check_{read,write} are static inline so we can't
use them even when they would otherwise be suitable.)
Take approach 2 and call out to real versions when KASAN is enabled.
Use __underlying_foo to distinguish from __real_foo: __real_foo always
refers to the kernel's implementation of foo, __underlying_foo could be
either the kernel implementation or the __builtin_foo implementation.
This is sometimes enough to make the memcmp test succeed with
FORTIFY_SOURCE enabled. It is at least enough to get the function call
into the module. One more fix is needed to make it reliable: see the next
patch.
Link: http://lkml.kernel.org/r/20200423154503.5103-3-dja@axtens.net
Fixes: 6974f0c4555e ("include/linux/string.h: add the option of fortified string.h functions")
Signed-off-by: Daniel Axtens <dja@axtens.net>
Reviewed-by: Dmitry Vyukov <dvyukov@google.com>
Cc: Daniel Micay <danielmicay@gmail.com>
Cc: Andrey Ryabinin <aryabinin@virtuozzo.com>
Cc: Alexander Potapenko <glider@google.com>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
---
include/linux/string.h | 60 +++++++++++++++++++++++++++++++--------
1 file changed, 48 insertions(+), 12 deletions(-)
--- a/include/linux/string.h~stringh-fix-incompatibility-between-fortify_source-and-kasan
+++ a/include/linux/string.h
@@ -272,6 +272,31 @@ void __read_overflow3(void) __compiletim
void __write_overflow(void) __compiletime_error("detected write beyond size of object passed as 1st parameter");
#if !defined(__NO_FORTIFY) && defined(__OPTIMIZE__) && defined(CONFIG_FORTIFY_SOURCE)
+
+#ifdef CONFIG_KASAN
+extern void *__underlying_memchr(const void *p, int c, __kernel_size_t size) __RENAME(memchr);
+extern int __underlying_memcmp(const void *p, const void *q, __kernel_size_t size) __RENAME(memcmp);
+extern void *__underlying_memcpy(void *p, const void *q, __kernel_size_t size) __RENAME(memcpy);
+extern void *__underlying_memmove(void *p, const void *q, __kernel_size_t size) __RENAME(memmove);
+extern void *__underlying_memset(void *p, int c, __kernel_size_t size) __RENAME(memset);
+extern char *__underlying_strcat(char *p, const char *q) __RENAME(strcat);
+extern char *__underlying_strcpy(char *p, const char *q) __RENAME(strcpy);
+extern __kernel_size_t __underlying_strlen(const char *p) __RENAME(strlen);
+extern char *__underlying_strncat(char *p, const char *q, __kernel_size_t count) __RENAME(strncat);
+extern char *__underlying_strncpy(char *p, const char *q, __kernel_size_t size) __RENAME(strncpy);
+#else
+#define __underlying_memchr __builtin_memchr
+#define __underlying_memcmp __builtin_memcmp
+#define __underlying_memcpy __builtin_memcpy
+#define __underlying_memmove __builtin_memmove
+#define __underlying_memset __builtin_memset
+#define __underlying_strcat __builtin_strcat
+#define __underlying_strcpy __builtin_strcpy
+#define __underlying_strlen __builtin_strlen
+#define __underlying_strncat __builtin_strncat
+#define __underlying_strncpy __builtin_strncpy
+#endif
+
__FORTIFY_INLINE char *strncpy(char *p, const char *q, __kernel_size_t size)
{
size_t p_size = __builtin_object_size(p, 0);
@@ -279,14 +304,14 @@ __FORTIFY_INLINE char *strncpy(char *p,
__write_overflow();
if (p_size < size)
fortify_panic(__func__);
- return __builtin_strncpy(p, q, size);
+ return __underlying_strncpy(p, q, size);
}
__FORTIFY_INLINE char *strcat(char *p, const char *q)
{
size_t p_size = __builtin_object_size(p, 0);
if (p_size == (size_t)-1)
- return __builtin_strcat(p, q);
+ return __underlying_strcat(p, q);
if (strlcat(p, q, p_size) >= p_size)
fortify_panic(__func__);
return p;
@@ -300,7 +325,7 @@ __FORTIFY_INLINE __kernel_size_t strlen(
/* Work around gcc excess stack consumption issue */
if (p_size == (size_t)-1 ||
(__builtin_constant_p(p[p_size - 1]) && p[p_size - 1] == '\0'))
- return __builtin_strlen(p);
+ return __underlying_strlen(p);
ret = strnlen(p, p_size);
if (p_size <= ret)
fortify_panic(__func__);
@@ -333,7 +358,7 @@ __FORTIFY_INLINE size_t strlcpy(char *p,
__write_overflow();
if (len >= p_size)
fortify_panic(__func__);
- __builtin_memcpy(p, q, len);
+ __underlying_memcpy(p, q, len);
p[len] = '\0';
}
return ret;
@@ -346,12 +371,12 @@ __FORTIFY_INLINE char *strncat(char *p,
size_t p_size = __builtin_object_size(p, 0);
size_t q_size = __builtin_object_size(q, 0);
if (p_size == (size_t)-1 && q_size == (size_t)-1)
- return __builtin_strncat(p, q, count);
+ return __underlying_strncat(p, q, count);
p_len = strlen(p);
copy_len = strnlen(q, count);
if (p_size < p_len + copy_len + 1)
fortify_panic(__func__);
- __builtin_memcpy(p + p_len, q, copy_len);
+ __underlying_memcpy(p + p_len, q, copy_len);
p[p_len + copy_len] = '\0';
return p;
}
@@ -363,7 +388,7 @@ __FORTIFY_INLINE void *memset(void *p, i
__write_overflow();
if (p_size < size)
fortify_panic(__func__);
- return __builtin_memset(p, c, size);
+ return __underlying_memset(p, c, size);
}
__FORTIFY_INLINE void *memcpy(void *p, const void *q, __kernel_size_t size)
@@ -378,7 +403,7 @@ __FORTIFY_INLINE void *memcpy(void *p, c
}
if (p_size < size || q_size < size)
fortify_panic(__func__);
- return __builtin_memcpy(p, q, size);
+ return __underlying_memcpy(p, q, size);
}
__FORTIFY_INLINE void *memmove(void *p, const void *q, __kernel_size_t size)
@@ -393,7 +418,7 @@ __FORTIFY_INLINE void *memmove(void *p,
}
if (p_size < size || q_size < size)
fortify_panic(__func__);
- return __builtin_memmove(p, q, size);
+ return __underlying_memmove(p, q, size);
}
extern void *__real_memscan(void *, int, __kernel_size_t) __RENAME(memscan);
@@ -419,7 +444,7 @@ __FORTIFY_INLINE int memcmp(const void *
}
if (p_size < size || q_size < size)
fortify_panic(__func__);
- return __builtin_memcmp(p, q, size);
+ return __underlying_memcmp(p, q, size);
}
__FORTIFY_INLINE void *memchr(const void *p, int c, __kernel_size_t size)
@@ -429,7 +454,7 @@ __FORTIFY_INLINE void *memchr(const void
__read_overflow();
if (p_size < size)
fortify_panic(__func__);
- return __builtin_memchr(p, c, size);
+ return __underlying_memchr(p, c, size);
}
void *__real_memchr_inv(const void *s, int c, size_t n) __RENAME(memchr_inv);
@@ -460,11 +485,22 @@ __FORTIFY_INLINE char *strcpy(char *p, c
size_t p_size = __builtin_object_size(p, 0);
size_t q_size = __builtin_object_size(q, 0);
if (p_size == (size_t)-1 && q_size == (size_t)-1)
- return __builtin_strcpy(p, q);
+ return __underlying_strcpy(p, q);
memcpy(p, q, strlen(q) + 1);
return p;
}
+/* Don't use these outside the FORITFY_SOURCE implementation */
+#undef __underlying_memchr
+#undef __underlying_memcmp
+#undef __underlying_memcpy
+#undef __underlying_memmove
+#undef __underlying_memset
+#undef __underlying_strcat
+#undef __underlying_strcpy
+#undef __underlying_strlen
+#undef __underlying_strncat
+#undef __underlying_strncpy
#endif
/**
_
Patches currently in -mm which might be from dja@axtens.net are
kasan-stop-tests-being-eliminated-as-dead-code-with-fortify_source.patch
stringh-fix-incompatibility-between-fortify_source-and-kasan.patch
kasan-initialise-array-in-kasan_memcmp-test.patch
^ permalink raw reply [flat|nested] 215+ messages in thread
* + powerpc-add-support-for-folded-p4d-page-tables-fix.patch added to -mm tree
2020-04-21 1:13 incoming Andrew Morton
` (32 preceding siblings ...)
2020-04-23 22:48 ` + stringh-fix-incompatibility-between-fortify_source-and-kasan.patch " Andrew Morton
@ 2020-04-23 23:03 ` Andrew Morton
2020-04-23 23:09 ` [folded-merged] memcg-optimize-memorynuma_stat-like-memorystat-fix.patch removed from " Andrew Morton
` (33 subsequent siblings)
67 siblings, 0 replies; 215+ messages in thread
From: Andrew Morton @ 2020-04-23 23:03 UTC (permalink / raw)
To: lkp, mm-commits, rppt, sfr
The patch titled
Subject: powerpc-add-support-for-folded-p4d-page-tables-fix
has been added to the -mm tree. Its filename is
powerpc-add-support-for-folded-p4d-page-tables-fix.patch
This patch should soon appear at
http://ozlabs.org/~akpm/mmots/broken-out/powerpc-add-support-for-folded-p4d-page-tables-fix.patch
and later at
http://ozlabs.org/~akpm/mmotm/broken-out/powerpc-add-support-for-folded-p4d-page-tables-fix.patch
Before you just go and hit "reply", please:
a) Consider who else should be cc'ed
b) Prefer to cc a suitable mailing list as well
c) Ideally: find the original patch on the mailing list and do a
reply-to-all to that, adding suitable additional cc's
*** Remember to use Documentation/process/submit-checklist.rst when testing your code ***
The -mm tree is included into linux-next and is updated
there every 3-4 working days
------------------------------------------------------
From: Mike Rapoport <rppt@linux.ibm.com>
Subject: powerpc-add-support-for-folded-p4d-page-tables-fix
build fix
Link: http://lkml.kernel.org/r/20200423141845.GI13521@linux.ibm.com
Reported-by: kbuild test robot <lkp@intel.com>
Cc: Stephen Rothwell <sfr@canb.auug.org.au>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
---
arch/powerpc/mm/kasan/kasan_init_32.c | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
--- a/arch/powerpc/mm/kasan/kasan_init_32.c~powerpc-add-support-for-folded-p4d-page-tables-fix
+++ a/arch/powerpc/mm/kasan/kasan_init_32.c
@@ -121,7 +121,7 @@ static void __init kasan_unmap_early_sha
phys_addr_t pa = __pa(kasan_early_shadow_page);
for (k_cur = k_start & PAGE_MASK; k_cur < k_end; k_cur += PAGE_SIZE) {
- pmd_t *pmd = pmd_offset(pud_offset(pgd_offset_k(k_cur), k_cur), k_cur);
+ pmd_t *pmd = pmd_ptr_k(k_cur);
pte_t *ptep = pte_offset_kernel(pmd, k_cur);
if ((pte_val(*ptep) & PTE_RPN_MASK) != pa)
_
Patches currently in -mm which might be from rppt@linux.ibm.com are
h8300-remove-usage-of-__arch_use_5level_hack.patch
arm-add-support-for-folded-p4d-page-tables.patch
arm64-add-support-for-folded-p4d-page-tables.patch
hexagon-remove-__arch_use_5level_hack.patch
ia64-add-support-for-folded-p4d-page-tables.patch
nios2-add-support-for-folded-p4d-page-tables.patch
openrisc-add-support-for-folded-p4d-page-tables.patch
powerpc-add-support-for-folded-p4d-page-tables.patch
powerpc-add-support-for-folded-p4d-page-tables-fix.patch
sh-drop-__pxd_offset-macros-that-duplicate-pxd_index-ones.patch
sh-add-support-for-folded-p4d-page-tables.patch
unicore32-remove-__arch_use_5level_hack.patch
asm-generic-remove-pgtable-nop4d-hackh.patch
mm-remove-__arch_has_5level_hack-and-include-asm-generic-5level-fixuph.patch
mm-memblock-replace-dereferences-of-memblock_regionnid-with-api-calls.patch
mm-make-early_pfn_to_nid-and-related-defintions-close-to-each-other.patch
mm-remove-config_have_memblock_node_map-option.patch
mm-free_area_init-use-maximal-zone-pfns-rather-than-zone-sizes.patch
mm-use-free_area_init-instead-of-free_area_init_nodes.patch
alpha-simplify-detection-of-memory-zone-boundaries.patch
arm-simplify-detection-of-memory-zone-boundaries.patch
arm64-simplify-detection-of-memory-zone-boundaries-for-uma-configs.patch
csky-simplify-detection-of-memory-zone-boundaries.patch
m68k-mm-simplify-detection-of-memory-zone-boundaries.patch
parisc-simplify-detection-of-memory-zone-boundaries.patch
sparc32-simplify-detection-of-memory-zone-boundaries.patch
unicore32-simplify-detection-of-memory-zone-boundaries.patch
xtensa-simplify-detection-of-memory-zone-boundaries.patch
mm-remove-early_pfn_in_nid-and-config_nodes_span_other_nodes.patch
mm-free_area_init-allow-defining-max_zone_pfn-in-descending-order.patch
mm-rename-free_area_init_node-to-free_area_init_memoryless_node.patch
mm-clean-up-free_area_init_node-and-its-helpers.patch
mm-simplify-find_min_pfn_with_active_regions.patch
docs-vm-update-memory-models-documentation.patch
^ permalink raw reply [flat|nested] 215+ messages in thread
* [folded-merged] memcg-optimize-memorynuma_stat-like-memorystat-fix.patch removed from -mm tree
2020-04-21 1:13 incoming Andrew Morton
` (33 preceding siblings ...)
2020-04-23 23:03 ` + powerpc-add-support-for-folded-p4d-page-tables-fix.patch " Andrew Morton
@ 2020-04-23 23:09 ` Andrew Morton
2020-04-23 23:32 ` + slub-remove-userspace-notifier-for-cache-add-remove.patch added to " Andrew Morton
` (32 subsequent siblings)
67 siblings, 0 replies; 215+ messages in thread
From: Andrew Morton @ 2020-04-23 23:09 UTC (permalink / raw)
To: akpm, guro, hannes, mhocko, mm-commits, shakeelb
The patch titled
Subject: memcg-optimize-memorynuma_stat-like-memorystat-fix
has been removed from the -mm tree. Its filename was
memcg-optimize-memorynuma_stat-like-memorystat-fix.patch
This patch was dropped because it was folded into memcg-optimize-memorynuma_stat-like-memorystat.patch
------------------------------------------------------
From: Andrew Morton <akpm@linux-foundation.org>
Subject: memcg-optimize-memorynuma_stat-like-memorystat-fix
avoid forcing out-of-line code generation
Cc: Johannes Weiner <hannes@cmpxchg.org>
Cc: Michal Hocko <mhocko@kernel.org>
Cc: Roman Gushchin <guro@fb.com>
Cc: Shakeel Butt <shakeelb@google.com>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
---
mm/memcontrol.c | 17 ++++++++---------
1 file changed, 8 insertions(+), 9 deletions(-)
--- a/mm/memcontrol.c~memcg-optimize-memorynuma_stat-like-memorystat-fix
+++ a/mm/memcontrol.c
@@ -3693,17 +3693,16 @@ static unsigned long mem_cgroup_node_nr_
struct lruvec *lruvec = mem_cgroup_lruvec(memcg, NODE_DATA(nid));
unsigned long nr = 0;
enum lru_list lru;
- unsigned long (*page_state)(struct lruvec *lruvec,
- enum node_stat_item idx);
VM_BUG_ON((unsigned)nid >= nr_node_ids);
- page_state = tree ? lruvec_page_state : lruvec_page_state_local;
-
for_each_lru(lru) {
if (!(BIT(lru) & lru_mask))
continue;
- nr += page_state(lruvec, NR_LRU_BASE + lru);
+ if (tree)
+ nr += lruvec_page_state(lruvec, NR_LRU_BASE + lru);
+ else
+ nr += lruvec_page_state_local(lruvec, NR_LRU_BASE + lru);
}
return nr;
}
@@ -3714,14 +3713,14 @@ static unsigned long mem_cgroup_nr_lru_p
{
unsigned long nr = 0;
enum lru_list lru;
- unsigned long (*page_state)(struct mem_cgroup *memcg, int idx);
-
- page_state = tree ? memcg_page_state : memcg_page_state_local;
for_each_lru(lru) {
if (!(BIT(lru) & lru_mask))
continue;
- nr += page_state(memcg, NR_LRU_BASE + lru);
+ if (tree)
+ nr += memcg_page_state(memcg, NR_LRU_BASE + lru);
+ else
+ nr += memcg_page_state_local(memcg, NR_LRU_BASE + lru);
}
return nr;
}
_
Patches currently in -mm which might be from akpm@linux-foundation.org are
mm-memcg-fix-error-return-value-of-mem_cgroup_css_alloc-fix.patch
squashfs-migrate-from-ll_rw_block-usage-to-bio-fix.patch
drivers-tty-serial-sh-scic-suppress-uninitialized-var-warning.patch
mm.patch
mm-slub-fix-corrupted-freechain-in-deactivate_slab-fix.patch
memcg-optimize-memorynuma_stat-like-memorystat.patch
mm-remove-__vmalloc_node_flags_caller-fix.patch
mm-switch-the-test_vmalloc-module-to-use-__vmalloc_node-fix.patch
mm-remove-vmalloc_user_node_flags-fix.patch
mm-replace-zero-length-array-with-flexible-array-member-fix.patch
mm-hugetlb-fix-a-typo-in-comment-manitained-maintained-v2-checkpatch-fixes.patch
initrdmem=-option-to-specify-initrd-physical-address-checkpatch-fixes.patch
linux-next-rejects.patch
linux-next-fix.patch
kernel-forkc-export-kernel_thread-to-modules.patch
^ permalink raw reply [flat|nested] 215+ messages in thread
* + slub-remove-userspace-notifier-for-cache-add-remove.patch added to -mm tree
2020-04-21 1:13 incoming Andrew Morton
` (34 preceding siblings ...)
2020-04-23 23:09 ` [folded-merged] memcg-optimize-memorynuma_stat-like-memorystat-fix.patch removed from " Andrew Morton
@ 2020-04-23 23:32 ` Andrew Morton
2020-04-23 23:35 ` + ocfs2-mount-shared-volume-without-ha-stack.patch " Andrew Morton
` (31 subsequent siblings)
67 siblings, 0 replies; 215+ messages in thread
From: Andrew Morton @ 2020-04-23 23:32 UTC (permalink / raw)
To: cl, iamjoonsoo.kim, mkoutny, mm-commits, penberg, rientjes, vbabka
The patch titled
Subject: slub: Remove userspace notifier for cache add/remove
has been added to the -mm tree. Its filename is
slub-remove-userspace-notifier-for-cache-add-remove.patch
This patch should soon appear at
http://ozlabs.org/~akpm/mmots/broken-out/slub-remove-userspace-notifier-for-cache-add-remove.patch
and later at
http://ozlabs.org/~akpm/mmotm/broken-out/slub-remove-userspace-notifier-for-cache-add-remove.patch
Before you just go and hit "reply", please:
a) Consider who else should be cc'ed
b) Prefer to cc a suitable mailing list as well
c) Ideally: find the original patch on the mailing list and do a
reply-to-all to that, adding suitable additional cc's
*** Remember to use Documentation/process/submit-checklist.rst when testing your code ***
The -mm tree is included into linux-next and is updated
there every 3-4 working days
------------------------------------------------------
From: Christoph Lameter <cl@linux.com>
Subject: slub: Remove userspace notifier for cache add/remove
I came across some unnecessary uevents once again which reminded me this.
The patch seems to be lost in the leaves of the original discussion [1],
so resending.
[1] https://lore.kernel.org/r/alpine.DEB.2.21.2001281813130.745@www.lameter.com
Kmem caches are internal kernel structures so it is strange that userspace
notifiers would be needed. And I am not aware of any use of these
notifiers. These notifiers may just exist because in the initial slub
release the sysfs code was copied from another subsystem.
Link: http://lkml.kernel.org/r/20200423115721.19821-1-mkoutny@suse.com
Signed-off-by: Christoph Lameter <cl@linux.com>
Acked-by: Vlastimil Babka <vbabka@suse.cz>
Acked-by: Michal Koutný <mkoutny@suse.com>
Acked-by: David Rientjes <rientjes@google.com>
Cc: Pekka Enberg <penberg@kernel.org>
Cc: Joonsoo Kim <iamjoonsoo.kim@lge.com>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
---
mm/slub.c | 17 +----------------
1 file changed, 1 insertion(+), 16 deletions(-)
--- a/mm/slub.c~slub-remove-userspace-notifier-for-cache-add-remove
+++ a/mm/slub.c
@@ -5700,19 +5700,6 @@ static struct kobj_type slab_ktype = {
.release = kmem_cache_release,
};
-static int uevent_filter(struct kset *kset, struct kobject *kobj)
-{
- struct kobj_type *ktype = get_ktype(kobj);
-
- if (ktype == &slab_ktype)
- return 1;
- return 0;
-}
-
-static const struct kset_uevent_ops slab_uevent_ops = {
- .filter = uevent_filter,
-};
-
static struct kset *slab_kset;
static inline struct kset *cache_kset(struct kmem_cache *s)
@@ -5780,7 +5767,6 @@ static void sysfs_slab_remove_workfn(str
#ifdef CONFIG_MEMCG
kset_unregister(s->memcg_kset);
#endif
- kobject_uevent(&s->kobj, KOBJ_REMOVE);
out:
kobject_put(&s->kobj);
}
@@ -5838,7 +5824,6 @@ static int sysfs_slab_add(struct kmem_ca
}
#endif
- kobject_uevent(&s->kobj, KOBJ_ADD);
if (!unmergeable) {
/* Setup first alias */
sysfs_slab_alias(s, s->name);
@@ -5919,7 +5904,7 @@ static int __init slab_sysfs_init(void)
mutex_lock(&slab_mutex);
- slab_kset = kset_create_and_add("slab", &slab_uevent_ops, kernel_kobj);
+ slab_kset = kset_create_and_add("slab", NULL, kernel_kobj);
if (!slab_kset) {
mutex_unlock(&slab_mutex);
pr_err("Cannot register slab subsystem.\n");
_
Patches currently in -mm which might be from cl@linux.com are
slub-remove-userspace-notifier-for-cache-add-remove.patch
^ permalink raw reply [flat|nested] 215+ messages in thread
* + ocfs2-mount-shared-volume-without-ha-stack.patch added to -mm tree
2020-04-21 1:13 incoming Andrew Morton
` (35 preceding siblings ...)
2020-04-23 23:32 ` + slub-remove-userspace-notifier-for-cache-add-remove.patch added to " Andrew Morton
@ 2020-04-23 23:35 ` Andrew Morton
2020-04-24 0:29 ` + mm-memory_hotplug-handle-memblocks-only-with-config_arch_keep_memblock.patch " Andrew Morton
` (30 subsequent siblings)
67 siblings, 0 replies; 215+ messages in thread
From: Andrew Morton @ 2020-04-23 23:35 UTC (permalink / raw)
To: gechangwei, ghe, jiangqi903, jlbec, junxiao.bi, mark, mm-commits,
piaojun
The patch titled
Subject: ocfs2: mount shared volume without ha stack
has been added to the -mm tree. Its filename is
ocfs2-mount-shared-volume-without-ha-stack.patch
This patch should soon appear at
http://ozlabs.org/~akpm/mmots/broken-out/ocfs2-mount-shared-volume-without-ha-stack.patch
and later at
http://ozlabs.org/~akpm/mmotm/broken-out/ocfs2-mount-shared-volume-without-ha-stack.patch
Before you just go and hit "reply", please:
a) Consider who else should be cc'ed
b) Prefer to cc a suitable mailing list as well
c) Ideally: find the original patch on the mailing list and do a
reply-to-all to that, adding suitable additional cc's
*** Remember to use Documentation/process/submit-checklist.rst when testing your code ***
The -mm tree is included into linux-next and is updated
there every 3-4 working days
------------------------------------------------------
From: Gang He <ghe@suse.com>
Subject: ocfs2: mount shared volume without ha stack
Usually we create and use a ocfs2 shared volume on the top of ha stack.
For pcmk based ha stack, which includes DLM, corosync and pacemaker
services.
The customers complained they could not mount existent ocfs2 volume in the
single node without ha stack, e.g. single node backup/restore scenario.
Like this case, the customers just want to access the data from the
existent ocfs2 volume quickly, but do not want to restart or setup ha
stack.
Then, I'd like to add a mount option "nocluster", if the users use this
option to mount a ocfs2 shared volume, the whole mount will not depend on
the ha related services. the command will mount the existent ocfs2 volume
directly (like local mount), for avoiding setup the ha stack.
Link: http://lkml.kernel.org/r/20200423053300.22661-1-ghe@suse.com
Signed-off-by: Gang He <ghe@suse.com>
Cc: Mark Fasheh <mark@fasheh.com>
Cc: Joel Becker <jlbec@evilplan.org>
Cc: Junxiao Bi <junxiao.bi@oracle.com>
Cc: Joseph Qi <jiangqi903@gmail.com>
Cc: Changwei Ge <gechangwei@live.cn>
Cc: Jun Piao <piaojun@huawei.com>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
---
fs/ocfs2/ocfs2.h | 4 ++-
fs/ocfs2/slot_map.c | 46 ++++++++++++++++++++++++------------------
fs/ocfs2/super.c | 21 +++++++++++++++++++
3 files changed, 51 insertions(+), 20 deletions(-)
--- a/fs/ocfs2/ocfs2.h~ocfs2-mount-shared-volume-without-ha-stack
+++ a/fs/ocfs2/ocfs2.h
@@ -279,6 +279,7 @@ enum ocfs2_mount_options
OCFS2_MOUNT_JOURNAL_ASYNC_COMMIT = 1 << 15, /* Journal Async Commit */
OCFS2_MOUNT_ERRORS_CONT = 1 << 16, /* Return EIO to the calling process on error */
OCFS2_MOUNT_ERRORS_ROFS = 1 << 17, /* Change filesystem to read-only on error */
+ OCFS2_MOUNT_NOCLUSTER = 1 << 18, /* No cluster aware filesystem mount */
};
#define OCFS2_OSB_SOFT_RO 0x0001
@@ -673,7 +674,8 @@ static inline int ocfs2_cluster_o2cb_glo
static inline int ocfs2_mount_local(struct ocfs2_super *osb)
{
- return (osb->s_feature_incompat & OCFS2_FEATURE_INCOMPAT_LOCAL_MOUNT);
+ return ((osb->s_feature_incompat & OCFS2_FEATURE_INCOMPAT_LOCAL_MOUNT)
+ || (osb->s_mount_opt & OCFS2_MOUNT_NOCLUSTER));
}
static inline int ocfs2_uses_extended_slot_map(struct ocfs2_super *osb)
--- a/fs/ocfs2/slot_map.c~ocfs2-mount-shared-volume-without-ha-stack
+++ a/fs/ocfs2/slot_map.c
@@ -254,14 +254,16 @@ static int __ocfs2_find_empty_slot(struc
int i, ret = -ENOSPC;
if ((preferred >= 0) && (preferred < si->si_num_slots)) {
- if (!si->si_slots[preferred].sl_valid) {
+ if (!si->si_slots[preferred].sl_valid ||
+ !si->si_slots[preferred].sl_node_num) {
ret = preferred;
goto out;
}
}
for(i = 0; i < si->si_num_slots; i++) {
- if (!si->si_slots[i].sl_valid) {
+ if (!si->si_slots[i].sl_valid ||
+ !si->si_slots[i].sl_node_num) {
ret = i;
break;
}
@@ -456,24 +458,30 @@ int ocfs2_find_slot(struct ocfs2_super *
spin_lock(&osb->osb_lock);
ocfs2_update_slot_info(si);
- /* search for ourselves first and take the slot if it already
- * exists. Perhaps we need to mark this in a variable for our
- * own journal recovery? Possibly not, though we certainly
- * need to warn to the user */
- slot = __ocfs2_node_num_to_slot(si, osb->node_num);
- if (slot < 0) {
- /* if no slot yet, then just take 1st available
- * one. */
- slot = __ocfs2_find_empty_slot(si, osb->preferred_slot);
+ if (ocfs2_mount_local(osb))
+ /* use slot 0 directly in local mode */
+ slot = 0;
+ else {
+ /* search for ourselves first and take the slot if it already
+ * exists. Perhaps we need to mark this in a variable for our
+ * own journal recovery? Possibly not, though we certainly
+ * need to warn to the user */
+ slot = __ocfs2_node_num_to_slot(si, osb->node_num);
if (slot < 0) {
- spin_unlock(&osb->osb_lock);
- mlog(ML_ERROR, "no free slots available!\n");
- status = -EINVAL;
- goto bail;
- }
- } else
- printk(KERN_INFO "ocfs2: Slot %d on device (%s) was already "
- "allocated to this node!\n", slot, osb->dev_str);
+ /* if no slot yet, then just take 1st available
+ * one. */
+ slot = __ocfs2_find_empty_slot(si, osb->preferred_slot);
+ if (slot < 0) {
+ spin_unlock(&osb->osb_lock);
+ mlog(ML_ERROR, "no free slots available!\n");
+ status = -EINVAL;
+ goto bail;
+ }
+ } else
+ printk(KERN_INFO "ocfs2: Slot %d on device (%s) was "
+ "already allocated to this node!\n",
+ slot, osb->dev_str);
+ }
ocfs2_set_slot(si, slot, osb->node_num);
osb->slot_num = slot;
--- a/fs/ocfs2/super.c~ocfs2-mount-shared-volume-without-ha-stack
+++ a/fs/ocfs2/super.c
@@ -175,6 +175,7 @@ enum {
Opt_dir_resv_level,
Opt_journal_async_commit,
Opt_err_cont,
+ Opt_nocluster,
Opt_err,
};
@@ -208,6 +209,7 @@ static const match_table_t tokens = {
{Opt_dir_resv_level, "dir_resv_level=%u"},
{Opt_journal_async_commit, "journal_async_commit"},
{Opt_err_cont, "errors=continue"},
+ {Opt_nocluster, "nocluster"},
{Opt_err, NULL}
};
@@ -619,6 +621,13 @@ static int ocfs2_remount(struct super_bl
goto out;
}
+ tmp = OCFS2_MOUNT_NOCLUSTER;
+ if ((osb->s_mount_opt & tmp) != (parsed_options.mount_opt & tmp)) {
+ ret = -EINVAL;
+ mlog(ML_ERROR, "Cannot change nocluster option on remount\n");
+ goto out;
+ }
+
tmp = OCFS2_MOUNT_HB_LOCAL | OCFS2_MOUNT_HB_GLOBAL |
OCFS2_MOUNT_HB_NONE;
if ((osb->s_mount_opt & tmp) != (parsed_options.mount_opt & tmp)) {
@@ -859,6 +868,7 @@ static int ocfs2_verify_userspace_stack(
}
if (ocfs2_userspace_stack(osb) &&
+ !(osb->s_mount_opt & OCFS2_MOUNT_NOCLUSTER) &&
strncmp(osb->osb_cluster_stack, mopt->cluster_stack,
OCFS2_STACK_LABEL_LEN)) {
mlog(ML_ERROR,
@@ -1139,6 +1149,11 @@ static int ocfs2_fill_super(struct super
osb->s_mount_opt & OCFS2_MOUNT_DATA_WRITEBACK ? "writeback" :
"ordered");
+ if ((osb->s_mount_opt & OCFS2_MOUNT_NOCLUSTER) &&
+ !(osb->s_feature_incompat & OCFS2_FEATURE_INCOMPAT_LOCAL_MOUNT))
+ printk(KERN_NOTICE "ocfs2: The shared device (%s) is mounted "
+ "without cluster aware mode.\n", osb->dev_str);
+
atomic_set(&osb->vol_state, VOLUME_MOUNTED);
wake_up(&osb->osb_mount_event);
@@ -1445,6 +1460,9 @@ static int ocfs2_parse_options(struct su
case Opt_journal_async_commit:
mopt->mount_opt |= OCFS2_MOUNT_JOURNAL_ASYNC_COMMIT;
break;
+ case Opt_nocluster:
+ mopt->mount_opt |= OCFS2_MOUNT_NOCLUSTER;
+ break;
default:
mlog(ML_ERROR,
"Unrecognized mount option \"%s\" "
@@ -1556,6 +1574,9 @@ static int ocfs2_show_options(struct seq
if (opts & OCFS2_MOUNT_JOURNAL_ASYNC_COMMIT)
seq_printf(s, ",journal_async_commit");
+ if (opts & OCFS2_MOUNT_NOCLUSTER)
+ seq_printf(s, ",nocluster");
+
return 0;
}
_
Patches currently in -mm which might be from ghe@suse.com are
ocfs2-mount-shared-volume-without-ha-stack.patch
^ permalink raw reply [flat|nested] 215+ messages in thread
* + mm-memory_hotplug-handle-memblocks-only-with-config_arch_keep_memblock.patch added to -mm tree
2020-04-21 1:13 incoming Andrew Morton
` (36 preceding siblings ...)
2020-04-23 23:35 ` + ocfs2-mount-shared-volume-without-ha-stack.patch " Andrew Morton
@ 2020-04-24 0:29 ` Andrew Morton
2020-04-24 1:17 ` + mm-return-true-in-cpupid_pid_unset.patch " Andrew Morton
` (29 subsequent siblings)
67 siblings, 0 replies; 215+ messages in thread
From: Andrew Morton @ 2020-04-24 0:29 UTC (permalink / raw)
To: anshuman.khandual, bhe, david, mhocko, mhocko, mm-commits,
osalvador, pankaj.gupta.linux, rppt
The patch titled
Subject: mm/memory_hotplug: handle memblocks only with CONFIG_ARCH_KEEP_MEMBLOCK
has been added to the -mm tree. Its filename is
mm-memory_hotplug-handle-memblocks-only-with-config_arch_keep_memblock.patch
This patch should soon appear at
http://ozlabs.org/~akpm/mmots/broken-out/mm-memory_hotplug-handle-memblocks-only-with-config_arch_keep_memblock.patch
and later at
http://ozlabs.org/~akpm/mmotm/broken-out/mm-memory_hotplug-handle-memblocks-only-with-config_arch_keep_memblock.patch
Before you just go and hit "reply", please:
a) Consider who else should be cc'ed
b) Prefer to cc a suitable mailing list as well
c) Ideally: find the original patch on the mailing list and do a
reply-to-all to that, adding suitable additional cc's
*** Remember to use Documentation/process/submit-checklist.rst when testing your code ***
The -mm tree is included into linux-next and is updated
there every 3-4 working days
------------------------------------------------------
From: David Hildenbrand <david@redhat.com>
Subject: mm/memory_hotplug: handle memblocks only with CONFIG_ARCH_KEEP_MEMBLOCK
The comment in add_memory_resource() is stale: hotadd_new_pgdat() will no
longer call get_pfn_range_for_nid(), as a hotadded pgdat will simply span
no pages at all, until memory is moved to the zone/node via
move_pfn_range_to_zone() - e.g., when onlining memory blocks.
The only archs that care about memblocks for hotplugged memory (either for
iterating over all system RAM or testing for memory validity) are arm64,
s390x, and powerpc - due to CONFIG_ARCH_KEEP_MEMBLOCK. Without
CONFIG_ARCH_KEEP_MEMBLOCK, we can simply stop messing with memblocks.
Link: http://lkml.kernel.org/r/20200422155353.25381-3-david@redhat.com
Signed-off-by: David Hildenbrand <david@redhat.com>
Acked-by: Mike Rapoport <rppt@linux.ibm.com>
Acked-by: Michal Hocko <mhocko@suse.com>
Cc: Michal Hocko <mhocko@kernel.org>
Cc: Baoquan He <bhe@redhat.com>
Cc: Oscar Salvador <osalvador@suse.de>
Cc: Pankaj Gupta <pankaj.gupta.linux@gmail.com>
Cc: Mike Rapoport <rppt@linux.ibm.com>
Cc: Anshuman Khandual <anshuman.khandual@arm.com>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
---
mm/Kconfig | 3 +++
mm/memory_hotplug.c | 20 ++++++++++----------
2 files changed, 13 insertions(+), 10 deletions(-)
--- a/mm/Kconfig~mm-memory_hotplug-handle-memblocks-only-with-config_arch_keep_memblock
+++ a/mm/Kconfig
@@ -133,6 +133,9 @@ config HAVE_FAST_GUP
depends on MMU
bool
+# Don't discard allocated memory used to track "memory" and "reserved" memblocks
+# after early boot, so it can still be used to test for validity of memory.
+# Also, memblocks are updated with memory hot(un)plug.
config ARCH_KEEP_MEMBLOCK
bool
--- a/mm/memory_hotplug.c~mm-memory_hotplug-handle-memblocks-only-with-config_arch_keep_memblock
+++ a/mm/memory_hotplug.c
@@ -1021,13 +1021,8 @@ int __ref add_memory_resource(int nid, s
mem_hotplug_begin();
- /*
- * Add new range to memblock so that when hotadd_new_pgdat() is called
- * to allocate new pgdat, get_pfn_range_for_nid() will be able to find
- * this new range and calculate total pages correctly. The range will
- * be removed at hot-remove time.
- */
- memblock_add_node(start, size, nid);
+ if (IS_ENABLED(CONFIG_ARCH_KEEP_MEMBLOCK))
+ memblock_add_node(start, size, nid);
ret = __try_online_node(nid, false);
if (ret < 0)
@@ -1076,7 +1071,8 @@ error:
/* rollback pgdat allocation and others */
if (new_node)
rollback_node_hotadd(nid);
- memblock_remove(start, size);
+ if (IS_ENABLED(CONFIG_ARCH_KEEP_MEMBLOCK))
+ memblock_remove(start, size);
mem_hotplug_done();
return ret;
}
@@ -1673,8 +1669,12 @@ static int __ref try_remove_memory(int n
mem_hotplug_begin();
arch_remove_memory(nid, start, size, NULL);
- memblock_free(start, size);
- memblock_remove(start, size);
+
+ if (IS_ENABLED(CONFIG_ARCH_KEEP_MEMBLOCK)) {
+ memblock_free(start, size);
+ memblock_remove(start, size);
+ }
+
__release_memory_resource(start, size);
try_offline_node(nid);
_
Patches currently in -mm which might be from david@redhat.com are
mm-page_alloc-fix-watchdog-soft-lockups-during-set_zone_contiguous.patch
drivers-base-memoryc-cache-memory-blocks-in-xarray-to-accelerate-lookup-fix.patch
powerpc-pseries-hotplug-memory-stop-checking-is_mem_section_removable.patch
mm-memory_hotplug-remove-is_mem_section_removable.patch
mm-memory_hotplug-set-node_start_pfn-of-hotadded-pgdat-to-0.patch
mm-memory_hotplug-handle-memblocks-only-with-config_arch_keep_memblock.patch
^ permalink raw reply [flat|nested] 215+ messages in thread
* + mm-return-true-in-cpupid_pid_unset.patch added to -mm tree
2020-04-21 1:13 incoming Andrew Morton
` (37 preceding siblings ...)
2020-04-24 0:29 ` + mm-memory_hotplug-handle-memblocks-only-with-config_arch_keep_memblock.patch " Andrew Morton
@ 2020-04-24 1:17 ` Andrew Morton
2020-04-24 1:20 ` + kernel-better-document-the-use_mm-unuse_mm-api-contract-v2-fix.patch " Andrew Morton
` (28 subsequent siblings)
67 siblings, 0 replies; 215+ messages in thread
From: Andrew Morton @ 2020-04-24 1:17 UTC (permalink / raw)
To: akpm, mm-commits, yanaijie
The patch titled
Subject: include/linux/mm.h: return true in cpupid_pid_unset()
has been added to the -mm tree. Its filename is
mm-return-true-in-cpupid_pid_unset.patch
This patch should soon appear at
http://ozlabs.org/~akpm/mmots/broken-out/mm-return-true-in-cpupid_pid_unset.patch
and later at
http://ozlabs.org/~akpm/mmotm/broken-out/mm-return-true-in-cpupid_pid_unset.patch
Before you just go and hit "reply", please:
a) Consider who else should be cc'ed
b) Prefer to cc a suitable mailing list as well
c) Ideally: find the original patch on the mailing list and do a
reply-to-all to that, adding suitable additional cc's
*** Remember to use Documentation/process/submit-checklist.rst when testing your code ***
The -mm tree is included into linux-next and is updated
there every 3-4 working days
------------------------------------------------------
From: Jason Yan <yanaijie@huawei.com>
Subject: include/linux/mm.h: return true in cpupid_pid_unset()
Fix the following coccicheck warning:
include/linux/mm.h:1371:8-9: WARNING: return of 0/1 in function
'cpupid_pid_unset' with return type bool
Link: http://lkml.kernel.org/r/20200422071816.48879-1-yanaijie@huawei.com
Signed-off-by: Jason Yan <yanaijie@huawei.com>
Reviewed-by: Andrew Morton <akpm@linux-foundation.org>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
---
include/linux/mm.h | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
--- a/include/linux/mm.h~mm-return-true-in-cpupid_pid_unset
+++ a/include/linux/mm.h
@@ -1367,7 +1367,7 @@ static inline int cpu_pid_to_cpupid(int
static inline bool cpupid_pid_unset(int cpupid)
{
- return 1;
+ return true;
}
static inline void page_cpupid_reset_last(struct page *page)
_
Patches currently in -mm which might be from yanaijie@huawei.com are
mm-return-true-in-cpupid_pid_unset.patch
userc-make-uidhash_table-static.patch
lib-test_lockupc-make-test_inode-static.patch
^ permalink raw reply [flat|nested] 215+ messages in thread
* + kernel-better-document-the-use_mm-unuse_mm-api-contract-v2-fix.patch added to -mm tree
2020-04-21 1:13 incoming Andrew Morton
` (38 preceding siblings ...)
2020-04-24 1:17 ` + mm-return-true-in-cpupid_pid_unset.patch " Andrew Morton
@ 2020-04-24 1:20 ` Andrew Morton
2020-04-24 1:40 ` + mm-thp-rename-pmd_mknotpresent-as-pmd_mkinvalid-v2.patch " Andrew Morton
` (27 subsequent siblings)
67 siblings, 0 replies; 215+ messages in thread
From: Andrew Morton @ 2020-04-24 1:20 UTC (permalink / raw)
To: haren, hch, mm-commits, sfr
The patch titled
Subject: powerpc/vas: fix up for {un}use_mm() rename
has been added to the -mm tree. Its filename is
kernel-better-document-the-use_mm-unuse_mm-api-contract-v2-fix.patch
This patch should soon appear at
http://ozlabs.org/~akpm/mmots/broken-out/kernel-better-document-the-use_mm-unuse_mm-api-contract-v2-fix.patch
and later at
http://ozlabs.org/~akpm/mmotm/broken-out/kernel-better-document-the-use_mm-unuse_mm-api-contract-v2-fix.patch
Before you just go and hit "reply", please:
a) Consider who else should be cc'ed
b) Prefer to cc a suitable mailing list as well
c) Ideally: find the original patch on the mailing list and do a
reply-to-all to that, adding suitable additional cc's
*** Remember to use Documentation/process/submit-checklist.rst when testing your code ***
The -mm tree is included into linux-next and is updated
there every 3-4 working days
------------------------------------------------------
From: Stephen Rothwell <sfr@canb.auug.org.au>
Subject: powerpc/vas: fix up for {un}use_mm() rename
Link: http://lkml.kernel.org/r/20200422163935.5aa93ba5@canb.auug.org.au
Signed-off-by: Stephen Rothwell <sfr@canb.auug.org.au>
Acked-by: Haren Myneni <haren@linux.ibm.com>
Cc: Christoph Hellwig <hch@lst.de>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
---
arch/powerpc/platforms/powernv/vas-fault.c | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)
--- a/arch/powerpc/platforms/powernv/vas-fault.c~kernel-better-document-the-use_mm-unuse_mm-api-contract-v2-fix
+++ a/arch/powerpc/platforms/powernv/vas-fault.c
@@ -127,7 +127,7 @@ static void update_csb(struct vas_window
return;
}
- use_mm(window->mm);
+ kthread_use_mm(window->mm);
rc = copy_to_user(csb_addr, &csb, sizeof(csb));
/*
* User space polls on csb.flags (first byte). So add barrier
@@ -139,7 +139,7 @@ static void update_csb(struct vas_window
smp_mb();
rc = copy_to_user(csb_addr, &csb, sizeof(u8));
}
- unuse_mm(window->mm);
+ kthread_unuse_mm(window->mm);
put_task_struct(tsk);
/* Success */
_
Patches currently in -mm which might be from sfr@canb.auug.org.au are
kernel-better-document-the-use_mm-unuse_mm-api-contract-v2-fix.patch
^ permalink raw reply [flat|nested] 215+ messages in thread
* + mm-thp-rename-pmd_mknotpresent-as-pmd_mkinvalid-v2.patch added to -mm tree
2020-04-21 1:13 incoming Andrew Morton
` (39 preceding siblings ...)
2020-04-24 1:20 ` + kernel-better-document-the-use_mm-unuse_mm-api-contract-v2-fix.patch " Andrew Morton
@ 2020-04-24 1:40 ` Andrew Morton
2020-04-24 1:47 ` + ipc-convert-ipcs_idr-to-xarray-update.patch " Andrew Morton
` (26 subsequent siblings)
67 siblings, 0 replies; 215+ messages in thread
From: Andrew Morton @ 2020-04-24 1:40 UTC (permalink / raw)
To: anshuman.khandual, catalin.marinas, mm-commits, will
The patch titled
Subject: mm-thp-rename-pmd_mknotpresent-as-pmd_mkinvalid-v2
has been added to the -mm tree. Its filename is
mm-thp-rename-pmd_mknotpresent-as-pmd_mkinvalid-v2.patch
This patch should soon appear at
http://ozlabs.org/~akpm/mmots/broken-out/mm-thp-rename-pmd_mknotpresent-as-pmd_mkinvalid-v2.patch
and later at
http://ozlabs.org/~akpm/mmotm/broken-out/mm-thp-rename-pmd_mknotpresent-as-pmd_mkinvalid-v2.patch
Before you just go and hit "reply", please:
a) Consider who else should be cc'ed
b) Prefer to cc a suitable mailing list as well
c) Ideally: find the original patch on the mailing list and do a
reply-to-all to that, adding suitable additional cc's
*** Remember to use Documentation/process/submit-checklist.rst when testing your code ***
The -mm tree is included into linux-next and is updated
there every 3-4 working days
------------------------------------------------------
From: Anshuman Khandual <anshuman.khandual@arm.com>
Subject: mm-thp-rename-pmd_mknotpresent-as-pmd_mkinvalid-v2
chang pmd_mknotvalid() to pmd_mkinvalid() per Will
Link: http://lkml.kernel.org/r/1587520326-10099-3-git-send-email-anshuman.khandual@arm.com
Signed-off-by: Anshuman Khandual <anshuman.khandual@arm.com>
Cc: Catalin Marinas <catalin.marinas@arm.com>
Cc: Will Deacon <will@kernel.org>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
---
arch/arc/include/asm/hugepage.h | 2 +-
arch/arm/include/asm/pgtable-3level.h | 2 +-
arch/arm64/include/asm/pgtable.h | 2 +-
arch/mips/include/asm/pgtable.h | 2 +-
arch/x86/include/asm/pgtable.h | 2 +-
arch/x86/mm/kmmio.c | 2 +-
mm/pgtable-generic.c | 2 +-
7 files changed, 7 insertions(+), 7 deletions(-)
--- a/arch/arc/include/asm/hugepage.h~mm-thp-rename-pmd_mknotpresent-as-pmd_mkinvalid-v2
+++ a/arch/arc/include/asm/hugepage.h
@@ -26,7 +26,7 @@ static inline pmd_t pte_pmd(pte_t pte)
#define pmd_mkold(pmd) pte_pmd(pte_mkold(pmd_pte(pmd)))
#define pmd_mkyoung(pmd) pte_pmd(pte_mkyoung(pmd_pte(pmd)))
#define pmd_mkhuge(pmd) pte_pmd(pte_mkhuge(pmd_pte(pmd)))
-#define pmd_mknotvalid(pmd) pte_pmd(pte_mknotpresent(pmd_pte(pmd)))
+#define pmd_mkinvalid(pmd) pte_pmd(pte_mknotpresent(pmd_pte(pmd)))
#define pmd_mkclean(pmd) pte_pmd(pte_mkclean(pmd_pte(pmd)))
#define pmd_write(pmd) pte_write(pmd_pte(pmd))
--- a/arch/arm64/include/asm/pgtable.h~mm-thp-rename-pmd_mknotpresent-as-pmd_mkinvalid-v2
+++ a/arch/arm64/include/asm/pgtable.h
@@ -371,7 +371,7 @@ static inline int pmd_protnone(pmd_t pmd
#define pmd_mkclean(pmd) pte_pmd(pte_mkclean(pmd_pte(pmd)))
#define pmd_mkdirty(pmd) pte_pmd(pte_mkdirty(pmd_pte(pmd)))
#define pmd_mkyoung(pmd) pte_pmd(pte_mkyoung(pmd_pte(pmd)))
-#define pmd_mknotvalid(pmd) (__pmd(pmd_val(pmd) & ~PMD_SECT_VALID))
+#define pmd_mkinvalid(pmd) (__pmd(pmd_val(pmd) & ~PMD_SECT_VALID))
#define pmd_thp_or_huge(pmd) (pmd_huge(pmd) || pmd_trans_huge(pmd))
--- a/arch/arm/include/asm/pgtable-3level.h~mm-thp-rename-pmd_mknotpresent-as-pmd_mkinvalid-v2
+++ a/arch/arm/include/asm/pgtable-3level.h
@@ -221,7 +221,7 @@ PMD_BIT_FUNC(mkyoung, |= PMD_SECT_AF);
#define pmdp_establish generic_pmdp_establish
/* represent a notpresent pmd by faulting entry, this is used by pmdp_invalidate */
-static inline pmd_t pmd_mknotvalid(pmd_t pmd)
+static inline pmd_t pmd_mkinvalid(pmd_t pmd)
{
return __pmd(pmd_val(pmd) & ~L_PMD_SECT_VALID);
}
--- a/arch/mips/include/asm/pgtable.h~mm-thp-rename-pmd_mknotpresent-as-pmd_mkinvalid-v2
+++ a/arch/mips/include/asm/pgtable.h
@@ -631,7 +631,7 @@ static inline pmd_t pmd_modify(pmd_t pmd
return pmd;
}
-static inline pmd_t pmd_mknotvalid(pmd_t pmd)
+static inline pmd_t pmd_mkinvalid(pmd_t pmd)
{
pmd_val(pmd) &= ~(_PAGE_PRESENT | _PAGE_VALID | _PAGE_DIRTY);
--- a/arch/x86/include/asm/pgtable.h~mm-thp-rename-pmd_mknotpresent-as-pmd_mkinvalid-v2
+++ a/arch/x86/include/asm/pgtable.h
@@ -624,7 +624,7 @@ static inline pud_t pfn_pud(unsigned lon
return __pud(pfn | check_pgprot(pgprot));
}
-static inline pmd_t pmd_mknotvalid(pmd_t pmd)
+static inline pmd_t pmd_mkinvalid(pmd_t pmd)
{
return pfn_pmd(pmd_pfn(pmd),
__pgprot(pmd_flags(pmd) & ~(_PAGE_PRESENT|_PAGE_PROTNONE)));
--- a/arch/x86/mm/kmmio.c~mm-thp-rename-pmd_mknotpresent-as-pmd_mkinvalid-v2
+++ a/arch/x86/mm/kmmio.c
@@ -130,7 +130,7 @@ static void clear_pmd_presence(pmd_t *pm
pmdval_t v = pmd_val(*pmd);
if (clear) {
*old = v;
- new_pmd = pmd_mknotvalid(*pmd);
+ new_pmd = pmd_mkinvalid(*pmd);
} else {
/* Presume this has been called with clear==true previously */
new_pmd = __pmd(*old);
--- a/mm/pgtable-generic.c~mm-thp-rename-pmd_mknotpresent-as-pmd_mkinvalid-v2
+++ a/mm/pgtable-generic.c
@@ -194,7 +194,7 @@ pgtable_t pgtable_trans_huge_withdraw(st
pmd_t pmdp_invalidate(struct vm_area_struct *vma, unsigned long address,
pmd_t *pmdp)
{
- pmd_t old = pmdp_establish(vma, address, pmdp, pmd_mknotvalid(*pmdp));
+ pmd_t old = pmdp_establish(vma, address, pmdp, pmd_mkinvalid(*pmdp));
flush_pmd_tlb_range(vma, address, address + HPAGE_PMD_SIZE);
return old;
}
_
Patches currently in -mm which might be from anshuman.khandual@arm.com are
powerpc-mm-drop-platform-defined-pmd_mknotpresent.patch
mm-thp-rename-pmd_mknotpresent-as-pmd_mknotvalid.patch
mm-thp-rename-pmd_mknotpresent-as-pmd_mkinvalid-v2.patch
x86-mm-define-mm_p4d_folded.patch
mm-debug-add-tests-validating-architecture-page-table-helpers.patch
mm-debug-add-tests-validating-architecture-page-table-helpers-v17.patch
^ permalink raw reply [flat|nested] 215+ messages in thread
* + ipc-convert-ipcs_idr-to-xarray-update.patch added to -mm tree
2020-04-21 1:13 incoming Andrew Morton
` (40 preceding siblings ...)
2020-04-24 1:40 ` + mm-thp-rename-pmd_mknotpresent-as-pmd_mkinvalid-v2.patch " Andrew Morton
@ 2020-04-24 1:47 ` Andrew Morton
[not found] ` <20200605195848.GB5393@lca.pw>
2020-12-30 15:44 ` Manfred Spraul
2020-04-24 2:06 ` + powerpc-spufs-simplify-spufs-core-dumping.patch " Andrew Morton
` (25 subsequent siblings)
67 siblings, 2 replies; 215+ messages in thread
From: Andrew Morton @ 2020-04-24 1:47 UTC (permalink / raw)
To: dave, manfred, mm-commits, willy
The patch titled
Subject: ipc-convert-ipcs_idr-to-xarray-update
has been added to the -mm tree. Its filename is
ipc-convert-ipcs_idr-to-xarray-update.patch
This patch should soon appear at
http://ozlabs.org/~akpm/mmots/broken-out/ipc-convert-ipcs_idr-to-xarray-update.patch
and later at
http://ozlabs.org/~akpm/mmotm/broken-out/ipc-convert-ipcs_idr-to-xarray-update.patch
Before you just go and hit "reply", please:
a) Consider who else should be cc'ed
b) Prefer to cc a suitable mailing list as well
c) Ideally: find the original patch on the mailing list and do a
reply-to-all to that, adding suitable additional cc's
*** Remember to use Documentation/process/submit-checklist.rst when testing your code ***
The -mm tree is included into linux-next and is updated
there every 3-4 working days
------------------------------------------------------
From: "Matthew Wilcox (Oracle)" <willy@infradead.org>
Subject: ipc-convert-ipcs_idr-to-xarray-update
implemant change suggested by Manfred
Link: http://lkml.kernel.org/r/20200421183342.GQ5820@bombadil.infradead.org
Signed-off-by: Matthew Wilcox <willy@infradead.org>
Cc: Manfred Spraul <manfred@colorfullife.com>
Cc: Davidlohr Bueso <dave@stgolabs.net>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
---
include/linux/xarray.h | 1
ipc/util.c | 52 +++++++++++++++------------------------
lib/xarray.c | 2 -
3 files changed, 21 insertions(+), 34 deletions(-)
--- a/include/linux/xarray.h~ipc-convert-ipcs_idr-to-xarray-update
+++ a/include/linux/xarray.h
@@ -1501,7 +1501,6 @@ void *xas_find_marked(struct xa_state *,
void xas_init_marks(const struct xa_state *);
bool xas_nomem(struct xa_state *, gfp_t);
-bool __xas_nomem(struct xa_state *, gfp_t);
void xas_pause(struct xa_state *);
void xas_create_range(struct xa_state *);
--- a/ipc/util.c~ipc-convert-ipcs_idr-to-xarray-update
+++ a/ipc/util.c
@@ -210,52 +210,40 @@ static inline int ipc_id_alloc(struct ip
int err;
if (get_restore_id(ids) < 0) {
- XA_STATE(xas, &ids->ipcs, 0);
- int min_idx, max_idx;
+ int max_idx;
max_idx = max(ids->in_use*3/2, ipc_min_cycle);
max_idx = min(max_idx, ipc_mni) - 1;
- xas_lock(&xas);
+ xa_lock(&ids->ipcs);
- min_idx = ids->next_idx;
- new->seq = ids->seq;
+ err = __xa_alloc_cyclic(&ids->ipcs, &idx, NULL,
+ XA_LIMIT(0, max_idx), &ids->next_idx,
+ GFP_KERNEL);
+ if (err == 1) {
+ ids->seq++;
+ if (ids->seq >= ipcid_seq_max())
+ ids->seq = 0;
+ }
+
+ if (err >= 0) {
+ new->seq = ids->seq;
+ new->id = (new->seq << ipcmni_seq_shift()) + idx;
+ /* xa_store contains a write barrier */
+ __xa_store(&ids->ipcs, idx, new, GFP_KERNEL);
+ }
- /* Modified version of __xa_alloc */
- do {
- xas.xa_index = min_idx;
- xas_find_marked(&xas, max_idx, XA_FREE_MARK);
- if (xas.xa_node == XAS_RESTART && min_idx > 0) {
- ids->seq++;
- if (ids->seq >= ipcid_seq_max())
- ids->seq = 0;
- new->seq = ids->seq;
- xas.xa_index = 0;
- min_idx = 0;
- xas_find_marked(&xas, max_idx, XA_FREE_MARK);
- }
- if (xas.xa_node == XAS_RESTART)
- xas_set_err(&xas, -ENOSPC);
- else
- new->id = (new->seq << ipcmni_seq_shift()) +
- xas.xa_index;
- xas_store(&xas, new);
- xas_clear_mark(&xas, XA_FREE_MARK);
- } while (__xas_nomem(&xas, GFP_KERNEL));
-
- xas_unlock(&xas);
- err = xas_error(&xas);
- idx = xas.xa_index;
+ xa_unlock(&ids->ipcs);
} else {
new->id = get_restore_id(ids);
new->seq = ipcid_to_seqx(new->id);
idx = ipcid_to_idx(new->id);
err = xa_insert(&ids->ipcs, idx, new, GFP_KERNEL);
- if (err == -EBUSY)
- err = -ENOSPC;
set_restore_id(ids, -1);
}
+ if (err == -EBUSY)
+ return -ENOSPC;
if (err < 0)
return err;
return idx;
--- a/lib/xarray.c~ipc-convert-ipcs_idr-to-xarray-update
+++ a/lib/xarray.c
@@ -319,7 +319,7 @@ EXPORT_SYMBOL_GPL(xas_nomem);
*
* Return: true if memory was needed, and was successfully allocated.
*/
-bool __xas_nomem(struct xa_state *xas, gfp_t gfp)
+static bool __xas_nomem(struct xa_state *xas, gfp_t gfp)
__must_hold(xas->xa->xa_lock)
{
unsigned int lock_type = xa_lock_type(xas->xa);
_
Patches currently in -mm which might be from willy@infradead.org are
mm-move-readahead-prototypes-from-mmh.patch
mm-return-void-from-various-readahead-functions.patch
mm-ignore-return-value-of-readpages.patch
mm-move-readahead-nr_pages-check-into-read_pages.patch
mm-add-new-readahead_control-api.patch
mm-use-readahead_control-to-pass-arguments.patch
mm-rename-various-offset-parameters-to-index.patch
mm-rename-readahead-loop-variable-to-i.patch
mm-remove-page_offset-from-readahead-loop.patch
mm-put-readahead-pages-in-cache-earlier.patch
mm-add-readahead-address-space-operation.patch
mm-move-end_index-check-out-of-readahead-loop.patch
mm-add-page_cache_readahead_unbounded.patch
mm-document-why-we-dont-set-pagereadahead.patch
mm-use-memalloc_nofs_save-in-readahead-path.patch
fs-convert-mpage_readpages-to-mpage_readahead.patch
btrfs-convert-from-readpages-to-readahead.patch
erofs-convert-uncompressed-files-from-readpages-to-readahead.patch
erofs-convert-compressed-files-from-readpages-to-readahead.patch
ext4-convert-from-readpages-to-readahead.patch
ext4-pass-the-inode-to-ext4_mpage_readpages.patch
f2fs-convert-from-readpages-to-readahead.patch
f2fs-pass-the-inode-to-f2fs_mpage_readpages.patch
fuse-convert-from-readpages-to-readahead.patch
fuse-convert-from-readpages-to-readahead-fix.patch
iomap-convert-from-readpages-to-readahead.patch
ipc-convert-ipcs_idr-to-xarray.patch
ipc-convert-ipcs_idr-to-xarray-update.patch
^ permalink raw reply [flat|nested] 215+ messages in thread
* + powerpc-spufs-simplify-spufs-core-dumping.patch added to -mm tree
2020-04-21 1:13 incoming Andrew Morton
` (41 preceding siblings ...)
2020-04-24 1:47 ` + ipc-convert-ipcs_idr-to-xarray-update.patch " Andrew Morton
@ 2020-04-24 2:06 ` Andrew Morton
2020-04-24 2:06 ` + signal-factor-copy_siginfo_to_external32-from-copy_siginfo_to_user32.patch " Andrew Morton
` (24 subsequent siblings)
67 siblings, 0 replies; 215+ messages in thread
From: Andrew Morton @ 2020-04-24 2:06 UTC (permalink / raw)
To: arnd, benh, ebiederm, hch, jk, mm-commits, mpe, paulus, viro
The patch titled
Subject: powerpc/spufs: simplify spufs core dumping
has been added to the -mm tree. Its filename is
powerpc-spufs-simplify-spufs-core-dumping.patch
This patch should soon appear at
http://ozlabs.org/~akpm/mmots/broken-out/powerpc-spufs-simplify-spufs-core-dumping.patch
and later at
http://ozlabs.org/~akpm/mmotm/broken-out/powerpc-spufs-simplify-spufs-core-dumping.patch
Before you just go and hit "reply", please:
a) Consider who else should be cc'ed
b) Prefer to cc a suitable mailing list as well
c) Ideally: find the original patch on the mailing list and do a
reply-to-all to that, adding suitable additional cc's
*** Remember to use Documentation/process/submit-checklist.rst when testing your code ***
The -mm tree is included into linux-next and is updated
there every 3-4 working days
------------------------------------------------------
From: Christoph Hellwig <hch@lst.de>
Subject: powerpc/spufs: simplify spufs core dumping
Patch series "remove set_fs calls from the exec and coredump code", v3.
This series gets rid of playing with the address limit in the exec and
coredump code. Most of this was fairly trivial, the biggest changes are
those to the spufs coredump code.
This patch (of 7):
Replace the coredump ->read method with a ->dump method that must call
dump_emit itself. That way we avoid a buffer allocation an messing with
set_fs() to call into code that is intended to deal with user buffers.
For the ->get case we can now use a small on-stack buffer and avoid memory
allocations as well.
Link: http://lkml.kernel.org/r/20200421154204.252921-1-hch@lst.de
Link: http://lkml.kernel.org/r/20200421154204.252921-2-hch@lst.de
Signed-off-by: Christoph Hellwig <hch@lst.de>
Reviewed-by: Arnd Bergmann <arnd@arndb.de>
Reviewed-by: Jeremy Kerr <jk@ozlabs.org>
Cc: Alexander Viro <viro@zeniv.linux.org.uk>
Cc: Benjamin Herrenschmidt <benh@kernel.crashing.org>
Cc: "Eric W . Biederman" <ebiederm@xmission.com>
Cc: Michael Ellerman <mpe@ellerman.id.au>
Cc: Paul Mackerras <paulus@samba.org>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
---
arch/powerpc/platforms/cell/spufs/coredump.c | 85 +----
arch/powerpc/platforms/cell/spufs/file.c | 273 ++++++++---------
arch/powerpc/platforms/cell/spufs/spufs.h | 3
3 files changed, 169 insertions(+), 192 deletions(-)
--- a/arch/powerpc/platforms/cell/spufs/coredump.c~powerpc-spufs-simplify-spufs-core-dumping
+++ a/arch/powerpc/platforms/cell/spufs/coredump.c
@@ -21,22 +21,6 @@
#include "spufs.h"
-static ssize_t do_coredump_read(int num, struct spu_context *ctx, void *buffer,
- size_t size, loff_t *off)
-{
- u64 data;
- int ret;
-
- if (spufs_coredump_read[num].read)
- return spufs_coredump_read[num].read(ctx, buffer, size, off);
-
- data = spufs_coredump_read[num].get(ctx);
- ret = snprintf(buffer, size, "0x%.16llx", data);
- if (ret >= size)
- return size;
- return ++ret; /* count trailing NULL */
-}
-
static int spufs_ctx_note_size(struct spu_context *ctx, int dfd)
{
int i, sz, total = 0;
@@ -118,58 +102,43 @@ int spufs_coredump_extra_notes_size(void
static int spufs_arch_write_note(struct spu_context *ctx, int i,
struct coredump_params *cprm, int dfd)
{
- loff_t pos = 0;
- int sz, rc, total = 0;
- const int bufsz = PAGE_SIZE;
- char *name;
- char fullname[80], *buf;
+ size_t sz = spufs_coredump_read[i].size;
+ char fullname[80];
struct elf_note en;
- size_t skip;
+ size_t ret;
- buf = (void *)get_zeroed_page(GFP_KERNEL);
- if (!buf)
- return -ENOMEM;
-
- name = spufs_coredump_read[i].name;
- sz = spufs_coredump_read[i].size;
-
- sprintf(fullname, "SPU/%d/%s", dfd, name);
+ sprintf(fullname, "SPU/%d/%s", dfd, spufs_coredump_read[i].name);
en.n_namesz = strlen(fullname) + 1;
en.n_descsz = sz;
en.n_type = NT_SPU;
if (!dump_emit(cprm, &en, sizeof(en)))
- goto Eio;
-
+ return -EIO;
if (!dump_emit(cprm, fullname, en.n_namesz))
- goto Eio;
-
+ return -EIO;
if (!dump_align(cprm, 4))
- goto Eio;
+ return -EIO;
+
+ if (spufs_coredump_read[i].dump) {
+ ret = spufs_coredump_read[i].dump(ctx, cprm);
+ if (ret < 0)
+ return ret;
+ } else {
+ char buf[32];
+
+ ret = snprintf(buf, sizeof(buf), "0x%.16llx",
+ spufs_coredump_read[i].get(ctx));
+ if (ret >= sizeof(buf))
+ return sizeof(buf);
+
+ /* count trailing the NULL: */
+ if (!dump_emit(cprm, buf, ret + 1))
+ return -EIO;
+ }
- do {
- rc = do_coredump_read(i, ctx, buf, bufsz, &pos);
- if (rc > 0) {
- if (!dump_emit(cprm, buf, rc))
- goto Eio;
- total += rc;
- }
- } while (rc == bufsz && total < sz);
-
- if (rc < 0)
- goto out;
-
- skip = roundup(cprm->pos - total + sz, 4) - cprm->pos;
- if (!dump_skip(cprm, skip))
- goto Eio;
-
- rc = 0;
-out:
- free_page((unsigned long)buf);
- return rc;
-Eio:
- free_page((unsigned long)buf);
- return -EIO;
+ if (!dump_skip(cprm, roundup(cprm->pos - ret + sz, 4) - cprm->pos))
+ return -EIO;
+ return 0;
}
int spufs_coredump_extra_notes_write(struct coredump_params *cprm)
--- a/arch/powerpc/platforms/cell/spufs/file.c~powerpc-spufs-simplify-spufs-core-dumping
+++ a/arch/powerpc/platforms/cell/spufs/file.c
@@ -9,6 +9,7 @@
#undef DEBUG
+#include <linux/coredump.h>
#include <linux/fs.h>
#include <linux/ioctl.h>
#include <linux/export.h>
@@ -129,6 +130,14 @@ out:
return ret;
}
+static ssize_t spufs_dump_emit(struct coredump_params *cprm, void *buf,
+ size_t size)
+{
+ if (!dump_emit(cprm, buf, size))
+ return -EIO;
+ return size;
+}
+
#define DEFINE_SPUFS_SIMPLE_ATTRIBUTE(__fops, __get, __set, __fmt) \
static int __fops ## _open(struct inode *inode, struct file *file) \
{ \
@@ -172,12 +181,9 @@ spufs_mem_release(struct inode *inode, s
}
static ssize_t
-__spufs_mem_read(struct spu_context *ctx, char __user *buffer,
- size_t size, loff_t *pos)
+spufs_mem_dump(struct spu_context *ctx, struct coredump_params *cprm)
{
- char *local_store = ctx->ops->get_ls(ctx);
- return simple_read_from_buffer(buffer, size, pos, local_store,
- LS_SIZE);
+ return spufs_dump_emit(cprm, ctx->ops->get_ls(ctx), LS_SIZE);
}
static ssize_t
@@ -190,7 +196,8 @@ spufs_mem_read(struct file *file, char _
ret = spu_acquire(ctx);
if (ret)
return ret;
- ret = __spufs_mem_read(ctx, buffer, size, pos);
+ ret = simple_read_from_buffer(buffer, size, pos, ctx->ops->get_ls(ctx),
+ LS_SIZE);
spu_release(ctx);
return ret;
@@ -459,12 +466,10 @@ spufs_regs_open(struct inode *inode, str
}
static ssize_t
-__spufs_regs_read(struct spu_context *ctx, char __user *buffer,
- size_t size, loff_t *pos)
+spufs_regs_dump(struct spu_context *ctx, struct coredump_params *cprm)
{
- struct spu_lscsa *lscsa = ctx->csa.lscsa;
- return simple_read_from_buffer(buffer, size, pos,
- lscsa->gprs, sizeof lscsa->gprs);
+ return spufs_dump_emit(cprm, ctx->csa.lscsa->gprs,
+ sizeof(ctx->csa.lscsa->gprs));
}
static ssize_t
@@ -482,7 +487,8 @@ spufs_regs_read(struct file *file, char
ret = spu_acquire_saved(ctx);
if (ret)
return ret;
- ret = __spufs_regs_read(ctx, buffer, size, pos);
+ ret = simple_read_from_buffer(buffer, size, pos, ctx->csa.lscsa->gprs,
+ sizeof(ctx->csa.lscsa->gprs));
spu_release_saved(ctx);
return ret;
}
@@ -517,12 +523,10 @@ static const struct file_operations spuf
};
static ssize_t
-__spufs_fpcr_read(struct spu_context *ctx, char __user * buffer,
- size_t size, loff_t * pos)
+spufs_fpcr_dump(struct spu_context *ctx, struct coredump_params *cprm)
{
- struct spu_lscsa *lscsa = ctx->csa.lscsa;
- return simple_read_from_buffer(buffer, size, pos,
- &lscsa->fpcr, sizeof(lscsa->fpcr));
+ return spufs_dump_emit(cprm, &ctx->csa.lscsa->fpcr,
+ sizeof(ctx->csa.lscsa->fpcr));
}
static ssize_t
@@ -535,7 +539,8 @@ spufs_fpcr_read(struct file *file, char
ret = spu_acquire_saved(ctx);
if (ret)
return ret;
- ret = __spufs_fpcr_read(ctx, buffer, size, pos);
+ ret = simple_read_from_buffer(buffer, size, pos, &ctx->csa.lscsa->fpcr,
+ sizeof(ctx->csa.lscsa->fpcr));
spu_release_saved(ctx);
return ret;
}
@@ -967,28 +972,26 @@ spufs_signal1_release(struct inode *inod
return 0;
}
-static ssize_t __spufs_signal1_read(struct spu_context *ctx, char __user *buf,
- size_t len, loff_t *pos)
+static ssize_t spufs_signal1_dump(struct spu_context *ctx,
+ struct coredump_params *cprm)
{
- int ret = 0;
- u32 data;
+ if (!ctx->csa.spu_chnlcnt_RW[3])
+ return 0;
+ return spufs_dump_emit(cprm, &ctx->csa.spu_chnldata_RW[3],
+ sizeof(ctx->csa.spu_chnldata_RW[3]));
+}
- if (len < 4)
+static ssize_t __spufs_signal1_read(struct spu_context *ctx, char __user *buf,
+ size_t len)
+{
+ if (len < sizeof(ctx->csa.spu_chnldata_RW[3]))
return -EINVAL;
-
- if (ctx->csa.spu_chnlcnt_RW[3]) {
- data = ctx->csa.spu_chnldata_RW[3];
- ret = 4;
- }
-
- if (!ret)
- goto out;
-
- if (copy_to_user(buf, &data, 4))
+ if (!ctx->csa.spu_chnlcnt_RW[3])
+ return 0;
+ if (copy_to_user(buf, &ctx->csa.spu_chnldata_RW[3],
+ sizeof(ctx->csa.spu_chnldata_RW[3])))
return -EFAULT;
-
-out:
- return ret;
+ return sizeof(ctx->csa.spu_chnldata_RW[3]);
}
static ssize_t spufs_signal1_read(struct file *file, char __user *buf,
@@ -1000,7 +1003,7 @@ static ssize_t spufs_signal1_read(struct
ret = spu_acquire_saved(ctx);
if (ret)
return ret;
- ret = __spufs_signal1_read(ctx, buf, len, pos);
+ ret = __spufs_signal1_read(ctx, buf, len);
spu_release_saved(ctx);
return ret;
@@ -1104,28 +1107,26 @@ spufs_signal2_release(struct inode *inod
return 0;
}
-static ssize_t __spufs_signal2_read(struct spu_context *ctx, char __user *buf,
- size_t len, loff_t *pos)
+static ssize_t spufs_signal2_dump(struct spu_context *ctx,
+ struct coredump_params *cprm)
{
- int ret = 0;
- u32 data;
+ if (!ctx->csa.spu_chnlcnt_RW[4])
+ return 0;
+ return spufs_dump_emit(cprm, &ctx->csa.spu_chnldata_RW[4],
+ sizeof(ctx->csa.spu_chnldata_RW[4]));
+}
- if (len < 4)
+static ssize_t __spufs_signal2_read(struct spu_context *ctx, char __user *buf,
+ size_t len)
+{
+ if (len < sizeof(ctx->csa.spu_chnldata_RW[4]))
return -EINVAL;
-
- if (ctx->csa.spu_chnlcnt_RW[4]) {
- data = ctx->csa.spu_chnldata_RW[4];
- ret = 4;
- }
-
- if (!ret)
- goto out;
-
- if (copy_to_user(buf, &data, 4))
+ if (!ctx->csa.spu_chnlcnt_RW[4])
+ return 0;
+ if (copy_to_user(buf, &ctx->csa.spu_chnldata_RW[4],
+ sizeof(ctx->csa.spu_chnldata_RW[4])))
return -EFAULT;
-
-out:
- return ret;
+ return sizeof(ctx->csa.spu_chnldata_RW[4]);
}
static ssize_t spufs_signal2_read(struct file *file, char __user *buf,
@@ -1137,7 +1138,7 @@ static ssize_t spufs_signal2_read(struct
ret = spu_acquire_saved(ctx);
if (ret)
return ret;
- ret = __spufs_signal2_read(ctx, buf, len, pos);
+ ret = __spufs_signal2_read(ctx, buf, len);
spu_release_saved(ctx);
return ret;
@@ -1961,18 +1962,13 @@ static const struct file_operations spuf
.release = single_release,
};
-static ssize_t __spufs_mbox_info_read(struct spu_context *ctx,
- char __user *buf, size_t len, loff_t *pos)
+static ssize_t spufs_mbox_info_dump(struct spu_context *ctx,
+ struct coredump_params *cprm)
{
- u32 data;
-
- /* EOF if there's no entry in the mbox */
if (!(ctx->csa.prob.mb_stat_R & 0x0000ff))
return 0;
-
- data = ctx->csa.prob.pu_mb_R;
-
- return simple_read_from_buffer(buf, len, pos, &data, sizeof data);
+ return spufs_dump_emit(cprm, &ctx->csa.prob.pu_mb_R,
+ sizeof(ctx->csa.prob.pu_mb_R));
}
static ssize_t spufs_mbox_info_read(struct file *file, char __user *buf,
@@ -1988,7 +1984,12 @@ static ssize_t spufs_mbox_info_read(stru
if (ret)
return ret;
spin_lock(&ctx->csa.register_lock);
- ret = __spufs_mbox_info_read(ctx, buf, len, pos);
+ /* EOF if there's no entry in the mbox */
+ if (ctx->csa.prob.mb_stat_R & 0x0000ff) {
+ ret = simple_read_from_buffer(buf, len, pos,
+ &ctx->csa.prob.pu_mb_R,
+ sizeof(ctx->csa.prob.pu_mb_R));
+ }
spin_unlock(&ctx->csa.register_lock);
spu_release_saved(ctx);
@@ -2001,18 +2002,13 @@ static const struct file_operations spuf
.llseek = generic_file_llseek,
};
-static ssize_t __spufs_ibox_info_read(struct spu_context *ctx,
- char __user *buf, size_t len, loff_t *pos)
+static ssize_t spufs_ibox_info_dump(struct spu_context *ctx,
+ struct coredump_params *cprm)
{
- u32 data;
-
- /* EOF if there's no entry in the ibox */
if (!(ctx->csa.prob.mb_stat_R & 0xff0000))
return 0;
-
- data = ctx->csa.priv2.puint_mb_R;
-
- return simple_read_from_buffer(buf, len, pos, &data, sizeof data);
+ return spufs_dump_emit(cprm, &ctx->csa.priv2.puint_mb_R,
+ sizeof(ctx->csa.priv2.puint_mb_R));
}
static ssize_t spufs_ibox_info_read(struct file *file, char __user *buf,
@@ -2028,7 +2024,12 @@ static ssize_t spufs_ibox_info_read(stru
if (ret)
return ret;
spin_lock(&ctx->csa.register_lock);
- ret = __spufs_ibox_info_read(ctx, buf, len, pos);
+ /* EOF if there's no entry in the ibox */
+ if (ctx->csa.prob.mb_stat_R & 0xff0000) {
+ ret = simple_read_from_buffer(buf, len, pos,
+ &ctx->csa.priv2.puint_mb_R,
+ sizeof(ctx->csa.priv2.puint_mb_R));
+ }
spin_unlock(&ctx->csa.register_lock);
spu_release_saved(ctx);
@@ -2041,21 +2042,16 @@ static const struct file_operations spuf
.llseek = generic_file_llseek,
};
-static ssize_t __spufs_wbox_info_read(struct spu_context *ctx,
- char __user *buf, size_t len, loff_t *pos)
+static size_t spufs_wbox_info_cnt(struct spu_context *ctx)
{
- int i, cnt;
- u32 data[4];
- u32 wbox_stat;
-
- wbox_stat = ctx->csa.prob.mb_stat_R;
- cnt = 4 - ((wbox_stat & 0x00ff00) >> 8);
- for (i = 0; i < cnt; i++) {
- data[i] = ctx->csa.spu_mailbox_data[i];
- }
+ return (4 - ((ctx->csa.prob.mb_stat_R & 0x00ff00) >> 8)) * sizeof(u32);
+}
- return simple_read_from_buffer(buf, len, pos, &data,
- cnt * sizeof(u32));
+static ssize_t spufs_wbox_info_dump(struct spu_context *ctx,
+ struct coredump_params *cprm)
+{
+ return spufs_dump_emit(cprm, &ctx->csa.spu_mailbox_data,
+ spufs_wbox_info_cnt(ctx));
}
static ssize_t spufs_wbox_info_read(struct file *file, char __user *buf,
@@ -2071,7 +2067,8 @@ static ssize_t spufs_wbox_info_read(stru
if (ret)
return ret;
spin_lock(&ctx->csa.register_lock);
- ret = __spufs_wbox_info_read(ctx, buf, len, pos);
+ ret = simple_read_from_buffer(buf, len, pos, &ctx->csa.spu_mailbox_data,
+ spufs_wbox_info_cnt(ctx));
spin_unlock(&ctx->csa.register_lock);
spu_release_saved(ctx);
@@ -2084,36 +2081,42 @@ static const struct file_operations spuf
.llseek = generic_file_llseek,
};
-static ssize_t __spufs_dma_info_read(struct spu_context *ctx,
- char __user *buf, size_t len, loff_t *pos)
+static void __spufs_dma_info_read(struct spu_context *ctx,
+ struct spu_dma_info *info)
{
- struct spu_dma_info info;
- struct mfc_cq_sr *qp, *spuqp;
int i;
- info.dma_info_type = ctx->csa.priv2.spu_tag_status_query_RW;
- info.dma_info_mask = ctx->csa.lscsa->tag_mask.slot[0];
- info.dma_info_status = ctx->csa.spu_chnldata_RW[24];
- info.dma_info_stall_and_notify = ctx->csa.spu_chnldata_RW[25];
- info.dma_info_atomic_command_status = ctx->csa.spu_chnldata_RW[27];
+ info->dma_info_type = ctx->csa.priv2.spu_tag_status_query_RW;
+ info->dma_info_mask = ctx->csa.lscsa->tag_mask.slot[0];
+ info->dma_info_status = ctx->csa.spu_chnldata_RW[24];
+ info->dma_info_stall_and_notify = ctx->csa.spu_chnldata_RW[25];
+ info->dma_info_atomic_command_status = ctx->csa.spu_chnldata_RW[27];
+
for (i = 0; i < 16; i++) {
- qp = &info.dma_info_command_data[i];
- spuqp = &ctx->csa.priv2.spuq[i];
+ struct mfc_cq_sr *qp = &info->dma_info_command_data[i];
+ struct mfc_cq_sr *spuqp = &ctx->csa.priv2.spuq[i];
qp->mfc_cq_data0_RW = spuqp->mfc_cq_data0_RW;
qp->mfc_cq_data1_RW = spuqp->mfc_cq_data1_RW;
qp->mfc_cq_data2_RW = spuqp->mfc_cq_data2_RW;
qp->mfc_cq_data3_RW = spuqp->mfc_cq_data3_RW;
}
+}
+
+static ssize_t spufs_dma_info_dump(struct spu_context *ctx,
+ struct coredump_params *cprm)
+{
+ struct spu_dma_info info;
- return simple_read_from_buffer(buf, len, pos, &info,
- sizeof info);
+ __spufs_dma_info_read(ctx, &info);
+ return spufs_dump_emit(cprm, &info, sizeof(info));
}
static ssize_t spufs_dma_info_read(struct file *file, char __user *buf,
size_t len, loff_t *pos)
{
struct spu_context *ctx = file->private_data;
+ struct spu_dma_info info;
int ret;
if (!access_ok(buf, len))
@@ -2123,7 +2126,8 @@ static ssize_t spufs_dma_info_read(struc
if (ret)
return ret;
spin_lock(&ctx->csa.register_lock);
- ret = __spufs_dma_info_read(ctx, buf, len, pos);
+ __spufs_dma_info_read(ctx, &info);
+ ret = simple_read_from_buffer(buf, len, pos, &info, sizeof(info));
spin_unlock(&ctx->csa.register_lock);
spu_release_saved(ctx);
@@ -2136,48 +2140,53 @@ static const struct file_operations spuf
.llseek = no_llseek,
};
-static ssize_t __spufs_proxydma_info_read(struct spu_context *ctx,
- char __user *buf, size_t len, loff_t *pos)
+static void __spufs_proxydma_info_read(struct spu_context *ctx,
+ struct spu_proxydma_info *info)
{
- struct spu_proxydma_info info;
- struct mfc_cq_sr *qp, *puqp;
- int ret = sizeof info;
int i;
- if (len < ret)
- return -EINVAL;
-
- if (!access_ok(buf, len))
- return -EFAULT;
+ info->proxydma_info_type = ctx->csa.prob.dma_querytype_RW;
+ info->proxydma_info_mask = ctx->csa.prob.dma_querymask_RW;
+ info->proxydma_info_status = ctx->csa.prob.dma_tagstatus_R;
- info.proxydma_info_type = ctx->csa.prob.dma_querytype_RW;
- info.proxydma_info_mask = ctx->csa.prob.dma_querymask_RW;
- info.proxydma_info_status = ctx->csa.prob.dma_tagstatus_R;
for (i = 0; i < 8; i++) {
- qp = &info.proxydma_info_command_data[i];
- puqp = &ctx->csa.priv2.puq[i];
+ struct mfc_cq_sr *qp = &info->proxydma_info_command_data[i];
+ struct mfc_cq_sr *puqp = &ctx->csa.priv2.puq[i];
qp->mfc_cq_data0_RW = puqp->mfc_cq_data0_RW;
qp->mfc_cq_data1_RW = puqp->mfc_cq_data1_RW;
qp->mfc_cq_data2_RW = puqp->mfc_cq_data2_RW;
qp->mfc_cq_data3_RW = puqp->mfc_cq_data3_RW;
}
+}
+
+static ssize_t spufs_proxydma_info_dump(struct spu_context *ctx,
+ struct coredump_params *cprm)
+{
+ struct spu_proxydma_info info;
- return simple_read_from_buffer(buf, len, pos, &info,
- sizeof info);
+ __spufs_proxydma_info_read(ctx, &info);
+ return spufs_dump_emit(cprm, &info, sizeof(info));
}
static ssize_t spufs_proxydma_info_read(struct file *file, char __user *buf,
size_t len, loff_t *pos)
{
struct spu_context *ctx = file->private_data;
+ struct spu_proxydma_info info;
int ret;
+ if (len < sizeof(info))
+ return -EINVAL;
+ if (!access_ok(buf, len))
+ return -EFAULT;
+
ret = spu_acquire_saved(ctx);
if (ret)
return ret;
spin_lock(&ctx->csa.register_lock);
- ret = __spufs_proxydma_info_read(ctx, buf, len, pos);
+ __spufs_proxydma_info_read(ctx, &info);
+ ret = simple_read_from_buffer(buf, len, pos, &info, sizeof(info));
spin_unlock(&ctx->csa.register_lock);
spu_release_saved(ctx);
@@ -2625,23 +2634,23 @@ const struct spufs_tree_descr spufs_dir_
};
const struct spufs_coredump_reader spufs_coredump_read[] = {
- { "regs", __spufs_regs_read, NULL, sizeof(struct spu_reg128[128])},
- { "fpcr", __spufs_fpcr_read, NULL, sizeof(struct spu_reg128) },
+ { "regs", spufs_regs_dump, NULL, sizeof(struct spu_reg128[128])},
+ { "fpcr", spufs_fpcr_dump, NULL, sizeof(struct spu_reg128) },
{ "lslr", NULL, spufs_lslr_get, 19 },
{ "decr", NULL, spufs_decr_get, 19 },
{ "decr_status", NULL, spufs_decr_status_get, 19 },
- { "mem", __spufs_mem_read, NULL, LS_SIZE, },
- { "signal1", __spufs_signal1_read, NULL, sizeof(u32) },
+ { "mem", spufs_mem_dump, NULL, LS_SIZE, },
+ { "signal1", spufs_signal1_dump, NULL, sizeof(u32) },
{ "signal1_type", NULL, spufs_signal1_type_get, 19 },
- { "signal2", __spufs_signal2_read, NULL, sizeof(u32) },
+ { "signal2", spufs_signal2_dump, NULL, sizeof(u32) },
{ "signal2_type", NULL, spufs_signal2_type_get, 19 },
{ "event_mask", NULL, spufs_event_mask_get, 19 },
{ "event_status", NULL, spufs_event_status_get, 19 },
- { "mbox_info", __spufs_mbox_info_read, NULL, sizeof(u32) },
- { "ibox_info", __spufs_ibox_info_read, NULL, sizeof(u32) },
- { "wbox_info", __spufs_wbox_info_read, NULL, 4 * sizeof(u32)},
- { "dma_info", __spufs_dma_info_read, NULL, sizeof(struct spu_dma_info)},
- { "proxydma_info", __spufs_proxydma_info_read,
+ { "mbox_info", spufs_mbox_info_dump, NULL, sizeof(u32) },
+ { "ibox_info", spufs_ibox_info_dump, NULL, sizeof(u32) },
+ { "wbox_info", spufs_wbox_info_dump, NULL, 4 * sizeof(u32)},
+ { "dma_info", spufs_dma_info_dump, NULL, sizeof(struct spu_dma_info)},
+ { "proxydma_info", spufs_proxydma_info_dump,
NULL, sizeof(struct spu_proxydma_info)},
{ "object-id", NULL, spufs_object_id_get, 19 },
{ "npc", NULL, spufs_npc_get, 19 },
--- a/arch/powerpc/platforms/cell/spufs/spufs.h~powerpc-spufs-simplify-spufs-core-dumping
+++ a/arch/powerpc/platforms/cell/spufs/spufs.h
@@ -337,8 +337,7 @@ void spufs_dma_callback(struct spu *spu,
extern struct spu_coredump_calls spufs_coredump_calls;
struct spufs_coredump_reader {
char *name;
- ssize_t (*read)(struct spu_context *ctx,
- char __user *buffer, size_t size, loff_t *pos);
+ ssize_t (*dump)(struct spu_context *ctx, struct coredump_params *cprm);
u64 (*get)(struct spu_context *ctx);
size_t size;
};
_
Patches currently in -mm which might be from hch@lst.de are
x86-hyperv-use-vmalloc_exec-for-the-hypercall-page.patch
x86-fix-vmap-arguments-in-map_irq_stack.patch
staging-android-ion-use-vmap-instead-of-vm_map_ram.patch
staging-media-ipu3-use-vmap-instead-of-reimplementing-it.patch
dma-mapping-use-vmap-insted-of-reimplementing-it.patch
powerpc-add-an-ioremap_phb-helper.patch
powerpc-remove-__ioremap_at-and-__iounmap_at.patch
mm-remove-__get_vm_area.patch
mm-unexport-unmap_kernel_range_noflush.patch
mm-rename-config_pgtable_mapping-to-config_zsmalloc_pgtable_mapping.patch
mm-only-allow-page-table-mappings-for-built-in-zsmalloc.patch
mm-pass-addr-as-unsigned-long-to-vb_free.patch
mm-remove-vmap_page_range_noflush-and-vunmap_page_range.patch
mm-rename-vmap_page_range-to-map_kernel_range.patch
mm-dont-return-the-number-of-pages-from-map_kernel_range_noflush.patch
mm-remove-map_vm_range.patch
mm-remove-unmap_vmap_area.patch
mm-remove-the-prot-argument-from-vm_map_ram.patch
mm-enforce-that-vmap-cant-map-pages-executable.patch
gpu-drm-remove-the-powerpc-hack-in-drm_legacy_sg_alloc.patch
mm-remove-the-pgprot-argument-to-__vmalloc.patch
mm-remove-the-prot-argument-to-__vmalloc_node.patch
mm-remove-both-instances-of-__vmalloc_node_flags.patch
mm-remove-__vmalloc_node_flags_caller.patch
mm-switch-the-test_vmalloc-module-to-use-__vmalloc_node.patch
mm-remove-vmalloc_user_node_flags.patch
arm64-use-__vmalloc_node-in-arch_alloc_vmap_stack.patch
powerpc-use-__vmalloc_node-in-alloc_vm_stack.patch
s390-use-__vmalloc_node-in-stack_alloc.patch
powerpc-spufs-simplify-spufs-core-dumping.patch
binfmt_elf-remove-the-set_fskernel_ds-in-elf_core_dump.patch
binfmt_elf_fdpic-remove-the-set_fskernel_ds-in-elf_fdpic_core_dump.patch
exec-simplify-the-copy_strings_kernel-calling-convention.patch
exec-open-code-copy_string_kernel.patch
amdgpu-a-null-mm-does-not-mean-a-thread-is-a-kthread.patch
i915-gvt-remove-unused-xen-bits.patch
kernel-move-use_mm-unuse_mm-to-kthreadc.patch
kernel-move-use_mm-unuse_mm-to-kthreadc-v2.patch
kernel-better-document-the-use_mm-unuse_mm-api-contract.patch
kernel-better-document-the-use_mm-unuse_mm-api-contract-v2.patch
kernel-set-user_ds-in-kthread_use_mm.patch
^ permalink raw reply [flat|nested] 215+ messages in thread
* + signal-factor-copy_siginfo_to_external32-from-copy_siginfo_to_user32.patch added to -mm tree
2020-04-21 1:13 incoming Andrew Morton
` (42 preceding siblings ...)
2020-04-24 2:06 ` + powerpc-spufs-simplify-spufs-core-dumping.patch " Andrew Morton
@ 2020-04-24 2:06 ` Andrew Morton
2020-04-24 2:06 ` + binfmt_elf-femove-the-set_fs-in-fill_siginfo_note.patch " Andrew Morton
` (23 subsequent siblings)
67 siblings, 0 replies; 215+ messages in thread
From: Andrew Morton @ 2020-04-24 2:06 UTC (permalink / raw)
To: arnd, benh, ebiederm, hch, jk, mm-commits, mpe, paulus, viro
The patch titled
Subject: signal: factor copy_siginfo_to_external32 from copy_siginfo_to_user32
has been added to the -mm tree. Its filename is
signal-factor-copy_siginfo_to_external32-from-copy_siginfo_to_user32.patch
This patch should soon appear at
http://ozlabs.org/~akpm/mmots/broken-out/signal-factor-copy_siginfo_to_external32-from-copy_siginfo_to_user32.patch
and later at
http://ozlabs.org/~akpm/mmotm/broken-out/signal-factor-copy_siginfo_to_external32-from-copy_siginfo_to_user32.patch
Before you just go and hit "reply", please:
a) Consider who else should be cc'ed
b) Prefer to cc a suitable mailing list as well
c) Ideally: find the original patch on the mailing list and do a
reply-to-all to that, adding suitable additional cc's
*** Remember to use Documentation/process/submit-checklist.rst when testing your code ***
The -mm tree is included into linux-next and is updated
there every 3-4 working days
------------------------------------------------------
From: "Eric W. Biederman" <ebiederm@xmission.com>
Subject: signal: factor copy_siginfo_to_external32 from copy_siginfo_to_user32
To remove the use of set_fs in the coredump code there needs to be a way
to convert a kernel siginfo to a userspace compat siginfo.
Call that function copy_siginfo_to_compat and factor it out of
copy_siginfo_to_user32.
The existence of x32 complicates this code. On x32 SIGCHLD uses 64bit
times for utime and stime. As only SIGCHLD is affected and SIGCHLD never
causes a coredump I have avoided handling that case.
Link: http://lkml.kernel.org/r/20200421154204.252921-3-hch@lst.de
Signed-off-by: "Eric W. Biederman" <ebiederm@xmission.com>
Signed-off-by: Christoph Hellwig <hch@lst.de>
Cc: Alexander Viro <viro@zeniv.linux.org.uk>
Cc: Arnd Bergmann <arnd@arndb.de>
Cc: Benjamin Herrenschmidt <benh@kernel.crashing.org>
Cc: Jeremy Kerr <jk@ozlabs.org>
Cc: Michael Ellerman <mpe@ellerman.id.au>
Cc: Paul Mackerras <paulus@samba.org>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
---
include/linux/compat.h | 2
kernel/signal.c | 109 ++++++++++++++++++++++-----------------
2 files changed, 64 insertions(+), 47 deletions(-)
--- a/include/linux/compat.h~signal-factor-copy_siginfo_to_external32-from-copy_siginfo_to_user32
+++ a/include/linux/compat.h
@@ -402,6 +402,8 @@ long compat_get_bitmap(unsigned long *ma
unsigned long bitmap_size);
long compat_put_bitmap(compat_ulong_t __user *umask, unsigned long *mask,
unsigned long bitmap_size);
+void copy_siginfo_to_external32(struct compat_siginfo *to,
+ const struct kernel_siginfo *from);
int copy_siginfo_from_user32(kernel_siginfo_t *to, const struct compat_siginfo __user *from);
int copy_siginfo_to_user32(struct compat_siginfo __user *to, const kernel_siginfo_t *from);
int get_compat_sigevent(struct sigevent *event,
--- a/kernel/signal.c~signal-factor-copy_siginfo_to_external32-from-copy_siginfo_to_user32
+++ a/kernel/signal.c
@@ -3231,94 +3231,109 @@ int copy_siginfo_from_user(kernel_siginf
}
#ifdef CONFIG_COMPAT
-int copy_siginfo_to_user32(struct compat_siginfo __user *to,
- const struct kernel_siginfo *from)
-#if defined(CONFIG_X86_X32_ABI) || defined(CONFIG_IA32_EMULATION)
-{
- return __copy_siginfo_to_user32(to, from, in_x32_syscall());
-}
-int __copy_siginfo_to_user32(struct compat_siginfo __user *to,
- const struct kernel_siginfo *from, bool x32_ABI)
-#endif
+void copy_siginfo_to_external32(struct compat_siginfo *to,
+ const struct kernel_siginfo *from)
{
- struct compat_siginfo new;
- memset(&new, 0, sizeof(new));
+ /*
+ * This function does not work properly for SIGCHLD on x32,
+ * but it does not need to as SIGCHLD never causes a coredump.
+ */
+ memset(to, 0, sizeof(*to));
- new.si_signo = from->si_signo;
- new.si_errno = from->si_errno;
- new.si_code = from->si_code;
+ to->si_signo = from->si_signo;
+ to->si_errno = from->si_errno;
+ to->si_code = from->si_code;
switch(siginfo_layout(from->si_signo, from->si_code)) {
case SIL_KILL:
- new.si_pid = from->si_pid;
- new.si_uid = from->si_uid;
+ to->si_pid = from->si_pid;
+ to->si_uid = from->si_uid;
break;
case SIL_TIMER:
- new.si_tid = from->si_tid;
- new.si_overrun = from->si_overrun;
- new.si_int = from->si_int;
+ to->si_tid = from->si_tid;
+ to->si_overrun = from->si_overrun;
+ to->si_int = from->si_int;
break;
case SIL_POLL:
- new.si_band = from->si_band;
- new.si_fd = from->si_fd;
+ to->si_band = from->si_band;
+ to->si_fd = from->si_fd;
break;
case SIL_FAULT:
- new.si_addr = ptr_to_compat(from->si_addr);
+ to->si_addr = ptr_to_compat(from->si_addr);
#ifdef __ARCH_SI_TRAPNO
- new.si_trapno = from->si_trapno;
+ to->si_trapno = from->si_trapno;
#endif
break;
case SIL_FAULT_MCEERR:
- new.si_addr = ptr_to_compat(from->si_addr);
+ to->si_addr = ptr_to_compat(from->si_addr);
#ifdef __ARCH_SI_TRAPNO
- new.si_trapno = from->si_trapno;
+ to->si_trapno = from->si_trapno;
#endif
- new.si_addr_lsb = from->si_addr_lsb;
+ to->si_addr_lsb = from->si_addr_lsb;
break;
case SIL_FAULT_BNDERR:
- new.si_addr = ptr_to_compat(from->si_addr);
+ to->si_addr = ptr_to_compat(from->si_addr);
#ifdef __ARCH_SI_TRAPNO
- new.si_trapno = from->si_trapno;
+ to->si_trapno = from->si_trapno;
#endif
- new.si_lower = ptr_to_compat(from->si_lower);
- new.si_upper = ptr_to_compat(from->si_upper);
+ to->si_lower = ptr_to_compat(from->si_lower);
+ to->si_upper = ptr_to_compat(from->si_upper);
break;
case SIL_FAULT_PKUERR:
- new.si_addr = ptr_to_compat(from->si_addr);
+ to->si_addr = ptr_to_compat(from->si_addr);
#ifdef __ARCH_SI_TRAPNO
- new.si_trapno = from->si_trapno;
+ to->si_trapno = from->si_trapno;
#endif
- new.si_pkey = from->si_pkey;
+ to->si_pkey = from->si_pkey;
break;
case SIL_CHLD:
- new.si_pid = from->si_pid;
- new.si_uid = from->si_uid;
- new.si_status = from->si_status;
+ to->si_pid = from->si_pid;
+ to->si_uid = from->si_uid;
+ to->si_status = from->si_status;
+ to->si_utime = from->si_utime;
+ to->si_stime = from->si_stime;
#ifdef CONFIG_X86_X32_ABI
if (x32_ABI) {
- new._sifields._sigchld_x32._utime = from->si_utime;
- new._sifields._sigchld_x32._stime = from->si_stime;
+ to->_sifields._sigchld_x32._utime = from->si_utime;
+ to->_sifields._sigchld_x32._stime = from->si_stime;
} else
#endif
{
- new.si_utime = from->si_utime;
- new.si_stime = from->si_stime;
}
break;
case SIL_RT:
- new.si_pid = from->si_pid;
- new.si_uid = from->si_uid;
- new.si_int = from->si_int;
+ to->si_pid = from->si_pid;
+ to->si_uid = from->si_uid;
+ to->si_int = from->si_int;
break;
case SIL_SYS:
- new.si_call_addr = ptr_to_compat(from->si_call_addr);
- new.si_syscall = from->si_syscall;
- new.si_arch = from->si_arch;
+ to->si_call_addr = ptr_to_compat(from->si_call_addr);
+ to->si_syscall = from->si_syscall;
+ to->si_arch = from->si_arch;
break;
}
+}
+int copy_siginfo_to_user32(struct compat_siginfo __user *to,
+ const struct kernel_siginfo *from)
+#if defined(CONFIG_X86_X32_ABI) || defined(CONFIG_IA32_EMULATION)
+{
+ return __copy_siginfo_to_user32(to, from, in_x32_syscall());
+}
+int __copy_siginfo_to_user32(struct compat_siginfo __user *to,
+ const struct kernel_siginfo *from, bool x32_ABI)
+#endif
+{
+ struct compat_siginfo new;
+
+ copy_siginfo_to_external32(&new, from);
+#ifdef CONFIG_X86_X32_ABI
+ if (x32_ABI && from->si_signo == SIGCHLD) {
+ new._sifields._sigchld_x32._utime = from->si_utime;
+ new._sifields._sigchld_x32._stime = from->si_stime;
+ }
+#endif
if (copy_to_user(to, &new, sizeof(struct compat_siginfo)))
return -EFAULT;
^ permalink raw reply [flat|nested] 215+ messages in thread
* + binfmt_elf-femove-the-set_fs-in-fill_siginfo_note.patch added to -mm tree
2020-04-21 1:13 incoming Andrew Morton
` (43 preceding siblings ...)
2020-04-24 2:06 ` + signal-factor-copy_siginfo_to_external32-from-copy_siginfo_to_user32.patch " Andrew Morton
@ 2020-04-24 2:06 ` Andrew Morton
2020-04-24 2:06 ` + binfmt_elf-remove-the-set_fskernel_ds-in-elf_core_dump.patch " Andrew Morton
` (22 subsequent siblings)
67 siblings, 0 replies; 215+ messages in thread
From: Andrew Morton @ 2020-04-24 2:06 UTC (permalink / raw)
To: arnd, benh, ebiederm, hch, jk, mm-commits, mpe, paulus, viro
The patch titled
Subject: binfmt_elf: femove the set_fs in fill_siginfo_note
has been added to the -mm tree. Its filename is
binfmt_elf-femove-the-set_fs-in-fill_siginfo_note.patch
This patch should soon appear at
http://ozlabs.org/~akpm/mmots/broken-out/binfmt_elf-femove-the-set_fs-in-fill_siginfo_note.patch
and later at
http://ozlabs.org/~akpm/mmotm/broken-out/binfmt_elf-femove-the-set_fs-in-fill_siginfo_note.patch
Before you just go and hit "reply", please:
a) Consider who else should be cc'ed
b) Prefer to cc a suitable mailing list as well
c) Ideally: find the original patch on the mailing list and do a
reply-to-all to that, adding suitable additional cc's
*** Remember to use Documentation/process/submit-checklist.rst when testing your code ***
The -mm tree is included into linux-next and is updated
there every 3-4 working days
------------------------------------------------------
From: "Eric W. Biederman" <ebiederm@xmission.com>
Subject: binfmt_elf: femove the set_fs in fill_siginfo_note
The code in binfmt_elf.c is different from the rest of the code that
processes siginfo, as it sends siginfo from a kernel buffer to a file
rather than from kernel memory to userspace buffers. To remove its use of
set_fs the code needs some different siginfo helpers.
Add the helper copy_siginfo_to_external to copy from the kernel's internal
siginfo layout to a buffer in the siginfo layout that userspace expects.
Modify fill_siginfo_note to use copy_siginfo_to_external instead of set_fs
and copy_siginfo_to_user.
Update compat_binfmt_elf.c to use the previously added
copy_siginfo_to_external32 to handle the compat case.
Link: http://lkml.kernel.org/r/20200421154204.252921-4-hch@lst.de
Signed-off-by: "Eric W. Biederman" <ebiederm@xmission.com>
Signed-off-by: Christoph Hellwig <hch@lst.de>
Cc: Alexander Viro <viro@zeniv.linux.org.uk>
Cc: Jeremy Kerr <jk@ozlabs.org>
Cc: Arnd Bergmann <arnd@arndb.de>
Cc: "Eric W . Biederman" <ebiederm@xmission.com>
Cc: Michael Ellerman <mpe@ellerman.id.au>
Cc: Benjamin Herrenschmidt <benh@kernel.crashing.org>
Cc: Paul Mackerras <paulus@samba.org>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
---
fs/binfmt_elf.c | 5 +----
fs/compat_binfmt_elf.c | 2 +-
include/linux/signal.h | 8 ++++++++
3 files changed, 10 insertions(+), 5 deletions(-)
--- a/fs/binfmt_elf.c~binfmt_elf-femove-the-set_fs-in-fill_siginfo_note
+++ a/fs/binfmt_elf.c
@@ -1552,10 +1552,7 @@ static void fill_auxv_note(struct memelf
static void fill_siginfo_note(struct memelfnote *note, user_siginfo_t *csigdata,
const kernel_siginfo_t *siginfo)
{
- mm_segment_t old_fs = get_fs();
- set_fs(KERNEL_DS);
- copy_siginfo_to_user((user_siginfo_t __user *) csigdata, siginfo);
- set_fs(old_fs);
+ copy_siginfo_to_external(csigdata, siginfo);
fill_note(note, "CORE", NT_SIGINFO, sizeof(*csigdata), csigdata);
}
--- a/fs/compat_binfmt_elf.c~binfmt_elf-femove-the-set_fs-in-fill_siginfo_note
+++ a/fs/compat_binfmt_elf.c
@@ -39,7 +39,7 @@
*/
#define user_long_t compat_long_t
#define user_siginfo_t compat_siginfo_t
-#define copy_siginfo_to_user copy_siginfo_to_user32
+#define copy_siginfo_to_external copy_siginfo_to_external32
/*
* The machine-dependent core note format types are defined in elfcore-compat.h,
--- a/include/linux/signal.h~binfmt_elf-femove-the-set_fs-in-fill_siginfo_note
+++ a/include/linux/signal.h
@@ -24,6 +24,14 @@ static inline void clear_siginfo(kernel_
#define SI_EXPANSION_SIZE (sizeof(struct siginfo) - sizeof(struct kernel_siginfo))
+static inline void copy_siginfo_to_external(siginfo_t *to,
+ const kernel_siginfo_t *from)
+{
+ memcpy(to, from, sizeof(*from));
+ memset(((char *)to) + sizeof(struct kernel_siginfo), 0,
+ SI_EXPANSION_SIZE);
+}
+
int copy_siginfo_to_user(siginfo_t __user *to, const kernel_siginfo_t *from);
int copy_siginfo_from_user(kernel_siginfo_t *to, const siginfo_t __user *from);
_
Patches currently in -mm which might be from ebiederm@xmission.com are
signal-factor-copy_siginfo_to_external32-from-copy_siginfo_to_user32.patch
binfmt_elf-femove-the-set_fs-in-fill_siginfo_note.patch
^ permalink raw reply [flat|nested] 215+ messages in thread
* + binfmt_elf-remove-the-set_fskernel_ds-in-elf_core_dump.patch added to -mm tree
2020-04-21 1:13 incoming Andrew Morton
` (44 preceding siblings ...)
2020-04-24 2:06 ` + binfmt_elf-femove-the-set_fs-in-fill_siginfo_note.patch " Andrew Morton
@ 2020-04-24 2:06 ` Andrew Morton
2020-04-24 2:06 ` + binfmt_elf_fdpic-remove-the-set_fskernel_ds-in-elf_fdpic_core_dump.patch " Andrew Morton
` (21 subsequent siblings)
67 siblings, 0 replies; 215+ messages in thread
From: Andrew Morton @ 2020-04-24 2:06 UTC (permalink / raw)
To: arnd, benh, ebiederm, hch, jk, mm-commits, mpe, paulus, viro
The patch titled
Subject: binfmt_elf: remove the set_fs(KERNEL_DS) in elf_core_dump
has been added to the -mm tree. Its filename is
binfmt_elf-remove-the-set_fskernel_ds-in-elf_core_dump.patch
This patch should soon appear at
http://ozlabs.org/~akpm/mmots/broken-out/binfmt_elf-remove-the-set_fskernel_ds-in-elf_core_dump.patch
and later at
http://ozlabs.org/~akpm/mmotm/broken-out/binfmt_elf-remove-the-set_fskernel_ds-in-elf_core_dump.patch
Before you just go and hit "reply", please:
a) Consider who else should be cc'ed
b) Prefer to cc a suitable mailing list as well
c) Ideally: find the original patch on the mailing list and do a
reply-to-all to that, adding suitable additional cc's
*** Remember to use Documentation/process/submit-checklist.rst when testing your code ***
The -mm tree is included into linux-next and is updated
there every 3-4 working days
------------------------------------------------------
From: Christoph Hellwig <hch@lst.de>
Subject: binfmt_elf: remove the set_fs(KERNEL_DS) in elf_core_dump
There is no logic in elf_core_dump itself, or in the various arch helpers
called from it which use uaccess routines on kernel pointers except for
the file writes thate are nicely encapsulated by using __kernel_write in
dump_emit.
Link: http://lkml.kernel.org/r/20200421154204.252921-5-hch@lst.de
Signed-off-by: Christoph Hellwig <hch@lst.de>
Cc: Alexander Viro <viro@zeniv.linux.org.uk>
Cc: Arnd Bergmann <arnd@arndb.de>
Cc: Benjamin Herrenschmidt <benh@kernel.crashing.org>
Cc: "Eric W . Biederman" <ebiederm@xmission.com>
Cc: Jeremy Kerr <jk@ozlabs.org>
Cc: Michael Ellerman <mpe@ellerman.id.au>
Cc: Paul Mackerras <paulus@samba.org>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
---
fs/binfmt_elf.c | 40 +++++++++++++---------------------------
1 file changed, 13 insertions(+), 27 deletions(-)
--- a/fs/binfmt_elf.c~binfmt_elf-remove-the-set_fskernel_ds-in-elf_core_dump
+++ a/fs/binfmt_elf.c
@@ -1351,7 +1351,6 @@ static unsigned long vma_dump_size(struc
vma->vm_pgoff == 0 && (vma->vm_flags & VM_READ)) {
u32 __user *header = (u32 __user *) vma->vm_start;
u32 word;
- mm_segment_t fs = get_fs();
/*
* Doing it this way gets the constant folded by GCC.
*/
@@ -1364,14 +1363,8 @@ static unsigned long vma_dump_size(struc
magic.elfmag[EI_MAG1] = ELFMAG1;
magic.elfmag[EI_MAG2] = ELFMAG2;
magic.elfmag[EI_MAG3] = ELFMAG3;
- /*
- * Switch to the user "segment" for get_user(),
- * then put back what elf_core_dump() had in place.
- */
- set_fs(USER_DS);
if (unlikely(get_user(word, header)))
word = 0;
- set_fs(fs);
if (word == magic.cmp)
return PAGE_SIZE;
}
@@ -2179,7 +2172,6 @@ static void fill_extnum_info(struct elfh
static int elf_core_dump(struct coredump_params *cprm)
{
int has_dumped = 0;
- mm_segment_t fs;
int segs, i;
size_t vma_data_size = 0;
struct vm_area_struct *vma, *gate_vma;
@@ -2232,9 +2224,6 @@ static int elf_core_dump(struct coredump
has_dumped = 1;
- fs = get_fs();
- set_fs(KERNEL_DS);
-
offset += sizeof(elf); /* Elf header */
offset += segs * sizeof(struct elf_phdr); /* Program headers */
@@ -2246,7 +2235,7 @@ static int elf_core_dump(struct coredump
phdr4note = kmalloc(sizeof(*phdr4note), GFP_KERNEL);
if (!phdr4note)
- goto end_coredump;
+ goto cleanup;
fill_elf_note_phdr(phdr4note, sz, offset);
offset += sz;
@@ -2261,7 +2250,7 @@ static int elf_core_dump(struct coredump
vma_filesz = kvmalloc(array_size(sizeof(*vma_filesz), (segs - 1)),
GFP_KERNEL);
if (!vma_filesz)
- goto end_coredump;
+ goto cleanup;
for (i = 0, vma = first_vma(current, gate_vma); vma != NULL;
vma = next_vma(vma, gate_vma)) {
@@ -2279,17 +2268,17 @@ static int elf_core_dump(struct coredump
if (e_phnum == PN_XNUM) {
shdr4extnum = kmalloc(sizeof(*shdr4extnum), GFP_KERNEL);
if (!shdr4extnum)
- goto end_coredump;
+ goto cleanup;
fill_extnum_info(&elf, shdr4extnum, e_shoff, segs);
}
offset = dataoff;
if (!dump_emit(cprm, &elf, sizeof(elf)))
- goto end_coredump;
+ goto cleanup;
if (!dump_emit(cprm, phdr4note, sizeof(*phdr4note)))
- goto end_coredump;
+ goto cleanup;
/* Write program headers for segments dump */
for (i = 0, vma = first_vma(current, gate_vma); vma != NULL;
@@ -2311,22 +2300,22 @@ static int elf_core_dump(struct coredump
phdr.p_align = ELF_EXEC_PAGESIZE;
if (!dump_emit(cprm, &phdr, sizeof(phdr)))
- goto end_coredump;
+ goto cleanup;
}
if (!elf_core_write_extra_phdrs(cprm, offset))
- goto end_coredump;
+ goto cleanup;
/* write out the notes section */
if (!write_note_info(&info, cprm))
- goto end_coredump;
+ goto cleanup;
if (elf_coredump_extra_notes_write(cprm))
- goto end_coredump;
+ goto cleanup;
/* Align to page */
if (!dump_skip(cprm, dataoff - cprm->pos))
- goto end_coredump;
+ goto cleanup;
for (i = 0, vma = first_vma(current, gate_vma); vma != NULL;
vma = next_vma(vma, gate_vma)) {
@@ -2348,22 +2337,19 @@ static int elf_core_dump(struct coredump
} else
stop = !dump_skip(cprm, PAGE_SIZE);
if (stop)
- goto end_coredump;
+ goto cleanup;
}
}
dump_truncate(cprm);
if (!elf_core_write_extra_data(cprm))
- goto end_coredump;
+ goto cleanup;
if (e_phnum == PN_XNUM) {
if (!dump_emit(cprm, shdr4extnum, sizeof(*shdr4extnum)))
- goto end_coredump;
+ goto cleanup;
}
-end_coredump:
- set_fs(fs);
-
cleanup:
free_note_info(&info);
kfree(shdr4extnum);
_
Patches currently in -mm which might be from hch@lst.de are
x86-hyperv-use-vmalloc_exec-for-the-hypercall-page.patch
x86-fix-vmap-arguments-in-map_irq_stack.patch
staging-android-ion-use-vmap-instead-of-vm_map_ram.patch
staging-media-ipu3-use-vmap-instead-of-reimplementing-it.patch
dma-mapping-use-vmap-insted-of-reimplementing-it.patch
powerpc-add-an-ioremap_phb-helper.patch
powerpc-remove-__ioremap_at-and-__iounmap_at.patch
mm-remove-__get_vm_area.patch
mm-unexport-unmap_kernel_range_noflush.patch
mm-rename-config_pgtable_mapping-to-config_zsmalloc_pgtable_mapping.patch
mm-only-allow-page-table-mappings-for-built-in-zsmalloc.patch
mm-pass-addr-as-unsigned-long-to-vb_free.patch
mm-remove-vmap_page_range_noflush-and-vunmap_page_range.patch
mm-rename-vmap_page_range-to-map_kernel_range.patch
mm-dont-return-the-number-of-pages-from-map_kernel_range_noflush.patch
mm-remove-map_vm_range.patch
mm-remove-unmap_vmap_area.patch
mm-remove-the-prot-argument-from-vm_map_ram.patch
mm-enforce-that-vmap-cant-map-pages-executable.patch
gpu-drm-remove-the-powerpc-hack-in-drm_legacy_sg_alloc.patch
mm-remove-the-pgprot-argument-to-__vmalloc.patch
mm-remove-the-prot-argument-to-__vmalloc_node.patch
mm-remove-both-instances-of-__vmalloc_node_flags.patch
mm-remove-__vmalloc_node_flags_caller.patch
mm-switch-the-test_vmalloc-module-to-use-__vmalloc_node.patch
mm-remove-vmalloc_user_node_flags.patch
arm64-use-__vmalloc_node-in-arch_alloc_vmap_stack.patch
powerpc-use-__vmalloc_node-in-alloc_vm_stack.patch
s390-use-__vmalloc_node-in-stack_alloc.patch
powerpc-spufs-simplify-spufs-core-dumping.patch
binfmt_elf-remove-the-set_fskernel_ds-in-elf_core_dump.patch
binfmt_elf_fdpic-remove-the-set_fskernel_ds-in-elf_fdpic_core_dump.patch
exec-simplify-the-copy_strings_kernel-calling-convention.patch
exec-open-code-copy_string_kernel.patch
amdgpu-a-null-mm-does-not-mean-a-thread-is-a-kthread.patch
i915-gvt-remove-unused-xen-bits.patch
kernel-move-use_mm-unuse_mm-to-kthreadc.patch
kernel-move-use_mm-unuse_mm-to-kthreadc-v2.patch
kernel-better-document-the-use_mm-unuse_mm-api-contract.patch
kernel-better-document-the-use_mm-unuse_mm-api-contract-v2.patch
kernel-set-user_ds-in-kthread_use_mm.patch
^ permalink raw reply [flat|nested] 215+ messages in thread
* + binfmt_elf_fdpic-remove-the-set_fskernel_ds-in-elf_fdpic_core_dump.patch added to -mm tree
2020-04-21 1:13 incoming Andrew Morton
` (45 preceding siblings ...)
2020-04-24 2:06 ` + binfmt_elf-remove-the-set_fskernel_ds-in-elf_core_dump.patch " Andrew Morton
@ 2020-04-24 2:06 ` Andrew Morton
2020-04-24 2:06 ` + exec-simplify-the-copy_strings_kernel-calling-convention.patch " Andrew Morton
` (20 subsequent siblings)
67 siblings, 0 replies; 215+ messages in thread
From: Andrew Morton @ 2020-04-24 2:06 UTC (permalink / raw)
To: arnd, benh, ebiederm, hch, jk, mm-commits, mpe, paulus, viro
The patch titled
Subject: binfmt_elf_fdpic: remove the set_fs(KERNEL_DS) in elf_fdpic_core_dump
has been added to the -mm tree. Its filename is
binfmt_elf_fdpic-remove-the-set_fskernel_ds-in-elf_fdpic_core_dump.patch
This patch should soon appear at
http://ozlabs.org/~akpm/mmots/broken-out/binfmt_elf_fdpic-remove-the-set_fskernel_ds-in-elf_fdpic_core_dump.patch
and later at
http://ozlabs.org/~akpm/mmotm/broken-out/binfmt_elf_fdpic-remove-the-set_fskernel_ds-in-elf_fdpic_core_dump.patch
Before you just go and hit "reply", please:
a) Consider who else should be cc'ed
b) Prefer to cc a suitable mailing list as well
c) Ideally: find the original patch on the mailing list and do a
reply-to-all to that, adding suitable additional cc's
*** Remember to use Documentation/process/submit-checklist.rst when testing your code ***
The -mm tree is included into linux-next and is updated
there every 3-4 working days
------------------------------------------------------
From: Christoph Hellwig <hch@lst.de>
Subject: binfmt_elf_fdpic: remove the set_fs(KERNEL_DS) in elf_fdpic_core_dump
There is no logic in elf_fdpic_core_dump itself, or in the various arch
helpers called from it which use uaccess routines on kernel pointers
except for the file writes thate are nicely encapsulated by using
__kernel_write in dump_emit.
Link: http://lkml.kernel.org/r/20200421154204.252921-6-hch@lst.de Signed-off-by:
Christoph Hellwig <hch@lst.de>
Cc: Alexander Viro <viro@zeniv.linux.org.uk>
Cc: Arnd Bergmann <arnd@arndb.de>
Cc: Benjamin Herrenschmidt <benh@kernel.crashing.org>
Cc: "Eric W . Biederman" <ebiederm@xmission.com>
Cc: Jeremy Kerr <jk@ozlabs.org>
Cc: Michael Ellerman <mpe@ellerman.id.au>
Cc: Paul Mackerras <paulus@samba.org>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
---
fs/binfmt_elf_fdpic.c | 31 ++++++++++++-------------------
1 file changed, 12 insertions(+), 19 deletions(-)
--- a/fs/binfmt_elf_fdpic.c~binfmt_elf_fdpic-remove-the-set_fskernel_ds-in-elf_fdpic_core_dump
+++ a/fs/binfmt_elf_fdpic.c
@@ -1549,7 +1549,6 @@ static int elf_fdpic_core_dump(struct co
{
#define NUM_NOTES 6
int has_dumped = 0;
- mm_segment_t fs;
int segs;
int i;
struct vm_area_struct *vma;
@@ -1678,9 +1677,6 @@ static int elf_fdpic_core_dump(struct co
"LINUX", ELF_CORE_XFPREG_TYPE, sizeof(*xfpu), xfpu);
#endif
- fs = get_fs();
- set_fs(KERNEL_DS);
-
offset += sizeof(*elf); /* Elf header */
offset += segs * sizeof(struct elf_phdr); /* Program headers */
@@ -1695,7 +1691,7 @@ static int elf_fdpic_core_dump(struct co
phdr4note = kmalloc(sizeof(*phdr4note), GFP_KERNEL);
if (!phdr4note)
- goto end_coredump;
+ goto cleanup;
fill_elf_note_phdr(phdr4note, sz, offset);
offset += sz;
@@ -1711,17 +1707,17 @@ static int elf_fdpic_core_dump(struct co
if (e_phnum == PN_XNUM) {
shdr4extnum = kmalloc(sizeof(*shdr4extnum), GFP_KERNEL);
if (!shdr4extnum)
- goto end_coredump;
+ goto cleanup;
fill_extnum_info(elf, shdr4extnum, e_shoff, segs);
}
offset = dataoff;
if (!dump_emit(cprm, elf, sizeof(*elf)))
- goto end_coredump;
+ goto cleanup;
if (!dump_emit(cprm, phdr4note, sizeof(*phdr4note)))
- goto end_coredump;
+ goto cleanup;
/* write program headers for segments dump */
for (vma = current->mm->mmap; vma; vma = vma->vm_next) {
@@ -1745,16 +1741,16 @@ static int elf_fdpic_core_dump(struct co
phdr.p_align = ELF_EXEC_PAGESIZE;
if (!dump_emit(cprm, &phdr, sizeof(phdr)))
- goto end_coredump;
+ goto cleanup;
}
if (!elf_core_write_extra_phdrs(cprm, offset))
- goto end_coredump;
+ goto cleanup;
/* write out the notes section */
for (i = 0; i < numnote; i++)
if (!writenote(notes + i, cprm))
- goto end_coredump;
+ goto cleanup;
/* write out the thread status notes section */
list_for_each(t, &thread_list) {
@@ -1763,21 +1759,21 @@ static int elf_fdpic_core_dump(struct co
for (i = 0; i < tmp->num_notes; i++)
if (!writenote(&tmp->notes[i], cprm))
- goto end_coredump;
+ goto cleanup;
}
if (!dump_skip(cprm, dataoff - cprm->pos))
- goto end_coredump;
+ goto cleanup;
if (!elf_fdpic_dump_segments(cprm))
- goto end_coredump;
+ goto cleanup;
if (!elf_core_write_extra_data(cprm))
- goto end_coredump;
+ goto cleanup;
if (e_phnum == PN_XNUM) {
if (!dump_emit(cprm, shdr4extnum, sizeof(*shdr4extnum)))
- goto end_coredump;
+ goto cleanup;
}
if (cprm->file->f_pos != offset) {
@@ -1787,9 +1783,6 @@ static int elf_fdpic_core_dump(struct co
cprm->file->f_pos, offset);
}
-end_coredump:
- set_fs(fs);
-
cleanup:
while (!list_empty(&thread_list)) {
struct list_head *tmp = thread_list.next;
_
Patches currently in -mm which might be from hch@lst.de are
x86-hyperv-use-vmalloc_exec-for-the-hypercall-page.patch
x86-fix-vmap-arguments-in-map_irq_stack.patch
staging-android-ion-use-vmap-instead-of-vm_map_ram.patch
staging-media-ipu3-use-vmap-instead-of-reimplementing-it.patch
dma-mapping-use-vmap-insted-of-reimplementing-it.patch
powerpc-add-an-ioremap_phb-helper.patch
powerpc-remove-__ioremap_at-and-__iounmap_at.patch
mm-remove-__get_vm_area.patch
mm-unexport-unmap_kernel_range_noflush.patch
mm-rename-config_pgtable_mapping-to-config_zsmalloc_pgtable_mapping.patch
mm-only-allow-page-table-mappings-for-built-in-zsmalloc.patch
mm-pass-addr-as-unsigned-long-to-vb_free.patch
mm-remove-vmap_page_range_noflush-and-vunmap_page_range.patch
mm-rename-vmap_page_range-to-map_kernel_range.patch
mm-dont-return-the-number-of-pages-from-map_kernel_range_noflush.patch
mm-remove-map_vm_range.patch
mm-remove-unmap_vmap_area.patch
mm-remove-the-prot-argument-from-vm_map_ram.patch
mm-enforce-that-vmap-cant-map-pages-executable.patch
gpu-drm-remove-the-powerpc-hack-in-drm_legacy_sg_alloc.patch
mm-remove-the-pgprot-argument-to-__vmalloc.patch
mm-remove-the-prot-argument-to-__vmalloc_node.patch
mm-remove-both-instances-of-__vmalloc_node_flags.patch
mm-remove-__vmalloc_node_flags_caller.patch
mm-switch-the-test_vmalloc-module-to-use-__vmalloc_node.patch
mm-remove-vmalloc_user_node_flags.patch
arm64-use-__vmalloc_node-in-arch_alloc_vmap_stack.patch
powerpc-use-__vmalloc_node-in-alloc_vm_stack.patch
s390-use-__vmalloc_node-in-stack_alloc.patch
powerpc-spufs-simplify-spufs-core-dumping.patch
binfmt_elf-remove-the-set_fskernel_ds-in-elf_core_dump.patch
binfmt_elf_fdpic-remove-the-set_fskernel_ds-in-elf_fdpic_core_dump.patch
exec-simplify-the-copy_strings_kernel-calling-convention.patch
exec-open-code-copy_string_kernel.patch
amdgpu-a-null-mm-does-not-mean-a-thread-is-a-kthread.patch
i915-gvt-remove-unused-xen-bits.patch
kernel-move-use_mm-unuse_mm-to-kthreadc.patch
kernel-move-use_mm-unuse_mm-to-kthreadc-v2.patch
kernel-better-document-the-use_mm-unuse_mm-api-contract.patch
kernel-better-document-the-use_mm-unuse_mm-api-contract-v2.patch
kernel-set-user_ds-in-kthread_use_mm.patch
^ permalink raw reply [flat|nested] 215+ messages in thread
* + exec-simplify-the-copy_strings_kernel-calling-convention.patch added to -mm tree
2020-04-21 1:13 incoming Andrew Morton
` (46 preceding siblings ...)
2020-04-24 2:06 ` + binfmt_elf_fdpic-remove-the-set_fskernel_ds-in-elf_fdpic_core_dump.patch " Andrew Morton
@ 2020-04-24 2:06 ` Andrew Morton
2020-04-24 2:06 ` + exec-open-code-copy_string_kernel.patch " Andrew Morton
` (19 subsequent siblings)
67 siblings, 0 replies; 215+ messages in thread
From: Andrew Morton @ 2020-04-24 2:06 UTC (permalink / raw)
To: arnd, benh, ebiederm, hch, jk, mm-commits, mpe, paulus, viro
The patch titled
Subject: exec: simplify the copy_strings_kernel calling convention
has been added to the -mm tree. Its filename is
exec-simplify-the-copy_strings_kernel-calling-convention.patch
This patch should soon appear at
http://ozlabs.org/~akpm/mmots/broken-out/exec-simplify-the-copy_strings_kernel-calling-convention.patch
and later at
http://ozlabs.org/~akpm/mmotm/broken-out/exec-simplify-the-copy_strings_kernel-calling-convention.patch
Before you just go and hit "reply", please:
a) Consider who else should be cc'ed
b) Prefer to cc a suitable mailing list as well
c) Ideally: find the original patch on the mailing list and do a
reply-to-all to that, adding suitable additional cc's
*** Remember to use Documentation/process/submit-checklist.rst when testing your code ***
The -mm tree is included into linux-next and is updated
there every 3-4 working days
------------------------------------------------------
From: Christoph Hellwig <hch@lst.de>
Subject: exec: simplify the copy_strings_kernel calling convention
copy_strings_kernel is always used with a single argument, adjust the
calling convention to that.
Link: http://lkml.kernel.org/r/20200421154204.252921-7-hch@lst.de
Signed-off-by: Christoph Hellwig <hch@lst.de>
Cc: Alexander Viro <viro@zeniv.linux.org.uk>
Cc: Arnd Bergmann <arnd@arndb.de>
Cc: Benjamin Herrenschmidt <benh@kernel.crashing.org>
Cc: "Eric W . Biederman" <ebiederm@xmission.com>
Cc: Jeremy Kerr <jk@ozlabs.org>
Cc: Michael Ellerman <mpe@ellerman.id.au>
Cc: Paul Mackerras <paulus@samba.org>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
---
fs/binfmt_em86.c | 6 +++---
fs/binfmt_misc.c | 4 ++--
fs/binfmt_script.c | 6 +++---
fs/exec.c | 13 ++++++-------
include/linux/binfmts.h | 3 +--
5 files changed, 15 insertions(+), 17 deletions(-)
--- a/fs/binfmt_em86.c~exec-simplify-the-copy_strings_kernel-calling-convention
+++ a/fs/binfmt_em86.c
@@ -68,15 +68,15 @@ static int load_em86(struct linux_binprm
* user environment and arguments are stored.
*/
remove_arg_zero(bprm);
- retval = copy_strings_kernel(1, &bprm->filename, bprm);
+ retval = copy_string_kernel(bprm->filename, bprm);
if (retval < 0) return retval;
bprm->argc++;
if (i_arg) {
- retval = copy_strings_kernel(1, &i_arg, bprm);
+ retval = copy_string_kernel(i_arg, bprm);
if (retval < 0) return retval;
bprm->argc++;
}
- retval = copy_strings_kernel(1, &i_name, bprm);
+ retval = copy_string_kernel(i_name, bprm);
if (retval < 0) return retval;
bprm->argc++;
--- a/fs/binfmt_misc.c~exec-simplify-the-copy_strings_kernel-calling-convention
+++ a/fs/binfmt_misc.c
@@ -190,13 +190,13 @@ static int load_misc_binary(struct linux
bprm->file = NULL;
}
/* make argv[1] be the path to the binary */
- retval = copy_strings_kernel(1, &bprm->interp, bprm);
+ retval = copy_string_kernel(bprm->interp, bprm);
if (retval < 0)
goto error;
bprm->argc++;
/* add the interp as argv[0] */
- retval = copy_strings_kernel(1, &fmt->interpreter, bprm);
+ retval = copy_string_kernel(fmt->interpreter, bprm);
if (retval < 0)
goto error;
bprm->argc++;
--- a/fs/binfmt_script.c~exec-simplify-the-copy_strings_kernel-calling-convention
+++ a/fs/binfmt_script.c
@@ -117,17 +117,17 @@ static int load_script(struct linux_binp
retval = remove_arg_zero(bprm);
if (retval)
return retval;
- retval = copy_strings_kernel(1, &bprm->interp, bprm);
+ retval = copy_string_kernel(bprm->interp, bprm);
if (retval < 0)
return retval;
bprm->argc++;
if (i_arg) {
- retval = copy_strings_kernel(1, &i_arg, bprm);
+ retval = copy_string_kernel(i_arg, bprm);
if (retval < 0)
return retval;
bprm->argc++;
}
- retval = copy_strings_kernel(1, &i_name, bprm);
+ retval = copy_string_kernel(i_name, bprm);
if (retval)
return retval;
bprm->argc++;
--- a/fs/exec.c~exec-simplify-the-copy_strings_kernel-calling-convention
+++ a/fs/exec.c
@@ -588,24 +588,23 @@ out:
}
/*
- * Like copy_strings, but get argv and its values from kernel memory.
+ * Copy and argument/environment string from the kernel to the processes stack.
*/
-int copy_strings_kernel(int argc, const char *const *__argv,
- struct linux_binprm *bprm)
+int copy_string_kernel(const char *arg, struct linux_binprm *bprm)
{
int r;
mm_segment_t oldfs = get_fs();
struct user_arg_ptr argv = {
- .ptr.native = (const char __user *const __user *)__argv,
+ .ptr.native = (const char __user *const __user *)&arg,
};
set_fs(KERNEL_DS);
- r = copy_strings(argc, argv, bprm);
+ r = copy_strings(1, argv, bprm);
set_fs(oldfs);
return r;
}
-EXPORT_SYMBOL(copy_strings_kernel);
+EXPORT_SYMBOL(copy_string_kernel);
#ifdef CONFIG_MMU
@@ -1863,7 +1862,7 @@ static int __do_execve_file(int fd, stru
if (retval < 0)
goto out;
- retval = copy_strings_kernel(1, &bprm->filename, bprm);
+ retval = copy_string_kernel(bprm->filename, bprm);
if (retval < 0)
goto out;
--- a/include/linux/binfmts.h~exec-simplify-the-copy_strings_kernel-calling-convention
+++ a/include/linux/binfmts.h
@@ -144,8 +144,7 @@ extern int setup_arg_pages(struct linux_
extern int transfer_args_to_stack(struct linux_binprm *bprm,
unsigned long *sp_location);
extern int bprm_change_interp(const char *interp, struct linux_binprm *bprm);
-extern int copy_strings_kernel(int argc, const char *const *argv,
- struct linux_binprm *bprm);
+int copy_string_kernel(const char *arg, struct linux_binprm *bprm);
extern void install_exec_creds(struct linux_binprm *bprm);
extern void set_binfmt(struct linux_binfmt *new);
extern ssize_t read_code(struct file *, unsigned long, loff_t, size_t);
_
Patches currently in -mm which might be from hch@lst.de are
x86-hyperv-use-vmalloc_exec-for-the-hypercall-page.patch
x86-fix-vmap-arguments-in-map_irq_stack.patch
staging-android-ion-use-vmap-instead-of-vm_map_ram.patch
staging-media-ipu3-use-vmap-instead-of-reimplementing-it.patch
dma-mapping-use-vmap-insted-of-reimplementing-it.patch
powerpc-add-an-ioremap_phb-helper.patch
powerpc-remove-__ioremap_at-and-__iounmap_at.patch
mm-remove-__get_vm_area.patch
mm-unexport-unmap_kernel_range_noflush.patch
mm-rename-config_pgtable_mapping-to-config_zsmalloc_pgtable_mapping.patch
mm-only-allow-page-table-mappings-for-built-in-zsmalloc.patch
mm-pass-addr-as-unsigned-long-to-vb_free.patch
mm-remove-vmap_page_range_noflush-and-vunmap_page_range.patch
mm-rename-vmap_page_range-to-map_kernel_range.patch
mm-dont-return-the-number-of-pages-from-map_kernel_range_noflush.patch
mm-remove-map_vm_range.patch
mm-remove-unmap_vmap_area.patch
mm-remove-the-prot-argument-from-vm_map_ram.patch
mm-enforce-that-vmap-cant-map-pages-executable.patch
gpu-drm-remove-the-powerpc-hack-in-drm_legacy_sg_alloc.patch
mm-remove-the-pgprot-argument-to-__vmalloc.patch
mm-remove-the-prot-argument-to-__vmalloc_node.patch
mm-remove-both-instances-of-__vmalloc_node_flags.patch
mm-remove-__vmalloc_node_flags_caller.patch
mm-switch-the-test_vmalloc-module-to-use-__vmalloc_node.patch
mm-remove-vmalloc_user_node_flags.patch
arm64-use-__vmalloc_node-in-arch_alloc_vmap_stack.patch
powerpc-use-__vmalloc_node-in-alloc_vm_stack.patch
s390-use-__vmalloc_node-in-stack_alloc.patch
powerpc-spufs-simplify-spufs-core-dumping.patch
binfmt_elf-remove-the-set_fskernel_ds-in-elf_core_dump.patch
binfmt_elf_fdpic-remove-the-set_fskernel_ds-in-elf_fdpic_core_dump.patch
exec-simplify-the-copy_strings_kernel-calling-convention.patch
exec-open-code-copy_string_kernel.patch
amdgpu-a-null-mm-does-not-mean-a-thread-is-a-kthread.patch
i915-gvt-remove-unused-xen-bits.patch
kernel-move-use_mm-unuse_mm-to-kthreadc.patch
kernel-move-use_mm-unuse_mm-to-kthreadc-v2.patch
kernel-better-document-the-use_mm-unuse_mm-api-contract.patch
kernel-better-document-the-use_mm-unuse_mm-api-contract-v2.patch
kernel-set-user_ds-in-kthread_use_mm.patch
^ permalink raw reply [flat|nested] 215+ messages in thread
* + exec-open-code-copy_string_kernel.patch added to -mm tree
2020-04-21 1:13 incoming Andrew Morton
` (47 preceding siblings ...)
2020-04-24 2:06 ` + exec-simplify-the-copy_strings_kernel-calling-convention.patch " Andrew Morton
@ 2020-04-24 2:06 ` Andrew Morton
2020-04-24 3:24 ` + add-kernel-config-option-for-twisting-kernel-behavior.patch " Andrew Morton
` (18 subsequent siblings)
67 siblings, 0 replies; 215+ messages in thread
From: Andrew Morton @ 2020-04-24 2:06 UTC (permalink / raw)
To: arnd, benh, ebiederm, hch, jk, mm-commits, mpe, paulus, viro
The patch titled
Subject: exec: open code copy_string_kernel
has been added to the -mm tree. Its filename is
exec-open-code-copy_string_kernel.patch
This patch should soon appear at
http://ozlabs.org/~akpm/mmots/broken-out/exec-open-code-copy_string_kernel.patch
and later at
http://ozlabs.org/~akpm/mmotm/broken-out/exec-open-code-copy_string_kernel.patch
Before you just go and hit "reply", please:
a) Consider who else should be cc'ed
b) Prefer to cc a suitable mailing list as well
c) Ideally: find the original patch on the mailing list and do a
reply-to-all to that, adding suitable additional cc's
*** Remember to use Documentation/process/submit-checklist.rst when testing your code ***
The -mm tree is included into linux-next and is updated
there every 3-4 working days
------------------------------------------------------
From: Christoph Hellwig <hch@lst.de>
Subject: exec: open code copy_string_kernel
Currently copy_string_kernel is just a wrapper around copy_strings that
simplifies the calling conventions and uses set_fs to allow passing a
kernel pointer. But due to the fact the we only need to handle a single
kernel argument pointer, the logic can be sigificantly simplified while
getting rid of the set_fs.
Link: http://lkml.kernel.org/r/20200421154204.252921-8-hch@lst.de
Signed-off-by: Christoph Hellwig <hch@lst.de>
Cc: Alexander Viro <viro@zeniv.linux.org.uk>
Cc: Arnd Bergmann <arnd@arndb.de>
Cc: Benjamin Herrenschmidt <benh@kernel.crashing.org>
Cc: "Eric W . Biederman" <ebiederm@xmission.com>
Cc: Jeremy Kerr <jk@ozlabs.org>
Cc: Michael Ellerman <mpe@ellerman.id.au>
Cc: Paul Mackerras <paulus@samba.org>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
---
fs/exec.c | 45 +++++++++++++++++++++++++++++++++++----------
1 file changed, 35 insertions(+), 10 deletions(-)
--- a/fs/exec.c~exec-open-code-copy_string_kernel
+++ a/fs/exec.c
@@ -592,17 +592,42 @@ out:
*/
int copy_string_kernel(const char *arg, struct linux_binprm *bprm)
{
- int r;
- mm_segment_t oldfs = get_fs();
- struct user_arg_ptr argv = {
- .ptr.native = (const char __user *const __user *)&arg,
- };
-
- set_fs(KERNEL_DS);
- r = copy_strings(1, argv, bprm);
- set_fs(oldfs);
+ int len = strnlen(arg, MAX_ARG_STRLEN) + 1 /* terminating NUL */;
+ unsigned long pos = bprm->p;
- return r;
+ if (len == 0)
+ return -EFAULT;
+ if (!valid_arg_len(bprm, len))
+ return -E2BIG;
+
+ /* We're going to work our way backwards. */
+ arg += len;
+ bprm->p -= len;
+ if (IS_ENABLED(CONFIG_MMU) && bprm->p < bprm->argmin)
+ return -E2BIG;
+
+ while (len > 0) {
+ unsigned int bytes_to_copy = min_t(unsigned int, len,
+ min_not_zero(offset_in_page(pos), PAGE_SIZE));
+ struct page *page;
+ char *kaddr;
+
+ pos -= bytes_to_copy;
+ arg -= bytes_to_copy;
+ len -= bytes_to_copy;
+
+ page = get_arg_page(bprm, pos, 1);
+ if (!page)
+ return -E2BIG;
+ kaddr = kmap_atomic(page);
+ flush_arg_page(bprm, pos & PAGE_MASK, page);
+ memcpy(kaddr + offset_in_page(pos), arg, bytes_to_copy);
+ flush_kernel_dcache_page(page);
+ kunmap_atomic(kaddr);
+ put_arg_page(page);
+ }
+
+ return 0;
}
EXPORT_SYMBOL(copy_string_kernel);
_
Patches currently in -mm which might be from hch@lst.de are
x86-hyperv-use-vmalloc_exec-for-the-hypercall-page.patch
x86-fix-vmap-arguments-in-map_irq_stack.patch
staging-android-ion-use-vmap-instead-of-vm_map_ram.patch
staging-media-ipu3-use-vmap-instead-of-reimplementing-it.patch
dma-mapping-use-vmap-insted-of-reimplementing-it.patch
powerpc-add-an-ioremap_phb-helper.patch
powerpc-remove-__ioremap_at-and-__iounmap_at.patch
mm-remove-__get_vm_area.patch
mm-unexport-unmap_kernel_range_noflush.patch
mm-rename-config_pgtable_mapping-to-config_zsmalloc_pgtable_mapping.patch
mm-only-allow-page-table-mappings-for-built-in-zsmalloc.patch
mm-pass-addr-as-unsigned-long-to-vb_free.patch
mm-remove-vmap_page_range_noflush-and-vunmap_page_range.patch
mm-rename-vmap_page_range-to-map_kernel_range.patch
mm-dont-return-the-number-of-pages-from-map_kernel_range_noflush.patch
mm-remove-map_vm_range.patch
mm-remove-unmap_vmap_area.patch
mm-remove-the-prot-argument-from-vm_map_ram.patch
mm-enforce-that-vmap-cant-map-pages-executable.patch
gpu-drm-remove-the-powerpc-hack-in-drm_legacy_sg_alloc.patch
mm-remove-the-pgprot-argument-to-__vmalloc.patch
mm-remove-the-prot-argument-to-__vmalloc_node.patch
mm-remove-both-instances-of-__vmalloc_node_flags.patch
mm-remove-__vmalloc_node_flags_caller.patch
mm-switch-the-test_vmalloc-module-to-use-__vmalloc_node.patch
mm-remove-vmalloc_user_node_flags.patch
arm64-use-__vmalloc_node-in-arch_alloc_vmap_stack.patch
powerpc-use-__vmalloc_node-in-alloc_vm_stack.patch
s390-use-__vmalloc_node-in-stack_alloc.patch
powerpc-spufs-simplify-spufs-core-dumping.patch
binfmt_elf-remove-the-set_fskernel_ds-in-elf_core_dump.patch
binfmt_elf_fdpic-remove-the-set_fskernel_ds-in-elf_fdpic_core_dump.patch
exec-simplify-the-copy_strings_kernel-calling-convention.patch
exec-open-code-copy_string_kernel.patch
amdgpu-a-null-mm-does-not-mean-a-thread-is-a-kthread.patch
i915-gvt-remove-unused-xen-bits.patch
kernel-move-use_mm-unuse_mm-to-kthreadc.patch
kernel-move-use_mm-unuse_mm-to-kthreadc-v2.patch
kernel-better-document-the-use_mm-unuse_mm-api-contract.patch
kernel-better-document-the-use_mm-unuse_mm-api-contract-v2.patch
kernel-set-user_ds-in-kthread_use_mm.patch
^ permalink raw reply [flat|nested] 215+ messages in thread
* + add-kernel-config-option-for-twisting-kernel-behavior.patch added to -mm tree
2020-04-21 1:13 incoming Andrew Morton
` (48 preceding siblings ...)
2020-04-24 2:06 ` + exec-open-code-copy_string_kernel.patch " Andrew Morton
@ 2020-04-24 3:24 ` Andrew Morton
2020-04-24 3:24 ` + twist-allow-disabling-k_spec-function-in-drivers-tty-vt-keyboardc.patch " Andrew Morton
` (17 subsequent siblings)
67 siblings, 0 replies; 215+ messages in thread
From: Andrew Morton @ 2020-04-24 3:24 UTC (permalink / raw)
To: ak, arnd, dvyukov, gregkh, jslaby, mjg59, mm-commits,
penguin-kernel, peterz, pmladek, rostedt, sergey.senozhatsky,
tytso, viro
The patch titled
Subject: add kernel config option for twisting kernel behavior.
has been added to the -mm tree. Its filename is
add-kernel-config-option-for-twisting-kernel-behavior.patch
This patch should soon appear at
http://ozlabs.org/~akpm/mmots/broken-out/add-kernel-config-option-for-twisting-kernel-behavior.patch
and later at
http://ozlabs.org/~akpm/mmotm/broken-out/add-kernel-config-option-for-twisting-kernel-behavior.patch
Before you just go and hit "reply", please:
a) Consider who else should be cc'ed
b) Prefer to cc a suitable mailing list as well
c) Ideally: find the original patch on the mailing list and do a
reply-to-all to that, adding suitable additional cc's
*** Remember to use Documentation/process/submit-checklist.rst when testing your code ***
The -mm tree is included into linux-next and is updated
there every 3-4 working days
------------------------------------------------------
From: Tetsuo Handa <penguin-kernel@I-love.SAKURA.ne.jp>
Subject: add kernel config option for twisting kernel behavior.
Existing kernel config options are defined based on "whether you want to
enable this module/feature or not". And such granularity is sometimes
too rough-grained for fuzzing tools which try to find bugs inside each
module/feature.
While syzkaller (one of fuzzing tools) is finding many bugs, sometimes
syzkaller examines stupid operations. Some examples of such operations
are: changing console loglevel which in turn makes it impossible to get
kernel messages when a crash happens, freezing filesystems which in turn
causes khungtaskd to needlessly complain, programmatically sending
Ctrl-Alt-Del which in turn causes the system to needlessly reboot.
Currently we prevent syzkaller from examining stupid operations by
blacklisting syscall arguments and/or disabling whole functionality
using existing kernel config options. But such approach is difficult to
maintain and needlessly prevents fuzzers from testing kernel code. [1]
We want fuzzers to test as much coverage as possible while we want
fuzzers not to try stupid operations. To achieve this goal, we want
cooperation from kernel side, and build-time branching (i.e. kernel
config options) will be the simplest and the most reliable.
Therefore, this patch introduces a kernel config option which allows
selecting fine-grained kernel config options for twisting kernel's
behavior. Each fine-grained kernel config option will be added by future
patches. For ease of management, grouping kernel config options for
allowing e.g. syzkaller to select all fine-grained kernel config options
which e.g. syzkaller wants would be added by future patches.
[1] https://lkml.kernel.org/r/CACT4Y+a6KExbggs4mg8pvoD554PcDqQNW4sM15X-tc=YONCzYw@mail.gmail.com
Link: http://lkml.kernel.org/r/20200421131951.4948-1-penguin-kernel@I-love.SAKURA.ne.jp
Signed-off-by: Tetsuo Handa <penguin-kernel@I-love.SAKURA.ne.jp>
Cc: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
Cc: Steven Rostedt <rostedt@goodmis.org>
Cc: Dmitry Vyukov <dvyukov@google.com>
Cc: Matthew Garrett <mjg59@google.com>
Cc: Andi Kleen <ak@linux.intel.com>
Cc: "Theodore Y . Ts'o" <tytso@mit.edu>
Cc: Alexander Viro <viro@zeniv.linux.org.uk>
Cc: Petr Mladek <pmladek@suse.com>
Cc: Sergey Senozhatsky <sergey.senozhatsky@gmail.com>
Cc: Arnd Bergmann <arnd@arndb.de>
Cc: Jiri Slaby <jslaby@suse.com>
Cc: Peter Zijlstra <peterz@infradead.org>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
---
lib/Kconfig.debug | 2 ++
lib/Kconfig.twist | 13 +++++++++++++
2 files changed, 15 insertions(+)
--- a/lib/Kconfig.debug~add-kernel-config-option-for-twisting-kernel-behavior
+++ a/lib/Kconfig.debug
@@ -2277,4 +2277,6 @@ config HYPERV_TESTING
endmenu # "Kernel Testing and Coverage"
+source "lib/Kconfig.twist"
+
endmenu # Kernel hacking
--- /dev/null
+++ a/lib/Kconfig.twist
@@ -0,0 +1,13 @@
+menuconfig TWIST_KERNEL_BEHAVIOR
+ bool "Twist kernel behavior"
+ help
+ Saying Y here allows modifying kernel behavior via kernel
+ config options which will become visible by selecting this
+ config option. Since these kernel config options are intended
+ for helping e.g. fuzz testing, behavior twisted by this kernel
+ option might be unstable. Userspace applications should not
+ count on this option being selected.
+
+if TWIST_KERNEL_BEHAVIOR
+
+endif # TWIST_KERNEL_BEHAVIOR
_
Patches currently in -mm which might be from penguin-kernel@I-love.SAKURA.ne.jp are
info-task-hung-in-generic_file_write_iter.patch
info-task-hung-in-generic_file_write-fix.patch
add-kernel-config-option-for-twisting-kernel-behavior.patch
twist-allow-disabling-k_spec-function-in-drivers-tty-vt-keyboardc.patch
twist-add-option-for-selecting-twist-options-for-syzkallers-testing.patch
^ permalink raw reply [flat|nested] 215+ messages in thread
* + twist-allow-disabling-k_spec-function-in-drivers-tty-vt-keyboardc.patch added to -mm tree
2020-04-21 1:13 incoming Andrew Morton
` (49 preceding siblings ...)
2020-04-24 3:24 ` + add-kernel-config-option-for-twisting-kernel-behavior.patch " Andrew Morton
@ 2020-04-24 3:24 ` Andrew Morton
2020-04-24 3:24 ` + twist-add-option-for-selecting-twist-options-for-syzkallers-testing.patch " Andrew Morton
` (16 subsequent siblings)
67 siblings, 0 replies; 215+ messages in thread
From: Andrew Morton @ 2020-04-24 3:24 UTC (permalink / raw)
To: ak, arnd, dvyukov, gregkh, jslaby, mjg59, mm-commits,
penguin-kernel, peterz, pmladek, rostedt, sergey.senozhatsky,
tytso, viro
The patch titled
Subject: twist: allow disabling k_spec() function in drivers/tty/vt/keyboard.c
has been added to the -mm tree. Its filename is
twist-allow-disabling-k_spec-function-in-drivers-tty-vt-keyboardc.patch
This patch should soon appear at
http://ozlabs.org/~akpm/mmots/broken-out/twist-allow-disabling-k_spec-function-in-drivers-tty-vt-keyboardc.patch
and later at
http://ozlabs.org/~akpm/mmotm/broken-out/twist-allow-disabling-k_spec-function-in-drivers-tty-vt-keyboardc.patch
Before you just go and hit "reply", please:
a) Consider who else should be cc'ed
b) Prefer to cc a suitable mailing list as well
c) Ideally: find the original patch on the mailing list and do a
reply-to-all to that, adding suitable additional cc's
*** Remember to use Documentation/process/submit-checklist.rst when testing your code ***
The -mm tree is included into linux-next and is updated
there every 3-4 working days
------------------------------------------------------
From: Tetsuo Handa <penguin-kernel@I-love.SAKURA.ne.jp>
Subject: twist: allow disabling k_spec() function in drivers/tty/vt/keyboard.c
syzbot is reporting unexpected kernel reboots [1]. This seems to be
caused by triggering Ctrl-Alt-Del event via k_spec() function in
drivers/tty/vt/keyboard.c file, for the console output includes normal
restart sequence.
[ 97.727327][ T1] systemd-shutdown[1]: Unmounting file systems.
[ 97.734278][ T1] systemd-shutdown[1]: Remounting '/' read-only with options ''.
[ 97.747758][ T21] usb 2-1: device descriptor read/8, error -71
[ 97.747850][ T3116] usb 1-1: device descriptor read/8, error -71
[ 97.764818][ T1] EXT4-fs (sda1): re-mounted. Opts:
[ 97.777551][ T1] systemd-shutdown[1]: Remounting '/' read-only with options ''.
[ 97.785448][ T1] EXT4-fs (sda1): re-mounted. Opts:
[ 97.790920][ T1] systemd-shutdown[1]: All filesystems unmounted.
[ 97.797352][ T1] systemd-shutdown[1]: Deactivating swaps.
[ 97.803451][ T1] systemd-shutdown[1]: All swaps deactivated.
[ 97.809626][ T1] systemd-shutdown[1]: Detaching loop devices.
[ 97.890294][ T1] systemd-shutdown[1]: All loop devices detached.
[ 98.967832][ T3116] usb 1-1: device descriptor read/8, error -71
[ 100.108406][ T1] sd 0:0:1:0: [sda] Synchronizing SCSI cache
[ 100.116036][ T1] reboot: Restarting system
[ 100.120636][ T1] reboot: machine restart
SeaBIOS (version 1.8.2-20200402_173431-google)
Total RAM Size = 0x00000001e0000000 = 7680 MiB
CPUs found: 2 Max CPUs supported: 2
Comparing RSDP and RSDP
Therefore, allow disabling only k_spec() function in order to allow
fuzzers to examine the remaining part in that file.
[1] https://syzkaller.appspot.com/bug?id=321861b1588b44d064b779b92293c5d55cfe8430
Link: http://lkml.kernel.org/r/20200421131951.4948-2-penguin-kernel@I-love.SAKURA.ne.jp
Signed-off-by: Tetsuo Handa <penguin-kernel@I-love.SAKURA.ne.jp>
Cc: Alexander Viro <viro@zeniv.linux.org.uk>
Cc: Andi Kleen <ak@linux.intel.com>
Cc: Arnd Bergmann <arnd@arndb.de>
Cc: Dmitry Vyukov <dvyukov@google.com>
Cc: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
Cc: Jiri Slaby <jslaby@suse.com>
Cc: Matthew Garrett <mjg59@google.com>
Cc: Peter Zijlstra <peterz@infradead.org>
Cc: Petr Mladek <pmladek@suse.com>
Cc: Sergey Senozhatsky <sergey.senozhatsky@gmail.com>
Cc: Steven Rostedt <rostedt@goodmis.org>
Cc: "Theodore Y . Ts'o" <tytso@mit.edu>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
---
drivers/tty/vt/keyboard.c | 2 ++
lib/Kconfig.twist | 7 +++++++
2 files changed, 9 insertions(+)
--- a/drivers/tty/vt/keyboard.c~twist-allow-disabling-k_spec-function-in-drivers-tty-vt-keyboardc
+++ a/drivers/tty/vt/keyboard.c
@@ -633,6 +633,8 @@ static void k_spec(struct vc_data *vc, u
kbd->kbdmode == VC_OFF) &&
value != KVAL(K_SAK))
return; /* SAK is allowed even in raw mode */
+ if (IS_ENABLED(CONFIG_TWIST_DISABLE_KBD_K_SPEC_HANDLER))
+ return;
fn_handler[value](vc);
}
--- a/lib/Kconfig.twist~twist-allow-disabling-k_spec-function-in-drivers-tty-vt-keyboardc
+++ a/lib/Kconfig.twist
@@ -10,4 +10,11 @@ menuconfig TWIST_KERNEL_BEHAVIOR
if TWIST_KERNEL_BEHAVIOR
+config TWIST_DISABLE_KBD_K_SPEC_HANDLER
+ bool "Disable k_spec() function in drivers/tty/vt/keyboard.c"
+ help
+ k_spec() function allows triggering e.g. Ctrl-Alt-Del event.
+ Such event is annoying for fuzz testing which wants to test
+ kernel code without rebooting the system.
+
endif # TWIST_KERNEL_BEHAVIOR
_
Patches currently in -mm which might be from penguin-kernel@I-love.SAKURA.ne.jp are
info-task-hung-in-generic_file_write_iter.patch
info-task-hung-in-generic_file_write-fix.patch
add-kernel-config-option-for-twisting-kernel-behavior.patch
twist-allow-disabling-k_spec-function-in-drivers-tty-vt-keyboardc.patch
twist-add-option-for-selecting-twist-options-for-syzkallers-testing.patch
^ permalink raw reply [flat|nested] 215+ messages in thread
* + twist-add-option-for-selecting-twist-options-for-syzkallers-testing.patch added to -mm tree
2020-04-21 1:13 incoming Andrew Morton
` (50 preceding siblings ...)
2020-04-24 3:24 ` + twist-allow-disabling-k_spec-function-in-drivers-tty-vt-keyboardc.patch " Andrew Morton
@ 2020-04-24 3:24 ` Andrew Morton
2020-04-24 3:32 ` + eventpoll-fix-missing-wakeup-for-ovflist-in-ep_poll_callback.patch " Andrew Morton
` (15 subsequent siblings)
67 siblings, 0 replies; 215+ messages in thread
From: Andrew Morton @ 2020-04-24 3:24 UTC (permalink / raw)
To: ak, arnd, dvyukov, gregkh, jslaby, mjg59, mm-commits,
penguin-kernel, peterz, pmladek, rostedt, sergey.senozhatsky,
tytso, viro
The patch titled
Subject: twist: add option for selecting twist options for syzkaller's testing
has been added to the -mm tree. Its filename is
twist-add-option-for-selecting-twist-options-for-syzkallers-testing.patch
This patch should soon appear at
http://ozlabs.org/~akpm/mmots/broken-out/twist-add-option-for-selecting-twist-options-for-syzkallers-testing.patch
and later at
http://ozlabs.org/~akpm/mmotm/broken-out/twist-add-option-for-selecting-twist-options-for-syzkallers-testing.patch
Before you just go and hit "reply", please:
a) Consider who else should be cc'ed
b) Prefer to cc a suitable mailing list as well
c) Ideally: find the original patch on the mailing list and do a
reply-to-all to that, adding suitable additional cc's
*** Remember to use Documentation/process/submit-checklist.rst when testing your code ***
The -mm tree is included into linux-next and is updated
there every 3-4 working days
------------------------------------------------------
From: Tetsuo Handa <penguin-kernel@I-love.SAKURA.ne.jp>
Subject: twist: add option for selecting twist options for syzkaller's testing
When a kernel developer adds a kernel config option, they will not go and
update configs on all external testing systems. This problem is also
common for "enable all boot tests that can run on this kernel", or
"configure a 'standard' debug build". Currently doing these things
require all of expertise, sacred knowledge, checking all configs
one-by-one as well as checking every new kernel patch and that needs to be
done by everybody doing any kernel testing.
In order to reduce the burden of maintaining kernel config options, this
patch introduces a kernel config option which will select twist options
when building kernels for syzkaller's testing.
Link: http://lkml.kernel.org/r/20200421131951.4948-3-penguin-kernel@I-love.SAKURA.ne.jp
Signed-off-by: Tetsuo Handa <penguin-kernel@I-love.SAKURA.ne.jp>
Signed-off-by: Dmitry Vyukov <dvyukov@google.com>
Cc: Alexander Viro <viro@zeniv.linux.org.uk>
Cc: Andi Kleen <ak@linux.intel.com>
Cc: Arnd Bergmann <arnd@arndb.de>
Cc: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
Cc: Jiri Slaby <jslaby@suse.com>
Cc: Matthew Garrett <mjg59@google.com>
Cc: Peter Zijlstra <peterz@infradead.org>
Cc: Petr Mladek <pmladek@suse.com>
Cc: Sergey Senozhatsky <sergey.senozhatsky@gmail.com>
Cc: Steven Rostedt <rostedt@goodmis.org>
Cc: "Theodore Y . Ts'o" <tytso@mit.edu>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
---
lib/Kconfig.twist | 6 ++++++
1 file changed, 6 insertions(+)
--- a/lib/Kconfig.twist~twist-add-option-for-selecting-twist-options-for-syzkallers-testing
+++ a/lib/Kconfig.twist
@@ -10,6 +10,12 @@ menuconfig TWIST_KERNEL_BEHAVIOR
if TWIST_KERNEL_BEHAVIOR
+config TWIST_FOR_SYZKALLER_TESTING
+ bool "Select all twist options suitable for syzkaller testing"
+ select TWIST_DISABLE_KBD_K_SPEC_HANDLER
+ help
+ Say N unless you are building kernels for syzkaller's testing.
+
config TWIST_DISABLE_KBD_K_SPEC_HANDLER
bool "Disable k_spec() function in drivers/tty/vt/keyboard.c"
help
_
Patches currently in -mm which might be from penguin-kernel@I-love.SAKURA.ne.jp are
info-task-hung-in-generic_file_write_iter.patch
info-task-hung-in-generic_file_write-fix.patch
add-kernel-config-option-for-twisting-kernel-behavior.patch
twist-allow-disabling-k_spec-function-in-drivers-tty-vt-keyboardc.patch
twist-add-option-for-selecting-twist-options-for-syzkallers-testing.patch
^ permalink raw reply [flat|nested] 215+ messages in thread
* + eventpoll-fix-missing-wakeup-for-ovflist-in-ep_poll_callback.patch added to -mm tree
2020-04-21 1:13 incoming Andrew Morton
` (51 preceding siblings ...)
2020-04-24 3:24 ` + twist-add-option-for-selecting-twist-options-for-syzkallers-testing.patch " Andrew Morton
@ 2020-04-24 3:32 ` Andrew Morton
2020-04-24 3:49 ` [obsolete] linux-next-rejects.patch removed from " Andrew Morton
` (14 subsequent siblings)
67 siblings, 0 replies; 215+ messages in thread
From: Andrew Morton @ 2020-04-24 3:32 UTC (permalink / raw)
To: jbaron, khazhy, mm-commits, r, rpenyaev, stable, viro
The patch titled
Subject: eventpoll: fix missing wakeup for ovflist in ep_poll_callback
has been added to the -mm tree. Its filename is
eventpoll-fix-missing-wakeup-for-ovflist-in-ep_poll_callback.patch
This patch should soon appear at
http://ozlabs.org/~akpm/mmots/broken-out/eventpoll-fix-missing-wakeup-for-ovflist-in-ep_poll_callback.patch
and later at
http://ozlabs.org/~akpm/mmotm/broken-out/eventpoll-fix-missing-wakeup-for-ovflist-in-ep_poll_callback.patch
Before you just go and hit "reply", please:
a) Consider who else should be cc'ed
b) Prefer to cc a suitable mailing list as well
c) Ideally: find the original patch on the mailing list and do a
reply-to-all to that, adding suitable additional cc's
*** Remember to use Documentation/process/submit-checklist.rst when testing your code ***
The -mm tree is included into linux-next and is updated
there every 3-4 working days
------------------------------------------------------
From: Khazhismel Kumykov <khazhy@google.com>
Subject: eventpoll: fix missing wakeup for ovflist in ep_poll_callback
In the event that we add to ovflist, before 339ddb53d373 we would be woken
up by ep_scan_ready_list, and did no wakeup in ep_poll_callback. With
that wakeup removed, if we add to ovflist here, we may never wake up.
Rather than adding back the ep_scan_ready_list wakeup - which was
resulting un uncessary wakeups, trigger a wake-up in ep_poll_callback.
We noticed that one of our workloads was missing wakeups starting with
339ddb53d373 and upon manual inspection, this wakeup seemed missing to me.
With this patch added, we no longer see missing wakeups. I haven't yet
tried to make a small reproducer, but the existing kselftests in
filesystem/epoll passed for me with this patch.
Link: http://lkml.kernel.org/r/20200424025057.118641-1-khazhy@google.com
Fixes: 339ddb53d373 ("fs/epoll: remove unnecessary wakeups of nested epoll")
Signed-off-by: Khazhismel Kumykov <khazhy@google.com>
Cc: Alexander Viro <viro@zeniv.linux.org.uk>
Cc: Roman Penyaev <rpenyaev@suse.de>
Cc: Heiher <r@hev.cc>
Cc: Jason Baron <jbaron@akamai.com>
Cc: <stable@vger.kernel.org>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
---
fs/eventpoll.c | 3 ++-
1 file changed, 2 insertions(+), 1 deletion(-)
--- a/fs/eventpoll.c~eventpoll-fix-missing-wakeup-for-ovflist-in-ep_poll_callback
+++ a/fs/eventpoll.c
@@ -1240,7 +1240,7 @@ static int ep_poll_callback(wait_queue_e
if (epi->next == EP_UNACTIVE_PTR &&
chain_epi_lockless(epi))
ep_pm_stay_awake_rcu(epi);
- goto out_unlock;
+ goto out_wakeup_unlock;
}
/* If this file is already in the ready list we exit soon */
@@ -1249,6 +1249,7 @@ static int ep_poll_callback(wait_queue_e
ep_pm_stay_awake_rcu(epi);
}
+out_wakeup_unlock:
/*
* Wake up ( if active ) both the eventpoll wait list and the ->poll()
* wait list.
_
Patches currently in -mm which might be from khazhy@google.com are
eventpoll-fix-missing-wakeup-for-ovflist-in-ep_poll_callback.patch
^ permalink raw reply [flat|nested] 215+ messages in thread
* [obsolete] linux-next-rejects.patch removed from -mm tree
2020-04-21 1:13 incoming Andrew Morton
` (52 preceding siblings ...)
2020-04-24 3:32 ` + eventpoll-fix-missing-wakeup-for-ovflist-in-ep_poll_callback.patch " Andrew Morton
@ 2020-04-24 3:49 ` Andrew Morton
2020-04-24 3:51 ` + mips-mm-add-page-soft-dirty-tracking.patch added to " Andrew Morton
` (13 subsequent siblings)
67 siblings, 0 replies; 215+ messages in thread
From: Andrew Morton @ 2020-04-24 3:49 UTC (permalink / raw)
To: akpm, mm-commits
The patch titled
Subject: linux-next-rejects
has been removed from the -mm tree. Its filename was
linux-next-rejects.patch
This patch was dropped because it is obsolete
------------------------------------------------------
From: Andrew Morton <akpm@linux-foundation.org>
Subject: linux-next-rejects
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
---
include/linux/printk.h | 101 +++++++++++++++++++++++++++++++++------
1 file changed, 88 insertions(+), 13 deletions(-)
--- a/include/linux/printk.h~linux-next-rejects
+++ a/include/linux/printk.h
@@ -279,40 +279,115 @@ static inline void printk_safe_flush_on_
extern int kptr_restrict;
+/**
+ * pr_fmt - used by the pr_*() macros to generate the printk format string
+ * @fmt: format string passed from a pr_*() macro
+ *
+ * This macro can be used to generate a unified format string for pr_*()
+ * macros. A common use is to prefix all pr_*() messages in a file with a common
+ * string. For example, defining this at the top of a source file:
+ *
+ * #define pr_fmt(fmt) KBUILD_MODNAME ": " fmt
+ *
+ * would prefix all pr_info, pr_emerg... messages in the file with the module
+ * name.
+ */
#ifndef pr_fmt
#define pr_fmt(fmt) fmt
#endif
-/*
- * These can be used to print at the various log levels.
- * All of these will print unconditionally, although note that pr_debug()
- * and other debug macros are compiled out unless either DEBUG is defined,
- * CONFIG_DYNAMIC_DEBUG is set, or CONFIG_DYNAMIC_DEBUG_CORE is set when
- * DYNAMIC_DEBUG_MODULE being defined for any modules.
+/**
+ * pr_emerg - Print an emergency-level message
+ * @fmt: format string
+ * @...: arguments for the format string
+ *
+ * This macro expands to a printk with KERN_EMERG loglevel. It uses pr_fmt() to
+ * generate the format string.
+ */
+ #define pr_emerg(fmt, ...) \
+ printk(KERN_EMERG pr_fmt(fmt), ##__VA_ARGS__)
+/**
+ * pr_alert - Print an alert-level message
+ * @fmt: format string
+ * @...: arguments for the format string
+ *
+ * This macro expands to a printk with KERN_ALERT loglevel. It uses pr_fmt() to
+ * generate the format string.
*/
-#define pr_emerg(fmt, ...) \
- printk(KERN_EMERG pr_fmt(fmt), ##__VA_ARGS__)
#define pr_alert(fmt, ...) \
printk(KERN_ALERT pr_fmt(fmt), ##__VA_ARGS__)
+/**
+ * pr_crit - Print a critical-level message
+ * @fmt: format string
+ * @...: arguments for the format string
+ *
+ * This macro expands to a printk with KERN_CRIT loglevel. It uses pr_fmt() to
+ * generate the format string.
+ */
#define pr_crit(fmt, ...) \
printk(KERN_CRIT pr_fmt(fmt), ##__VA_ARGS__)
+/**
+ * pr_err - Print an error-level message
+ * @fmt: format string
+ * @...: arguments for the format string
+ *
+ * This macro expands to a printk with KERN_ERR loglevel. It uses pr_fmt() to
+ * generate the format string.
+ */
#define pr_err(fmt, ...) \
printk(KERN_ERR pr_fmt(fmt), ##__VA_ARGS__)
+/**
+ * pr_warn - Print a warning-level message
+ * @fmt: format string
+ * @...: arguments for the format string
+ *
+ * This macro expands to a printk with KERN_WARNING loglevel. It uses pr_fmt()
+ * to generate the format string.
+ */
#define pr_warn(fmt, ...) \
printk(KERN_WARNING pr_fmt(fmt), ##__VA_ARGS__)
+/**
+ * pr_notice - Print a notice-level message
+ * @fmt: format string
+ * @...: arguments for the format string
+ *
+ * This macro expands to a printk with KERN_NOTICE loglevel. It uses pr_fmt() to
+ * generate the format string.
+ */
#define pr_notice(fmt, ...) \
printk(KERN_NOTICE pr_fmt(fmt), ##__VA_ARGS__)
+/**
+ * pr_info - Print an info-level message
+ * @fmt: format string
+ * @...: arguments for the format string
+ *
+ * This macro expands to a printk with KERN_INFO loglevel. It uses pr_fmt() to
+ * generate the format string.
+ */
#define pr_info(fmt, ...) \
printk(KERN_INFO pr_fmt(fmt), ##__VA_ARGS__)
-/*
- * Like KERN_CONT, pr_cont() should only be used when continuing
- * a line with no newline ('\n') enclosed. Otherwise it defaults
- * back to KERN_DEFAULT.
+/**
+ * pr_cont - Continues a previous log message in the same line.
+ * @fmt: format string
+ * @...: arguments for the format string
+ *
+ * This macro expands to a printk with KERN_CONT loglevel. It should only be
+ * used when continuing a log message with no newline ('\n') enclosed. Otherwise
+ * it defaults back to KERN_DEFAULT loglevel.
*/
#define pr_cont(fmt, ...) \
printk(KERN_CONT fmt, ##__VA_ARGS__)
-/* pr_devel() should produce zero code unless DEBUG is defined */
+/**
+ * pr_devel - Print a debug-level message conditionally
+ * @fmt: format string
+ * @...: arguments for the format string
+ *
+ * This macro expands to a printk with KERN_DEBUG loglevel if DEBUG is
+ * defined. Otherwise it does nothing.
+ *
+ * It uses pr_fmt() to generate the format string.
+ */
#ifdef DEBUG
#define pr_devel(fmt, ...) \
printk(KERN_DEBUG pr_fmt(fmt), ##__VA_ARGS__)
_
Patches currently in -mm which might be from akpm@linux-foundation.org are
mm-memcg-fix-error-return-value-of-mem_cgroup_css_alloc-fix.patch
squashfs-migrate-from-ll_rw_block-usage-to-bio-fix.patch
drivers-tty-serial-sh-scic-suppress-uninitialized-var-warning.patch
mm.patch
mm-slub-fix-corrupted-freechain-in-deactivate_slab-fix.patch
mm-remove-__vmalloc_node_flags_caller-fix.patch
mm-switch-the-test_vmalloc-module-to-use-__vmalloc_node-fix.patch
mm-remove-vmalloc_user_node_flags-fix.patch
mm-replace-zero-length-array-with-flexible-array-member-fix.patch
mm-hugetlb-fix-a-typo-in-comment-manitained-maintained-v2-checkpatch-fixes.patch
initrdmem=-option-to-specify-initrd-physical-address-checkpatch-fixes.patch
linux-next-fix.patch
kernel-forkc-export-kernel_thread-to-modules.patch
^ permalink raw reply [flat|nested] 215+ messages in thread
* + mips-mm-add-page-soft-dirty-tracking.patch added to -mm tree
2020-04-21 1:13 incoming Andrew Morton
` (53 preceding siblings ...)
2020-04-24 3:49 ` [obsolete] linux-next-rejects.patch removed from " Andrew Morton
@ 2020-04-24 3:51 ` Andrew Morton
2020-04-24 23:36 ` + mm-memory_hotplug-set-node_start_pfn-of-hotadded-pgdat-to-0.patch " Andrew Morton
` (12 subsequent siblings)
67 siblings, 0 replies; 215+ messages in thread
From: Andrew Morton @ 2020-04-24 3:51 UTC (permalink / raw)
To: anshuman.khandual, dansilsby, dkorotin, geert, gorcunov,
jiaxun.yang, koct9i, lixuefeng, mm-commits, paul, paulburton,
ralf, rppt, steven.price, sunguoyun, tsbogend, xemul, yangtiezhu
The patch titled
Subject: mips/mm: add page soft dirty tracking
has been added to the -mm tree. Its filename is
mips-mm-add-page-soft-dirty-tracking.patch
This patch should soon appear at
http://ozlabs.org/~akpm/mmots/broken-out/mips-mm-add-page-soft-dirty-tracking.patch
and later at
http://ozlabs.org/~akpm/mmotm/broken-out/mips-mm-add-page-soft-dirty-tracking.patch
Before you just go and hit "reply", please:
a) Consider who else should be cc'ed
b) Prefer to cc a suitable mailing list as well
c) Ideally: find the original patch on the mailing list and do a
reply-to-all to that, adding suitable additional cc's
*** Remember to use Documentation/process/submit-checklist.rst when testing your code ***
The -mm tree is included into linux-next and is updated
there every 3-4 working days
------------------------------------------------------
From: Guoyun Sun <sunguoyun@loongson.cn>
Subject: mips/mm: add page soft dirty tracking
User space checkpoint and restart tool (CRIU) needs the page's change to
be soft tracked. This allows to do a pre checkpoint and then dump only
touched pages.
Link: http://lkml.kernel.org/r/1587460527-13986-1-git-send-email-sunguoyun@loongson.cn
Signed-off-by: Guoyun Sun <sunguoyun@loongson.cn>
Cc: Thomas Bogendoerfer <tsbogend@alpha.franken.de>
Cc: Paul Burton <paulburton@kernel.org>
Cc: Daniel Silsby <dansilsby@gmail.com>
Cc: Jiaxun Yang <jiaxun.yang@flygoat.com>
Cc: Paul Cercueil <paul@crapouillou.net>
Cc: Dmitry Korotin <dkorotin@wavecomp.com>
Cc: Steven Price <steven.price@arm.com>
Cc: Geert Uytterhoeven <geert@linux-m68k.org>
Cc: Mike Rapoport <rppt@linux.ibm.com>
Cc: Anshuman Khandual <anshuman.khandual@arm.com>
Cc: Guoyun Sun <sunguoyun@loongson.cn>
Cc: TieZhu Yang <yangtiezhu@loongson.cn>
Cc: Xuefeng Li <lixuefeng@loongson.cn>
Cc: Konstantin Khlebnikov <koct9i@gmail.com>
Cc: Pavel Emelyanov <xemul@openvz.org>
Cc: Cyrill Gorcunov <gorcunov@gmail.com>
Cc: Ralf Baechle <ralf@linux-mips.org>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
---
arch/mips/Kconfig | 1
arch/mips/include/asm/pgtable-bits.h | 8 +++-
arch/mips/include/asm/pgtable.h | 48 +++++++++++++++++++++++--
3 files changed, 53 insertions(+), 4 deletions(-)
--- a/arch/mips/include/asm/pgtable-bits.h~mips-mm-add-page-soft-dirty-tracking
+++ a/arch/mips/include/asm/pgtable-bits.h
@@ -55,6 +55,7 @@ enum pgtable_bits {
#if defined(CONFIG_ARCH_HAS_PTE_SPECIAL)
_PAGE_SPECIAL_SHIFT,
#endif
+ _PAGE_SOFT_DIRTY_SHIFT,
};
/*
@@ -84,6 +85,7 @@ enum pgtable_bits {
#if defined(CONFIG_ARCH_HAS_PTE_SPECIAL)
_PAGE_SPECIAL_SHIFT,
#endif
+ _PAGE_SOFT_DIRTY_SHIFT,
};
#elif defined(CONFIG_CPU_R3K_TLB)
@@ -99,6 +101,7 @@ enum pgtable_bits {
#if defined(CONFIG_ARCH_HAS_PTE_SPECIAL)
_PAGE_SPECIAL_SHIFT,
#endif
+ _PAGE_SOFT_DIRTY_SHIFT,
/* Used by TLB hardware (placed in EntryLo) */
_PAGE_GLOBAL_SHIFT = 8,
@@ -125,7 +128,7 @@ enum pgtable_bits {
#if defined(CONFIG_ARCH_HAS_PTE_SPECIAL)
_PAGE_SPECIAL_SHIFT,
#endif
-
+ _PAGE_SOFT_DIRTY_SHIFT,
/* Used by TLB hardware (placed in EntryLo*) */
#if defined(CONFIG_CPU_HAS_RIXI)
_PAGE_NO_EXEC_SHIFT,
@@ -152,6 +155,7 @@ enum pgtable_bits {
#else
# define _PAGE_SPECIAL 0
#endif
+#define _PAGE_SOFT_DIRTY (1 << _PAGE_SOFT_DIRTY_SHIFT)
/* Used by TLB hardware (placed in EntryLo*) */
#if defined(CONFIG_XPA)
@@ -269,6 +273,6 @@ static inline uint64_t pte_to_entrylo(un
#define __WRITEABLE (_PAGE_SILENT_WRITE | _PAGE_WRITE | _PAGE_MODIFIED)
#define _PAGE_CHG_MASK (_PAGE_ACCESSED | _PAGE_MODIFIED | \
- _PFN_MASK | _CACHE_MASK)
+ _PAGE_SOFT_DIRTY | _PFN_MASK | _CACHE_MASK)
#endif /* _ASM_PGTABLE_BITS_H */
--- a/arch/mips/include/asm/pgtable.h~mips-mm-add-page-soft-dirty-tracking
+++ a/arch/mips/include/asm/pgtable.h
@@ -400,7 +400,7 @@ static inline pte_t pte_mkwrite(pte_t pt
static inline pte_t pte_mkdirty(pte_t pte)
{
- pte_val(pte) |= _PAGE_MODIFIED;
+ pte_val(pte) |= _PAGE_MODIFIED | _PAGE_SOFT_DIRTY;
if (pte_val(pte) & _PAGE_WRITE)
pte_val(pte) |= _PAGE_SILENT_WRITE;
return pte;
@@ -423,6 +423,30 @@ static inline pte_t pte_mkhuge(pte_t pte
return pte;
}
#endif /* CONFIG_MIPS_HUGE_TLB_SUPPORT */
+
+#ifdef CONFIG_HAVE_ARCH_SOFT_DIRTY
+static inline bool pte_soft_dirty(pte_t pte)
+{
+ return pte_val(pte) & _PAGE_SOFT_DIRTY;
+}
+#define pte_swp_soft_dirty pte_soft_dirty
+
+static inline pte_t pte_mksoft_dirty(pte_t pte)
+{
+ pte_val(pte) |= _PAGE_SOFT_DIRTY;
+ return pte;
+}
+#define pte_swp_mksoft_dirty pte_mksoft_dirty
+
+static inline pte_t pte_clear_soft_dirty(pte_t pte)
+{
+ pte_val(pte) &= ~(_PAGE_SOFT_DIRTY);
+ return pte;
+}
+#define pte_swp_clear_soft_dirty pte_clear_soft_dirty
+
+#endif /* CONFIG_HAVE_ARCH_SOFT_DIRTY */
+
#endif
/*
@@ -576,7 +600,7 @@ static inline pmd_t pmd_mkclean(pmd_t pm
static inline pmd_t pmd_mkdirty(pmd_t pmd)
{
- pmd_val(pmd) |= _PAGE_MODIFIED;
+ pmd_val(pmd) |= _PAGE_MODIFIED | _PAGE_SOFT_DIRTY;
if (pmd_val(pmd) & _PAGE_WRITE)
pmd_val(pmd) |= _PAGE_SILENT_WRITE;
@@ -605,6 +629,26 @@ static inline pmd_t pmd_mkyoung(pmd_t pm
return pmd;
}
+#ifdef CONFIG_HAVE_ARCH_SOFT_DIRTY
+static inline int pmd_soft_dirty(pmd_t pmd)
+{
+ return !!(pmd_val(pmd) & _PAGE_SOFT_DIRTY);
+}
+
+static inline pmd_t pmd_mksoft_dirty(pmd_t pmd)
+{
+ pmd_val(pmd) |= _PAGE_SOFT_DIRTY;
+ return pmd;
+}
+
+static inline pmd_t pmd_clear_soft_dirty(pmd_t pmd)
+{
+ pmd_val(pmd) &= ~(_PAGE_SOFT_DIRTY);
+ return pmd;
+}
+
+#endif /* CONFIG_HAVE_ARCH_SOFT_DIRTY */
+
/* Extern to avoid header file madness */
extern pmd_t mk_pmd(struct page *page, pgprot_t prot);
--- a/arch/mips/Kconfig~mips-mm-add-page-soft-dirty-tracking
+++ a/arch/mips/Kconfig
@@ -495,6 +495,7 @@ config MACH_LOONGSON64
select COMMON_CLK
select USE_OF
select BUILTIN_DTB
+ select HAVE_ARCH_SOFT_DIRTY
help
This enables the support of Loongson-2/3 family of machines.
_
Patches currently in -mm which might be from sunguoyun@loongson.cn are
mips-mm-add-page-soft-dirty-tracking.patch
^ permalink raw reply [flat|nested] 215+ messages in thread
* + mm-memory_hotplug-set-node_start_pfn-of-hotadded-pgdat-to-0.patch added to -mm tree
2020-04-21 1:13 incoming Andrew Morton
` (54 preceding siblings ...)
2020-04-24 3:51 ` + mips-mm-add-page-soft-dirty-tracking.patch added to " Andrew Morton
@ 2020-04-24 23:36 ` Andrew Morton
2020-04-26 0:09 ` + mm-switch-the-test_vmalloc-module-to-use-__vmalloc_node-fix-fix.patch " Andrew Morton
` (11 subsequent siblings)
67 siblings, 0 replies; 215+ messages in thread
From: Andrew Morton @ 2020-04-24 23:36 UTC (permalink / raw)
To: anshuman.khandual, bhe, david, mhocko, mhocko, mm-commits,
osalvador, pankaj.gupta.linux, rppt
The patch titled
Subject: mm/memory_hotplug: set node_start_pfn of hotadded pgdat to 0
has been added to the -mm tree. Its filename is
mm-memory_hotplug-set-node_start_pfn-of-hotadded-pgdat-to-0.patch
This patch should soon appear at
http://ozlabs.org/~akpm/mmots/broken-out/mm-memory_hotplug-set-node_start_pfn-of-hotadded-pgdat-to-0.patch
and later at
http://ozlabs.org/~akpm/mmotm/broken-out/mm-memory_hotplug-set-node_start_pfn-of-hotadded-pgdat-to-0.patch
Before you just go and hit "reply", please:
a) Consider who else should be cc'ed
b) Prefer to cc a suitable mailing list as well
c) Ideally: find the original patch on the mailing list and do a
reply-to-all to that, adding suitable additional cc's
*** Remember to use Documentation/process/submit-checklist.rst when testing your code ***
The -mm tree is included into linux-next and is updated
there every 3-4 working days
------------------------------------------------------
From: David Hildenbrand <david@redhat.com>
Subject: mm/memory_hotplug: set node_start_pfn of hotadded pgdat to 0
Patch series "mm/memory_hotplug: handle memblocks only with
CONFIG_ARCH_KEEP_MEMBLOCK", v1.
A hotadded node/pgdat will span no pages at all, until memory is moved to
the zone/node via move_pfn_range_to_zone() -> resize_pgdat_range - e.g.,
when onlining memory blocks. We don't have to initialize the
node_start_pfn to the memory we are adding.
This patch (of 2):
Especially, there is an inconsistency:
- Hotplugging memory to a memory-less node with cpus: node_start_pf == 0
- Offlining and removing last memory from a node: node_start_pfn == 0
- Hotplugging memory to a memory-less node without cpus: node_start_pfn != 0
As soon as memory is onlined, node_start_pfn is overwritten with the
actual start. E.g., when adding two DIMMs but only onlining one of both,
only that DIMM (with online memory blocks) is spanned by the node.
Currently, the validity of node_start_pfn really is linked to
node_spanned_pages != 0. With node_spanned_pages == 0 (e.g., before
onlining memory), it has no meaning.
So let's stop setting node_start_pfn, just to be overwritten via
move_pfn_range_to_zone(). This avoids confusion when looking at the code,
wondering which magic will be performed with the node_start_pfn in this
function, when hotadding a pgdat.
Link: http://lkml.kernel.org/r/20200422155353.25381-1-david@redhat.com
Link: http://lkml.kernel.org/r/20200422155353.25381-2-david@redhat.com
Signed-off-by: David Hildenbrand <david@redhat.com>
Acked-by: Pankaj Gupta <pankaj.gupta.linux@gmail.com>
Cc: Michal Hocko <mhocko@kernel.org>
Cc: Baoquan He <bhe@redhat.com>
Cc: Oscar Salvador <osalvador@suse.de>
Cc: Pankaj Gupta <pankaj.gupta.linux@gmail.com>
Cc: Anshuman Khandual <anshuman.khandual@arm.com>
Cc: Mike Rapoport <rppt@linux.ibm.com>
Cc: Michal Hocko <mhocko@suse.com>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
---
mm/memory_hotplug.c | 15 ++++++---------
1 file changed, 6 insertions(+), 9 deletions(-)
--- a/mm/memory_hotplug.c~mm-memory_hotplug-set-node_start_pfn-of-hotadded-pgdat-to-0
+++ a/mm/memory_hotplug.c
@@ -862,10 +862,9 @@ static void reset_node_present_pages(pg_
}
/* we are OK calling __meminit stuff here - we have CONFIG_MEMORY_HOTPLUG */
-static pg_data_t __ref *hotadd_new_pgdat(int nid, u64 start)
+static pg_data_t __ref *hotadd_new_pgdat(int nid)
{
struct pglist_data *pgdat;
- unsigned long start_pfn = PFN_DOWN(start);
pgdat = NODE_DATA(nid);
if (!pgdat) {
@@ -895,9 +894,8 @@ static pg_data_t __ref *hotadd_new_pgdat
}
/* we can use NODE_DATA(nid) from here */
-
pgdat->node_id = nid;
- pgdat->node_start_pfn = start_pfn;
+ pgdat->node_start_pfn = 0;
/* init node's zones as empty zones, we don't have any present pages.*/
free_area_init_core_hotplug(nid);
@@ -932,7 +930,6 @@ static void rollback_node_hotadd(int nid
/**
* try_online_node - online a node if offlined
* @nid: the node ID
- * @start: start addr of the node
* @set_node_online: Whether we want to online the node
* called by cpu_up() to online a node without onlined memory.
*
@@ -941,7 +938,7 @@ static void rollback_node_hotadd(int nid
* 0 -> the node is already online
* -ENOMEM -> the node could not be allocated
*/
-static int __try_online_node(int nid, u64 start, bool set_node_online)
+static int __try_online_node(int nid, bool set_node_online)
{
pg_data_t *pgdat;
int ret = 1;
@@ -949,7 +946,7 @@ static int __try_online_node(int nid, u6
if (node_online(nid))
return 0;
- pgdat = hotadd_new_pgdat(nid, start);
+ pgdat = hotadd_new_pgdat(nid);
if (!pgdat) {
pr_err("Cannot online node %d due to NULL pgdat\n", nid);
ret = -ENOMEM;
@@ -973,7 +970,7 @@ int try_online_node(int nid)
int ret;
mem_hotplug_begin();
- ret = __try_online_node(nid, 0, true);
+ ret = __try_online_node(nid, true);
mem_hotplug_done();
return ret;
}
@@ -1032,7 +1029,7 @@ int __ref add_memory_resource(int nid, s
*/
memblock_add_node(start, size, nid);
- ret = __try_online_node(nid, start, false);
+ ret = __try_online_node(nid, false);
if (ret < 0)
goto error;
new_node = ret;
_
Patches currently in -mm which might be from david@redhat.com are
mm-page_alloc-fix-watchdog-soft-lockups-during-set_zone_contiguous.patch
drivers-base-memoryc-cache-memory-blocks-in-xarray-to-accelerate-lookup-fix.patch
powerpc-pseries-hotplug-memory-stop-checking-is_mem_section_removable.patch
mm-memory_hotplug-remove-is_mem_section_removable.patch
mm-memory_hotplug-set-node_start_pfn-of-hotadded-pgdat-to-0.patch
mm-memory_hotplug-handle-memblocks-only-with-config_arch_keep_memblock.patch
^ permalink raw reply [flat|nested] 215+ messages in thread
* + mm-switch-the-test_vmalloc-module-to-use-__vmalloc_node-fix-fix.patch added to -mm tree
2020-04-21 1:13 incoming Andrew Morton
` (55 preceding siblings ...)
2020-04-24 23:36 ` + mm-memory_hotplug-set-node_start_pfn-of-hotadded-pgdat-to-0.patch " Andrew Morton
@ 2020-04-26 0:09 ` Andrew Morton
2020-04-26 0:17 ` + mm-hugetlb-avoid-unnecessary-check-on-pud-and-pmd-entry-in-huge_pte_offset.patch " Andrew Morton
` (10 subsequent siblings)
67 siblings, 0 replies; 215+ messages in thread
From: Andrew Morton @ 2020-04-26 0:09 UTC (permalink / raw)
To: akpm, hch, mm-commits, peterz
The patch titled
Subject: mm-switch-the-test_vmalloc-module-to-use-__vmalloc_node-fix-fix
has been added to the -mm tree. Its filename is
mm-switch-the-test_vmalloc-module-to-use-__vmalloc_node-fix-fix.patch
This patch should soon appear at
http://ozlabs.org/~akpm/mmots/broken-out/mm-switch-the-test_vmalloc-module-to-use-__vmalloc_node-fix-fix.patch
and later at
http://ozlabs.org/~akpm/mmotm/broken-out/mm-switch-the-test_vmalloc-module-to-use-__vmalloc_node-fix-fix.patch
Before you just go and hit "reply", please:
a) Consider who else should be cc'ed
b) Prefer to cc a suitable mailing list as well
c) Ideally: find the original patch on the mailing list and do a
reply-to-all to that, adding suitable additional cc's
*** Remember to use Documentation/process/submit-checklist.rst when testing your code ***
The -mm tree is included into linux-next and is updated
there every 3-4 working days
------------------------------------------------------
From: Andrew Morton <akpm@linux-foundation.org>
Subject: mm-switch-the-test_vmalloc-module-to-use-__vmalloc_node-fix-fix
fix riscv nommu build
Cc: Christoph Hellwig <hch@lst.de>
Cc: Peter Zijlstra (Intel) <peterz@infradead.org>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
---
arch/riscv/include/asm/pgtable.h | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)
--- a/arch/riscv/include/asm/pgtable.h~mm-switch-the-test_vmalloc-module-to-use-__vmalloc_node-fix-fix
+++ a/arch/riscv/include/asm/pgtable.h
@@ -472,9 +472,9 @@ static inline int ptep_clear_flush_young
#define PAGE_KERNEL __pgprot(0)
#define swapper_pg_dir NULL
+#define TASK_SIZE 0xffffffffUL
#define VMALLOC_START 0
^ permalink raw reply [flat|nested] 215+ messages in thread
* + mm-hugetlb-avoid-unnecessary-check-on-pud-and-pmd-entry-in-huge_pte_offset.patch added to -mm tree
2020-04-21 1:13 incoming Andrew Morton
` (56 preceding siblings ...)
2020-04-26 0:09 ` + mm-switch-the-test_vmalloc-module-to-use-__vmalloc_node-fix-fix.patch " Andrew Morton
@ 2020-04-26 0:17 ` Andrew Morton
2020-04-26 0:29 ` + eventpoll-fix-missing-wakeup-for-ovflist-in-ep_poll_callback-v2.patch " Andrew Morton
` (9 subsequent siblings)
67 siblings, 0 replies; 215+ messages in thread
From: Andrew Morton @ 2020-04-26 0:17 UTC (permalink / raw)
To: jgg, lixinhai.lxh, longpeng2, mike.kravetz, mm-commits, punit.agrawal
The patch titled
Subject: mm/hugetlb: avoid unnecessary check on pud and pmd entry in huge_pte_offset
has been added to the -mm tree. Its filename is
mm-hugetlb-avoid-unnecessary-check-on-pud-and-pmd-entry-in-huge_pte_offset.patch
This patch should soon appear at
http://ozlabs.org/~akpm/mmots/broken-out/mm-hugetlb-avoid-unnecessary-check-on-pud-and-pmd-entry-in-huge_pte_offset.patch
and later at
http://ozlabs.org/~akpm/mmotm/broken-out/mm-hugetlb-avoid-unnecessary-check-on-pud-and-pmd-entry-in-huge_pte_offset.patch
Before you just go and hit "reply", please:
a) Consider who else should be cc'ed
b) Prefer to cc a suitable mailing list as well
c) Ideally: find the original patch on the mailing list and do a
reply-to-all to that, adding suitable additional cc's
*** Remember to use Documentation/process/submit-checklist.rst when testing your code ***
The -mm tree is included into linux-next and is updated
there every 3-4 working days
------------------------------------------------------
From: Li Xinhai <lixinhai.lxh@gmail.com>
Subject: mm/hugetlb: avoid unnecessary check on pud and pmd entry in huge_pte_offset
When huge_pte_offset() is called, the parameter sz can only be PUD_SIZE or
PMD_SIZE. If sz is PUD_SIZE and code can reach pud, then *pud must be
none, or normal hugetlb entry, or non-present (migration or hwpoisoned)
hugetlb entry, and we can directly return pud. When sz is PMD_SIZE, pud
must be none or present, and if code can reach pmd, we can directly return
pmd.
So after this patch the code is simplified by first check on the parameter
sz, and avoid unnecessary checks in current code. Same semantics of
existing code is maintained.
More details about relevant commits:
commit 9b19df292c66 ("mm/hugetlb.c: make huge_pte_offset() consistent
and document behaviour") changed the code path for pud and pmd handling,
see comments about why this patch intends to change it.
...
pud = pud_offset(p4d, addr);
if (sz != PUD_SIZE && pud_none(*pud)) // [1]
return NULL;
/* hugepage or swap? */
if (pud_huge(*pud) || !pud_present(*pud)) // [2]
return (pte_t *)pud;
pmd = pmd_offset(pud, addr);
if (sz != PMD_SIZE && pmd_none(*pmd)) // [3]
return NULL;
/* hugepage or swap? */
if (pmd_huge(*pmd) || !pmd_present(*pmd)) // [4]
return (pte_t *)pmd;
return NULL; // [5]
...
[1]: this is necessary, return NULL for sz == PMD_SIZE;
[2]: if sz == PUD_SIZE, all valid values of pud entry will cause return;
[3]: dead code, sz != PMD_SIZE never true;
[4]: all valid values of pmd entry will cause return;
[5]: dead code, because of check in [4].
Now, this patch combines [1] and [2] for pud, and combines [3], [4] and
[5] for pmd, so avoid unnecessary checks.
I don't try to catch any invalid values in page table entry, as that will
be checked by caller and avoid extra branch in this function. Also no
assert on sz must equal PUD_SIZE or PMD_SIZE, since this function only
call for hugetlb mapping.
For commit 3c1d7e6ccb64 ("mm/hugetlb: fix a addressing exception caused by
huge_pte_offset"), since we don't read the entry more than once now,
variable pud_entry and pmd_entry are not needed.
Link: http://lkml.kernel.org/r/1587794313-16849-1-git-send-email-lixinhai.lxh@gmail.com
Signed-off-by: Li Xinhai <lixinhai.lxh@gmail.com>
Cc: Mike Kravetz <mike.kravetz@oracle.com>
Cc: Jason Gunthorpe <jgg@mellanox.com>
Cc: Punit Agrawal <punit.agrawal@arm.com>
Cc: Longpeng <longpeng2@huawei.com>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
---
mm/hugetlb.c | 28 +++++++++++-----------------
1 file changed, 11 insertions(+), 17 deletions(-)
--- a/mm/hugetlb.c~mm-hugetlb-avoid-unnecessary-check-on-pud-and-pmd-entry-in-huge_pte_offset
+++ a/mm/hugetlb.c
@@ -5481,8 +5481,8 @@ pte_t *huge_pte_alloc(struct mm_struct *
* huge_pte_offset() - Walk the page table to resolve the hugepage
* entry at address @addr
*
- * Return: Pointer to page table or swap entry (PUD or PMD) for
- * address @addr, or NULL if a p*d_none() entry is encountered and the
+ * Return: Pointer to page table entry (PUD or PMD) for
+ * address @addr, or NULL if a !p*d_present() entry is encountered and the
* size @sz doesn't match the hugepage size at this level of the page
* table.
*/
@@ -5491,8 +5491,8 @@ pte_t *huge_pte_offset(struct mm_struct
{
pgd_t *pgd;
p4d_t *p4d;
- pud_t *pud, pud_entry;
- pmd_t *pmd, pmd_entry;
+ pud_t *pud;
+ pmd_t *pmd;
pgd = pgd_offset(mm, addr);
if (!pgd_present(*pgd))
@@ -5502,22 +5502,16 @@ pte_t *huge_pte_offset(struct mm_struct
return NULL;
pud = pud_offset(p4d, addr);
- pud_entry = READ_ONCE(*pud);
- if (sz != PUD_SIZE && pud_none(pud_entry))
- return NULL;
- /* hugepage or swap? */
- if (pud_huge(pud_entry) || !pud_present(pud_entry))
+ if (sz == PUD_SIZE)
+ /* must be pud huge, non-present or none */
return (pte_t *)pud;
^ permalink raw reply [flat|nested] 215+ messages in thread
* + eventpoll-fix-missing-wakeup-for-ovflist-in-ep_poll_callback-v2.patch added to -mm tree
2020-04-21 1:13 incoming Andrew Morton
` (57 preceding siblings ...)
2020-04-26 0:17 ` + mm-hugetlb-avoid-unnecessary-check-on-pud-and-pmd-entry-in-huge_pte_offset.patch " Andrew Morton
@ 2020-04-26 0:29 ` Andrew Morton
2020-04-26 0:41 ` [withdrawn] kasan-initialise-array-in-kasan_memcmp-test.patch removed from " Andrew Morton
` (8 subsequent siblings)
67 siblings, 0 replies; 215+ messages in thread
From: Andrew Morton @ 2020-04-26 0:29 UTC (permalink / raw)
To: jbaron, khazhy, mm-commits, r, rpenyaev, viro
The patch titled
Subject: eventpoll: fix missing wakeup for ovflist in ep_poll_callback
has been added to the -mm tree. Its filename is
eventpoll-fix-missing-wakeup-for-ovflist-in-ep_poll_callback-v2.patch
This patch should soon appear at
http://ozlabs.org/~akpm/mmots/broken-out/eventpoll-fix-missing-wakeup-for-ovflist-in-ep_poll_callback-v2.patch
and later at
http://ozlabs.org/~akpm/mmotm/broken-out/eventpoll-fix-missing-wakeup-for-ovflist-in-ep_poll_callback-v2.patch
Before you just go and hit "reply", please:
a) Consider who else should be cc'ed
b) Prefer to cc a suitable mailing list as well
c) Ideally: find the original patch on the mailing list and do a
reply-to-all to that, adding suitable additional cc's
*** Remember to use Documentation/process/submit-checklist.rst when testing your code ***
The -mm tree is included into linux-next and is updated
there every 3-4 working days
------------------------------------------------------
From: Khazhismel Kumykov <khazhy@google.com>
Subject: eventpoll: fix missing wakeup for ovflist in ep_poll_callback
use if/elif instead of goto + cleanup suggested by Roman
Link: http://lkml.kernel.org/r/20200424190039.192373-1-khazhy@google.com
Fixes: 339ddb53d373 ("fs/epoll: remove unnecessary wakeups of nested epoll")
Signed-off-by: Khazhismel Kumykov <khazhy@google.com>
Reviewed-by: Roman Penyaev <rpenyaev@suse.de>
Cc: Alexander Viro <viro@zeniv.linux.org.uk>
Cc: Heiher <r@hev.cc>
Cc: Jason Baron <jbaron@akamai.com>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
---
fs/eventpoll.c | 19 +++++++++----------
1 file changed, 9 insertions(+), 10 deletions(-)
--- a/fs/eventpoll.c~eventpoll-fix-missing-wakeup-for-ovflist-in-ep_poll_callback-v2
+++ a/fs/eventpoll.c
@@ -1171,6 +1171,10 @@ static inline bool chain_epi_lockless(st
{
struct eventpoll *ep = epi->ep;
+ /* Fast preliminary check */
+ if (epi->next != EP_UNACTIVE_PTR)
+ return false;
+
/* Check that the same epi has not been just chained from another CPU */
if (cmpxchg(&epi->next, EP_UNACTIVE_PTR, NULL) != EP_UNACTIVE_PTR)
return false;
@@ -1237,19 +1241,14 @@ static int ep_poll_callback(wait_queue_e
* chained in ep->ovflist and requeued later on.
*/
if (READ_ONCE(ep->ovflist) != EP_UNACTIVE_PTR) {
- if (epi->next == EP_UNACTIVE_PTR &&
- chain_epi_lockless(epi))
+ if (chain_epi_lockless(epi))
+ ep_pm_stay_awake_rcu(epi);
+ } else if (!ep_is_linked(epi)) {
+ /* In the usual case, add event to ready list. */
+ if (list_add_tail_lockless(&epi->rdllink, &ep->rdllist))
ep_pm_stay_awake_rcu(epi);
- goto out_wakeup_unlock;
- }
^ permalink raw reply [flat|nested] 215+ messages in thread
* [withdrawn] kasan-initialise-array-in-kasan_memcmp-test.patch removed from -mm tree
2020-04-21 1:13 incoming Andrew Morton
` (58 preceding siblings ...)
2020-04-26 0:29 ` + eventpoll-fix-missing-wakeup-for-ovflist-in-ep_poll_callback-v2.patch " Andrew Morton
@ 2020-04-26 0:41 ` Andrew Morton
2020-04-26 0:41 ` + kasan-stop-tests-being-eliminated-as-dead-code-with-fortify_source-v4.patch added to " Andrew Morton
` (7 subsequent siblings)
67 siblings, 0 replies; 215+ messages in thread
From: Andrew Morton @ 2020-04-26 0:41 UTC (permalink / raw)
To: aryabinin, danielmicay, dja, dvyukov, glider, mm-commits
The patch titled
Subject: kasan: initialise array in kasan_memcmp test
has been removed from the -mm tree. Its filename was
kasan-initialise-array-in-kasan_memcmp-test.patch
This patch was dropped because it was withdrawn
------------------------------------------------------
From: Daniel Axtens <dja@axtens.net>
Subject: kasan: initialise array in kasan_memcmp test
memcmp may bail out before accessing all the memory if the buffers contain
differing bytes. kasan_memcmp calls memcmp with a stack array. Stack
variables are not necessarily initialised (in the absence of a compiler
plugin, at least). Sometimes this causes the memcpy to bail early thus
fail to trigger kasan.
Make sure the array initialised to zero in the code.
No other test is dependent on the contents of an array on the stack.
Link: http://lkml.kernel.org/r/20200423154503.5103-4-dja@axtens.net
Signed-off-by: Daniel Axtens <dja@axtens.net>
Reviewed-by: Dmitry Vyukov <dvyukov@google.com>
Cc: Andrey Ryabinin <aryabinin@virtuozzo.com>
Cc: Alexander Potapenko <glider@google.com>
Cc: Daniel Micay <danielmicay@gmail.com>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
---
lib/test_kasan.c | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
--- a/lib/test_kasan.c~kasan-initialise-array-in-kasan_memcmp-test
+++ a/lib/test_kasan.c
@@ -638,7 +638,7 @@ static noinline void __init kasan_memcmp
{
char *ptr;
size_t size = 24;
- int arr[9];
+ int arr[9] = {};
pr_info("out-of-bounds in memcmp\n");
ptr = kmalloc(size, GFP_KERNEL | __GFP_ZERO);
_
Patches currently in -mm which might be from dja@axtens.net are
kasan-stop-tests-being-eliminated-as-dead-code-with-fortify_source.patch
kasan-stop-tests-being-eliminated-as-dead-code-with-fortify_source-v4.patch
stringh-fix-incompatibility-between-fortify_source-and-kasan.patch
^ permalink raw reply [flat|nested] 215+ messages in thread
* + kasan-stop-tests-being-eliminated-as-dead-code-with-fortify_source-v4.patch added to -mm tree
2020-04-21 1:13 incoming Andrew Morton
` (59 preceding siblings ...)
2020-04-26 0:41 ` [withdrawn] kasan-initialise-array-in-kasan_memcmp-test.patch removed from " Andrew Morton
@ 2020-04-26 0:41 ` Andrew Morton
2020-04-26 0:48 ` + checkpatch-test-git_dir-changes.patch " Andrew Morton
` (6 subsequent siblings)
67 siblings, 0 replies; 215+ messages in thread
From: Andrew Morton @ 2020-04-26 0:41 UTC (permalink / raw)
To: aryabinin, danielmicay, davidgow, dja, dvyukov, glider, mm-commits
The patch titled
Subject: kasan-stop-tests-being-eliminated-as-dead-code-with-fortify_source-v4
has been added to the -mm tree. Its filename is
kasan-stop-tests-being-eliminated-as-dead-code-with-fortify_source-v4.patch
This patch should soon appear at
http://ozlabs.org/~akpm/mmots/broken-out/kasan-stop-tests-being-eliminated-as-dead-code-with-fortify_source-v4.patch
and later at
http://ozlabs.org/~akpm/mmotm/broken-out/kasan-stop-tests-being-eliminated-as-dead-code-with-fortify_source-v4.patch
Before you just go and hit "reply", please:
a) Consider who else should be cc'ed
b) Prefer to cc a suitable mailing list as well
c) Ideally: find the original patch on the mailing list and do a
reply-to-all to that, adding suitable additional cc's
*** Remember to use Documentation/process/submit-checklist.rst when testing your code ***
The -mm tree is included into linux-next and is updated
there every 3-4 working days
------------------------------------------------------
From: Daniel Axtens <dja@axtens.net>
Subject: kasan-stop-tests-being-eliminated-as-dead-code-with-fortify_source-v4
drop patch 3
Link: http://lkml.kernel.org/r/20200424145521.8203-2-dja@axtens.net
Fixes: 0c96350a2d2f ("lib/test_kasan.c: add tests for several string/memory API functions")
Signed-off-by: Daniel Axtens <dja@axtens.net>
Reviewed-by: Dmitry Vyukov <dvyukov@google.com>
Tested-by: David Gow <davidgow@google.com>
Cc: Daniel Micay <danielmicay@gmail.com>
Cc: Andrey Ryabinin <aryabinin@virtuozzo.com>
Cc: Alexander Potapenko <glider@google.com>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
---
lib/test_kasan.c | 1 +
1 file changed, 1 insertion(+)
--- a/lib/test_kasan.c~kasan-stop-tests-being-eliminated-as-dead-code-with-fortify_source-v4
+++ a/lib/test_kasan.c
@@ -645,6 +645,7 @@ static noinline void __init kasan_memcmp
if (!ptr)
return;
+ memset(arr, 0, sizeof(arr));
kasan_int_result = memcmp(ptr, arr, size + 1);
kfree(ptr);
}
_
Patches currently in -mm which might be from dja@axtens.net are
kasan-stop-tests-being-eliminated-as-dead-code-with-fortify_source.patch
kasan-stop-tests-being-eliminated-as-dead-code-with-fortify_source-v4.patch
stringh-fix-incompatibility-between-fortify_source-and-kasan.patch
^ permalink raw reply [flat|nested] 215+ messages in thread
* + checkpatch-test-git_dir-changes.patch added to -mm tree
2020-04-21 1:13 incoming Andrew Morton
` (60 preceding siblings ...)
2020-04-26 0:41 ` + kasan-stop-tests-being-eliminated-as-dead-code-with-fortify_source-v4.patch added to " Andrew Morton
@ 2020-04-26 0:48 ` Andrew Morton
2020-04-26 1:06 ` + mm-add-debug_wx-support.patch " Andrew Morton
` (5 subsequent siblings)
67 siblings, 0 replies; 215+ messages in thread
From: Andrew Morton @ 2020-04-26 0:48 UTC (permalink / raw)
To: joe, mm-commits
The patch titled
Subject: checkpatch: test $GIT_DIR changes
has been added to the -mm tree. Its filename is
checkpatch-test-git_dir-changes.patch
This patch should soon appear at
http://ozlabs.org/~akpm/mmots/broken-out/checkpatch-test-git_dir-changes.patch
and later at
http://ozlabs.org/~akpm/mmotm/broken-out/checkpatch-test-git_dir-changes.patch
Before you just go and hit "reply", please:
a) Consider who else should be cc'ed
b) Prefer to cc a suitable mailing list as well
c) Ideally: find the original patch on the mailing list and do a
reply-to-all to that, adding suitable additional cc's
*** Remember to use Documentation/process/submit-checklist.rst when testing your code ***
The -mm tree is included into linux-next and is updated
there every 3-4 working days
------------------------------------------------------
From: Joe Perches <joe@perches.com>
Subject: checkpatch: test $GIT_DIR changes
Link: http://lkml.kernel.org/r/318ca0e0c755cc31c288d7f8769817da4dc60bda.camel@perches.com
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
---
scripts/checkpatch.pl | 12 +++++++-----
1 file changed, 7 insertions(+), 5 deletions(-)
--- a/scripts/checkpatch.pl~checkpatch-test-git_dir-changes
+++ a/scripts/checkpatch.pl
@@ -43,6 +43,8 @@ my $list_types = 0;
my $fix = 0;
my $fix_inplace = 0;
my $root;
+my $gitroot = $ENV{'GIT_DIR'};
+$gitroot = ".git" if !defined($gitroot);
my %debug;
my %camelcase = ();
my %use_type = ();
@@ -897,7 +899,7 @@ sub is_maintained_obsolete {
sub is_SPDX_License_valid {
my ($license) = @_;
- return 1 if (!$tree || which("python") eq "" || !(-e "$root/scripts/spdxcheck.py") || !(-e "$root/.git"));
+ return 1 if (!$tree || which("python") eq "" || !(-e "$root/scripts/spdxcheck.py") || !(-e "$gitroot"));
my $root_path = abs_path($root);
my $status = `cd "$root_path"; echo "$license" | python scripts/spdxcheck.py -`;
@@ -915,7 +917,7 @@ sub seed_camelcase_includes {
$camelcase_seeded = 1;
- if (-e ".git") {
+ if (-e "$gitroot") {
my $git_last_include_commit = `${git_command} log --no-merges --pretty=format:"%h%n" -1 -- include`;
chomp $git_last_include_commit;
$camelcase_cache = ".checkpatch-camelcase.git.$git_last_include_commit";
@@ -943,7 +945,7 @@ sub seed_camelcase_includes {
return;
}
- if (-e ".git") {
+ if (-e "$gitroot") {
$files = `${git_command} ls-files "include/*.h"`;
@include_files = split('\n', $files);
}
@@ -966,7 +968,7 @@ sub seed_camelcase_includes {
sub git_commit_info {
my ($commit, $id, $desc) = @_;
- return ($id, $desc) if ((which("git") eq "") || !(-e ".git"));
+ return ($id, $desc) if ((which("git") eq "") || !(-e "$gitroot"));
my $output = `${git_command} log --no-color --format='%H %s' -1 $commit 2>&1`;
$output =~ s/^\s*//gm;
@@ -1005,7 +1007,7 @@ my $fixlinenr = -1;
# If input is git commits, extract all commits from the commit expressions.
# For example, HEAD-3 means we need check 'HEAD, HEAD~1, HEAD~2'.
-die "$P: No git repository found\n" if ($git && !-e ".git");
+die "$P: No git repository found\n" if ($git && !-e "$gitroot");
if ($git) {
my @commits = ();
_
Patches currently in -mm which might be from joe@perches.com are
checkpatch-test-git_dir-changes.patch
checkpatch-additional-maintainer-section-entry-ordering-checks.patch
checkpatch-look-for-c99-comments-in-ctx_locate_comment.patch
fs-seq_filec-seq_read-update-pr_info_ratelimited.patch
^ permalink raw reply [flat|nested] 215+ messages in thread
* + mm-add-debug_wx-support.patch added to -mm tree
2020-04-21 1:13 incoming Andrew Morton
` (61 preceding siblings ...)
2020-04-26 0:48 ` + checkpatch-test-git_dir-changes.patch " Andrew Morton
@ 2020-04-26 1:06 ` Andrew Morton
2020-04-26 1:06 ` + riscv-support-debug_wx.patch " Andrew Morton
` (4 subsequent siblings)
67 siblings, 0 replies; 215+ messages in thread
From: Andrew Morton @ 2020-04-26 1:06 UTC (permalink / raw)
To: bp, catalin.marinas, hpa, mingo, mm-commits, palmer,
paul.walmsley, tglx, will, zong.li
The patch titled
Subject: mm: add DEBUG_WX support
has been added to the -mm tree. Its filename is
mm-add-debug_wx-support.patch
This patch should soon appear at
http://ozlabs.org/~akpm/mmots/broken-out/mm-add-debug_wx-support.patch
and later at
http://ozlabs.org/~akpm/mmotm/broken-out/mm-add-debug_wx-support.patch
Before you just go and hit "reply", please:
a) Consider who else should be cc'ed
b) Prefer to cc a suitable mailing list as well
c) Ideally: find the original patch on the mailing list and do a
reply-to-all to that, adding suitable additional cc's
*** Remember to use Documentation/process/submit-checklist.rst when testing your code ***
The -mm tree is included into linux-next and is updated
there every 3-4 working days
------------------------------------------------------
From: Zong Li <zong.li@sifive.com>
Subject: mm: add DEBUG_WX support
Patch series "Extract DEBUG_WX to shared use".
Some architectures support DEBUG_WX function, it's verbatim from each
others, so extract to mm/Kconfig.debug for shared use.
PPC and ARM ports don't support generic page dumper yet, so we only
refine x86 and arm64 port in this patch series.
For RISC-V port, the DEBUG_WX support depends on other patches which
be merged already:
- RISC-V page table dumper
- Support strict kernel memory permissions for security
This patch (of 4):
Some architectures support DEBUG_WX function, it's verbatim from each
others. Extract to mm/Kconfig.debug for shared use.
Link: http://lkml.kernel.org/r/cover.1587455584.git.zong.li@sifive.com
Link: http://lkml.kernel.org/r/23980cd0f0e5d79e24a92169116407c75bcc650d.1587455584.git.zong.li@sifive.com
Signed-off-by: Zong Li <zong.li@sifive.com>
Suggested-by: Palmer Dabbelt <palmer@dabbelt.com>
Cc: Paul Walmsley <paul.walmsley@sifive.com>
Cc: Thomas Gleixner <tglx@linutronix.de>
Cc: Ingo Molnar <mingo@redhat.com>
Cc: Borislav Petkov <bp@alien8.de>
Cc: "H. Peter Anvin" <hpa@zytor.com>
Cc: Catalin Marinas <catalin.marinas@arm.com>
Cc: Will Deacon <will@kernel.org>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
---
mm/Kconfig.debug | 33 +++++++++++++++++++++++++++++++++
1 file changed, 33 insertions(+)
--- a/mm/Kconfig.debug~mm-add-debug_wx-support
+++ a/mm/Kconfig.debug
@@ -118,6 +118,39 @@ config DEBUG_RODATA_TEST
---help---
This option enables a testcase for the setting rodata read-only.
+config ARCH_HAS_DEBUG_WX
+ bool
+
+config DEBUG_WX
+ bool "Warn on W+X mappings at boot"
+ depends on ARCH_HAS_DEBUG_WX
+ select PTDUMP_CORE
+ help
+ Generate a warning if any W+X mappings are found at boot.
+
+ This is useful for discovering cases where the kernel is leaving
+ W+X mappings after applying NX, as such mappings are a security risk.
+ This check also includes UXN, which should be set on all kernel
+ mappings.
+
+ Look for a message in dmesg output like this:
+
+ <arch>/mm: Checked W+X mappings: passed, no W+X pages found.
+
+ or like this, if the check failed:
+
+ <arch>/mm: Checked W+X mappings: failed, <N> W+X pages found.
+
+ Note that even if the check fails, your kernel is possibly
+ still fine, as W+X mappings are not a security hole in
+ themselves, what they do is that they make the exploitation
+ of other unfixed kernel bugs easier.
+
+ There is no runtime or memory usage effect of this option
+ once the kernel has booted up - it's a one time check.
+
+ If in doubt, say "Y".
+
config GENERIC_PTDUMP
bool
_
Patches currently in -mm which might be from zong.li@sifive.com are
mm-add-debug_wx-support.patch
riscv-support-debug_wx.patch
x86-mm-use-arch_has_debug_wx-instead-of-arch-defined.patch
arm64-mm-use-arch_has_debug_wx-instead-of-arch-defined.patch
^ permalink raw reply [flat|nested] 215+ messages in thread
* + riscv-support-debug_wx.patch added to -mm tree
2020-04-21 1:13 incoming Andrew Morton
` (62 preceding siblings ...)
2020-04-26 1:06 ` + mm-add-debug_wx-support.patch " Andrew Morton
@ 2020-04-26 1:06 ` Andrew Morton
2020-04-26 1:06 ` + riscv-support-debug_wx-fix.patch " Andrew Morton
` (3 subsequent siblings)
67 siblings, 0 replies; 215+ messages in thread
From: Andrew Morton @ 2020-04-26 1:06 UTC (permalink / raw)
To: bp, catalin.marinas, hpa, mingo, mm-commits, palmer,
paul.walmsley, tglx, will, zong.li
The patch titled
Subject: riscv: support DEBUG_WX
has been added to the -mm tree. Its filename is
riscv-support-debug_wx.patch
This patch should soon appear at
http://ozlabs.org/~akpm/mmots/broken-out/riscv-support-debug_wx.patch
and later at
http://ozlabs.org/~akpm/mmotm/broken-out/riscv-support-debug_wx.patch
Before you just go and hit "reply", please:
a) Consider who else should be cc'ed
b) Prefer to cc a suitable mailing list as well
c) Ideally: find the original patch on the mailing list and do a
reply-to-all to that, adding suitable additional cc's
*** Remember to use Documentation/process/submit-checklist.rst when testing your code ***
The -mm tree is included into linux-next and is updated
there every 3-4 working days
------------------------------------------------------
From: Zong Li <zong.li@sifive.com>
Subject: riscv: support DEBUG_WX
Support DEBUG_WX to check whether there are mapping with write and execute
permission at the same time.
Link: http://lkml.kernel.org/r/282e266311bced080bc6f7c255b92f87c1eb65d6.1587455584.git.zong.li@sifive.com
Signed-off-by: Zong Li <zong.li@sifive.com>
Cc: Borislav Petkov <bp@alien8.de>
Cc: Catalin Marinas <catalin.marinas@arm.com>
Cc: "H. Peter Anvin" <hpa@zytor.com>
Cc: Ingo Molnar <mingo@redhat.com>
Cc: Palmer Dabbelt <palmer@dabbelt.com>
Cc: Paul Walmsley <paul.walmsley@sifive.com>
Cc: Thomas Gleixner <tglx@linutronix.de>
Cc: Will Deacon <will@kernel.org>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
---
arch/riscv/Kconfig | 1 +
arch/riscv/include/asm/ptdump.h | 6 ++++++
arch/riscv/mm/init.c | 3 +++
3 files changed, 10 insertions(+)
--- a/arch/riscv/include/asm/ptdump.h~riscv-support-debug_wx
+++ a/arch/riscv/include/asm/ptdump.h
@@ -8,4 +8,10 @@
void ptdump_check_wx(void);
+#ifdef CONFIG_DEBUG_WX
+#define debug_checkwx() ptdump_check_wx()
+#else
+#define debug_checkwx() do { } while (0)
+#endif
+
#endif /* _ASM_RISCV_PTDUMP_H */
--- a/arch/riscv/Kconfig~riscv-support-debug_wx
+++ a/arch/riscv/Kconfig
@@ -67,6 +67,7 @@ config RISCV
select ARCH_HAS_GCOV_PROFILE_ALL
select HAVE_COPY_THREAD_TLS
select HAVE_ARCH_KASAN if MMU && 64BIT
+ select ARCH_HAS_DEBUG_WX
config ARCH_MMAP_RND_BITS_MIN
default 18 if 64BIT
--- a/arch/riscv/mm/init.c~riscv-support-debug_wx
+++ a/arch/riscv/mm/init.c
@@ -19,6 +19,7 @@
#include <asm/sections.h>
#include <asm/pgtable.h>
#include <asm/io.h>
+#include <asm/ptdump.h>
#include "../kernel/head.h"
@@ -529,6 +530,8 @@ void mark_rodata_ro(void)
set_memory_ro(rodata_start, (data_start - rodata_start) >> PAGE_SHIFT);
set_memory_nx(rodata_start, (data_start - rodata_start) >> PAGE_SHIFT);
set_memory_nx(data_start, (max_low - data_start) >> PAGE_SHIFT);
+
+ debug_checkwx();
}
#endif
_
Patches currently in -mm which might be from zong.li@sifive.com are
mm-add-debug_wx-support.patch
riscv-support-debug_wx.patch
x86-mm-use-arch_has_debug_wx-instead-of-arch-defined.patch
arm64-mm-use-arch_has_debug_wx-instead-of-arch-defined.patch
^ permalink raw reply [flat|nested] 215+ messages in thread
* + riscv-support-debug_wx-fix.patch added to -mm tree
2020-04-21 1:13 incoming Andrew Morton
` (63 preceding siblings ...)
2020-04-26 1:06 ` + riscv-support-debug_wx.patch " Andrew Morton
@ 2020-04-26 1:06 ` Andrew Morton
2020-04-26 1:06 ` + x86-mm-use-arch_has_debug_wx-instead-of-arch-defined.patch " Andrew Morton
` (2 subsequent siblings)
67 siblings, 0 replies; 215+ messages in thread
From: Andrew Morton @ 2020-04-26 1:06 UTC (permalink / raw)
To: akpm, bp, catalin.marinas, hpa, mingo, mm-commits, palmer,
paul.walmsley, tglx, will, zong.li
The patch titled
Subject: riscv-support-debug_wx-fix
has been added to the -mm tree. Its filename is
riscv-support-debug_wx-fix.patch
This patch should soon appear at
http://ozlabs.org/~akpm/mmots/broken-out/riscv-support-debug_wx-fix.patch
and later at
http://ozlabs.org/~akpm/mmotm/broken-out/riscv-support-debug_wx-fix.patch
Before you just go and hit "reply", please:
a) Consider who else should be cc'ed
b) Prefer to cc a suitable mailing list as well
c) Ideally: find the original patch on the mailing list and do a
reply-to-all to that, adding suitable additional cc's
*** Remember to use Documentation/process/submit-checklist.rst when testing your code ***
The -mm tree is included into linux-next and is updated
there every 3-4 working days
------------------------------------------------------
From: Andrew Morton <akpm@linux-foundation.org>
Subject: riscv-support-debug_wx-fix
replace macros with C
Cc: Borislav Petkov <bp@alien8.de>
Cc: Catalin Marinas <catalin.marinas@arm.com>
Cc: "H. Peter Anvin" <hpa@zytor.com>
Cc: Ingo Molnar <mingo@redhat.com>
Cc: Palmer Dabbelt <palmer@dabbelt.com>
Cc: Paul Walmsley <paul.walmsley@sifive.com>
Cc: Thomas Gleixner <tglx@linutronix.de>
Cc: Will Deacon <will@kernel.org>
Cc: Zong Li <zong.li@sifive.com>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
---
arch/riscv/include/asm/ptdump.h | 9 +++++++--
1 file changed, 7 insertions(+), 2 deletions(-)
--- a/arch/riscv/include/asm/ptdump.h~riscv-support-debug_wx-fix
+++ a/arch/riscv/include/asm/ptdump.h
@@ -9,9 +9,14 @@
void ptdump_check_wx(void);
#ifdef CONFIG_DEBUG_WX
-#define debug_checkwx() ptdump_check_wx()
+static inline void debug_checkwx(void)
+{
+ ptdump_check_wx();
+}
#else
-#define debug_checkwx() do { } while (0)
+static inline void debug_checkwx(void)
+{
+}
#endif
#endif /* _ASM_RISCV_PTDUMP_H */
_
Patches currently in -mm which might be from akpm@linux-foundation.org are
mm-memcg-fix-error-return-value-of-mem_cgroup_css_alloc-fix.patch
squashfs-migrate-from-ll_rw_block-usage-to-bio-fix.patch
drivers-tty-serial-sh-scic-suppress-uninitialized-var-warning.patch
mm.patch
mm-slub-fix-corrupted-freechain-in-deactivate_slab-fix.patch
mm-remove-__vmalloc_node_flags_caller-fix.patch
mm-switch-the-test_vmalloc-module-to-use-__vmalloc_node-fix.patch
mm-switch-the-test_vmalloc-module-to-use-__vmalloc_node-fix-fix.patch
mm-remove-vmalloc_user_node_flags-fix.patch
riscv-support-debug_wx-fix.patch
mm-replace-zero-length-array-with-flexible-array-member-fix.patch
mm-hugetlb-fix-a-typo-in-comment-manitained-maintained-v2-checkpatch-fixes.patch
initrdmem=-option-to-specify-initrd-physical-address-checkpatch-fixes.patch
linux-next-fix.patch
linux-next-git-rejects.patch
mm-pass-task-and-mm-to-do_madvise-fix-fix.patch
kernel-forkc-export-kernel_thread-to-modules.patch
^ permalink raw reply [flat|nested] 215+ messages in thread
* + x86-mm-use-arch_has_debug_wx-instead-of-arch-defined.patch added to -mm tree
2020-04-21 1:13 incoming Andrew Morton
` (64 preceding siblings ...)
2020-04-26 1:06 ` + riscv-support-debug_wx-fix.patch " Andrew Morton
@ 2020-04-26 1:06 ` Andrew Morton
2020-04-26 1:06 ` + arm64-mm-use-arch_has_debug_wx-instead-of-arch-defined.patch " Andrew Morton
2020-04-26 1:09 ` [folded-merged] initrdmem=-option-to-specify-initrd-physical-address-checkpatch-fixes.patch removed from " Andrew Morton
67 siblings, 0 replies; 215+ messages in thread
From: Andrew Morton @ 2020-04-26 1:06 UTC (permalink / raw)
To: bp, catalin.marinas, hpa, mingo, mm-commits, palmer,
paul.walmsley, tglx, will, zong.li
The patch titled
Subject: x86: mm: use ARCH_HAS_DEBUG_WX instead of arch defined
has been added to the -mm tree. Its filename is
x86-mm-use-arch_has_debug_wx-instead-of-arch-defined.patch
This patch should soon appear at
http://ozlabs.org/~akpm/mmots/broken-out/x86-mm-use-arch_has_debug_wx-instead-of-arch-defined.patch
and later at
http://ozlabs.org/~akpm/mmotm/broken-out/x86-mm-use-arch_has_debug_wx-instead-of-arch-defined.patch
Before you just go and hit "reply", please:
a) Consider who else should be cc'ed
b) Prefer to cc a suitable mailing list as well
c) Ideally: find the original patch on the mailing list and do a
reply-to-all to that, adding suitable additional cc's
*** Remember to use Documentation/process/submit-checklist.rst when testing your code ***
The -mm tree is included into linux-next and is updated
there every 3-4 working days
------------------------------------------------------
From: Zong Li <zong.li@sifive.com>
Subject: x86: mm: use ARCH_HAS_DEBUG_WX instead of arch defined
Extract DEBUG_WX to mm/Kconfig.debug for shared use. Change to use
ARCH_HAS_DEBUG_WX instead of DEBUG_WX defined by arch port.
Link: http://lkml.kernel.org/r/430736828d149df3f5b462d291e845ec690e0141.1587455584.git.zong.li@sifive.com
Signed-off-by: Zong Li <zong.li@sifive.com>
Cc: Borislav Petkov <bp@alien8.de>
Cc: Catalin Marinas <catalin.marinas@arm.com>
Cc: "H. Peter Anvin" <hpa@zytor.com>
Cc: Ingo Molnar <mingo@redhat.com>
Cc: Palmer Dabbelt <palmer@dabbelt.com>
Cc: Paul Walmsley <paul.walmsley@sifive.com>
Cc: Thomas Gleixner <tglx@linutronix.de>
Cc: Will Deacon <will@kernel.org>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
---
arch/x86/Kconfig | 1 +
arch/x86/Kconfig.debug | 27 ---------------------------
2 files changed, 1 insertion(+), 27 deletions(-)
--- a/arch/x86/Kconfig~x86-mm-use-arch_has_debug_wx-instead-of-arch-defined
+++ a/arch/x86/Kconfig
@@ -80,6 +80,7 @@ config X86
select ARCH_HAS_SYNC_CORE_BEFORE_USERMODE
select ARCH_HAS_SYSCALL_WRAPPER
select ARCH_HAS_UBSAN_SANITIZE_ALL
+ select ARCH_HAS_DEBUG_WX
select ARCH_HAVE_NMI_SAFE_CMPXCHG
select ARCH_MIGHT_HAVE_ACPI_PDC if ACPI
select ARCH_MIGHT_HAVE_PC_PARPORT
--- a/arch/x86/Kconfig.debug~x86-mm-use-arch_has_debug_wx-instead-of-arch-defined
+++ a/arch/x86/Kconfig.debug
@@ -72,33 +72,6 @@ config EFI_PGT_DUMP
issues with the mapping of the EFI runtime regions into that
table.
-config DEBUG_WX
- bool "Warn on W+X mappings at boot"
- select PTDUMP_CORE
- ---help---
- Generate a warning if any W+X mappings are found at boot.
-
- This is useful for discovering cases where the kernel is leaving
- W+X mappings after applying NX, as such mappings are a security risk.
-
- Look for a message in dmesg output like this:
-
- x86/mm: Checked W+X mappings: passed, no W+X pages found.
-
- or like this, if the check failed:
-
- x86/mm: Checked W+X mappings: FAILED, <N> W+X pages found.
-
- Note that even if the check fails, your kernel is possibly
- still fine, as W+X mappings are not a security hole in
- themselves, what they do is that they make the exploitation
- of other unfixed kernel bugs easier.
-
- There is no runtime or memory usage effect of this option
- once the kernel has booted up - it's a one time check.
-
- If in doubt, say "Y".
^ permalink raw reply [flat|nested] 215+ messages in thread
* + arm64-mm-use-arch_has_debug_wx-instead-of-arch-defined.patch added to -mm tree
2020-04-21 1:13 incoming Andrew Morton
` (65 preceding siblings ...)
2020-04-26 1:06 ` + x86-mm-use-arch_has_debug_wx-instead-of-arch-defined.patch " Andrew Morton
@ 2020-04-26 1:06 ` Andrew Morton
2020-04-26 1:09 ` [folded-merged] initrdmem=-option-to-specify-initrd-physical-address-checkpatch-fixes.patch removed from " Andrew Morton
67 siblings, 0 replies; 215+ messages in thread
From: Andrew Morton @ 2020-04-26 1:06 UTC (permalink / raw)
To: bp, catalin.marinas, hpa, mingo, mm-commits, palmer,
paul.walmsley, tglx, will, zong.li
The patch titled
Subject: arm64: mm: use ARCH_HAS_DEBUG_WX instead of arch defined
has been added to the -mm tree. Its filename is
arm64-mm-use-arch_has_debug_wx-instead-of-arch-defined.patch
This patch should soon appear at
http://ozlabs.org/~akpm/mmots/broken-out/arm64-mm-use-arch_has_debug_wx-instead-of-arch-defined.patch
and later at
http://ozlabs.org/~akpm/mmotm/broken-out/arm64-mm-use-arch_has_debug_wx-instead-of-arch-defined.patch
Before you just go and hit "reply", please:
a) Consider who else should be cc'ed
b) Prefer to cc a suitable mailing list as well
c) Ideally: find the original patch on the mailing list and do a
reply-to-all to that, adding suitable additional cc's
*** Remember to use Documentation/process/submit-checklist.rst when testing your code ***
The -mm tree is included into linux-next and is updated
there every 3-4 working days
------------------------------------------------------
From: Zong Li <zong.li@sifive.com>
Subject: arm64: mm: use ARCH_HAS_DEBUG_WX instead of arch defined
Extract DEBUG_WX to mm/Kconfig.debug for shared use. Change to use
ARCH_HAS_DEBUG_WX instead of DEBUG_WX defined by arch port.
Link: http://lkml.kernel.org/r/e19709e7576f65e303245fe520cad5f7bae72763.1587455584.git.zong.li@sifive.com
Signed-off-by: Zong Li <zong.li@sifive.com>
Cc: Borislav Petkov <bp@alien8.de>
Cc: Catalin Marinas <catalin.marinas@arm.com>
Cc: "H. Peter Anvin" <hpa@zytor.com>
Cc: Ingo Molnar <mingo@redhat.com>
Cc: Palmer Dabbelt <palmer@dabbelt.com>
Cc: Paul Walmsley <paul.walmsley@sifive.com>
Cc: Thomas Gleixner <tglx@linutronix.de>
Cc: Will Deacon <will@kernel.org>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
---
arch/arm64/Kconfig | 1 +
arch/arm64/Kconfig.debug | 29 -----------------------------
2 files changed, 1 insertion(+), 29 deletions(-)
--- a/arch/arm64/Kconfig~arm64-mm-use-arch_has_debug_wx-instead-of-arch-defined
+++ a/arch/arm64/Kconfig
@@ -9,6 +9,7 @@ config ARM64
select ACPI_MCFG if (ACPI && PCI)
select ACPI_SPCR_TABLE if ACPI
select ACPI_PPTT if ACPI
+ select ARCH_HAS_DEBUG_WX
select ARCH_HAS_DEBUG_VIRTUAL
select ARCH_HAS_DEVMEM_IS_ALLOWED
select ARCH_HAS_DMA_PREP_COHERENT
--- a/arch/arm64/Kconfig.debug~arm64-mm-use-arch_has_debug_wx-instead-of-arch-defined
+++ a/arch/arm64/Kconfig.debug
@@ -23,35 +23,6 @@ config ARM64_RANDOMIZE_TEXT_OFFSET
of TEXT_OFFSET and platforms must not require a specific
value.
-config DEBUG_WX
- bool "Warn on W+X mappings at boot"
- select PTDUMP_CORE
- ---help---
- Generate a warning if any W+X mappings are found at boot.
-
- This is useful for discovering cases where the kernel is leaving
- W+X mappings after applying NX, as such mappings are a security risk.
- This check also includes UXN, which should be set on all kernel
- mappings.
-
- Look for a message in dmesg output like this:
-
- arm64/mm: Checked W+X mappings: passed, no W+X pages found.
-
- or like this, if the check failed:
-
- arm64/mm: Checked W+X mappings: FAILED, <N> W+X pages found.
-
- Note that even if the check fails, your kernel is possibly
- still fine, as W+X mappings are not a security hole in
- themselves, what they do is that they make the exploitation
- of other unfixed kernel bugs easier.
-
- There is no runtime or memory usage effect of this option
- once the kernel has booted up - it's a one time check.
-
- If in doubt, say "Y".
^ permalink raw reply [flat|nested] 215+ messages in thread
* [folded-merged] initrdmem=-option-to-specify-initrd-physical-address-checkpatch-fixes.patch removed from -mm tree
2020-04-21 1:13 incoming Andrew Morton
` (66 preceding siblings ...)
2020-04-26 1:06 ` + arm64-mm-use-arch_has_debug_wx-instead-of-arch-defined.patch " Andrew Morton
@ 2020-04-26 1:09 ` Andrew Morton
67 siblings, 0 replies; 215+ messages in thread
From: Andrew Morton @ 2020-04-26 1:09 UTC (permalink / raw)
To: akpm, bp, hpa, mingo, mjg59, mm-commits, rdunlap, rminnich, tglx
The patch titled
Subject: initrdmem=-option-to-specify-initrd-physical-address-checkpatch-fixes
has been removed from the -mm tree. Its filename was
initrdmem=-option-to-specify-initrd-physical-address-checkpatch-fixes.patch
This patch was dropped because it was folded into initrdmem=-option-to-specify-initrd-physical-address.patch
------------------------------------------------------
From: Andrew Morton <akpm@linux-foundation.org>
Subject: initrdmem=-option-to-specify-initrd-physical-address-checkpatch-fixes
Cc: Borislav Petkov <bp@alien8.de>
WARNING: 'adddress' may be misspelled - perhaps 'address'?
#64: FILE: Documentation/admin-guide/kernel-parameters.txt:1717:
+ initrdmem= [KNL] Specify a physical adddress and size from which
WARNING: please, no spaces at the start of a line
#82: FILE: arch/x86/kernel/setup.c:240:
+ if (ramdisk_image == 0) {$
WARNING: braces {} are not necessary for single statement blocks
#82: FILE: arch/x86/kernel/setup.c:240:
+ if (ramdisk_image == 0) {
+ ramdisk_image = phys_initrd_start;
+ }
ERROR: code indent should use tabs where possible
#83: FILE: arch/x86/kernel/setup.c:241:
+ ramdisk_image = phys_initrd_start;$
WARNING: please, no spaces at the start of a line
#83: FILE: arch/x86/kernel/setup.c:241:
+ ramdisk_image = phys_initrd_start;$
WARNING: please, no spaces at the start of a line
#84: FILE: arch/x86/kernel/setup.c:242:
+ }$
WARNING: please, no spaces at the start of a line
#92: FILE: arch/x86/kernel/setup.c:251:
+ if (ramdisk_size == 0) {$
WARNING: braces {} are not necessary for single statement blocks
#92: FILE: arch/x86/kernel/setup.c:251:
+ if (ramdisk_size == 0) {
+ ramdisk_size = phys_initrd_size;
+ }
ERROR: code indent should use tabs where possible
#93: FILE: arch/x86/kernel/setup.c:252:
+ ramdisk_size = phys_initrd_size;$
WARNING: please, no spaces at the start of a line
#93: FILE: arch/x86/kernel/setup.c:252:
+ ramdisk_size = phys_initrd_size;$
WARNING: please, no spaces at the start of a line
#94: FILE: arch/x86/kernel/setup.c:253:
+ }$
WARNING: please, no spaces at the start of a line
#124: FILE: init/do_mounts_initrd.c:55:
+ return early_initrdmem(p);$
WARNING: Missing Signed-off-by: line by nominal patch author 'ron minnich <rminnich@gmail.com>'
total: 2 errors, 11 warnings, 56 lines checked
NOTE: For some of the reported defects, checkpatch may be able to
mechanically convert to the typical style using --fix or --fix-inplace.
NOTE: Whitespace errors detected.
You may wish to use scripts/cleanpatch or scripts/cleanfile
./patches/initrdmem=-option-to-specify-initrd-physical-address.patch has style problems, please review.
NOTE: If any of the errors are false positives, please report
them to the maintainer, see CHECKPATCH in MAINTAINERS.
Please run checkpatch prior to sending patches
Cc: Borislav Petkov <bp@alien8.de>
Cc: H. Peter Anvin (Intel) <hpa@zytor.com>
Cc: Ingo Molnar <mingo@redhat.com>
Cc: Matthew Garrett <mjg59@google.com>
Cc: Randy Dunlap <rdunlap@infradead.org>
Cc: Ronald G. Minnich <rminnich@gmail.com>
Cc: Thomas Gleixner <tglx@linutronix.de>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
---
Documentation/admin-guide/kernel-parameters.txt | 12 ++++++------
arch/x86/kernel/setup.c | 12 ++++++------
init/do_mounts_initrd.c | 2 +-
3 files changed, 13 insertions(+), 13 deletions(-)
--- a/arch/x86/kernel/setup.c~initrdmem=-option-to-specify-initrd-physical-address-checkpatch-fixes
+++ a/arch/x86/kernel/setup.c
@@ -237,9 +237,9 @@ static u64 __init get_ramdisk_image(void
ramdisk_image |= (u64)boot_params.ext_ramdisk_image << 32;
- if (ramdisk_image == 0) {
- ramdisk_image = phys_initrd_start;
- }
+ if (ramdisk_image == 0)
+ ramdisk_image = phys_initrd_start;
+
return ramdisk_image;
}
static u64 __init get_ramdisk_size(void)
@@ -248,9 +248,9 @@ static u64 __init get_ramdisk_size(void)
ramdisk_size |= (u64)boot_params.ext_ramdisk_size << 32;
- if (ramdisk_size == 0) {
- ramdisk_size = phys_initrd_size;
- }
+ if (ramdisk_size == 0)
+ ramdisk_size = phys_initrd_size;
+
return ramdisk_size;
}
--- a/Documentation/admin-guide/kernel-parameters.txt~initrdmem=-option-to-specify-initrd-physical-address-checkpatch-fixes
+++ a/Documentation/admin-guide/kernel-parameters.txt
@@ -1762,12 +1762,12 @@
initrd= [BOOT] Specify the location of the initial ramdisk
- initrdmem= [KNL] Specify a physical adddress and size from which
- to load the initrd. If an initrd is compiled in or
- specified in the bootparams, it takes priority
- over this setting.
- Format: ss[KMG],nn[KMG]
- Default is 0, 0
+ initrdmem= [KNL] Specify a physical address and size from which to
+ load the initrd. If an initrd is compiled in or
+ specified in the bootparams, it takes priority over this
+ setting.
+ Format: ss[KMG],nn[KMG]
+ Default is 0, 0
init_on_alloc= [MM] Fill newly allocated pages and heap objects with
zeroes.
--- a/init/do_mounts_initrd.c~initrdmem=-option-to-specify-initrd-physical-address-checkpatch-fixes
+++ a/init/do_mounts_initrd.c
@@ -52,7 +52,7 @@ early_param("initrdmem", early_initrdmem
*/
static int __init early_initrd(char *p)
{
- return early_initrdmem(p);
+ return early_initrdmem(p);
}
early_param("initrd", early_initrd);
_
Patches currently in -mm which might be from akpm@linux-foundation.org are
mm-memcg-fix-error-return-value-of-mem_cgroup_css_alloc-fix.patch
squashfs-migrate-from-ll_rw_block-usage-to-bio-fix.patch
drivers-tty-serial-sh-scic-suppress-uninitialized-var-warning.patch
mm.patch
mm-slub-fix-corrupted-freechain-in-deactivate_slab-fix.patch
mm-remove-__vmalloc_node_flags_caller-fix.patch
mm-switch-the-test_vmalloc-module-to-use-__vmalloc_node-fix.patch
mm-switch-the-test_vmalloc-module-to-use-__vmalloc_node-fix-fix.patch
mm-remove-vmalloc_user_node_flags-fix.patch
riscv-support-debug_wx-fix.patch
mm-replace-zero-length-array-with-flexible-array-member-fix.patch
mm-hugetlb-fix-a-typo-in-comment-manitained-maintained-v2-checkpatch-fixes.patch
initrdmem=-option-to-specify-initrd-physical-address.patch
linux-next-fix.patch
linux-next-git-rejects.patch
mm-pass-task-and-mm-to-do_madvise-fix-fix.patch
kernel-forkc-export-kernel_thread-to-modules.patch
^ permalink raw reply [flat|nested] 215+ messages in thread
* Re: + ipc-convert-ipcs_idr-to-xarray-update.patch added to -mm tree
[not found] ` <20200605201134.GJ19604@bombadil.infradead.org>
@ 2020-06-05 21:20 ` Andrew Morton
0 siblings, 0 replies; 215+ messages in thread
From: Andrew Morton @ 2020-06-05 21:20 UTC (permalink / raw)
To: Matthew Wilcox; +Cc: Qian Cai, linux-kernel, dave, manfred, mm-commits
On Fri, 5 Jun 2020 13:11:34 -0700 Matthew Wilcox <willy@infradead.org> wrote:
> On Fri, Jun 05, 2020 at 03:58:48PM -0400, Qian Cai wrote:
> > This will trigger,
> >
> > [ 8853.759549] LTP: starting semget05
> > [ 8867.257088] BUG: sleeping function called from invalid context at mm/slab.h:567
> > [ 8867.270259] in_atomic(): 1, irqs_disabled(): 0, non_block: 0, pid: 22556, name: semget05
> > [ 8867.270309] 2 locks held by semget05/22556:
> > [ 8867.270345] #0: 00000000512de7e0 (&ids->rwsem){++++}-{3:3}, at: ipcget+0x4e/0x230
> > [ 8867.270426] #1: 00000000552b9018 (&new->lock){+.+.}-{2:2}, at: ipc_addid+0xf4/0xf50
>
> Did the fix for this not make it into -next?
I don't think I've seen this fix before. And I'm unclear on how it
pertains to the current patch(es) in -mm. And it has no changelog!
Perhaps it would be best to do a formal send of the latest version?
^ permalink raw reply [flat|nested] 215+ messages in thread
* Re: + ipc-convert-ipcs_idr-to-xarray-update.patch added to -mm tree
2020-04-24 1:47 ` + ipc-convert-ipcs_idr-to-xarray-update.patch " Andrew Morton
[not found] ` <20200605195848.GB5393@lca.pw>
@ 2020-12-30 15:44 ` Manfred Spraul
1 sibling, 0 replies; 215+ messages in thread
From: Manfred Spraul @ 2020-12-30 15:44 UTC (permalink / raw)
To: Andrew Morton, dave, mm-commits, willy; +Cc: 1vier1
Hi Matthew,
Due to lack of time, I didn't follow up immediately, but I haven't
forgotten the patch series:
On 4/24/20 3:47 AM, Andrew Morton wrote:
> The patch titled
> Subject: ipc-convert-ipcs_idr-to-xarray-update
[...]
> - xas_lock(&xas);
> + xa_lock(&ids->ipcs);
>
> - min_idx = ids->next_idx;
> - new->seq = ids->seq;
> + err = __xa_alloc_cyclic(&ids->ipcs, &idx, NULL,
> + XA_LIMIT(0, max_idx), &ids->next_idx,
> + GFP_KERNEL);
> + if (err == 1) {
> + ids->seq++;
> + if (ids->seq >= ipcid_seq_max())
> + ids->seq = 0;
> + }
> +
> + if (err >= 0) {
> + new->seq = ids->seq;
> + new->id = (new->seq << ipcmni_seq_shift()) + idx;
> + /* xa_store contains a write barrier */
> + __xa_store(&ids->ipcs, idx, new, GFP_KERNEL);
> + }
The GFP_KERNEL is really ugly.
When I see "GFP_KERNEL", it means for me that the called function might
sleep.
When I see "GFP_ATOMIC", it means for me that the called function may
fail, and that the caller must implement a retry algorithm.
I think the GFP_KERNEL here means nothing, but I'm not sure.
Would it be possible to make __xa_store(,,,0) an officially supported
feature?
- The function will fail if there was no previous xa_alloc for exactly
the to be stored entry (or an xa_insert, or an xa_store(,,,GFP_KERNEL),
etc.)
- The function will not allocate any memory.
- The function will not fail due to out of memory.
- The function will not drop the xa_lock()
Then the usage would be clear:
xa_alloc(,GFP_KERNEL)
acquire_all_locks()
__xa_store(,,,0)
drop_all_locks()
The kerneldoc is for me not clear enough:
> **
> * __xa_store() - Store this entry in the XArray.
> * @xa: XArray.
> * @index: Index into array.
> * @entry: New entry.
> * @gfp: Memory allocation flags.
> *
> * You must already be holding the xa_lock when calling this function.
> * It will drop the lock if needed to allocate memory, and then reacquire
> * it afterwards.
Is it guaranteed the dropping/acquiring the lock will never happen after
storing the entry into the array?
If the xarray code first stores the entry, and then allocates memory for
tree balancing or similar, then it would break the ipc/*.c
--
Manfred
^ permalink raw reply [flat|nested] 215+ messages in thread
* Re: incoming
2021-01-12 23:48 incoming Andrew Morton
@ 2021-01-15 23:32 ` Linus Torvalds
0 siblings, 0 replies; 215+ messages in thread
From: Linus Torvalds @ 2021-01-15 23:32 UTC (permalink / raw)
To: Andrew Morton; +Cc: Linux-MM, mm-commits
On Tue, Jan 12, 2021 at 3:48 PM Andrew Morton <akpm@linux-foundation.org> wrote:
>
> 10 patches, based on e609571b5ffa3528bf85292de1ceaddac342bc1c.
Whee. I had completely dropped the ball on this - I had built my usual
"akpm" branch with the patches, but then had completely forgotten
about it after doing my basic build tests.
I tend to leave it for a while to see if people send belated ACK/NAK's
for the patches, but that "for a while" is typically "overnight", not
several days.
So if you ever notice that I haven't merged your patch submission, and
you haven't seen me comment on them, feel free to ping me to remind
me.
Because it might just have gotten lost in the shuffle for some random
reason. Admittedly it's rare - I think this is the first time I just
randomly noticed three days later that I'd never done the actual merge
of the patch-series).
Linus
^ permalink raw reply [flat|nested] 215+ messages in thread
* incoming
@ 2021-01-12 23:48 Andrew Morton
2021-01-15 23:32 ` incoming Linus Torvalds
0 siblings, 1 reply; 215+ messages in thread
From: Andrew Morton @ 2021-01-12 23:48 UTC (permalink / raw)
To: Linus Torvalds; +Cc: linux-mm, mm-commits
10 patches, based on e609571b5ffa3528bf85292de1ceaddac342bc1c.
Subsystems affected by this patch series:
mm/slub
mm/pagealloc
mm/memcg
mm/kasan
mm/vmalloc
mm/migration
mm/hugetlb
MAINTAINERS
mm/memory-failure
mm/process_vm_access
Subsystem: mm/slub
Jann Horn <jannh@google.com>:
mm, slub: consider rest of partial list if acquire_slab() fails
Subsystem: mm/pagealloc
Hailong liu <liu.hailong6@zte.com.cn>:
mm/page_alloc: add a missing mm_page_alloc_zone_locked() tracepoint
Subsystem: mm/memcg
Hugh Dickins <hughd@google.com>:
mm/memcontrol: fix warning in mem_cgroup_page_lruvec()
Subsystem: mm/kasan
Hailong Liu <liu.hailong6@zte.com.cn>:
arm/kasan: fix the array size of kasan_early_shadow_pte[]
Subsystem: mm/vmalloc
Miaohe Lin <linmiaohe@huawei.com>:
mm/vmalloc.c: fix potential memory leak
Subsystem: mm/migration
Jan Stancek <jstancek@redhat.com>:
mm: migrate: initialize err in do_migrate_pages
Subsystem: mm/hugetlb
Miaohe Lin <linmiaohe@huawei.com>:
mm/hugetlb: fix potential missing huge page size info
Subsystem: MAINTAINERS
Vlastimil Babka <vbabka@suse.cz>:
MAINTAINERS: add Vlastimil as slab allocators maintainer
Subsystem: mm/memory-failure
Oscar Salvador <osalvador@suse.de>:
mm,hwpoison: fix printing of page flags
Subsystem: mm/process_vm_access
Andrew Morton <akpm@linux-foundation.org>:
mm/process_vm_access.c: include compat.h
MAINTAINERS | 1 +
include/linux/kasan.h | 6 +++++-
include/linux/memcontrol.h | 2 +-
mm/hugetlb.c | 2 +-
mm/kasan/init.c | 3 ++-
mm/memory-failure.c | 2 +-
mm/mempolicy.c | 2 +-
mm/page_alloc.c | 31 ++++++++++++++++---------------
mm/process_vm_access.c | 1 +
mm/slub.c | 2 +-
mm/vmalloc.c | 4 +++-
11 files changed, 33 insertions(+), 23 deletions(-)
^ permalink raw reply [flat|nested] 215+ messages in thread
* incoming
@ 2020-12-29 23:13 Andrew Morton
0 siblings, 0 replies; 215+ messages in thread
From: Andrew Morton @ 2020-12-29 23:13 UTC (permalink / raw)
To: Linus Torvalds; +Cc: linux-mm, mm-commits
16 patches, based on dea8dcf2a9fa8cc540136a6cd885c3beece16ec3.
Subsystems affected by this patch series:
mm/selftests
mm/hugetlb
kbuild
checkpatch
mm/pagecache
mm/mremap
mm/kasan
misc
lib
mm/slub
Subsystem: mm/selftests
Harish <harish@linux.ibm.com>:
selftests/vm: fix building protection keys test
Subsystem: mm/hugetlb
Mike Kravetz <mike.kravetz@oracle.com>:
mm/hugetlb: fix deadlock in hugetlb_cow error path
Subsystem: kbuild
Masahiro Yamada <masahiroy@kernel.org>:
Revert "kbuild: avoid static_assert for genksyms"
Subsystem: checkpatch
Joe Perches <joe@perches.com>:
checkpatch: prefer strscpy to strlcpy
Subsystem: mm/pagecache
Souptick Joarder <jrdr.linux@gmail.com>:
mm: add prototype for __add_to_page_cache_locked()
Baoquan He <bhe@redhat.com>:
mm: memmap defer init doesn't work as expected
Subsystem: mm/mremap
Kalesh Singh <kaleshsingh@google.com>:
mm/mremap.c: fix extent calculation
Nicholas Piggin <npiggin@gmail.com>:
mm: generalise COW SMC TLB flushing race comment
Subsystem: mm/kasan
Walter Wu <walter-zh.wu@mediatek.com>:
kasan: fix null pointer dereference in kasan_record_aux_stack
Subsystem: misc
Randy Dunlap <rdunlap@infradead.org>:
local64.h: make <asm/local64.h> mandatory
Huang Shijie <sjhuang@iluvatar.ai>:
sizes.h: add SZ_8G/SZ_16G/SZ_32G macros
Josh Poimboeuf <jpoimboe@redhat.com>:
kdev_t: always inline major/minor helper functions
Subsystem: lib
Huang Shijie <sjhuang@iluvatar.ai>:
lib/genalloc: fix the overflow when size is too big
Ilya Leoshkevich <iii@linux.ibm.com>:
lib/zlib: fix inflating zlib streams on s390
Randy Dunlap <rdunlap@infradead.org>:
zlib: move EXPORT_SYMBOL() and MODULE_LICENSE() out of dfltcc_syms.c
Subsystem: mm/slub
Roman Gushchin <guro@fb.com>:
mm: slub: call account_slab_page() after slab page initialization
arch/alpha/include/asm/local64.h | 1 -
arch/arc/include/asm/Kbuild | 1 -
arch/arm/include/asm/Kbuild | 1 -
arch/arm64/include/asm/Kbuild | 1 -
arch/csky/include/asm/Kbuild | 1 -
arch/h8300/include/asm/Kbuild | 1 -
arch/hexagon/include/asm/Kbuild | 1 -
arch/ia64/include/asm/local64.h | 1 -
arch/ia64/mm/init.c | 4 ++--
arch/m68k/include/asm/Kbuild | 1 -
arch/microblaze/include/asm/Kbuild | 1 -
arch/mips/include/asm/Kbuild | 1 -
arch/nds32/include/asm/Kbuild | 1 -
arch/openrisc/include/asm/Kbuild | 1 -
arch/parisc/include/asm/Kbuild | 1 -
arch/powerpc/include/asm/Kbuild | 1 -
arch/riscv/include/asm/Kbuild | 1 -
arch/s390/include/asm/Kbuild | 1 -
arch/sh/include/asm/Kbuild | 1 -
arch/sparc/include/asm/Kbuild | 1 -
arch/x86/include/asm/local64.h | 1 -
arch/xtensa/include/asm/Kbuild | 1 -
include/asm-generic/Kbuild | 1 +
include/linux/build_bug.h | 5 -----
include/linux/kdev_t.h | 22 +++++++++++-----------
include/linux/mm.h | 12 ++++++++++--
include/linux/sizes.h | 3 +++
lib/genalloc.c | 25 +++++++++++++------------
lib/zlib_dfltcc/Makefile | 2 +-
lib/zlib_dfltcc/dfltcc.c | 6 +++++-
lib/zlib_dfltcc/dfltcc_deflate.c | 3 +++
lib/zlib_dfltcc/dfltcc_inflate.c | 4 ++--
lib/zlib_dfltcc/dfltcc_syms.c | 17 -----------------
mm/hugetlb.c | 22 +++++++++++++++++++++-
mm/kasan/generic.c | 2 ++
mm/memory.c | 8 +++++---
mm/memory_hotplug.c | 2 +-
mm/mremap.c | 4 +++-
mm/page_alloc.c | 8 +++++---
mm/slub.c | 5 ++---
scripts/checkpatch.pl | 6 ++++++
tools/testing/selftests/vm/Makefile | 10 +++++-----
42 files changed, 101 insertions(+), 91 deletions(-)
^ permalink raw reply [flat|nested] 215+ messages in thread
* Re: incoming
2020-12-22 19:58 incoming Andrew Morton
@ 2020-12-22 21:43 ` Linus Torvalds
0 siblings, 0 replies; 215+ messages in thread
From: Linus Torvalds @ 2020-12-22 21:43 UTC (permalink / raw)
To: Andrew Morton; +Cc: Linux-MM, mm-commits
On Tue, Dec 22, 2020 at 11:58 AM Andrew Morton
<akpm@linux-foundation.org> wrote:
>
> 60 patches, based on 8653b778e454a7708847aeafe689bce07aeeb94e.
I see that you enabled renaming in the patches. Lovely.
Can you also enable it in the diffstat?
> 74 files changed, 2869 insertions(+), 1553 deletions(-)
With -M in the diffstat, you should have seen
72 files changed, 2775 insertions(+), 1460 deletions(-)
and if you add "--summary", you'll also see the rename part ofthe file
create/delete summary:
rename mm/kasan/{tags_report.c => report_sw_tags.c} (78%)
which is often nice to see in addition to the line stats..
Linus
^ permalink raw reply [flat|nested] 215+ messages in thread
* incoming
@ 2020-12-22 19:58 Andrew Morton
2020-12-22 21:43 ` incoming Linus Torvalds
0 siblings, 1 reply; 215+ messages in thread
From: Andrew Morton @ 2020-12-22 19:58 UTC (permalink / raw)
To: Linus Torvalds; +Cc: linux-mm, mm-commits
60 patches, based on 8653b778e454a7708847aeafe689bce07aeeb94e.
Subsystems affected by this patch series:
mm/kasan
Subsystem: mm/kasan
Andrey Konovalov <andreyknvl@google.com>:
Patch series "kasan: add hardware tag-based mode for arm64", v11:
kasan: drop unnecessary GPL text from comment headers
kasan: KASAN_VMALLOC depends on KASAN_GENERIC
kasan: group vmalloc code
kasan: shadow declarations only for software modes
kasan: rename (un)poison_shadow to (un)poison_range
kasan: rename KASAN_SHADOW_* to KASAN_GRANULE_*
kasan: only build init.c for software modes
kasan: split out shadow.c from common.c
kasan: define KASAN_MEMORY_PER_SHADOW_PAGE
kasan: rename report and tags files
kasan: don't duplicate config dependencies
kasan: hide invalid free check implementation
kasan: decode stack frame only with KASAN_STACK_ENABLE
kasan, arm64: only init shadow for software modes
kasan, arm64: only use kasan_depth for software modes
kasan, arm64: move initialization message
kasan, arm64: rename kasan_init_tags and mark as __init
kasan: rename addr_has_shadow to addr_has_metadata
kasan: rename print_shadow_for_address to print_memory_metadata
kasan: rename SHADOW layout macros to META
kasan: separate metadata_fetch_row for each mode
kasan: introduce CONFIG_KASAN_HW_TAGS
Vincenzo Frascino <vincenzo.frascino@arm.com>:
arm64: enable armv8.5-a asm-arch option
arm64: mte: add in-kernel MTE helpers
arm64: mte: reset the page tag in page->flags
arm64: mte: add in-kernel tag fault handler
arm64: kasan: allow enabling in-kernel MTE
arm64: mte: convert gcr_user into an exclude mask
arm64: mte: switch GCR_EL1 in kernel entry and exit
kasan, mm: untag page address in free_reserved_area
Andrey Konovalov <andreyknvl@google.com>:
arm64: kasan: align allocations for HW_TAGS
arm64: kasan: add arch layer for memory tagging helpers
kasan: define KASAN_GRANULE_SIZE for HW_TAGS
kasan, x86, s390: update undef CONFIG_KASAN
kasan, arm64: expand CONFIG_KASAN checks
kasan, arm64: implement HW_TAGS runtime
kasan, arm64: print report from tag fault handler
kasan, mm: reset tags when accessing metadata
kasan, arm64: enable CONFIG_KASAN_HW_TAGS
kasan: add documentation for hardware tag-based mode
Vincenzo Frascino <vincenzo.frascino@arm.com>:
kselftest/arm64: check GCR_EL1 after context switch
Andrey Konovalov <andreyknvl@google.com>:
Patch series "kasan: boot parameters for hardware tag-based mode", v4:
kasan: simplify quarantine_put call site
kasan: rename get_alloc/free_info
kasan: introduce set_alloc_info
kasan, arm64: unpoison stack only with CONFIG_KASAN_STACK
kasan: allow VMAP_STACK for HW_TAGS mode
kasan: remove __kasan_unpoison_stack
kasan: inline kasan_reset_tag for tag-based modes
kasan: inline random_tag for HW_TAGS
kasan: open-code kasan_unpoison_slab
kasan: inline (un)poison_range and check_invalid_free
kasan: add and integrate kasan boot parameters
kasan, mm: check kasan_enabled in annotations
kasan, mm: rename kasan_poison_kfree
kasan: don't round_up too much
kasan: simplify assign_tag and set_tag calls
kasan: clarify comment in __kasan_kfree_large
kasan: sanitize objects when metadata doesn't fit
kasan, mm: allow cache merging with no metadata
kasan: update documentation
Documentation/dev-tools/kasan.rst | 274 ++-
arch/Kconfig | 8
arch/arm64/Kconfig | 9
arch/arm64/Makefile | 7
arch/arm64/include/asm/assembler.h | 2
arch/arm64/include/asm/cache.h | 3
arch/arm64/include/asm/esr.h | 1
arch/arm64/include/asm/kasan.h | 17
arch/arm64/include/asm/memory.h | 15
arch/arm64/include/asm/mte-def.h | 16
arch/arm64/include/asm/mte-kasan.h | 67
arch/arm64/include/asm/mte.h | 22
arch/arm64/include/asm/processor.h | 2
arch/arm64/include/asm/string.h | 5
arch/arm64/include/asm/uaccess.h | 23
arch/arm64/kernel/asm-offsets.c | 3
arch/arm64/kernel/cpufeature.c | 3
arch/arm64/kernel/entry.S | 41
arch/arm64/kernel/head.S | 2
arch/arm64/kernel/hibernate.c | 5
arch/arm64/kernel/image-vars.h | 2
arch/arm64/kernel/kaslr.c | 3
arch/arm64/kernel/module.c | 6
arch/arm64/kernel/mte.c | 124 +
arch/arm64/kernel/setup.c | 2
arch/arm64/kernel/sleep.S | 2
arch/arm64/kernel/smp.c | 2
arch/arm64/lib/mte.S | 16
arch/arm64/mm/copypage.c | 9
arch/arm64/mm/fault.c | 59
arch/arm64/mm/kasan_init.c | 41
arch/arm64/mm/mteswap.c | 9
arch/arm64/mm/proc.S | 23
arch/arm64/mm/ptdump.c | 6
arch/s390/boot/string.c | 1
arch/x86/boot/compressed/misc.h | 1
arch/x86/kernel/acpi/wakeup_64.S | 2
include/linux/kasan-checks.h | 2
include/linux/kasan.h | 423 ++++-
include/linux/mm.h | 24
include/linux/moduleloader.h | 3
include/linux/page-flags-layout.h | 2
include/linux/sched.h | 2
include/linux/string.h | 2
init/init_task.c | 2
kernel/fork.c | 4
lib/Kconfig.kasan | 71
lib/test_kasan.c | 2
lib/test_kasan_module.c | 2
mm/kasan/Makefile | 33
mm/kasan/common.c | 1006 +++-----------
mm/kasan/generic.c | 72 -
mm/kasan/generic_report.c | 13
mm/kasan/hw_tags.c | 276 +++
mm/kasan/init.c | 25
mm/kasan/kasan.h | 195 ++
mm/kasan/quarantine.c | 35
mm/kasan/report.c | 363 +----
mm/kasan/report_generic.c | 169 ++
mm/kasan/report_hw_tags.c | 44
mm/kasan/report_sw_tags.c | 22
mm/kasan/shadow.c | 528 +++++++
mm/kasan/sw_tags.c | 34
mm/kasan/tags.c | 7
mm/kasan/tags_report.c | 7
mm/mempool.c | 4
mm/page_alloc.c | 9
mm/page_poison.c | 2
mm/ptdump.c | 13
mm/slab_common.c | 5
mm/slub.c | 29
scripts/Makefile.lib | 2
tools/testing/selftests/arm64/mte/Makefile | 2
tools/testing/selftests/arm64/mte/check_gcr_el1_cswitch.c | 155 ++
74 files changed, 2869 insertions(+), 1553 deletions(-)
^ permalink raw reply [flat|nested] 215+ messages in thread
* incoming
@ 2020-12-18 22:00 Andrew Morton
0 siblings, 0 replies; 215+ messages in thread
From: Andrew Morton @ 2020-12-18 22:00 UTC (permalink / raw)
To: Linus Torvalds; +Cc: mm-commits, linux-mm
78 patches, based on a409ed156a90093a03fe6a93721ddf4c591eac87.
Subsystems affected by this patch series:
mm/memcg
epoll
mm/kasan
mm/cleanups
epoll
Subsystem: mm/memcg
Alex Shi <alex.shi@linux.alibaba.com>:
Patch series "bail out early for memcg disable":
mm/memcg: bail early from swap accounting if memcg disabled
mm/memcg: warning on !memcg after readahead page charged
Wei Yang <richard.weiyang@gmail.com>:
mm/memcg: remove unused definitions
Shakeel Butt <shakeelb@google.com>:
mm, kvm: account kvm_vcpu_mmap to kmemcg
Hui Su <sh_def@163.com>:
mm/memcontrol:rewrite mem_cgroup_page_lruvec()
Subsystem: epoll
Soheil Hassas Yeganeh <soheil@google.com>:
Patch series "simplify ep_poll":
epoll: check for events when removing a timed out thread from the wait queue
epoll: simplify signal handling
epoll: pull fatal signal checks into ep_send_events()
epoll: move eavail next to the list_empty_careful check
epoll: simplify and optimize busy loop logic
epoll: pull all code between fetch_events and send_event into the loop
epoll: replace gotos with a proper loop
epoll: eliminate unnecessary lock for zero timeout
Subsystem: mm/kasan
Andrey Konovalov <andreyknvl@google.com>:
Patch series "kasan: add hardware tag-based mode for arm64", v11:
kasan: drop unnecessary GPL text from comment headers
kasan: KASAN_VMALLOC depends on KASAN_GENERIC
kasan: group vmalloc code
kasan: shadow declarations only for software modes
kasan: rename (un)poison_shadow to (un)poison_range
kasan: rename KASAN_SHADOW_* to KASAN_GRANULE_*
kasan: only build init.c for software modes
kasan: split out shadow.c from common.c
kasan: define KASAN_MEMORY_PER_SHADOW_PAGE
kasan: rename report and tags files
kasan: don't duplicate config dependencies
kasan: hide invalid free check implementation
kasan: decode stack frame only with KASAN_STACK_ENABLE
kasan, arm64: only init shadow for software modes
kasan, arm64: only use kasan_depth for software modes
kasan, arm64: move initialization message
kasan, arm64: rename kasan_init_tags and mark as __init
kasan: rename addr_has_shadow to addr_has_metadata
kasan: rename print_shadow_for_address to print_memory_metadata
kasan: rename SHADOW layout macros to META
kasan: separate metadata_fetch_row for each mode
kasan: introduce CONFIG_KASAN_HW_TAGS
Vincenzo Frascino <vincenzo.frascino@arm.com>:
arm64: enable armv8.5-a asm-arch option
arm64: mte: add in-kernel MTE helpers
arm64: mte: reset the page tag in page->flags
arm64: mte: add in-kernel tag fault handler
arm64: kasan: allow enabling in-kernel MTE
arm64: mte: convert gcr_user into an exclude mask
arm64: mte: switch GCR_EL1 in kernel entry and exit
kasan, mm: untag page address in free_reserved_area
Andrey Konovalov <andreyknvl@google.com>:
arm64: kasan: align allocations for HW_TAGS
arm64: kasan: add arch layer for memory tagging helpers
kasan: define KASAN_GRANULE_SIZE for HW_TAGS
kasan, x86, s390: update undef CONFIG_KASAN
kasan, arm64: expand CONFIG_KASAN checks
kasan, arm64: implement HW_TAGS runtime
kasan, arm64: print report from tag fault handler
kasan, mm: reset tags when accessing metadata
kasan, arm64: enable CONFIG_KASAN_HW_TAGS
kasan: add documentation for hardware tag-based mode
Vincenzo Frascino <vincenzo.frascino@arm.com>:
kselftest/arm64: check GCR_EL1 after context switch
Andrey Konovalov <andreyknvl@google.com>:
Patch series "kasan: boot parameters for hardware tag-based mode", v4:
kasan: simplify quarantine_put call site
kasan: rename get_alloc/free_info
kasan: introduce set_alloc_info
kasan, arm64: unpoison stack only with CONFIG_KASAN_STACK
kasan: allow VMAP_STACK for HW_TAGS mode
kasan: remove __kasan_unpoison_stack
kasan: inline kasan_reset_tag for tag-based modes
kasan: inline random_tag for HW_TAGS
kasan: open-code kasan_unpoison_slab
kasan: inline (un)poison_range and check_invalid_free
kasan: add and integrate kasan boot parameters
kasan, mm: check kasan_enabled in annotations
kasan, mm: rename kasan_poison_kfree
kasan: don't round_up too much
kasan: simplify assign_tag and set_tag calls
kasan: clarify comment in __kasan_kfree_large
kasan: sanitize objects when metadata doesn't fit
kasan, mm: allow cache merging with no metadata
kasan: update documentation
Subsystem: mm/cleanups
Colin Ian King <colin.king@canonical.com>:
mm/Kconfig: fix spelling mistake "whats" -> "what's"
Subsystem: epoll
Willem de Bruijn <willemb@google.com>:
Patch series "add epoll_pwait2 syscall", v4:
epoll: convert internal api to timespec64
epoll: add syscall epoll_pwait2
epoll: wire up syscall epoll_pwait2
selftests/filesystems: expand epoll with epoll_pwait2
Documentation/dev-tools/kasan.rst | 274 +-
arch/Kconfig | 8
arch/alpha/kernel/syscalls/syscall.tbl | 1
arch/arm/tools/syscall.tbl | 1
arch/arm64/Kconfig | 9
arch/arm64/Makefile | 7
arch/arm64/include/asm/assembler.h | 2
arch/arm64/include/asm/cache.h | 3
arch/arm64/include/asm/esr.h | 1
arch/arm64/include/asm/kasan.h | 17
arch/arm64/include/asm/memory.h | 15
arch/arm64/include/asm/mte-def.h | 16
arch/arm64/include/asm/mte-kasan.h | 67
arch/arm64/include/asm/mte.h | 22
arch/arm64/include/asm/processor.h | 2
arch/arm64/include/asm/string.h | 5
arch/arm64/include/asm/uaccess.h | 23
arch/arm64/include/asm/unistd.h | 2
arch/arm64/include/asm/unistd32.h | 2
arch/arm64/kernel/asm-offsets.c | 3
arch/arm64/kernel/cpufeature.c | 3
arch/arm64/kernel/entry.S | 41
arch/arm64/kernel/head.S | 2
arch/arm64/kernel/hibernate.c | 5
arch/arm64/kernel/image-vars.h | 2
arch/arm64/kernel/kaslr.c | 3
arch/arm64/kernel/module.c | 6
arch/arm64/kernel/mte.c | 124 +
arch/arm64/kernel/setup.c | 2
arch/arm64/kernel/sleep.S | 2
arch/arm64/kernel/smp.c | 2
arch/arm64/lib/mte.S | 16
arch/arm64/mm/copypage.c | 9
arch/arm64/mm/fault.c | 59
arch/arm64/mm/kasan_init.c | 41
arch/arm64/mm/mteswap.c | 9
arch/arm64/mm/proc.S | 23
arch/arm64/mm/ptdump.c | 6
arch/ia64/kernel/syscalls/syscall.tbl | 1
arch/m68k/kernel/syscalls/syscall.tbl | 1
arch/microblaze/kernel/syscalls/syscall.tbl | 1
arch/mips/kernel/syscalls/syscall_n32.tbl | 1
arch/mips/kernel/syscalls/syscall_n64.tbl | 1
arch/mips/kernel/syscalls/syscall_o32.tbl | 1
arch/parisc/kernel/syscalls/syscall.tbl | 1
arch/powerpc/kernel/syscalls/syscall.tbl | 1
arch/s390/boot/string.c | 1
arch/s390/kernel/syscalls/syscall.tbl | 1
arch/sh/kernel/syscalls/syscall.tbl | 1
arch/sparc/kernel/syscalls/syscall.tbl | 1
arch/x86/boot/compressed/misc.h | 1
arch/x86/entry/syscalls/syscall_32.tbl | 1
arch/x86/entry/syscalls/syscall_64.tbl | 1
arch/x86/kernel/acpi/wakeup_64.S | 2
arch/x86/kvm/x86.c | 2
arch/xtensa/kernel/syscalls/syscall.tbl | 1
fs/eventpoll.c | 359 ++-
include/linux/compat.h | 6
include/linux/kasan-checks.h | 2
include/linux/kasan.h | 423 ++--
include/linux/memcontrol.h | 137 -
include/linux/mm.h | 24
include/linux/mmdebug.h | 13
include/linux/moduleloader.h | 3
include/linux/page-flags-layout.h | 2
include/linux/sched.h | 2
include/linux/string.h | 2
include/linux/syscalls.h | 5
include/uapi/asm-generic/unistd.h | 4
init/init_task.c | 2
kernel/fork.c | 4
kernel/sys_ni.c | 2
lib/Kconfig.kasan | 71
lib/test_kasan.c | 2
lib/test_kasan_module.c | 2
mm/Kconfig | 2
mm/kasan/Makefile | 33
mm/kasan/common.c | 1006 ++--------
mm/kasan/generic.c | 72
mm/kasan/generic_report.c | 13
mm/kasan/hw_tags.c | 294 ++
mm/kasan/init.c | 25
mm/kasan/kasan.h | 204 +-
mm/kasan/quarantine.c | 35
mm/kasan/report.c | 363 +--
mm/kasan/report_generic.c | 169 +
mm/kasan/report_hw_tags.c | 44
mm/kasan/report_sw_tags.c | 22
mm/kasan/shadow.c | 541 +++++
mm/kasan/sw_tags.c | 34
mm/kasan/tags.c | 7
mm/kasan/tags_report.c | 7
mm/memcontrol.c | 53
mm/mempool.c | 4
mm/page_alloc.c | 9
mm/page_poison.c | 2
mm/ptdump.c | 13
mm/slab_common.c | 5
mm/slub.c | 29
scripts/Makefile.lib | 2
tools/testing/selftests/arm64/mte/Makefile | 2
tools/testing/selftests/arm64/mte/check_gcr_el1_cswitch.c | 155 +
tools/testing/selftests/filesystems/epoll/epoll_wakeup_test.c | 72
virt/kvm/coalesced_mmio.c | 2
virt/kvm/kvm_main.c | 2
105 files changed, 3268 insertions(+), 1873 deletions(-)
^ permalink raw reply [flat|nested] 215+ messages in thread
* incoming
@ 2020-12-16 4:41 Andrew Morton
0 siblings, 0 replies; 215+ messages in thread
From: Andrew Morton @ 2020-12-16 4:41 UTC (permalink / raw)
To: Linus Torvalds; +Cc: mm-commits, linux-mm
- lots of little subsystems
- a few post-linux-next MM material. Most of this awaits more merging
of other trees.
95 patches, based on 489e9fea66f31086f85d9a18e61e4791d94a56a4.
Subsystems affected by this patch series:
mm/swap
mm/memory-hotplug
alpha
procfs
misc
core-kernel
bitmap
lib
lz4
bitops
checkpatch
nilfs
kdump
rapidio
gcov
bfs
relay
resource
ubsan
reboot
fault-injection
lzo
apparmor
mm/pagemap
mm/cleanups
mm/gup
Subsystem: mm/swap
Zhaoyang Huang <huangzhaoyang@gmail.com>:
mm: fix a race on nr_swap_pages
Subsystem: mm/memory-hotplug
Laurent Dufour <ldufour@linux.ibm.com>:
mm/memory_hotplug: quieting offline operation
Subsystem: alpha
Thomas Gleixner <tglx@linutronix.de>:
alpha: replace bogus in_interrupt()
Subsystem: procfs
Randy Dunlap <rdunlap@infradead.org>:
procfs: delete duplicated words + other fixes
Anand K Mistry <amistry@google.com>:
proc: provide details on indirect branch speculation
Alexey Dobriyan <adobriyan@gmail.com>:
proc: fix lookup in /proc/net subdirectories after setns(2)
Hui Su <sh_def@163.com>:
fs/proc: make pde_get() return nothing
Subsystem: misc
Christophe Leroy <christophe.leroy@csgroup.eu>:
asm-generic: force inlining of get_order() to work around gcc10 poor decision
Andy Shevchenko <andriy.shevchenko@linux.intel.com>:
kernel.h: split out mathematical helpers
Subsystem: core-kernel
Hui Su <sh_def@163.com>:
kernel/acct.c: use #elif instead of #end and #elif
Subsystem: bitmap
Andy Shevchenko <andriy.shevchenko@linux.intel.com>:
include/linux/bitmap.h: convert bitmap_empty() / bitmap_full() to return boolean
"Ma, Jianpeng" <jianpeng.ma@intel.com>:
bitmap: remove unused function declaration
Subsystem: lib
Geert Uytterhoeven <geert@linux-m68k.org>:
lib/test_free_pages.c: add basic progress indicators
"Gustavo A. R. Silva" <gustavoars@kernel.org>:
Patch series "] lib/stackdepot.c: Replace one-element array with flexible-array member":
lib/stackdepot.c: replace one-element array with flexible-array member
lib/stackdepot.c: use flex_array_size() helper in memcpy()
lib/stackdepot.c: use array_size() helper in jhash2()
Sebastian Andrzej Siewior <bigeasy@linutronix.de>:
lib/test_lockup.c: minimum fix to get it compiled on PREEMPT_RT
Andy Shevchenko <andriy.shevchenko@linux.intel.com>:
lib/list_kunit: follow new file name convention for KUnit tests
lib/linear_ranges_kunit: follow new file name convention for KUnit tests
lib/bits_kunit: follow new file name convention for KUnit tests
lib/cmdline: fix get_option() for strings starting with hyphen
lib/cmdline: allow NULL to be an output for get_option()
lib/cmdline_kunit: add a new test suite for cmdline API
Jakub Jelinek <jakub@redhat.com>:
ilog2: improve ilog2 for constant arguments
Nick Desaulniers <ndesaulniers@google.com>:
lib/string: remove unnecessary #undefs
Daniel Axtens <dja@axtens.net>:
Patch series "Fortify strscpy()", v7:
lib: string.h: detect intra-object overflow in fortified string functions
lkdtm: tests for FORTIFY_SOURCE
Francis Laniel <laniel_francis@privacyrequired.com>:
string.h: add FORTIFY coverage for strscpy()
drivers/misc/lkdtm: add new file in LKDTM to test fortified strscpy
drivers/misc/lkdtm/lkdtm.h: correct wrong filenames in comment
Alexey Dobriyan <adobriyan@gmail.com>:
lib: cleanup kstrto*() usage
Subsystem: lz4
Gao Xiang <hsiangkao@redhat.com>:
lib/lz4: explicitly support in-place decompression
Subsystem: bitops
Syed Nayyar Waris <syednwaris@gmail.com>:
Patch series "Introduce the for_each_set_clump macro", v12:
bitops: introduce the for_each_set_clump macro
lib/test_bitmap.c: add for_each_set_clump test cases
gpio: thunderx: utilize for_each_set_clump macro
gpio: xilinx: utilize generic bitmap_get_value and _set_value
Subsystem: checkpatch
Dwaipayan Ray <dwaipayanray1@gmail.com>:
checkpatch: add new exception to repeated word check
Aditya Srivastava <yashsri421@gmail.com>:
checkpatch: fix false positives in REPEATED_WORD warning
Łukasz Stelmach <l.stelmach@samsung.com>:
checkpatch: ignore generated CamelCase defines and enum values
Joe Perches <joe@perches.com>:
checkpatch: prefer static const declarations
checkpatch: allow --fix removal of unnecessary break statements
Dwaipayan Ray <dwaipayanray1@gmail.com>:
checkpatch: extend attributes check to handle more patterns
Tom Rix <trix@redhat.com>:
checkpatch: add a fixer for missing newline at eof
Joe Perches <joe@perches.com>:
checkpatch: update __attribute__((section("name"))) quote removal
Aditya Srivastava <yashsri421@gmail.com>:
checkpatch: add fix option for GERRIT_CHANGE_ID
Joe Perches <joe@perches.com>:
checkpatch: add __alias and __weak to suggested __attribute__ conversions
Dwaipayan Ray <dwaipayanray1@gmail.com>:
checkpatch: improve email parsing
checkpatch: fix spelling errors and remove repeated word
Aditya Srivastava <yashsri421@gmail.com>:
checkpatch: avoid COMMIT_LOG_LONG_LINE warning for signature tags
Dwaipayan Ray <dwaipayanray1@gmail.com>:
checkpatch: fix unescaped left brace
Aditya Srivastava <yashsri421@gmail.com>:
checkpatch: add fix option for ASSIGNMENT_CONTINUATIONS
checkpatch: add fix option for LOGICAL_CONTINUATIONS
checkpatch: add fix and improve warning msg for non-standard signature
Dwaipayan Ray <dwaipayanray1@gmail.com>:
checkpatch: add warning for unnecessary use of %h[xudi] and %hh[xudi]
checkpatch: add warning for lines starting with a '#' in commit log
checkpatch: fix TYPO_SPELLING check for words with apostrophe
Joe Perches <joe@perches.com>:
checkpatch: add printk_once and printk_ratelimit to prefer pr_<level> warning
Subsystem: nilfs
Alex Shi <alex.shi@linux.alibaba.com>:
fs/nilfs2: remove some unused macros to tame gcc
Subsystem: kdump
Alexander Egorenkov <egorenar@linux.ibm.com>:
kdump: append uts_namespace.name offset to VMCOREINFO
Subsystem: rapidio
Sebastian Andrzej Siewior <bigeasy@linutronix.de>:
rapidio: remove unused rio_get_asm() and rio_get_device()
Subsystem: gcov
Nick Desaulniers <ndesaulniers@google.com>:
gcov: remove support for GCC < 4.9
Alex Shi <alex.shi@linux.alibaba.com>:
gcov: fix kernel-doc markup issue
Subsystem: bfs
Randy Dunlap <rdunlap@infradead.org>:
bfs: don't use WARNING: string when it's just info.
Subsystem: relay
Jani Nikula <jani.nikula@intel.com>:
Patch series "relay: cleanup and const callbacks", v2:
relay: remove unused buf_mapped and buf_unmapped callbacks
relay: require non-NULL callbacks in relay_open()
relay: make create_buf_file and remove_buf_file callbacks mandatory
relay: allow the use of const callback structs
drm/i915: make relay callbacks const
ath10k: make relay callbacks const
ath11k: make relay callbacks const
ath9k: make relay callbacks const
blktrace: make relay callbacks const
Subsystem: resource
Mauro Carvalho Chehab <mchehab+huawei@kernel.org>:
kernel/resource.c: fix kernel-doc markups
Subsystem: ubsan
Kees Cook <keescook@chromium.org>:
Patch series "Clean up UBSAN Makefile", v2:
ubsan: remove redundant -Wno-maybe-uninitialized
ubsan: move cc-option tests into Kconfig
ubsan: disable object-size sanitizer under GCC
ubsan: disable UBSAN_TRAP for all*config
ubsan: enable for all*config builds
ubsan: remove UBSAN_MISC in favor of individual options
ubsan: expand tests and reporting
Dmitry Vyukov <dvyukov@google.com>:
kcov: don't instrument with UBSAN
Zou Wei <zou_wei@huawei.com>:
lib/ubsan.c: mark type_check_kinds with static keyword
Subsystem: reboot
Matteo Croce <mcroce@microsoft.com>:
reboot: refactor and comment the cpu selection code
reboot: allow to specify reboot mode via sysfs
reboot: remove cf9_safe from allowed types and rename cf9_force
Patch series "reboot: sysfs improvements":
reboot: allow to override reboot type if quirks are found
reboot: hide from sysfs not applicable settings
Subsystem: fault-injection
Barnabás Pőcze <pobrn@protonmail.com>:
fault-injection: handle EI_ETYPE_TRUE
Subsystem: lzo
Jason Yan <yanaijie@huawei.com>:
lib/lzo/lzo1x_compress.c: make lzogeneric1x_1_compress() static
Subsystem: apparmor
Andy Shevchenko <andriy.shevchenko@linux.intel.com>:
apparmor: remove duplicate macro list_entry_is_head()
Subsystem: mm/pagemap
Christoph Hellwig <hch@lst.de>:
Patch series "simplify follow_pte a bit":
mm: unexport follow_pte_pmd
mm: simplify follow_pte{,pmd}
Subsystem: mm/cleanups
Haitao Shi <shihaitao1@huawei.com>:
mm: fix some spelling mistakes in comments
Subsystem: mm/gup
Jann Horn <jannh@google.com>:
mmap locking API: don't check locking if the mm isn't live yet
mm/gup: assert that the mmap lock is held in __get_user_pages()
Documentation/ABI/testing/sysfs-kernel-reboot | 32
Documentation/admin-guide/kdump/vmcoreinfo.rst | 6
Documentation/dev-tools/ubsan.rst | 1
Documentation/filesystems/proc.rst | 2
MAINTAINERS | 5
arch/alpha/kernel/process.c | 2
arch/powerpc/kernel/vmlinux.lds.S | 4
arch/s390/pci/pci_mmio.c | 4
drivers/gpio/gpio-thunderx.c | 11
drivers/gpio/gpio-xilinx.c | 61 -
drivers/gpu/drm/i915/gt/uc/intel_guc_log.c | 2
drivers/misc/lkdtm/Makefile | 1
drivers/misc/lkdtm/bugs.c | 50 +
drivers/misc/lkdtm/core.c | 3
drivers/misc/lkdtm/fortify.c | 82 ++
drivers/misc/lkdtm/lkdtm.h | 19
drivers/net/wireless/ath/ath10k/spectral.c | 2
drivers/net/wireless/ath/ath11k/spectral.c | 2
drivers/net/wireless/ath/ath9k/common-spectral.c | 2
drivers/rapidio/rio.c | 81 --
fs/bfs/inode.c | 2
fs/dax.c | 9
fs/exec.c | 8
fs/nfs/callback_proc.c | 5
fs/nilfs2/segment.c | 5
fs/proc/array.c | 28
fs/proc/base.c | 2
fs/proc/generic.c | 24
fs/proc/internal.h | 10
fs/proc/proc_net.c | 20
include/asm-generic/bitops/find.h | 19
include/asm-generic/getorder.h | 2
include/linux/bitmap.h | 67 +-
include/linux/bitops.h | 24
include/linux/dcache.h | 1
include/linux/iommu-helper.h | 4
include/linux/kernel.h | 173 -----
include/linux/log2.h | 3
include/linux/math.h | 177 +++++
include/linux/mm.h | 6
include/linux/mm_types.h | 10
include/linux/mmap_lock.h | 16
include/linux/proc_fs.h | 8
include/linux/rcu_node_tree.h | 2
include/linux/relay.h | 29
include/linux/rio_drv.h | 3
include/linux/string.h | 75 +-
include/linux/units.h | 2
kernel/Makefile | 3
kernel/acct.c | 7
kernel/crash_core.c | 1
kernel/fail_function.c | 6
kernel/gcov/gcc_4_7.c | 10
kernel/reboot.c | 308 ++++++++-
kernel/relay.c | 111 ---
kernel/resource.c | 24
kernel/trace/blktrace.c | 2
lib/Kconfig.debug | 11
lib/Kconfig.ubsan | 154 +++-
lib/Makefile | 7
lib/bits_kunit.c | 75 ++
lib/cmdline.c | 20
lib/cmdline_kunit.c | 100 +++
lib/errname.c | 1
lib/error-inject.c | 2
lib/errseq.c | 1
lib/find_bit.c | 17
lib/linear_ranges_kunit.c | 228 +++++++
lib/list-test.c | 748 -----------------------
lib/list_kunit.c | 748 +++++++++++++++++++++++
lib/lz4/lz4_decompress.c | 6
lib/lz4/lz4defs.h | 1
lib/lzo/lzo1x_compress.c | 2
lib/math/div64.c | 4
lib/math/int_pow.c | 2
lib/math/int_sqrt.c | 3
lib/math/reciprocal_div.c | 9
lib/stackdepot.c | 11
lib/string.c | 4
lib/test_bitmap.c | 143 ++++
lib/test_bits.c | 75 --
lib/test_firmware.c | 9
lib/test_free_pages.c | 5
lib/test_kmod.c | 26
lib/test_linear_ranges.c | 228 -------
lib/test_lockup.c | 16
lib/test_ubsan.c | 74 ++
lib/ubsan.c | 2
mm/filemap.c | 2
mm/gup.c | 2
mm/huge_memory.c | 2
mm/khugepaged.c | 2
mm/memblock.c | 2
mm/memory.c | 36 -
mm/memory_hotplug.c | 2
mm/migrate.c | 2
mm/page_ext.c | 2
mm/swapfile.c | 11
scripts/Makefile.ubsan | 49 -
scripts/checkpatch.pl | 495 +++++++++++----
security/apparmor/apparmorfs.c | 3
tools/testing/selftests/lkdtm/tests.txt | 1
102 files changed, 3022 insertions(+), 1899 deletions(-)
^ permalink raw reply [flat|nested] 215+ messages in thread
* Re: incoming
2020-12-15 22:49 ` incoming Linus Torvalds
@ 2020-12-15 22:55 ` Andrew Morton
0 siblings, 0 replies; 215+ messages in thread
From: Andrew Morton @ 2020-12-15 22:55 UTC (permalink / raw)
To: Linus Torvalds; +Cc: Linux-MM, mm-commits
On Tue, 15 Dec 2020 14:49:24 -0800 Linus Torvalds <torvalds@linux-foundation.org> wrote:
> On Tue, Dec 15, 2020 at 2:48 PM Linus Torvalds
> <torvalds@linux-foundation.org> wrote:
> >
> > I will try to apply it on top of my merge of your previous series instead.
>
> Yes, then it applies cleanly. So apparently we just have different
> concepts of what really constitutes a "base" for applying your series.
>
oop, sorry, yes, the "based on" thing was wrong because I had two
series in flight simultaneously. I've never tried that before..
^ permalink raw reply [flat|nested] 215+ messages in thread
* Re: incoming
2020-12-15 22:48 ` incoming Linus Torvalds
@ 2020-12-15 22:49 ` Linus Torvalds
2020-12-15 22:55 ` incoming Andrew Morton
0 siblings, 1 reply; 215+ messages in thread
From: Linus Torvalds @ 2020-12-15 22:49 UTC (permalink / raw)
To: Andrew Morton; +Cc: Linux-MM, mm-commits
On Tue, Dec 15, 2020 at 2:48 PM Linus Torvalds
<torvalds@linux-foundation.org> wrote:
>
> I will try to apply it on top of my merge of your previous series instead.
Yes, then it applies cleanly. So apparently we just have different
concepts of what really constitutes a "base" for applying your series.
Linus
^ permalink raw reply [flat|nested] 215+ messages in thread
* Re: incoming
2020-12-15 20:32 incoming Andrew Morton
2020-12-15 21:00 ` incoming Linus Torvalds
@ 2020-12-15 22:48 ` Linus Torvalds
2020-12-15 22:49 ` incoming Linus Torvalds
1 sibling, 1 reply; 215+ messages in thread
From: Linus Torvalds @ 2020-12-15 22:48 UTC (permalink / raw)
To: Andrew Morton; +Cc: Linux-MM, mm-commits
On Tue, Dec 15, 2020 at 12:32 PM Andrew Morton
<akpm@linux-foundation.org> wrote:
>
> - more MM work: a memcg scalability improvememt
>
> 19 patches, based on 148842c98a24e508aecb929718818fbf4c2a6ff3.
With your re-send, I get all patches, but they don't actually apply cleanly.
Is that base correct?
I get
error: patch failed: mm/huge_memory.c:2750
error: mm/huge_memory.c: patch does not apply
Patch failed at 0004 mm/thp: narrow lru locking
for that patch "[patch 04/19] mm/thp: narrow lru locking", and that's
definitely true: the patch fragment has
@@ -2750,7 +2751,7 @@ int split_huge_page_to_list(struct page
__dec_lruvec_page_state(head, NR_FILE_THPS);
}
- __split_huge_page(page, list, end, flags);
+ __split_huge_page(page, list, end);
ret = 0;
} else {
if (IS_ENABLED(CONFIG_DEBUG_VM) && mapcount) {
but that __dec_lruvec_page_state() conversion was done by your
previous commit series.
So I have the feeling that what you actually mean by "base" isn't
actually really the base for that series at all..
I will try to apply it on top of my merge of your previous series instead.
Linus
^ permalink raw reply [flat|nested] 215+ messages in thread
* Re: incoming
2020-12-15 20:32 incoming Andrew Morton
@ 2020-12-15 21:00 ` Linus Torvalds
2020-12-15 22:48 ` incoming Linus Torvalds
1 sibling, 0 replies; 215+ messages in thread
From: Linus Torvalds @ 2020-12-15 21:00 UTC (permalink / raw)
To: Andrew Morton; +Cc: Linux-MM, mm-commits
On Tue, Dec 15, 2020 at 12:32 PM Andrew Morton
<akpm@linux-foundation.org> wrote:
>
> - more MM work: a memcg scalability improvememt
>
> 19 patches, based on 148842c98a24e508aecb929718818fbf4c2a6ff3.
I'm not seeing patch 10/19 at all.
And patch 19/19 is corrupted and has an attachment with a '^P'
character in it. I could fix it up, but with the missing patch in the
middle I'm not going to even try. 'b4' is also very unhappy about that
patch 19/19.
I don't know what went wrong, but I'll ignore this send - please
re-send the series at your leisure, ok?
Linus
^ permalink raw reply [flat|nested] 215+ messages in thread
* incoming
@ 2020-12-15 20:32 Andrew Morton
2020-12-15 21:00 ` incoming Linus Torvalds
2020-12-15 22:48 ` incoming Linus Torvalds
0 siblings, 2 replies; 215+ messages in thread
From: Andrew Morton @ 2020-12-15 20:32 UTC (permalink / raw)
To: Linus Torvalds; +Cc: linux-mm, mm-commits
- more MM work: a memcg scalability improvememt
19 patches, based on 148842c98a24e508aecb929718818fbf4c2a6ff3.
Subsystems affected by this patch series:
Alex Shi <alex.shi@linux.alibaba.com>:
Patch series "per memcg lru lock", v21:
mm/thp: move lru_add_page_tail() to huge_memory.c
mm/thp: use head for head page in lru_add_page_tail()
mm/thp: simplify lru_add_page_tail()
mm/thp: narrow lru locking
mm/vmscan: remove unnecessary lruvec adding
mm/rmap: stop store reordering issue on page->mapping
Hugh Dickins <hughd@google.com>:
mm: page_idle_get_page() does not need lru_lock
Alex Shi <alex.shi@linux.alibaba.com>:
mm/memcg: add debug checking in lock_page_memcg
mm/swap.c: fold vm event PGROTATED into pagevec_move_tail_fn
mm/lru: move lock into lru_note_cost
mm/vmscan: remove lruvec reget in move_pages_to_lru
mm/mlock: remove lru_lock on TestClearPageMlocked
mm/mlock: remove __munlock_isolate_lru_page()
mm/lru: introduce TestClearPageLRU()
mm/compaction: do page isolation first in compaction
mm/swap.c: serialize memcg changes in pagevec_lru_move_fn
mm/lru: replace pgdat lru_lock with lruvec lock
Alexander Duyck <alexander.h.duyck@linux.intel.com>:
mm/lru: introduce relock_page_lruvec()
Hugh Dickins <hughd@google.com>:
mm/lru: revise the comments of lru_lock
Documentation/admin-guide/cgroup-v1/memcg_test.rst | 15 -
Documentation/admin-guide/cgroup-v1/memory.rst | 23 -
Documentation/trace/events-kmem.rst | 2
Documentation/vm/unevictable-lru.rst | 22 -
include/linux/memcontrol.h | 110 +++++++
include/linux/mm_types.h | 2
include/linux/mmzone.h | 6
include/linux/page-flags.h | 1
include/linux/swap.h | 4
mm/compaction.c | 98 ++++---
mm/filemap.c | 4
mm/huge_memory.c | 109 ++++---
mm/memcontrol.c | 84 +++++-
mm/mlock.c | 93 ++----
mm/mmzone.c | 1
mm/page_alloc.c | 1
mm/page_idle.c | 4
mm/rmap.c | 12
mm/swap.c | 292 ++++++++-------------
mm/vmscan.c | 239 ++++++++---------
mm/workingset.c | 2
21 files changed, 644 insertions(+), 480 deletions(-)
^ permalink raw reply [flat|nested] 215+ messages in thread
* Re: incoming
2020-12-15 3:30 ` incoming Linus Torvalds
@ 2020-12-15 14:04 ` Konstantin Ryabitsev
0 siblings, 0 replies; 215+ messages in thread
From: Konstantin Ryabitsev @ 2020-12-15 14:04 UTC (permalink / raw)
To: Linus Torvalds; +Cc: Andrew Morton, mm-commits, Linux-MM
On Mon, Dec 14, 2020 at 07:30:54PM -0800, Linus Torvalds wrote:
> > All the patches except for _one_ get a nice little green check-mark
> > next to them when I use 'git am' on this series.
> >
> > The one that did not was [patch 192/200].
> >
> > I have no idea why
>
> Hmm. It looks like that patch is the only one in the series with the
> ">From" marker in the commit message, from the silly "clarify that
> this isn't the first line in a new message in mbox format".
>
> And "b4 am" has turned the single ">" into two, making the stupid
> marker worse, and actually corrupting the end result.
It's a bug in b4 that I overlooked. Public-inbox emits mboxrd-formatted
.mbox files, while Python's mailbox.mbox consumes mboxo only. The main
distinction between the two is precisely that mboxrd will convert
">From " into ">>From " in an attempt to avoid corruption during
escape/unescape (it didn't end up fixing the problem 100% and mostly
introduced incompatibilities like this one).
I have a fix in master/stable-0.6.y and I'll release a 0.6.2 before the
end of the week.
Thanks for the report.
-K
^ permalink raw reply [flat|nested] 215+ messages in thread
* Re: incoming
2020-12-15 3:25 ` incoming Linus Torvalds
@ 2020-12-15 3:30 ` Linus Torvalds
2020-12-15 14:04 ` incoming Konstantin Ryabitsev
0 siblings, 1 reply; 215+ messages in thread
From: Linus Torvalds @ 2020-12-15 3:30 UTC (permalink / raw)
To: Andrew Morton, Konstantin Ryabitsev; +Cc: mm-commits, Linux-MM
On Mon, Dec 14, 2020 at 7:25 PM Linus Torvalds
<torvalds@linux-foundation.org> wrote:
>
> All the patches except for _one_ get a nice little green check-mark
> next to them when I use 'git am' on this series.
>
> The one that did not was [patch 192/200].
>
> I have no idea why
Hmm. It looks like that patch is the only one in the series with the
">From" marker in the commit message, from the silly "clarify that
this isn't the first line in a new message in mbox format".
And "b4 am" has turned the single ">" into two, making the stupid
marker worse, and actually corrupting the end result.
Coincidence? Or cause?
Linus
^ permalink raw reply [flat|nested] 215+ messages in thread
* Re: incoming
2020-12-15 3:02 incoming Andrew Morton
@ 2020-12-15 3:25 ` Linus Torvalds
2020-12-15 3:30 ` incoming Linus Torvalds
0 siblings, 1 reply; 215+ messages in thread
From: Linus Torvalds @ 2020-12-15 3:25 UTC (permalink / raw)
To: Andrew Morton, Konstantin Ryabitsev; +Cc: mm-commits, Linux-MM
On Mon, Dec 14, 2020 at 7:02 PM Andrew Morton <akpm@linux-foundation.org> wrote:
>
> 200 patches, based on 2c85ebc57b3e1817b6ce1a6b703928e113a90442.
I haven't actually processed the patches yet, but I have a question
for Konstantin wrt b4.
All the patches except for _one_ get a nice little green check-mark
next to them when I use 'git am' on this series.
The one that did not was [patch 192/200].
I have no idea why - and it doesn't matter a lot to me, it just stood
out as being different. I'm assuming Andrew has started doing patch
attestation, and that patch failed. But if so, maybe Konstantin wants
to know what went wrong.
Konstantin?
Linus
^ permalink raw reply [flat|nested] 215+ messages in thread
* incoming
@ 2020-12-15 3:02 Andrew Morton
2020-12-15 3:25 ` incoming Linus Torvalds
0 siblings, 1 reply; 215+ messages in thread
From: Andrew Morton @ 2020-12-15 3:02 UTC (permalink / raw)
To: Linus Torvalds; +Cc: mm-commits, linux-mm
- a few random little subsystems
- almost all of the MM patches which are staged ahead of linux-next
material. I'll trickle to post-linux-next work in as the dependents
get merged up.
200 patches, based on 2c85ebc57b3e1817b6ce1a6b703928e113a90442.
Subsystems affected by this patch series:
kthread
kbuild
ide
ntfs
ocfs2
arch
mm/slab-generic
mm/slab
mm/slub
mm/dax
mm/debug
mm/pagecache
mm/gup
mm/swap
mm/shmem
mm/memcg
mm/pagemap
mm/mremap
mm/hmm
mm/vmalloc
mm/documentation
mm/kasan
mm/pagealloc
mm/memory-failure
mm/hugetlb
mm/vmscan
mm/z3fold
mm/compaction
mm/oom-kill
mm/migration
mm/cma
mm/page-poison
mm/userfaultfd
mm/zswap
mm/zsmalloc
mm/uaccess
mm/zram
mm/cleanups
Subsystem: kthread
Rob Clark <robdclark@chromium.org>:
kthread: add kthread_work tracepoints
Petr Mladek <pmladek@suse.com>:
kthread_worker: document CPU hotplug handling
Subsystem: kbuild
Petr Vorel <petr.vorel@gmail.com>:
uapi: move constants from <linux/kernel.h> to <linux/const.h>
Subsystem: ide
Sebastian Andrzej Siewior <bigeasy@linutronix.de>:
ide/falcon: remove in_interrupt() usage
ide: remove BUG_ON(in_interrupt() || irqs_disabled()) from ide_unregister()
Subsystem: ntfs
Alex Shi <alex.shi@linux.alibaba.com>:
fs/ntfs: remove unused varibles
fs/ntfs: remove unused variable attr_len
Subsystem: ocfs2
Tom Rix <trix@redhat.com>:
fs/ocfs2/cluster/tcp.c: remove unneeded break
Mauricio Faria de Oliveira <mfo@canonical.com>:
ocfs2: ratelimit the 'max lookup times reached' notice
Subsystem: arch
Colin Ian King <colin.king@canonical.com>:
arch/Kconfig: fix spelling mistakes
Subsystem: mm/slab-generic
Hui Su <sh_def@163.com>:
mm/slab_common.c: use list_for_each_entry in dump_unreclaimable_slab()
Bartosz Golaszewski <bgolaszewski@baylibre.com>:
Patch series "slab: provide and use krealloc_array()", v3:
mm: slab: clarify krealloc()'s behavior with __GFP_ZERO
mm: slab: provide krealloc_array()
ALSA: pcm: use krealloc_array()
vhost: vringh: use krealloc_array()
pinctrl: use krealloc_array()
edac: ghes: use krealloc_array()
drm: atomic: use krealloc_array()
hwtracing: intel: use krealloc_array()
dma-buf: use krealloc_array()
Vlastimil Babka <vbabka@suse.cz>:
mm, slab, slub: clear the slab_cache field when freeing page
Subsystem: mm/slab
Alexander Popov <alex.popov@linux.com>:
mm/slab: rerform init_on_free earlier
Subsystem: mm/slub
Vlastimil Babka <vbabka@suse.cz>:
mm, slub: use kmem_cache_debug_flags() in deactivate_slab()
Bharata B Rao <bharata@linux.ibm.com>:
mm/slub: let number of online CPUs determine the slub page order
Subsystem: mm/dax
Dan Williams <dan.j.williams@intel.com>:
device-dax/kmem: use struct_size()
Subsystem: mm/debug
Zhenhua Huang <zhenhuah@codeaurora.org>:
mm: fix page_owner initializing issue for arm32
Liam Mark <lmark@codeaurora.org>:
mm/page_owner: record timestamp and pid
Subsystem: mm/pagecache
Kent Overstreet <kent.overstreet@gmail.com>:
Patch series "generic_file_buffered_read() improvements", v2:
mm/filemap/c: break generic_file_buffered_read up into multiple functions
mm/filemap.c: generic_file_buffered_read() now uses find_get_pages_contig
Alex Shi <alex.shi@linux.alibaba.com>:
mm/truncate: add parameter explanation for invalidate_mapping_pagevec
Hailong Liu <carver4lio@163.com>:
mm/filemap.c: remove else after a return
Subsystem: mm/gup
John Hubbard <jhubbard@nvidia.com>:
Patch series "selftests/vm: gup_test, hmm-tests, assorted improvements", v3:
mm/gup_benchmark: rename to mm/gup_test
selftests/vm: use a common gup_test.h
selftests/vm: rename run_vmtests --> run_vmtests.sh
selftests/vm: minor cleanup: Makefile and gup_test.c
selftests/vm: only some gup_test items are really benchmarks
selftests/vm: gup_test: introduce the dump_pages() sub-test
selftests/vm: run_vmtests.sh: update and clean up gup_test invocation
selftests/vm: hmm-tests: remove the libhugetlbfs dependency
selftests/vm: 2x speedup for run_vmtests.sh
Barry Song <song.bao.hua@hisilicon.com>:
mm/gup_test.c: mark gup_test_init as __init function
mm/gup_test: GUP_TEST depends on DEBUG_FS
Jason Gunthorpe <jgg@nvidia.com>:
Patch series "Add a seqcount between gup_fast and copy_page_range()", v4:
mm/gup: reorganize internal_get_user_pages_fast()
mm/gup: prevent gup_fast from racing with COW during fork
mm/gup: remove the vma allocation from gup_longterm_locked()
mm/gup: combine put_compound_head() and unpin_user_page()
Subsystem: mm/swap
Ralph Campbell <rcampbell@nvidia.com>:
mm: handle zone device pages in release_pages()
Miaohe Lin <linmiaohe@huawei.com>:
mm/swapfile.c: use helper function swap_count() in add_swap_count_continuation()
mm/swap_state: skip meaningless swap cache readahead when ra_info.win == 0
mm/swapfile.c: remove unnecessary out label in __swap_duplicate()
mm/swapfile.c: use memset to fill the swap_map with SWAP_HAS_CACHE
Jeff Layton <jlayton@kernel.org>:
mm: remove pagevec_lookup_range_nr_tag()
Subsystem: mm/shmem
Hui Su <sh_def@163.com>:
mm/shmem.c: make shmem_mapping() inline
Randy Dunlap <rdunlap@infradead.org>:
tmpfs: fix Documentation nits
Subsystem: mm/memcg
Johannes Weiner <hannes@cmpxchg.org>:
mm: memcontrol: add file_thp, shmem_thp to memory.stat
Muchun Song <songmuchun@bytedance.com>:
mm: memcontrol: remove unused mod_memcg_obj_state()
Miaohe Lin <linmiaohe@huawei.com>:
mm: memcontrol: eliminate redundant check in __mem_cgroup_insert_exceeded()
Muchun Song <songmuchun@bytedance.com>:
mm: memcg/slab: fix return of child memcg objcg for root memcg
mm: memcg/slab: fix use after free in obj_cgroup_charge
Shakeel Butt <shakeelb@google.com>:
mm/rmap: always do TTU_IGNORE_ACCESS
Alex Shi <alex.shi@linux.alibaba.com>:
mm/memcg: update page struct member in comments
Roman Gushchin <guro@fb.com>:
mm: memcg: fix obsolete code comments
Patch series "mm: memcg: deprecate cgroup v1 non-hierarchical mode", v1:
mm: memcg: deprecate the non-hierarchical mode
docs: cgroup-v1: reflect the deprecation of the non-hierarchical mode
cgroup: remove obsoleted broken_hierarchy and warned_broken_hierarchy
Hui Su <sh_def@163.com>:
mm/page_counter: use page_counter_read in page_counter_set_max
Lukas Bulwahn <lukas.bulwahn@gmail.com>:
mm: memcg: remove obsolete memcg_has_children()
Muchun Song <songmuchun@bytedance.com>:
mm: memcg/slab: rename *_lruvec_slab_state to *_lruvec_kmem_state
Kaixu Xia <kaixuxia@tencent.com>:
mm: memcontrol: sssign boolean values to a bool variable
Alex Shi <alex.shi@linux.alibaba.com>:
mm/memcg: remove incorrect comment
Shakeel Butt <shakeelb@google.com>:
Patch series "memcg: add pagetable comsumption to memory.stat", v2:
mm: move lruvec stats update functions to vmstat.h
mm: memcontrol: account pagetables per node
Subsystem: mm/pagemap
Dan Williams <dan.j.williams@intel.com>:
xen/unpopulated-alloc: consolidate pgmap manipulation
Kalesh Singh <kaleshsingh@google.com>:
Patch series "Speed up mremap on large regions", v4:
kselftests: vm: add mremap tests
mm: speedup mremap on 1GB or larger regions
arm64: mremap speedup - enable HAVE_MOVE_PUD
x86: mremap speedup - Enable HAVE_MOVE_PUD
John Hubbard <jhubbard@nvidia.com>:
mm: cleanup: remove unused tsk arg from __access_remote_vm
Alex Shi <alex.shi@linux.alibaba.com>:
mm/mapping_dirty_helpers: enhance the kernel-doc markups
mm/page_vma_mapped.c: add colon to fix kernel-doc markups error for check_pte
Axel Rasmussen <axelrasmussen@google.com>:
mm: mmap_lock: add tracepoints around lock acquisition
"Matthew Wilcox (Oracle)" <willy@infradead.org>:
sparc: fix handling of page table constructor failure
mm: move free_unref_page to mm/internal.h
Subsystem: mm/mremap
Dmitry Safonov <dima@arista.com>:
Patch series "mremap: move_vma() fixes":
mm/mremap: account memory on do_munmap() failure
mm/mremap: for MREMAP_DONTUNMAP check security_vm_enough_memory_mm()
mremap: don't allow MREMAP_DONTUNMAP on special_mappings and aio
vm_ops: rename .split() callback to .may_split()
mremap: check if it's possible to split original vma
mm: forbid splitting special mappings
Subsystem: mm/hmm
Daniel Vetter <daniel.vetter@ffwll.ch>:
mm: track mmu notifiers in fs_reclaim_acquire/release
mm: extract might_alloc() debug check
locking/selftests: add testcases for fs_reclaim
Subsystem: mm/vmalloc
Andrew Morton <akpm@linux-foundation.org>:
mm/vmalloc.c:__vmalloc_area_node(): avoid 32-bit overflow
"Uladzislau Rezki (Sony)" <urezki@gmail.com>:
mm/vmalloc: use free_vm_area() if an allocation fails
mm/vmalloc: rework the drain logic
Alex Shi <alex.shi@linux.alibaba.com>:
mm/vmalloc: add 'align' parameter explanation for pvm_determine_end_from_reverse
Baolin Wang <baolin.wang@linux.alibaba.com>:
mm/vmalloc.c: remove unnecessary return statement
Waiman Long <longman@redhat.com>:
mm/vmalloc: Fix unlock order in s_stop()
Subsystem: mm/documentation
Alex Shi <alex.shi@linux.alibaba.com>:
docs/vm: remove unused 3 items explanation for /proc/vmstat
Subsystem: mm/kasan
Vincenzo Frascino <vincenzo.frascino@arm.com>:
mm/vmalloc.c: fix kasan shadow poisoning size
Walter Wu <walter-zh.wu@mediatek.com>:
Patch series "kasan: add workqueue stack for generic KASAN", v5:
workqueue: kasan: record workqueue stack
kasan: print workqueue stack
lib/test_kasan.c: add workqueue test case
kasan: update documentation for generic kasan
Marco Elver <elver@google.com>:
lkdtm: disable KASAN for rodata.o
Subsystem: mm/pagealloc
Mike Rapoport <rppt@linux.ibm.com>:
Patch series "arch, mm: deprecate DISCONTIGMEM", v2:
alpha: switch from DISCONTIGMEM to SPARSEMEM
ia64: remove custom __early_pfn_to_nid()
ia64: remove 'ifdef CONFIG_ZONE_DMA32' statements
ia64: discontig: paging_init(): remove local max_pfn calculation
ia64: split virtual map initialization out of paging_init()
ia64: forbid using VIRTUAL_MEM_MAP with FLATMEM
ia64: make SPARSEMEM default and disable DISCONTIGMEM
arm: remove CONFIG_ARCH_HAS_HOLES_MEMORYMODEL
arm, arm64: move free_unused_memmap() to generic mm
arc: use FLATMEM with freeing of unused memory map instead of DISCONTIGMEM
m68k/mm: make node data and node setup depend on CONFIG_DISCONTIGMEM
m68k/mm: enable use of generic memory_model.h for !DISCONTIGMEM
m68k: deprecate DISCONTIGMEM
Patch series "arch, mm: improve robustness of direct map manipulation", v7:
mm: introduce debug_pagealloc_{map,unmap}_pages() helpers
PM: hibernate: make direct map manipulations more explicit
arch, mm: restore dependency of __kernel_map_pages() on DEBUG_PAGEALLOC
arch, mm: make kernel_page_present() always available
Vlastimil Babka <vbabka@suse.cz>:
Patch series "disable pcplists during memory offline", v3:
mm, page_alloc: clean up pageset high and batch update
mm, page_alloc: calculate pageset high and batch once per zone
mm, page_alloc: remove setup_pageset()
mm, page_alloc: simplify pageset_update()
mm, page_alloc: cache pageset high and batch in struct zone
mm, page_alloc: move draining pcplists to page isolation users
mm, page_alloc: disable pcplists during memory offline
Miaohe Lin <linmiaohe@huawei.com>:
include/linux/page-flags.h: remove unused __[Set|Clear]PagePrivate
"Matthew Wilcox (Oracle)" <willy@infradead.org>:
mm/page-flags: fix comment
mm/page_alloc: add __free_pages() documentation
Zou Wei <zou_wei@huawei.com>:
mm/page_alloc: mark some symbols with static keyword
David Hildenbrand <david@redhat.com>:
mm/page_alloc: clear all pages in post_alloc_hook() with init_on_alloc=1
Lin Feng <linf@wangsu.com>:
init/main: fix broken buffer_init when DEFERRED_STRUCT_PAGE_INIT set
Lorenzo Stoakes <lstoakes@gmail.com>:
mm: page_alloc: refactor setup_per_zone_lowmem_reserve()
Muchun Song <songmuchun@bytedance.com>:
mm/page_alloc: speed up the iteration of max_order
Subsystem: mm/memory-failure
Oscar Salvador <osalvador@suse.de>:
Patch series "HWpoison: further fixes and cleanups", v5:
mm,hwpoison: drain pcplists before bailing out for non-buddy zero-refcount page
mm,hwpoison: take free pages off the buddy freelists
mm,hwpoison: drop unneeded pcplist draining
Patch series "HWPoison: Refactor get page interface", v2:
mm,hwpoison: refactor get_any_page
mm,hwpoison: disable pcplists before grabbing a refcount
mm,hwpoison: remove drain_all_pages from shake_page
mm,memory_failure: always pin the page in madvise_inject_error
mm,hwpoison: return -EBUSY when migration fails
Subsystem: mm/hugetlb
Hui Su <sh_def@163.com>:
mm/hugetlb.c: just use put_page_testzero() instead of page_count()
Ralph Campbell <rcampbell@nvidia.com>:
include/linux/huge_mm.h: remove extern keyword
Alex Shi <alex.shi@linux.alibaba.com>:
khugepaged: add parameter explanations for kernel-doc markup
Liu Xiang <liu.xiang@zlingsmart.com>:
mm: hugetlb: fix type of delta parameter and related local variables in gather_surplus_pages()
Oscar Salvador <osalvador@suse.de>:
mm,hugetlb: remove unneeded initialization
Dan Carpenter <dan.carpenter@oracle.com>:
hugetlb: fix an error code in hugetlb_reserve_pages()
Subsystem: mm/vmscan
Johannes Weiner <hannes@cmpxchg.org>:
mm: don't wake kswapd prematurely when watermark boosting is disabled
Lukas Bulwahn <lukas.bulwahn@gmail.com>:
mm/vmscan: drop unneeded assignment in kswapd()
"logic.yu" <hymmsx.yu@gmail.com>:
mm/vmscan.c: remove the filename in the top of file comment
Muchun Song <songmuchun@bytedance.com>:
mm/page_isolation: do not isolate the max order page
Subsystem: mm/z3fold
Vitaly Wool <vitaly.wool@konsulko.com>:
Patch series "z3fold: stability / rt fixes":
z3fold: simplify freeing slots
z3fold: stricter locking and more careful reclaim
z3fold: remove preempt disabled sections for RT
Subsystem: mm/compaction
Yanfei Xu <yanfei.xu@windriver.com>:
mm/compaction: rename 'start_pfn' to 'iteration_start_pfn' in compact_zone()
Hui Su <sh_def@163.com>:
mm/compaction: move compaction_suitable's comment to right place
mm/compaction: make defer_compaction and compaction_deferred static
Subsystem: mm/oom-kill
Hui Su <sh_def@163.com>:
mm/oom_kill: change comment and rename is_dump_unreclaim_slabs()
Subsystem: mm/migration
Long Li <lonuxli.64@gmail.com>:
mm/migrate.c: fix comment spelling
Ralph Campbell <rcampbell@nvidia.com>:
mm/migrate.c: optimize migrate_vma_pages() mmu notifier
"Matthew Wilcox (Oracle)" <willy@infradead.org>:
mm: support THPs in zero_user_segments
Yang Shi <shy828301@gmail.com>:
Patch series "mm: misc migrate cleanup and improvement", v3:
mm: truncate_complete_page() does not exist any more
mm: migrate: simplify the logic for handling permanent failure
mm: migrate: skip shared exec THP for NUMA balancing
mm: migrate: clean up migrate_prep{_local}
mm: migrate: return -ENOSYS if THP migration is unsupported
Stephen Zhang <starzhangzsd@gmail.com>:
mm: migrate: remove unused parameter in migrate_vma_insert_page()
Subsystem: mm/cma
Lecopzer Chen <lecopzer.chen@mediatek.com>:
mm/cma.c: remove redundant cma_mutex lock
Charan Teja Reddy <charante@codeaurora.org>:
mm: cma: improve pr_debug log in cma_release()
Subsystem: mm/page-poison
Vlastimil Babka <vbabka@suse.cz>:
Patch series "cleanup page poisoning", v3:
mm, page_alloc: do not rely on the order of page_poison and init_on_alloc/free parameters
mm, page_poison: use static key more efficiently
kernel/power: allow hibernation with page_poison sanity checking
mm, page_poison: remove CONFIG_PAGE_POISONING_NO_SANITY
mm, page_poison: remove CONFIG_PAGE_POISONING_ZERO
Subsystem: mm/userfaultfd
Lokesh Gidra <lokeshgidra@google.com>:
Patch series "Control over userfaultfd kernel-fault handling", v6:
userfaultfd: add UFFD_USER_MODE_ONLY
userfaultfd: add user-mode only option to unprivileged_userfaultfd sysctl knob
Axel Rasmussen <axelrasmussen@google.com>:
userfaultfd: selftests: make __{s,u}64 format specifiers portable
Peter Xu <peterx@redhat.com>:
Patch series "userfaultfd: selftests: Small fixes":
userfaultfd/selftests: always dump something in modes
userfaultfd/selftests: fix retval check for userfaultfd_open()
userfaultfd/selftests: hint the test runner on required privilege
Subsystem: mm/zswap
Joe Perches <joe@perches.com>:
mm/zswap: make struct kernel_param_ops definitions const
YueHaibing <yuehaibing@huawei.com>:
mm/zswap: fix passing zero to 'PTR_ERR' warning
Barry Song <song.bao.hua@hisilicon.com>:
mm/zswap: move to use crypto_acomp API for hardware acceleration
Subsystem: mm/zsmalloc
Miaohe Lin <linmiaohe@huawei.com>:
mm/zsmalloc.c: rework the list_add code in insert_zspage()
Subsystem: mm/uaccess
Colin Ian King <colin.king@canonical.com>:
mm/process_vm_access: remove redundant initialization of iov_r
Subsystem: mm/zram
Minchan Kim <minchan@kernel.org>:
zram: support page writeback
zram: add stat to gather incompressible pages since zram set up
Rui Salvaterra <rsalvaterra@gmail.com>:
zram: break the strict dependency from lzo
Subsystem: mm/cleanups
Mauro Carvalho Chehab <mchehab+huawei@kernel.org>:
mm: fix kernel-doc markups
Joe Perches <joe@perches.com>:
Patch series "mm: Convert sysfs sprintf family to sysfs_emit", v2:
mm: use sysfs_emit for struct kobject * uses
mm: huge_memory: convert remaining use of sprintf to sysfs_emit and neatening
mm:backing-dev: use sysfs_emit in macro defining functions
mm: shmem: convert shmem_enabled_show to use sysfs_emit_at
mm: slub: convert sysfs sprintf family to sysfs_emit/sysfs_emit_at
"Gustavo A. R. Silva" <gustavoars@kernel.org>:
mm: fix fall-through warnings for Clang
Alexey Dobriyan <adobriyan@gmail.com>:
mm: cleanup kstrto*() usage
/mmap_lock.h | 107 ++
a/Documentation/admin-guide/blockdev/zram.rst | 6
a/Documentation/admin-guide/cgroup-v1/memcg_test.rst | 8
a/Documentation/admin-guide/cgroup-v1/memory.rst | 42
a/Documentation/admin-guide/cgroup-v2.rst | 11
a/Documentation/admin-guide/mm/transhuge.rst | 15
a/Documentation/admin-guide/sysctl/vm.rst | 15
a/Documentation/core-api/memory-allocation.rst | 4
a/Documentation/core-api/pin_user_pages.rst | 8
a/Documentation/dev-tools/kasan.rst | 5
a/Documentation/filesystems/tmpfs.rst | 8
a/Documentation/vm/memory-model.rst | 3
a/Documentation/vm/page_owner.rst | 12
a/arch/Kconfig | 21
a/arch/alpha/Kconfig | 8
a/arch/alpha/include/asm/mmzone.h | 14
a/arch/alpha/include/asm/page.h | 7
a/arch/alpha/include/asm/pgtable.h | 12
a/arch/alpha/include/asm/sparsemem.h | 18
a/arch/alpha/kernel/setup.c | 1
a/arch/arc/Kconfig | 3
a/arch/arc/include/asm/page.h | 20
a/arch/arc/mm/init.c | 29
a/arch/arm/Kconfig | 12
a/arch/arm/kernel/vdso.c | 9
a/arch/arm/mach-bcm/Kconfig | 1
a/arch/arm/mach-davinci/Kconfig | 1
a/arch/arm/mach-exynos/Kconfig | 1
a/arch/arm/mach-highbank/Kconfig | 1
a/arch/arm/mach-omap2/Kconfig | 1
a/arch/arm/mach-s5pv210/Kconfig | 1
a/arch/arm/mach-tango/Kconfig | 1
a/arch/arm/mm/init.c | 78 -
a/arch/arm64/Kconfig | 9
a/arch/arm64/include/asm/cacheflush.h | 1
a/arch/arm64/include/asm/pgtable.h | 1
a/arch/arm64/kernel/vdso.c | 41
a/arch/arm64/mm/init.c | 68 -
a/arch/arm64/mm/pageattr.c | 12
a/arch/ia64/Kconfig | 11
a/arch/ia64/include/asm/meminit.h | 2
a/arch/ia64/mm/contig.c | 88 --
a/arch/ia64/mm/discontig.c | 44 -
a/arch/ia64/mm/init.c | 14
a/arch/ia64/mm/numa.c | 30
a/arch/m68k/Kconfig.cpu | 31
a/arch/m68k/include/asm/page.h | 2
a/arch/m68k/include/asm/page_mm.h | 7
a/arch/m68k/include/asm/virtconvert.h | 7
a/arch/m68k/mm/init.c | 10
a/arch/mips/vdso/genvdso.c | 4
a/arch/nds32/mm/mm-nds32.c | 6
a/arch/powerpc/Kconfig | 5
a/arch/riscv/Kconfig | 4
a/arch/riscv/include/asm/pgtable.h | 2
a/arch/riscv/include/asm/set_memory.h | 1
a/arch/riscv/mm/pageattr.c | 31
a/arch/s390/Kconfig | 4
a/arch/s390/configs/debug_defconfig | 2
a/arch/s390/configs/defconfig | 2
a/arch/s390/kernel/vdso.c | 11
a/arch/sparc/Kconfig | 4
a/arch/sparc/mm/init_64.c | 2
a/arch/x86/Kconfig | 5
a/arch/x86/entry/vdso/vma.c | 17
a/arch/x86/include/asm/set_memory.h | 1
a/arch/x86/kernel/cpu/resctrl/pseudo_lock.c | 2
a/arch/x86/kernel/tboot.c | 1
a/arch/x86/mm/pat/set_memory.c | 6
a/drivers/base/node.c | 2
a/drivers/block/zram/Kconfig | 42
a/drivers/block/zram/zcomp.c | 2
a/drivers/block/zram/zram_drv.c | 29
a/drivers/block/zram/zram_drv.h | 1
a/drivers/dax/device.c | 4
a/drivers/dax/kmem.c | 2
a/drivers/dma-buf/sync_file.c | 3
a/drivers/edac/ghes_edac.c | 4
a/drivers/firmware/efi/efi.c | 1
a/drivers/gpu/drm/drm_atomic.c | 3
a/drivers/hwtracing/intel_th/msu.c | 2
a/drivers/ide/falconide.c | 2
a/drivers/ide/ide-probe.c | 3
a/drivers/misc/lkdtm/Makefile | 1
a/drivers/pinctrl/pinctrl-utils.c | 2
a/drivers/vhost/vringh.c | 3
a/drivers/virtio/virtio_balloon.c | 6
a/drivers/xen/unpopulated-alloc.c | 14
a/fs/aio.c | 5
a/fs/ntfs/file.c | 5
a/fs/ntfs/inode.c | 2
a/fs/ntfs/logfile.c | 3
a/fs/ocfs2/cluster/tcp.c | 1
a/fs/ocfs2/namei.c | 4
a/fs/proc/kcore.c | 2
a/fs/proc/meminfo.c | 2
a/fs/userfaultfd.c | 20
a/include/linux/cgroup-defs.h | 15
a/include/linux/compaction.h | 12
a/include/linux/fs.h | 2
a/include/linux/gfp.h | 2
a/include/linux/highmem.h | 19
a/include/linux/huge_mm.h | 93 --
a/include/linux/memcontrol.h | 148 ---
a/include/linux/migrate.h | 4
a/include/linux/mm.h | 118 +-
a/include/linux/mm_types.h | 8
a/include/linux/mmap_lock.h | 94 ++
a/include/linux/mmzone.h | 50 -
a/include/linux/page-flags.h | 6
a/include/linux/page_ext.h | 8
a/include/linux/pagevec.h | 3
a/include/linux/poison.h | 4
a/include/linux/rmap.h | 1
a/include/linux/sched/mm.h | 16
a/include/linux/set_memory.h | 5
a/include/linux/shmem_fs.h | 6
a/include/linux/slab.h | 18
a/include/linux/vmalloc.h | 8
a/include/linux/vmstat.h | 104 ++
a/include/trace/events/sched.h | 84 +
a/include/uapi/linux/const.h | 5
a/include/uapi/linux/ethtool.h | 2
a/include/uapi/linux/kernel.h | 9
a/include/uapi/linux/lightnvm.h | 2
a/include/uapi/linux/mroute6.h | 2
a/include/uapi/linux/netfilter/x_tables.h | 2
a/include/uapi/linux/netlink.h | 2
a/include/uapi/linux/sysctl.h | 2
a/include/uapi/linux/userfaultfd.h | 9
a/init/main.c | 6
a/ipc/shm.c | 8
a/kernel/cgroup/cgroup.c | 12
a/kernel/fork.c | 3
a/kernel/kthread.c | 29
a/kernel/power/hibernate.c | 2
a/kernel/power/power.h | 2
a/kernel/power/snapshot.c | 52 +
a/kernel/ptrace.c | 2
a/kernel/workqueue.c | 3
a/lib/locking-selftest.c | 47 +
a/lib/test_kasan_module.c | 29
a/mm/Kconfig | 25
a/mm/Kconfig.debug | 28
a/mm/Makefile | 4
a/mm/backing-dev.c | 8
a/mm/cma.c | 6
a/mm/compaction.c | 29
a/mm/filemap.c | 823 ++++++++++---------
a/mm/gup.c | 329 ++-----
a/mm/gup_benchmark.c | 210 ----
a/mm/gup_test.c | 299 ++++++
a/mm/gup_test.h | 40
a/mm/highmem.c | 52 +
a/mm/huge_memory.c | 86 +
a/mm/hugetlb.c | 28
a/mm/init-mm.c | 1
a/mm/internal.h | 5
a/mm/kasan/generic.c | 3
a/mm/kasan/report.c | 4
a/mm/khugepaged.c | 58 -
a/mm/ksm.c | 50 -
a/mm/madvise.c | 14
a/mm/mapping_dirty_helpers.c | 6
a/mm/memblock.c | 80 +
a/mm/memcontrol.c | 170 +--
a/mm/memory-failure.c | 322 +++----
a/mm/memory.c | 24
a/mm/memory_hotplug.c | 44 -
a/mm/mempolicy.c | 8
a/mm/migrate.c | 183 ++--
a/mm/mm_init.c | 1
a/mm/mmap.c | 22
a/mm/mmap_lock.c | 230 +++++
a/mm/mmu_notifier.c | 7
a/mm/mmzone.c | 14
a/mm/mremap.c | 282 ++++--
a/mm/nommu.c | 8
a/mm/oom_kill.c | 14
a/mm/page_alloc.c | 517 ++++++-----
a/mm/page_counter.c | 4
a/mm/page_ext.c | 10
a/mm/page_isolation.c | 18
a/mm/page_owner.c | 17
a/mm/page_poison.c | 56 -
a/mm/page_vma_mapped.c | 9
a/mm/process_vm_access.c | 2
a/mm/rmap.c | 9
a/mm/shmem.c | 39
a/mm/slab.c | 10
a/mm/slab.h | 9
a/mm/slab_common.c | 10
a/mm/slob.c | 6
a/mm/slub.c | 156 +--
a/mm/swap.c | 12
a/mm/swap_state.c | 7
a/mm/swapfile.c | 14
a/mm/truncate.c | 18
a/mm/vmalloc.c | 105 +-
a/mm/vmscan.c | 21
a/mm/vmstat.c | 6
a/mm/workingset.c | 8
a/mm/z3fold.c | 215 ++--
a/mm/zsmalloc.c | 11
a/mm/zswap.c | 193 +++-
a/sound/core/pcm_lib.c | 4
a/tools/include/linux/poison.h | 6
a/tools/testing/selftests/vm/.gitignore | 4
a/tools/testing/selftests/vm/Makefile | 41
a/tools/testing/selftests/vm/check_config.sh | 31
a/tools/testing/selftests/vm/config | 2
a/tools/testing/selftests/vm/gup_benchmark.c | 143 ---
a/tools/testing/selftests/vm/gup_test.c | 258 +++++
a/tools/testing/selftests/vm/hmm-tests.c | 10
a/tools/testing/selftests/vm/mremap_test.c | 344 +++++++
a/tools/testing/selftests/vm/run_vmtests | 51 -
a/tools/testing/selftests/vm/userfaultfd.c | 94 --
217 files changed, 4817 insertions(+), 3369 deletions(-)
^ permalink raw reply [flat|nested] 215+ messages in thread
* incoming
@ 2020-12-11 21:35 Andrew Morton
0 siblings, 0 replies; 215+ messages in thread
From: Andrew Morton @ 2020-12-11 21:35 UTC (permalink / raw)
To: Linus Torvalds; +Cc: mm-commits, linux-mm
8 patches, based on 33dc9614dc208291d0c4bcdeb5d30d481dcd2c4c.
Subsystems affected by this patch series:
mm/pagecache
proc
selftests
kbuild
mm/kasan
mm/hugetlb
Subsystem: mm/pagecache
Andrew Morton <akpm@linux-foundation.org>:
revert "mm/filemap: add static for function __add_to_page_cache_locked"
Subsystem: proc
Miles Chen <miles.chen@mediatek.com>:
proc: use untagged_addr() for pagemap_read addresses
Subsystem: selftests
Arnd Bergmann <arnd@arndb.de>:
selftest/fpu: avoid clang warning
Subsystem: kbuild
Arnd Bergmann <arnd@arndb.de>:
kbuild: avoid static_assert for genksyms
initramfs: fix clang build failure
elfcore: fix building with clang
Subsystem: mm/kasan
Kuan-Ying Lee <Kuan-Ying.Lee@mediatek.com>:
kasan: fix object remaining in offline per-cpu quarantine
Subsystem: mm/hugetlb
Gerald Schaefer <gerald.schaefer@linux.ibm.com>:
mm/hugetlb: clear compound_nr before freeing gigantic pages
fs/proc/task_mmu.c | 8 ++++++--
include/linux/build_bug.h | 5 +++++
include/linux/elfcore.h | 22 ++++++++++++++++++++++
init/initramfs.c | 2 +-
kernel/Makefile | 1 -
kernel/elfcore.c | 26 --------------------------
lib/Makefile | 3 ++-
mm/filemap.c | 2 +-
mm/hugetlb.c | 1 +
mm/kasan/quarantine.c | 39 +++++++++++++++++++++++++++++++++++++++
10 files changed, 77 insertions(+), 32 deletions(-)
^ permalink raw reply [flat|nested] 215+ messages in thread
* incoming
@ 2020-12-06 6:14 Andrew Morton
0 siblings, 0 replies; 215+ messages in thread
From: Andrew Morton @ 2020-12-06 6:14 UTC (permalink / raw)
To: Linus Torvalds; +Cc: mm-commits, linux-mm
12 patches, based on 33256ce194110874d4bc90078b577c59f9076c59.
Subsystems affected by this patch series:
lib
coredump
mm/memcg
mm/zsmalloc
mm/swap
mailmap
mm/selftests
mm/pagecache
mm/hugetlb
mm/pagemap
Subsystem: lib
Randy Dunlap <rdunlap@infradead.org>:
zlib: export S390 symbols for zlib modules
Subsystem: coredump
Menglong Dong <dong.menglong@zte.com.cn>:
coredump: fix core_pattern parse error
Subsystem: mm/memcg
Roman Gushchin <guro@fb.com>:
mm: memcg/slab: fix obj_cgroup_charge() return value handling
Yang Shi <shy828301@gmail.com>:
mm: list_lru: set shrinker map bit when child nr_items is not zero
Subsystem: mm/zsmalloc
Minchan Kim <minchan@kernel.org>:
mm/zsmalloc.c: drop ZSMALLOC_PGTABLE_MAPPING
Subsystem: mm/swap
Qian Cai <qcai@redhat.com>:
mm/swapfile: do not sleep with a spin lock held
Subsystem: mailmap
Uwe Kleine-König <u.kleine-koenig@pengutronix.de>:
mailmap: add two more addresses of Uwe Kleine-König
Subsystem: mm/selftests
Xingxing Su <suxingxing@loongson.cn>:
tools/testing/selftests/vm: fix build error
Axel Rasmussen <axelrasmussen@google.com>:
userfaultfd: selftests: fix SIGSEGV if huge mmap fails
Subsystem: mm/pagecache
Alex Shi <alex.shi@linux.alibaba.com>:
mm/filemap: add static for function __add_to_page_cache_locked
Subsystem: mm/hugetlb
Mike Kravetz <mike.kravetz@oracle.com>:
hugetlb_cgroup: fix offline of hugetlb cgroup with reservations
Subsystem: mm/pagemap
Liu Zixian <liuzixian4@huawei.com>:
mm/mmap.c: fix mmap return value when vma is merged after call_mmap()
.mailmap | 2 +
arch/arm/configs/omap2plus_defconfig | 1
fs/coredump.c | 3 +
include/linux/zsmalloc.h | 1
lib/zlib_dfltcc/dfltcc_inflate.c | 3 +
mm/Kconfig | 13 -------
mm/filemap.c | 2 -
mm/hugetlb_cgroup.c | 8 +---
mm/list_lru.c | 10 ++---
mm/mmap.c | 26 ++++++--------
mm/slab.h | 40 +++++++++++++---------
mm/swapfile.c | 4 +-
mm/zsmalloc.c | 54 -------------------------------
tools/testing/selftests/vm/Makefile | 4 ++
tools/testing/selftests/vm/userfaultfd.c | 25 +++++++++-----
15 files changed, 75 insertions(+), 121 deletions(-)
^ permalink raw reply [flat|nested] 215+ messages in thread
* incoming
@ 2020-11-22 6:16 Andrew Morton
0 siblings, 0 replies; 215+ messages in thread
From: Andrew Morton @ 2020-11-22 6:16 UTC (permalink / raw)
To: Linus Torvalds; +Cc: mm-commits, linux-mm
8 patches, based on a349e4c659609fd20e4beea89e5c4a4038e33a95.
Subsystems affected by this patch series:
mm/madvise
kbuild
mm/pagemap
mm/readahead
mm/memcg
mm/userfaultfd
vfs-akpm
mm/madvise
Subsystem: mm/madvise
Eric Dumazet <edumazet@google.com>:
mm/madvise: fix memory leak from process_madvise
Subsystem: kbuild
Nick Desaulniers <ndesaulniers@google.com>:
compiler-clang: remove version check for BPF Tracing
Subsystem: mm/pagemap
Dan Williams <dan.j.williams@intel.com>:
mm: fix phys_to_target_node() and memory_add_physaddr_to_nid() exports
Subsystem: mm/readahead
"Matthew Wilcox (Oracle)" <willy@infradead.org>:
mm: fix readahead_page_batch for retry entries
Subsystem: mm/memcg
Muchun Song <songmuchun@bytedance.com>:
mm: memcg/slab: fix root memcg vmstats
Subsystem: mm/userfaultfd
Gerald Schaefer <gerald.schaefer@linux.ibm.com>:
mm/userfaultfd: do not access vma->vm_mm after calling handle_userfault()
Subsystem: vfs-akpm
Yicong Yang <yangyicong@hisilicon.com>:
libfs: fix error cast of negative value in simple_attr_write()
Subsystem: mm/madvise
"Matthew Wilcox (Oracle)" <willy@infradead.org>:
mm: fix madvise WILLNEED performance problem
arch/ia64/include/asm/sparsemem.h | 6 ++++++
arch/powerpc/include/asm/mmzone.h | 5 +++++
arch/powerpc/include/asm/sparsemem.h | 5 ++---
arch/powerpc/mm/mem.c | 1 +
arch/x86/include/asm/sparsemem.h | 10 ++++++++++
arch/x86/mm/numa.c | 2 ++
drivers/dax/Kconfig | 1 -
fs/libfs.c | 6 ++++--
include/linux/compiler-clang.h | 2 ++
include/linux/memory_hotplug.h | 14 --------------
include/linux/numa.h | 30 +++++++++++++++++++++++++++++-
include/linux/pagemap.h | 2 ++
mm/huge_memory.c | 9 ++++-----
mm/madvise.c | 4 +---
mm/memcontrol.c | 9 +++++++--
mm/memory_hotplug.c | 18 ------------------
16 files changed, 75 insertions(+), 49 deletions(-)
^ permalink raw reply [flat|nested] 215+ messages in thread
* incoming
@ 2020-11-14 6:51 Andrew Morton
0 siblings, 0 replies; 215+ messages in thread
From: Andrew Morton @ 2020-11-14 6:51 UTC (permalink / raw)
To: Linus Torvalds; +Cc: linux-mm, mm-commits
14 patches, based on 9e6a39eae450b81c8b2c8cbbfbdf8218e9b40c81.
Subsystems affected by this patch series:
mm/migration
mm/vmscan
mailmap
mm/slub
mm/gup
kbuild
reboot
kernel/watchdog
mm/memcg
mm/hugetlbfs
panic
ocfs2
Subsystem: mm/migration
Zi Yan <ziy@nvidia.com>:
mm/compaction: count pages and stop correctly during page isolation
mm/compaction: stop isolation if too many pages are isolated and we have pages to migrate
Subsystem: mm/vmscan
Nicholas Piggin <npiggin@gmail.com>:
mm/vmscan: fix NR_ISOLATED_FILE corruption on 64-bit
Subsystem: mailmap
Dmitry Baryshkov <dbaryshkov@gmail.com>:
mailmap: fix entry for Dmitry Baryshkov/Eremin-Solenikov
Subsystem: mm/slub
Laurent Dufour <ldufour@linux.ibm.com>:
mm/slub: fix panic in slab_alloc_node()
Subsystem: mm/gup
Jason Gunthorpe <jgg@nvidia.com>:
mm/gup: use unpin_user_pages() in __gup_longterm_locked()
Subsystem: kbuild
Arvind Sankar <nivedita@alum.mit.edu>:
compiler.h: fix barrier_data() on clang
Subsystem: reboot
Matteo Croce <mcroce@microsoft.com>:
Patch series "fix parsing of reboot= cmdline", v3:
Revert "kernel/reboot.c: convert simple_strtoul to kstrtoint"
reboot: fix overflow parsing reboot cpu number
Subsystem: kernel/watchdog
Santosh Sivaraj <santosh@fossix.org>:
kernel/watchdog: fix watchdog_allowed_mask not used warning
Subsystem: mm/memcg
Muchun Song <songmuchun@bytedance.com>:
mm: memcontrol: fix missing wakeup polling thread
Subsystem: mm/hugetlbfs
Mike Kravetz <mike.kravetz@oracle.com>:
hugetlbfs: fix anon huge page migration race
Subsystem: panic
Christophe Leroy <christophe.leroy@csgroup.eu>:
panic: don't dump stack twice on warn
Subsystem: ocfs2
Wengang Wang <wen.gang.wang@oracle.com>:
ocfs2: initialize ip_next_orphan
.mailmap | 5 +-
fs/ocfs2/super.c | 1
include/asm-generic/barrier.h | 1
include/linux/compiler-clang.h | 6 --
include/linux/compiler-gcc.h | 19 --------
include/linux/compiler.h | 18 +++++++-
include/linux/memcontrol.h | 11 ++++-
kernel/panic.c | 3 -
kernel/reboot.c | 28 ++++++------
kernel/watchdog.c | 4 -
mm/compaction.c | 12 +++--
mm/gup.c | 14 ++++--
mm/hugetlb.c | 90 ++---------------------------------------
mm/memory-failure.c | 36 +++++++---------
mm/migrate.c | 46 +++++++++++---------
mm/rmap.c | 5 --
mm/slub.c | 2
mm/vmscan.c | 5 +-
18 files changed, 119 insertions(+), 187 deletions(-)
^ permalink raw reply [flat|nested] 215+ messages in thread
* incoming
@ 2020-11-02 1:06 Andrew Morton
0 siblings, 0 replies; 215+ messages in thread
From: Andrew Morton @ 2020-11-02 1:06 UTC (permalink / raw)
To: Linus Torvalds; +Cc: mm-commits, linux-mm
15 patches, based on 3cea11cd5e3b00d91caf0b4730194039b45c5891.
Subsystems affected by this patch series:
mm/memremap
mm/memcg
mm/slab-generic
mm/kasan
mm/mempolicy
signals
lib
mm/pagecache
kthread
mm/oom-kill
mm/pagemap
epoll
core-kernel
Subsystem: mm/memremap
Ralph Campbell <rcampbell@nvidia.com>:
mm/mremap_pages: fix static key devmap_managed_key updates
Subsystem: mm/memcg
Mike Kravetz <mike.kravetz@oracle.com>:
hugetlb_cgroup: fix reservation accounting
zhongjiang-ali <zhongjiang-ali@linux.alibaba.com>:
mm: memcontrol: correct the NR_ANON_THPS counter of hierarchical memcg
Roman Gushchin <guro@fb.com>:
mm: memcg: link page counters to root if use_hierarchy is false
Subsystem: mm/slab-generic
Subsystem: mm/kasan
Andrey Konovalov <andreyknvl@google.com>:
kasan: adopt KUNIT tests to SW_TAGS mode
Subsystem: mm/mempolicy
Shijie Luo <luoshijie1@huawei.com>:
mm: mempolicy: fix potential pte_unmap_unlock pte error
Subsystem: signals
Oleg Nesterov <oleg@redhat.com>:
ptrace: fix task_join_group_stop() for the case when current is traced
Subsystem: lib
Vasily Gorbik <gor@linux.ibm.com>:
lib/crc32test: remove extra local_irq_disable/enable
Subsystem: mm/pagecache
Jason Yan <yanaijie@huawei.com>:
mm/truncate.c: make __invalidate_mapping_pages() static
Subsystem: kthread
Zqiang <qiang.zhang@windriver.com>:
kthread_worker: prevent queuing delayed work from timer_fn when it is being canceled
Subsystem: mm/oom-kill
Charles Haithcock <chaithco@redhat.com>:
mm, oom: keep oom_adj under or at upper limit when printing
Subsystem: mm/pagemap
Jason Gunthorpe <jgg@nvidia.com>:
mm: always have io_remap_pfn_range() set pgprot_decrypted()
Subsystem: epoll
Soheil Hassas Yeganeh <soheil@google.com>:
epoll: check ep_events_available() upon timeout
epoll: add a selftest for epoll timeout race
Subsystem: core-kernel
Lukas Bulwahn <lukas.bulwahn@gmail.com>:
kernel/hung_task.c: make type annotations consistent
fs/eventpoll.c | 16 +
fs/proc/base.c | 2
include/linux/mm.h | 9
include/linux/pgtable.h | 4
kernel/hung_task.c | 3
kernel/kthread.c | 3
kernel/signal.c | 19 -
lib/crc32test.c | 4
lib/test_kasan.c | 149 +++++++---
mm/hugetlb.c | 20 -
mm/memcontrol.c | 25 +
mm/mempolicy.c | 6
mm/memremap.c | 39 +-
mm/truncate.c | 2
tools/testing/selftests/filesystems/epoll/epoll_wakeup_test.c | 95 ++++++
15 files changed, 290 insertions(+), 106 deletions(-)
^ permalink raw reply [flat|nested] 215+ messages in thread
* incoming
@ 2020-10-17 23:13 Andrew Morton
0 siblings, 0 replies; 215+ messages in thread
From: Andrew Morton @ 2020-10-17 23:13 UTC (permalink / raw)
To: Linus Torvalds; +Cc: mm-commits, linux-mm
40 patches, based on 9d9af1007bc08971953ae915d88dc9bb21344b53.
Subsystems affected by this patch series:
ia64
mm/memcg
mm/migration
mm/pagemap
mm/gup
mm/madvise
mm/vmalloc
misc
Subsystem: ia64
Krzysztof Kozlowski <krzk@kernel.org>:
ia64: fix build error with !COREDUMP
Subsystem: mm/memcg
Roman Gushchin <guro@fb.com>:
mm, memcg: rework remote charging API to support nesting
Patch series "mm: kmem: kernel memory accounting in an interrupt context":
mm: kmem: move memcg_kmem_bypass() calls to get_mem/obj_cgroup_from_current()
mm: kmem: remove redundant checks from get_obj_cgroup_from_current()
mm: kmem: prepare remote memcg charging infra for interrupt contexts
mm: kmem: enable kernel memcg accounting from interrupt contexts
Subsystem: mm/migration
Joonsoo Kim <iamjoonsoo.kim@lge.com>:
mm/memory-failure: remove a wrapper for alloc_migration_target()
mm/memory_hotplug: remove a wrapper for alloc_migration_target()
Miaohe Lin <linmiaohe@huawei.com>:
mm/migrate: avoid possible unnecessary process right check in kernel_move_pages()
Subsystem: mm/pagemap
"Liam R. Howlett" <Liam.Howlett@Oracle.com>:
mm/mmap: add inline vma_next() for readability of mmap code
mm/mmap: add inline munmap_vma_range() for code readability
Subsystem: mm/gup
Jann Horn <jannh@google.com>:
mm/gup_benchmark: take the mmap lock around GUP
binfmt_elf: take the mmap lock around find_extend_vma()
mm/gup: assert that the mmap lock is held in __get_user_pages()
John Hubbard <jhubbard@nvidia.com>:
Patch series "selftests/vm: gup_test, hmm-tests, assorted improvements", v2:
mm/gup_benchmark: rename to mm/gup_test
selftests/vm: use a common gup_test.h
selftests/vm: rename run_vmtests --> run_vmtests.sh
selftests/vm: minor cleanup: Makefile and gup_test.c
selftests/vm: only some gup_test items are really benchmarks
selftests/vm: gup_test: introduce the dump_pages() sub-test
selftests/vm: run_vmtests.sh: update and clean up gup_test invocation
selftests/vm: hmm-tests: remove the libhugetlbfs dependency
selftests/vm: 10x speedup for hmm-tests
Subsystem: mm/madvise
Minchan Kim <minchan@kernel.org>:
Patch series "introduce memory hinting API for external process", v9:
mm/madvise: pass mm to do_madvise
pid: move pidfd_get_pid() to pid.c
mm/madvise: introduce process_madvise() syscall: an external memory hinting API
Subsystem: mm/vmalloc
"Matthew Wilcox (Oracle)" <willy@infradead.org>:
Patch series "remove alloc_vm_area", v4:
mm: update the documentation for vfree
Christoph Hellwig <hch@lst.de>:
mm: add a VM_MAP_PUT_PAGES flag for vmap
mm: add a vmap_pfn function
mm: allow a NULL fn callback in apply_to_page_range
zsmalloc: switch from alloc_vm_area to get_vm_area
drm/i915: use vmap in shmem_pin_map
drm/i915: stop using kmap in i915_gem_object_map
drm/i915: use vmap in i915_gem_object_map
xen/xenbus: use apply_to_page_range directly in xenbus_map_ring_pv
x86/xen: open code alloc_vm_area in arch_gnttab_valloc
mm: remove alloc_vm_area
Patch series "two small vmalloc cleanups":
mm: cleanup the gfp_mask handling in __vmalloc_area_node
mm: remove the filename in the top of file comment in vmalloc.c
Subsystem: misc
Tian Tao <tiantao6@hisilicon.com>:
mm: remove duplicate include statement in mmu.c
Documentation/core-api/pin_user_pages.rst | 8
arch/alpha/kernel/syscalls/syscall.tbl | 1
arch/arm/mm/mmu.c | 1
arch/arm/tools/syscall.tbl | 1
arch/arm64/include/asm/unistd.h | 2
arch/arm64/include/asm/unistd32.h | 2
arch/ia64/kernel/Makefile | 2
arch/ia64/kernel/syscalls/syscall.tbl | 1
arch/m68k/kernel/syscalls/syscall.tbl | 1
arch/microblaze/kernel/syscalls/syscall.tbl | 1
arch/mips/kernel/syscalls/syscall_n32.tbl | 1
arch/mips/kernel/syscalls/syscall_n64.tbl | 1
arch/mips/kernel/syscalls/syscall_o32.tbl | 1
arch/parisc/kernel/syscalls/syscall.tbl | 1
arch/powerpc/kernel/syscalls/syscall.tbl | 1
arch/s390/configs/debug_defconfig | 2
arch/s390/configs/defconfig | 2
arch/s390/kernel/syscalls/syscall.tbl | 1
arch/sh/kernel/syscalls/syscall.tbl | 1
arch/sparc/kernel/syscalls/syscall.tbl | 1
arch/x86/entry/syscalls/syscall_32.tbl | 1
arch/x86/entry/syscalls/syscall_64.tbl | 1
arch/x86/xen/grant-table.c | 27 +-
arch/xtensa/kernel/syscalls/syscall.tbl | 1
drivers/gpu/drm/i915/Kconfig | 1
drivers/gpu/drm/i915/gem/i915_gem_pages.c | 136 ++++------
drivers/gpu/drm/i915/gt/shmem_utils.c | 78 +-----
drivers/xen/xenbus/xenbus_client.c | 30 +-
fs/binfmt_elf.c | 3
fs/buffer.c | 6
fs/io_uring.c | 2
fs/notify/fanotify/fanotify.c | 5
fs/notify/inotify/inotify_fsnotify.c | 5
include/linux/memcontrol.h | 12
include/linux/mm.h | 2
include/linux/pid.h | 1
include/linux/sched/mm.h | 43 +--
include/linux/syscalls.h | 2
include/linux/vmalloc.h | 7
include/uapi/asm-generic/unistd.h | 4
kernel/exit.c | 19 -
kernel/pid.c | 19 +
kernel/sys_ni.c | 1
mm/Kconfig | 24 +
mm/Makefile | 2
mm/gup.c | 2
mm/gup_benchmark.c | 225 ------------------
mm/gup_test.c | 295 +++++++++++++++++++++--
mm/gup_test.h | 40 ++-
mm/madvise.c | 125 ++++++++--
mm/memcontrol.c | 83 ++++--
mm/memory-failure.c | 18 -
mm/memory.c | 16 -
mm/memory_hotplug.c | 46 +--
mm/migrate.c | 71 +++--
mm/mmap.c | 74 ++++-
mm/nommu.c | 7
mm/percpu.c | 3
mm/slab.h | 3
mm/vmalloc.c | 147 +++++------
mm/zsmalloc.c | 10
tools/testing/selftests/vm/.gitignore | 3
tools/testing/selftests/vm/Makefile | 40 ++-
tools/testing/selftests/vm/check_config.sh | 31 ++
tools/testing/selftests/vm/config | 2
tools/testing/selftests/vm/gup_benchmark.c | 143 -----------
tools/testing/selftests/vm/gup_test.c | 260 ++++++++++++++++++--
tools/testing/selftests/vm/hmm-tests.c | 12
tools/testing/selftests/vm/run_vmtests | 334 --------------------------
tools/testing/selftests/vm/run_vmtests.sh | 350 +++++++++++++++++++++++++++-
70 files changed, 1580 insertions(+), 1224 deletions(-)
^ permalink raw reply [flat|nested] 215+ messages in thread
* Re: incoming
2020-10-16 2:40 incoming Andrew Morton
@ 2020-10-16 3:03 ` Andrew Morton
0 siblings, 0 replies; 215+ messages in thread
From: Andrew Morton @ 2020-10-16 3:03 UTC (permalink / raw)
To: Linus Torvalds, mm-commits, linux-mm
And... I forgot to set in-reply-to :(
Shall resend, omitting linux-mm.
^ permalink raw reply [flat|nested] 215+ messages in thread
* incoming
@ 2020-10-16 2:40 Andrew Morton
2020-10-16 3:03 ` incoming Andrew Morton
0 siblings, 1 reply; 215+ messages in thread
From: Andrew Morton @ 2020-10-16 2:40 UTC (permalink / raw)
To: Linus Torvalds; +Cc: mm-commits, linux-mm
- most of the rest of mm/
- various other subsystems
156 patches, based on 578a7155c5a1894a789d4ece181abf9d25dc6b0d.
Subsystems affected by this patch series:
mm/dax
mm/debug
mm/thp
mm/readahead
mm/page-poison
mm/util
mm/memory-hotplug
mm/zram
mm/cleanups
misc
core-kernel
get_maintainer
MAINTAINERS
lib
bitops
checkpatch
binfmt
ramfs
autofs
nilfs
rapidio
panic
relay
kgdb
ubsan
romfs
fault-injection
Subsystem: mm/dax
Dan Williams <dan.j.williams@intel.com>:
device-dax/kmem: fix resource release
Subsystem: mm/debug
"Aneesh Kumar K.V" <aneesh.kumar@linux.ibm.com>:
Patch series "mm/debug_vm_pgtable fixes", v4:
powerpc/mm: add DEBUG_VM WARN for pmd_clear
powerpc/mm: move setting pte specific flags to pfn_pte
mm/debug_vm_pgtable/ppc64: avoid setting top bits in radom value
mm/debug_vm_pgtables/hugevmap: use the arch helper to identify huge vmap support.
mm/debug_vm_pgtable/savedwrite: enable savedwrite test with CONFIG_NUMA_BALANCING
mm/debug_vm_pgtable/THP: mark the pte entry huge before using set_pmd/pud_at
mm/debug_vm_pgtable/set_pte/pmd/pud: don't use set_*_at to update an existing pte entry
mm/debug_vm_pgtable/locks: move non page table modifying test together
mm/debug_vm_pgtable/locks: take correct page table lock
mm/debug_vm_pgtable/thp: use page table depost/withdraw with THP
mm/debug_vm_pgtable/pmd_clear: don't use pmd/pud_clear on pte entries
mm/debug_vm_pgtable/hugetlb: disable hugetlb test on ppc64
mm/debug_vm_pgtable: avoid none pte in pte_clear_test
mm/debug_vm_pgtable: avoid doing memory allocation with pgtable_t mapped.
Subsystem: mm/thp
"Matthew Wilcox (Oracle)" <willy@infradead.org>:
Patch series "Fix read-only THP for non-tmpfs filesystems":
XArray: add xa_get_order
XArray: add xas_split
mm/filemap: fix storing to a THP shadow entry
Patch series "Remove assumptions of THP size":
mm/filemap: fix page cache removal for arbitrary sized THPs
mm/memory: remove page fault assumption of compound page size
mm/page_owner: change split_page_owner to take a count
"Kirill A. Shutemov" <kirill@shutemov.name>:
mm/huge_memory: fix total_mapcount assumption of page size
mm/huge_memory: fix split assumption of page size
"Matthew Wilcox (Oracle)" <willy@infradead.org>:
mm/huge_memory: fix page_trans_huge_mapcount assumption of THP size
mm/huge_memory: fix can_split_huge_page assumption of THP size
mm/rmap: fix assumptions of THP size
mm/truncate: fix truncation for pages of arbitrary size
mm/page-writeback: support tail pages in wait_for_stable_page
mm/vmscan: allow arbitrary sized pages to be paged out
fs: add a filesystem flag for THPs
fs: do not update nr_thps for mappings which support THPs
Huang Ying <ying.huang@intel.com>:
mm: fix a race during THP splitting
Subsystem: mm/readahead
"Matthew Wilcox (Oracle)" <willy@infradead.org>:
Patch series "Readahead patches for 5.9/5.10":
mm/readahead: add DEFINE_READAHEAD
mm/readahead: make page_cache_ra_unbounded take a readahead_control
mm/readahead: make do_page_cache_ra take a readahead_control
David Howells <dhowells@redhat.com>:
mm/readahead: make ondemand_readahead take a readahead_control
mm/readahead: pass readahead_control to force_page_cache_ra
"Matthew Wilcox (Oracle)" <willy@infradead.org>:
mm/readahead: add page_cache_sync_ra and page_cache_async_ra
David Howells <dhowells@redhat.com>:
mm/filemap: fold ra_submit into do_sync_mmap_readahead
mm/readahead: pass a file_ra_state into force_page_cache_ra
Subsystem: mm/page-poison
Naoya Horiguchi <naoya.horiguchi@nec.com>:
Patch series "HWPOISON: soft offline rework", v7:
mm,hwpoison: cleanup unused PageHuge() check
mm, hwpoison: remove recalculating hpage
mm,hwpoison-inject: don't pin for hwpoison_filter
Oscar Salvador <osalvador@suse.de>:
mm,hwpoison: unexport get_hwpoison_page and make it static
mm,hwpoison: refactor madvise_inject_error
mm,hwpoison: kill put_hwpoison_page
mm,hwpoison: unify THP handling for hard and soft offline
mm,hwpoison: rework soft offline for free pages
mm,hwpoison: rework soft offline for in-use pages
mm,hwpoison: refactor soft_offline_huge_page and __soft_offline_page
mm,hwpoison: return 0 if the page is already poisoned in soft-offline
Naoya Horiguchi <naoya.horiguchi@nec.com>:
mm,hwpoison: introduce MF_MSG_UNSPLIT_THP
mm,hwpoison: double-check page count in __get_any_page()
Oscar Salvador <osalvador@suse.de>:
mm,hwpoison: try to narrow window race for free pages
Mateusz Nosek <mateusznosek0@gmail.com>:
mm/page_poison.c: replace bool variable with static key
Miaohe Lin <linmiaohe@huawei.com>:
mm/vmstat.c: use helper macro abs()
Subsystem: mm/util
Bartosz Golaszewski <bgolaszewski@baylibre.com>:
mm/util.c: update the kerneldoc for kstrdup_const()
Jann Horn <jannh@google.com>:
mm/mmu_notifier: fix mmget() assert in __mmu_interval_notifier_insert
Subsystem: mm/memory-hotplug
David Hildenbrand <david@redhat.com>:
Patch series "mm/memory_hotplug: online_pages()/offline_pages() cleanups", v2:
mm/memory_hotplug: inline __offline_pages() into offline_pages()
mm/memory_hotplug: enforce section granularity when onlining/offlining
mm/memory_hotplug: simplify page offlining
mm/page_alloc: simplify __offline_isolated_pages()
mm/memory_hotplug: drop nr_isolate_pageblock in offline_pages()
mm/page_isolation: simplify return value of start_isolate_page_range()
mm/memory_hotplug: simplify page onlining
mm/page_alloc: drop stale pageblock comment in memmap_init_zone*()
mm: pass migratetype into memmap_init_zone() and move_pfn_range_to_zone()
mm/memory_hotplug: mark pageblocks MIGRATE_ISOLATE while onlining memory
Patch series "selective merging of system ram resources", v4:
kernel/resource: make release_mem_region_adjustable() never fail
kernel/resource: move and rename IORESOURCE_MEM_DRIVER_MANAGED
mm/memory_hotplug: guard more declarations by CONFIG_MEMORY_HOTPLUG
mm/memory_hotplug: prepare passing flags to add_memory() and friends
mm/memory_hotplug: MEMHP_MERGE_RESOURCE to specify merging of System RAM resources
virtio-mem: try to merge system ram resources
xen/balloon: try to merge system ram resources
hv_balloon: try to merge system ram resources
kernel/resource: make iomem_resource implicit in release_mem_region_adjustable()
Laurent Dufour <ldufour@linux.ibm.com>:
mm: don't panic when links can't be created in sysfs
David Hildenbrand <david@redhat.com>:
Patch series "mm: place pages to the freelist tail when onlining and undoing isolation", v2:
mm/page_alloc: convert "report" flag of __free_one_page() to a proper flag
mm/page_alloc: place pages to tail in __putback_isolated_page()
mm/page_alloc: move pages to tail in move_to_free_list()
mm/page_alloc: place pages to tail in __free_pages_core()
mm/memory_hotplug: update comment regarding zone shuffling
Subsystem: mm/zram
Douglas Anderson <dianders@chromium.org>:
zram: failing to decompress is WARN_ON worthy
Subsystem: mm/cleanups
YueHaibing <yuehaibing@huawei.com>:
mm/slab.h: remove duplicate include
Wei Yang <richard.weiyang@linux.alibaba.com>:
mm/page_reporting.c: drop stale list head check in page_reporting_cycle
Ira Weiny <ira.weiny@intel.com>:
mm/highmem.c: clean up endif comments
Yu Zhao <yuzhao@google.com>:
mm: use self-explanatory macros rather than "2"
Miaohe Lin <linmiaohe@huawei.com>:
mm: fix some broken comments
Chen Tao <chentao3@hotmail.com>:
mm: fix some comments formatting
Xiaofei Tan <tanxiaofei@huawei.com>:
mm/workingset.c: fix some doc warnings
Miaohe Lin <linmiaohe@huawei.com>:
mm: use helper function put_write_access()
Mike Rapoport <rppt@linux.ibm.com>:
include/linux/mmzone.h: remove unused early_pfn_valid()
"Matthew Wilcox (Oracle)" <willy@infradead.org>:
mm: rename page_order() to buddy_order()
Subsystem: misc
Randy Dunlap <rdunlap@infradead.org>:
fs: configfs: delete repeated words in comments
Andy Shevchenko <andriy.shevchenko@linux.intel.com>:
kernel.h: split out min()/max() et al. helpers
Subsystem: core-kernel
Liao Pingfang <liao.pingfang@zte.com.cn>:
kernel/sys.c: replace do_brk with do_brk_flags in comment of prctl_set_mm_map()
Randy Dunlap <rdunlap@infradead.org>:
kernel/: fix repeated words in comments
kernel: acct.c: fix some kernel-doc nits
Subsystem: get_maintainer
Joe Perches <joe@perches.com>:
get_maintainer: add test for file in VCS
Subsystem: MAINTAINERS
Joe Perches <joe@perches.com>:
get_maintainer: exclude MAINTAINERS file(s) from --git-fallback
Jarkko Sakkinen <jarkko.sakkinen@linux.intel.com>:
MAINTAINERS: jarkko.sakkinen@linux.intel.com -> jarkko@kernel.org
Subsystem: lib
Randy Dunlap <rdunlap@infradead.org>:
lib: bitmap: delete duplicated words
lib: libcrc32c: delete duplicated words
lib: decompress_bunzip2: delete duplicated words
lib: dynamic_queue_limits: delete duplicated words + fix typo
lib: earlycpio: delete duplicated words
lib: radix-tree: delete duplicated words
lib: syscall: delete duplicated words
lib: test_sysctl: delete duplicated words
lib/mpi/mpi-bit.c: fix spello of "functions"
Stephen Boyd <swboyd@chromium.org>:
lib/idr.c: document calling context for IDA APIs mustn't use locks
lib/idr.c: document that ida_simple_{get,remove}() are deprecated
Christophe JAILLET <christophe.jaillet@wanadoo.fr>:
lib/scatterlist.c: avoid a double memset
Miaohe Lin <linmiaohe@huawei.com>:
lib/percpu_counter.c: use helper macro abs()
Andy Shevchenko <andriy.shevchenko@linux.intel.com>:
include/linux/list.h: add a macro to test if entry is pointing to the head
Dan Carpenter <dan.carpenter@oracle.com>:
lib/test_hmm.c: fix an error code in dmirror_allocate_chunk()
Tobias Jordan <kernel@cdqe.de>:
lib/crc32.c: fix trivial typo in preprocessor condition
Subsystem: bitops
Wei Yang <richard.weiyang@linux.alibaba.com>:
bitops: simplify get_count_order_long()
bitops: use the same mechanism for get_count_order[_long]
Subsystem: checkpatch
Jerome Forissier <jerome@forissier.org>:
checkpatch: add --kconfig-prefix
Joe Perches <joe@perches.com>:
checkpatch: move repeated word test
checkpatch: add test for comma use that should be semicolon
Rikard Falkeborn <rikard.falkeborn@gmail.com>:
const_structs.checkpatch: add phy_ops
Nicolas Boichat <drinkcat@chromium.org>:
checkpatch: warn if trace_printk and friends are called
Rikard Falkeborn <rikard.falkeborn@gmail.com>:
const_structs.checkpatch: add pinctrl_ops and pinmux_ops
Joe Perches <joe@perches.com>:
checkpatch: warn on self-assignments
checkpatch: allow not using -f with files that are in git
Dwaipayan Ray <dwaipayanray1@gmail.com>:
checkpatch: extend author Signed-off-by check for split From: header
Joe Perches <joe@perches.com>:
checkpatch: emit a warning on embedded filenames
Dwaipayan Ray <dwaipayanray1@gmail.com>:
checkpatch: fix multi-statement macro checks for while blocks.
Łukasz Stelmach <l.stelmach@samsung.com>:
checkpatch: fix false positive on empty block comment lines
Dwaipayan Ray <dwaipayanray1@gmail.com>:
checkpatch: add new warnings to author signoff checks.
Subsystem: binfmt
Chris Kennelly <ckennelly@google.com>:
Patch series "Selecting Load Addresses According to p_align", v3:
fs/binfmt_elf: use PT_LOAD p_align values for suitable start address
tools/testing/selftests: add self-test for verifying load alignment
Jann Horn <jannh@google.com>:
Patch series "Fix ELF / FDPIC ELF core dumping, and use mmap_lock properly in there", v5:
binfmt_elf_fdpic: stop using dump_emit() on user pointers on !MMU
coredump: let dump_emit() bail out on short writes
coredump: refactor page range dumping into common helper
coredump: rework elf/elf_fdpic vma_dump_size() into common helper
binfmt_elf, binfmt_elf_fdpic: use a VMA list snapshot
mm/gup: take mmap_lock in get_dump_page()
mm: remove the now-unnecessary mmget_still_valid() hack
Subsystem: ramfs
Matthew Wilcox (Oracle) <willy@infradead.org>:
ramfs: fix nommu mmap with gaps in the page cache
Subsystem: autofs
Matthew Wilcox <willy@infradead.org>:
autofs: harden ioctl table
Subsystem: nilfs
Wang Hai <wanghai38@huawei.com>:
nilfs2: fix some kernel-doc warnings for nilfs2
Subsystem: rapidio
Souptick Joarder <jrdr.linux@gmail.com>:
rapidio: fix error handling path
Jing Xiangfeng <jingxiangfeng@huawei.com>:
rapidio: fix the missed put_device() for rio_mport_add_riodev
Subsystem: panic
Alexey Kardashevskiy <aik@ozlabs.ru>:
panic: dump registers on panic_on_warn
Subsystem: relay
Sudip Mukherjee <sudipm.mukherjee@gmail.com>:
kernel/relay.c: drop unneeded initialization
Subsystem: kgdb
Ritesh Harjani <riteshh@linux.ibm.com>:
scripts/gdb/proc: add struct mount & struct super_block addr in lx-mounts command
scripts/gdb/tasks: add headers and improve spacing format
Subsystem: ubsan
Elena Petrova <lenaptr@google.com>:
sched.h: drop in_ubsan field when UBSAN is in trap mode
George Popescu <georgepope@android.com>:
ubsan: introduce CONFIG_UBSAN_LOCAL_BOUNDS for Clang
Subsystem: romfs
Libing Zhou <libing.zhou@nokia-sbell.com>:
ROMFS: support inode blocks calculation
Subsystem: fault-injection
Albert van der Linde <alinde@google.com>:
Patch series "add fault injection to user memory access", v3:
lib, include/linux: add usercopy failure capability
lib, uaccess: add failure injection to usercopy functions
.mailmap | 1
Documentation/admin-guide/kernel-parameters.txt | 1
Documentation/core-api/xarray.rst | 14
Documentation/fault-injection/fault-injection.rst | 7
MAINTAINERS | 6
arch/ia64/mm/init.c | 4
arch/powerpc/include/asm/book3s/64/pgtable.h | 29 +
arch/powerpc/include/asm/nohash/pgtable.h | 5
arch/powerpc/mm/pgtable.c | 5
arch/powerpc/platforms/powernv/memtrace.c | 2
arch/powerpc/platforms/pseries/hotplug-memory.c | 2
drivers/acpi/acpi_memhotplug.c | 3
drivers/base/memory.c | 3
drivers/base/node.c | 33 +-
drivers/block/zram/zram_drv.c | 2
drivers/dax/kmem.c | 50 ++-
drivers/hv/hv_balloon.c | 4
drivers/infiniband/core/uverbs_main.c | 3
drivers/rapidio/devices/rio_mport_cdev.c | 18 -
drivers/s390/char/sclp_cmd.c | 2
drivers/vfio/pci/vfio_pci.c | 38 +-
drivers/virtio/virtio_mem.c | 5
drivers/xen/balloon.c | 4
fs/autofs/dev-ioctl.c | 8
fs/binfmt_elf.c | 267 +++-------------
fs/binfmt_elf_fdpic.c | 176 ++--------
fs/configfs/dir.c | 2
fs/configfs/file.c | 2
fs/coredump.c | 238 +++++++++++++-
fs/ext4/verity.c | 4
fs/f2fs/verity.c | 4
fs/inode.c | 2
fs/nilfs2/bmap.c | 2
fs/nilfs2/cpfile.c | 6
fs/nilfs2/page.c | 1
fs/nilfs2/sufile.c | 4
fs/proc/task_mmu.c | 18 -
fs/ramfs/file-nommu.c | 2
fs/romfs/super.c | 1
fs/userfaultfd.c | 28 -
include/linux/bitops.h | 13
include/linux/blkdev.h | 1
include/linux/bvec.h | 6
include/linux/coredump.h | 13
include/linux/fault-inject-usercopy.h | 22 +
include/linux/fs.h | 28 -
include/linux/idr.h | 13
include/linux/ioport.h | 15
include/linux/jiffies.h | 3
include/linux/kernel.h | 150 ---------
include/linux/list.h | 29 +
include/linux/memory_hotplug.h | 42 +-
include/linux/minmax.h | 153 +++++++++
include/linux/mm.h | 5
include/linux/mmzone.h | 17 -
include/linux/node.h | 16
include/linux/nodemask.h | 2
include/linux/page-flags.h | 6
include/linux/page_owner.h | 6
include/linux/pagemap.h | 111 ++++++
include/linux/sched.h | 2
include/linux/sched/mm.h | 25 -
include/linux/uaccess.h | 12
include/linux/vmstat.h | 2
include/linux/xarray.h | 22 +
include/ras/ras_event.h | 3
kernel/acct.c | 10
kernel/cgroup/cpuset.c | 2
kernel/dma/direct.c | 2
kernel/fork.c | 4
kernel/futex.c | 2
kernel/irq/timings.c | 2
kernel/jump_label.c | 2
kernel/kcsan/encoding.h | 2
kernel/kexec_core.c | 2
kernel/kexec_file.c | 2
kernel/kthread.c | 2
kernel/livepatch/state.c | 2
kernel/panic.c | 12
kernel/pid_namespace.c | 2
kernel/power/snapshot.c | 2
kernel/range.c | 3
kernel/relay.c | 2
kernel/resource.c | 114 +++++--
kernel/smp.c | 2
kernel/sys.c | 2
kernel/user_namespace.c | 2
lib/Kconfig.debug | 7
lib/Kconfig.ubsan | 14
lib/Makefile | 1
lib/bitmap.c | 2
lib/crc32.c | 2
lib/decompress_bunzip2.c | 2
lib/dynamic_queue_limits.c | 4
lib/earlycpio.c | 2
lib/fault-inject-usercopy.c | 39 ++
lib/find_bit.c | 1
lib/hexdump.c | 1
lib/idr.c | 9
lib/iov_iter.c | 5
lib/libcrc32c.c | 2
lib/math/rational.c | 2
lib/math/reciprocal_div.c | 1
lib/mpi/mpi-bit.c | 2
lib/percpu_counter.c | 2
lib/radix-tree.c | 2
lib/scatterlist.c | 2
lib/strncpy_from_user.c | 3
lib/syscall.c | 2
lib/test_hmm.c | 2
lib/test_sysctl.c | 2
lib/test_xarray.c | 65 ++++
lib/usercopy.c | 5
lib/xarray.c | 208 ++++++++++++
mm/Kconfig | 2
mm/compaction.c | 6
mm/debug_vm_pgtable.c | 267 ++++++++--------
mm/filemap.c | 58 ++-
mm/gup.c | 73 ++--
mm/highmem.c | 4
mm/huge_memory.c | 47 +-
mm/hwpoison-inject.c | 18 -
mm/internal.h | 47 +-
mm/khugepaged.c | 2
mm/madvise.c | 52 ---
mm/memory-failure.c | 357 ++++++++++------------
mm/memory.c | 7
mm/memory_hotplug.c | 223 +++++--------
mm/memremap.c | 3
mm/migrate.c | 11
mm/mmap.c | 7
mm/mmu_notifier.c | 2
mm/page-writeback.c | 1
mm/page_alloc.c | 289 +++++++++++------
mm/page_isolation.c | 16
mm/page_owner.c | 10
mm/page_poison.c | 20 -
mm/page_reporting.c | 4
mm/readahead.c | 174 ++++------
mm/rmap.c | 10
mm/shmem.c | 2
mm/shuffle.c | 2
mm/slab.c | 2
mm/slab.h | 1
mm/slub.c | 2
mm/sparse.c | 2
mm/swap_state.c | 2
mm/truncate.c | 6
mm/util.c | 3
mm/vmscan.c | 5
mm/vmstat.c | 8
mm/workingset.c | 2
scripts/Makefile.ubsan | 10
scripts/checkpatch.pl | 238 ++++++++++----
scripts/const_structs.checkpatch | 3
scripts/gdb/linux/proc.py | 15
scripts/gdb/linux/tasks.py | 9
scripts/get_maintainer.pl | 9
tools/testing/selftests/exec/.gitignore | 1
tools/testing/selftests/exec/Makefile | 9
tools/testing/selftests/exec/load_address.c | 68 ++++
161 files changed, 2532 insertions(+), 1864 deletions(-)
^ permalink raw reply [flat|nested] 215+ messages in thread
* incoming
@ 2020-10-13 23:46 Andrew Morton
0 siblings, 0 replies; 215+ messages in thread
From: Andrew Morton @ 2020-10-13 23:46 UTC (permalink / raw)
To: Linus Torvalds; +Cc: mm-commits, linux-mm
181 patches, based on 029f56db6ac248769f2c260bfaf3c3c0e23e904c.
Subsystems affected by this patch series:
kbuild
scripts
ntfs
ocfs2
vfs
mm/slab
mm/slub
mm/kmemleak
mm/dax
mm/debug
mm/pagecache
mm/fadvise
mm/gup
mm/swap
mm/memremap
mm/memcg
mm/selftests
mm/pagemap
mm/mincore
mm/hmm
mm/dma
mm/memory-failure
mm/vmalloc
mm/documentation
mm/kasan
mm/pagealloc
mm/hugetlb
mm/vmscan
mm/z3fold
mm/zbud
mm/compaction
mm/mempolicy
mm/mempool
mm/memblock
mm/oom-kill
mm/migration
Subsystem: kbuild
Nick Desaulniers <ndesaulniers@google.com>:
Patch series "set clang minimum version to 10.0.1", v3:
compiler-clang: add build check for clang 10.0.1
Revert "kbuild: disable clang's default use of -fmerge-all-constants"
Revert "arm64: bti: Require clang >= 10.0.1 for in-kernel BTI support"
Revert "arm64: vdso: Fix compilation with clang older than 8"
Partially revert "ARM: 8905/1: Emit __gnu_mcount_nc when using Clang 10.0.0 or newer"
Marco Elver <elver@google.com>:
kasan: remove mentions of unsupported Clang versions
Nick Desaulniers <ndesaulniers@google.com>:
compiler-gcc: improve version error
compiler.h: avoid escaped section names
export.h: fix section name for CONFIG_TRIM_UNUSED_KSYMS for Clang
Lukas Bulwahn <lukas.bulwahn@gmail.com>:
kbuild: doc: describe proper script invocation
Subsystem: scripts
Wang Qing <wangqing@vivo.com>:
scripts/spelling.txt: increase error-prone spell checking
Naoki Hayama <naoki.hayama@lineo.co.jp>:
scripts/spelling.txt: add "arbitrary" typo
Borislav Petkov <bp@suse.de>:
scripts/decodecode: add the capability to supply the program counter
Subsystem: ntfs
Rustam Kovhaev <rkovhaev@gmail.com>:
ntfs: add check for mft record size in superblock
Subsystem: ocfs2
Randy Dunlap <rdunlap@infradead.org>:
ocfs2: delete repeated words in comments
Gang He <ghe@suse.com>:
ocfs2: fix potential soft lockup during fstrim
Subsystem: vfs
Randy Dunlap <rdunlap@infradead.org>:
fs/xattr.c: fix kernel-doc warnings for setxattr & removexattr
Luo Jiaxing <luojiaxing@huawei.com>:
fs_parse: mark fs_param_bad_value() as static
Subsystem: mm/slab
Mateusz Nosek <mateusznosek0@gmail.com>:
mm/slab.c: clean code by removing redundant if condition
tangjianqiang <wyqt1985@gmail.com>:
include/linux/slab.h: fix a typo error in comment
Subsystem: mm/slub
Abel Wu <wuyun.wu@huawei.com>:
mm/slub.c: branch optimization in free slowpath
mm/slub: fix missing ALLOC_SLOWPATH stat when bulk alloc
mm/slub: make add_full() condition more explicit
Subsystem: mm/kmemleak
Davidlohr Bueso <dave@stgolabs.net>:
mm/kmemleak: rely on rcu for task stack scanning
Hui Su <sh_def@163.com>:
mm,kmemleak-test.c: move kmemleak-test.c to samples dir
Subsystem: mm/dax
Dan Williams <dan.j.williams@intel.com>:
Patch series "device-dax: Support sub-dividing soft-reserved ranges", v5:
x86/numa: cleanup configuration dependent command-line options
x86/numa: add 'nohmat' option
efi/fake_mem: arrange for a resource entry per efi_fake_mem instance
ACPI: HMAT: refactor hmat_register_target_device to hmem_register_device
resource: report parent to walk_iomem_res_desc() callback
mm/memory_hotplug: introduce default phys_to_target_node() implementation
ACPI: HMAT: attach a device for each soft-reserved range
device-dax: drop the dax_region.pfn_flags attribute
device-dax: move instance creation parameters to 'struct dev_dax_data'
device-dax: make pgmap optional for instance creation
device-dax/kmem: introduce dax_kmem_range()
device-dax/kmem: move resource name tracking to drvdata
device-dax/kmem: replace release_resource() with release_mem_region()
device-dax: add an allocation interface for device-dax instances
device-dax: introduce 'struct dev_dax' typed-driver operations
device-dax: introduce 'seed' devices
drivers/base: make device_find_child_by_name() compatible with sysfs inputs
device-dax: add resize support
mm/memremap_pages: convert to 'struct range'
mm/memremap_pages: support multiple ranges per invocation
device-dax: add dis-contiguous resource support
device-dax: introduce 'mapping' devices
Joao Martins <joao.m.martins@oracle.com>:
device-dax: make align a per-device property
Dan Williams <dan.j.williams@intel.com>:
device-dax: add an 'align' attribute
Joao Martins <joao.m.martins@oracle.com>:
dax/hmem: introduce dax_hmem.region_idle parameter
device-dax: add a range mapping allocation attribute
Subsystem: mm/debug
"Matthew Wilcox (Oracle)" <willy@infradead.org>:
mm/debug.c: do not dereference i_ino blindly
John Hubbard <jhubbard@nvidia.com>:
mm, dump_page: rename head_mapcount() --> head_compound_mapcount()
Subsystem: mm/pagecache
"Matthew Wilcox (Oracle)" <willy@infradead.org>:
Patch series "Return head pages from find_*_entry", v2:
mm: factor find_get_incore_page out of mincore_page
mm: use find_get_incore_page in memcontrol
mm: optimise madvise WILLNEED
proc: optimise smaps for shmem entries
i915: use find_lock_page instead of find_lock_entry
mm: convert find_get_entry to return the head page
mm/shmem: return head page from find_lock_entry
mm: add find_lock_head
mm/filemap: fix filemap_map_pages for THP
Subsystem: mm/fadvise
Yafang Shao <laoar.shao@gmail.com>:
mm, fadvise: improve the expensive remote LRU cache draining after FADV_DONTNEED
Subsystem: mm/gup
Barry Song <song.bao.hua@hisilicon.com>:
mm/gup_benchmark: update the documentation in Kconfig
mm/gup_benchmark: use pin_user_pages for FOLL_LONGTERM flag
mm/gup: don't permit users to call get_user_pages with FOLL_LONGTERM
John Hubbard <jhubbard@nvidia.com>:
mm/gup: protect unpin_user_pages() against npages==-ERRNO
Subsystem: mm/swap
Gao Xiang <hsiangkao@redhat.com>:
swap: rename SWP_FS to SWAP_FS_OPS to avoid ambiguity
Yu Zhao <yuzhao@google.com>:
mm: remove activate_page() from unuse_pte()
mm: remove superfluous __ClearPageActive()
Miaohe Lin <linmiaohe@huawei.com>:
mm/swap.c: fix confusing comment in release_pages()
mm/swap_slots.c: remove always zero and unused return value of enable_swap_slots_cache()
mm/page_io.c: remove useless out label in __swap_writepage()
mm/swap.c: fix incomplete comment in lru_cache_add_inactive_or_unevictable()
mm/swapfile.c: remove unnecessary goto out in _swap_info_get()
mm/swapfile.c: fix potential memory leak in sys_swapon
Subsystem: mm/memremap
Ira Weiny <ira.weiny@intel.com>:
mm/memremap.c: convert devmap static branch to {inc,dec}
Subsystem: mm/memcg
"Gustavo A. R. Silva" <gustavoars@kernel.org>:
mm: memcontrol: use flex_array_size() helper in memcpy()
mm: memcontrol: use the preferred form for passing the size of a structure type
Roman Gushchin <guro@fb.com>:
mm: memcg/slab: fix racy access to page->mem_cgroup in mem_cgroup_from_obj()
Miaohe Lin <linmiaohe@huawei.com>:
mm: memcontrol: correct the comment of mem_cgroup_iter()
Waiman Long <longman@redhat.com>:
Patch series "mm/memcg: Miscellaneous cleanups and streamlining", v2:
mm/memcg: clean up obsolete enum charge_type
mm/memcg: simplify mem_cgroup_get_max()
mm/memcg: unify swap and memsw page counters
Muchun Song <songmuchun@bytedance.com>:
mm: memcontrol: add the missing numa_stat interface for cgroup v2
Miaohe Lin <linmiaohe@huawei.com>:
mm/page_counter: correct the obsolete func name in the comment of page_counter_try_charge()
mm: memcontrol: reword obsolete comment of mem_cgroup_unmark_under_oom()
Bharata B Rao <bharata@linux.ibm.com>:
mm: memcg/slab: uncharge during kmem_cache_free_bulk()
Ralph Campbell <rcampbell@nvidia.com>:
mm/memcg: fix device private memcg accounting
Subsystem: mm/selftests
John Hubbard <jhubbard@nvidia.com>:
Patch series "selftests/vm: fix some minor aggravating factors in the Makefile":
selftests/vm: fix false build success on the second and later attempts
selftests/vm: fix incorrect gcc invocation in some cases
Subsystem: mm/pagemap
Matthew Wilcox <willy@infradead.org>:
mm: account PMD tables like PTE tables
Yanfei Xu <yanfei.xu@windriver.com>:
mm/memory.c: fix typo in __do_fault() comment
mm/memory.c: replace vmf->vma with variable vma
Wei Yang <richard.weiyang@linux.alibaba.com>:
mm/mmap: rename __vma_unlink_common() to __vma_unlink()
mm/mmap: leverage vma_rb_erase_ignore() to implement vma_rb_erase()
Chinwen Chang <chinwen.chang@mediatek.com>:
Patch series "Try to release mmap_lock temporarily in smaps_rollup", v4:
mmap locking API: add mmap_lock_is_contended()
mm: smaps*: extend smap_gather_stats to support specified beginning
mm: proc: smaps_rollup: do not stall write attempts on mmap_lock
"Matthew Wilcox (Oracle)" <willy@infradead.org>:
Patch series "Fix PageDoubleMap":
mm: move PageDoubleMap bit
mm: simplify PageDoubleMap with PF_SECOND policy
Wei Yang <richard.weiyang@linux.alibaba.com>:
mm/mmap: leave adjust_next as virtual address instead of page frame number
Randy Dunlap <rdunlap@infradead.org>:
mm/memory.c: fix spello of "function"
Wei Yang <richard.weiyang@linux.alibaba.com>:
mm/mmap: not necessary to check mapping separately
mm/mmap: check on file instead of the rb_root_cached of its address_space
Miaohe Lin <linmiaohe@huawei.com>:
mm: use helper function mapping_allow_writable()
mm/mmap.c: use helper function allow_write_access() in __remove_shared_vm_struct()
Liao Pingfang <liao.pingfang@zte.com.cn>:
mm/mmap.c: replace do_brk with do_brk_flags in comment of insert_vm_struct()
Peter Xu <peterx@redhat.com>:
mm: remove src/dst mm parameter in copy_page_range()
Subsystem: mm/mincore
yuleixzhang <yulei.kernel@gmail.com>:
include/linux/huge_mm.h: remove mincore_huge_pmd declaration
Subsystem: mm/hmm
Ralph Campbell <rcampbell@nvidia.com>:
tools/testing/selftests/vm/hmm-tests.c: use the new SKIP() macro
lib/test_hmm.c: remove unused dmirror_zero_page
Subsystem: mm/dma
Andy Shevchenko <andriy.shevchenko@linux.intel.com>:
mm/dmapool.c: replace open-coded list_for_each_entry_safe()
mm/dmapool.c: replace hard coded function name with __func__
Subsystem: mm/memory-failure
Xianting Tian <tian.xianting@h3c.com>:
mm/memory-failure: do pgoff calculation before for_each_process()
Alex Shi <alex.shi@linux.alibaba.com>:
mm/memory-failure.c: remove unused macro `writeback'
Subsystem: mm/vmalloc
Hui Su <sh_def@163.com>:
mm/vmalloc.c: update the comment in __vmalloc_area_node()
mm/vmalloc.c: fix the comment of find_vm_area
Subsystem: mm/documentation
Alexander Gordeev <agordeev@linux.ibm.com>:
docs/vm: fix 'mm_count' vs 'mm_users' counter confusion
Subsystem: mm/kasan
Patricia Alfonso <trishalfonso@google.com>:
Patch series "KASAN-KUnit Integration", v14:
kasan/kunit: add KUnit Struct to Current Task
KUnit: KASAN Integration
KASAN: port KASAN Tests to KUnit
KASAN: Testing Documentation
David Gow <davidgow@google.com>:
mm: kasan: do not panic if both panic_on_warn and kasan_multishot set
Subsystem: mm/pagealloc
David Hildenbrand <david@redhat.com>:
Patch series "mm / virtio-mem: support ZONE_MOVABLE", v5:
mm/page_alloc: tweak comments in has_unmovable_pages()
mm/page_isolation: exit early when pageblock is isolated in set_migratetype_isolate()
mm/page_isolation: drop WARN_ON_ONCE() in set_migratetype_isolate()
mm/page_isolation: cleanup set_migratetype_isolate()
virtio-mem: don't special-case ZONE_MOVABLE
mm: document semantics of ZONE_MOVABLE
Li Xinhai <lixinhai.lxh@gmail.com>:
mm, isolation: avoid checking unmovable pages across pageblock boundary
Mateusz Nosek <mateusznosek0@gmail.com>:
mm/page_alloc.c: clean code by removing unnecessary initialization
mm/page_alloc.c: micro-optimization remove unnecessary branch
mm/page_alloc.c: fix early params garbage value accesses
mm/page_alloc.c: clean code by merging two functions
Yanfei Xu <yanfei.xu@windriver.com>:
mm/page_alloc.c: __perform_reclaim should return 'unsigned long'
Mateusz Nosek <mateusznosek0@gmail.com>:
mmzone: clean code by removing unused macro parameter
Ralph Campbell <rcampbell@nvidia.com>:
mm: move call to compound_head() in release_pages()
"Matthew Wilcox (Oracle)" <willy@infradead.org>:
mm/page_alloc.c: fix freeing non-compound pages
Michal Hocko <mhocko@suse.com>:
include/linux/gfp.h: clarify usage of GFP_ATOMIC in !preemptible contexts
Subsystem: mm/hugetlb
Baoquan He <bhe@redhat.com>:
Patch series "mm/hugetlb: Small cleanup and improvement", v2:
mm/hugetlb.c: make is_hugetlb_entry_hwpoisoned return bool
mm/hugetlb.c: remove the unnecessary non_swap_entry()
doc/vm: fix typo in the hugetlb admin documentation
Wei Yang <richard.weiyang@linux.alibaba.com>:
Patch series "mm/hugetlb: code refine and simplification", v4:
mm/hugetlb: not necessary to coalesce regions recursively
mm/hugetlb: remove VM_BUG_ON(!nrg) in get_file_region_entry_from_cache()
mm/hugetlb: use list_splice to merge two list at once
mm/hugetlb: count file_region to be added when regions_needed != NULL
mm/hugetlb: a page from buddy is not on any list
mm/hugetlb: narrow the hugetlb_lock protection area during preparing huge page
mm/hugetlb: take the free hpage during the iteration directly
Mike Kravetz <mike.kravetz@oracle.com>:
hugetlb: add lockdep check for i_mmap_rwsem held in huge_pmd_share
Subsystem: mm/vmscan
Chunxin Zang <zangchunxin@bytedance.com>:
mm/vmscan: fix infinite loop in drop_slab_node
Hui Su <sh_def@163.com>:
mm/vmscan: fix comments for isolate_lru_page()
Subsystem: mm/z3fold
Hui Su <sh_def@163.com>:
mm/z3fold.c: use xx_zalloc instead xx_alloc and memset
Subsystem: mm/zbud
Xiang Chen <chenxiang66@hisilicon.com>:
mm/zbud: remove redundant initialization
Subsystem: mm/compaction
Mateusz Nosek <mateusznosek0@gmail.com>:
mm/compaction.c: micro-optimization remove unnecessary branch
include/linux/compaction.h: clean code by removing unused enum value
John Hubbard <jhubbard@nvidia.com>:
selftests/vm: 8x compaction_test speedup
Subsystem: mm/mempolicy
Wei Yang <richard.weiyang@linux.alibaba.com>:
mm/mempolicy: remove or narrow the lock on current
mm: remove unused alloc_page_vma_node()
Subsystem: mm/mempool
Miaohe Lin <linmiaohe@huawei.com>:
mm/mempool: add 'else' to split mutually exclusive case
Subsystem: mm/memblock
Mike Rapoport <rppt@linux.ibm.com>:
Patch series "memblock: seasonal cleaning^w cleanup", v3:
KVM: PPC: Book3S HV: simplify kvm_cma_reserve()
dma-contiguous: simplify cma_early_percent_memory()
arm, xtensa: simplify initialization of high memory pages
arm64: numa: simplify dummy_numa_init()
h8300, nds32, openrisc: simplify detection of memory extents
riscv: drop unneeded node initialization
mircoblaze: drop unneeded NUMA and sparsemem initializations
memblock: make for_each_memblock_type() iterator private
memblock: make memblock_debug and related functionality private
memblock: reduce number of parameters in for_each_mem_range()
arch, mm: replace for_each_memblock() with for_each_mem_pfn_range()
arch, drivers: replace for_each_membock() with for_each_mem_range()
x86/setup: simplify initrd relocation and reservation
x86/setup: simplify reserve_crashkernel()
memblock: remove unused memblock_mem_size()
memblock: implement for_each_reserved_mem_region() using __next_mem_region()
memblock: use separate iterators for memory and reserved regions
Subsystem: mm/oom-kill
Suren Baghdasaryan <surenb@google.com>:
mm, oom_adj: don't loop through tasks in __set_oom_adj when not necessary
Subsystem: mm/migration
Ralph Campbell <rcampbell@nvidia.com>:
mm/migrate: remove cpages-- in migrate_vma_finalize()
mm/migrate: remove obsolete comment about device public
.clang-format | 7
Documentation/admin-guide/cgroup-v2.rst | 69 +
Documentation/admin-guide/mm/hugetlbpage.rst | 2
Documentation/dev-tools/kasan.rst | 74 +
Documentation/dev-tools/kmemleak.rst | 2
Documentation/kbuild/makefiles.rst | 20
Documentation/vm/active_mm.rst | 2
Documentation/x86/x86_64/boot-options.rst | 4
MAINTAINERS | 2
Makefile | 9
arch/arm/Kconfig | 2
arch/arm/include/asm/tlb.h | 1
arch/arm/kernel/setup.c | 18
arch/arm/mm/init.c | 59 -
arch/arm/mm/mmu.c | 39
arch/arm/mm/pmsa-v7.c | 23
arch/arm/mm/pmsa-v8.c | 17
arch/arm/xen/mm.c | 7
arch/arm64/Kconfig | 2
arch/arm64/kernel/machine_kexec_file.c | 6
arch/arm64/kernel/setup.c | 4
arch/arm64/kernel/vdso/Makefile | 7
arch/arm64/mm/init.c | 11
arch/arm64/mm/kasan_init.c | 10
arch/arm64/mm/mmu.c | 11
arch/arm64/mm/numa.c | 15
arch/c6x/kernel/setup.c | 9
arch/h8300/kernel/setup.c | 8
arch/microblaze/mm/init.c | 23
arch/mips/cavium-octeon/dma-octeon.c | 14
arch/mips/kernel/setup.c | 31
arch/mips/netlogic/xlp/setup.c | 2
arch/nds32/kernel/setup.c | 8
arch/openrisc/kernel/setup.c | 9
arch/openrisc/mm/init.c | 8
arch/powerpc/kernel/fadump.c | 61 -
arch/powerpc/kexec/file_load_64.c | 16
arch/powerpc/kvm/book3s_hv_builtin.c | 12
arch/powerpc/kvm/book3s_hv_uvmem.c | 14
arch/powerpc/mm/book3s64/hash_utils.c | 16
arch/powerpc/mm/book3s64/radix_pgtable.c | 10
arch/powerpc/mm/kasan/kasan_init_32.c | 8
arch/powerpc/mm/mem.c | 31
arch/powerpc/mm/numa.c | 7
arch/powerpc/mm/pgtable_32.c | 8
arch/riscv/mm/init.c | 36
arch/riscv/mm/kasan_init.c | 10
arch/s390/kernel/setup.c | 27
arch/s390/mm/page-states.c | 6
arch/s390/mm/vmem.c | 7
arch/sh/mm/init.c | 9
arch/sparc/mm/init_64.c | 12
arch/x86/include/asm/numa.h | 8
arch/x86/kernel/e820.c | 16
arch/x86/kernel/setup.c | 56 -
arch/x86/mm/numa.c | 13
arch/x86/mm/numa_emulation.c | 3
arch/x86/xen/enlighten_pv.c | 2
arch/xtensa/mm/init.c | 55 -
drivers/acpi/numa/hmat.c | 76 -
drivers/acpi/numa/srat.c | 9
drivers/base/core.c | 2
drivers/bus/mvebu-mbus.c | 12
drivers/dax/Kconfig | 6
drivers/dax/Makefile | 3
drivers/dax/bus.c | 1237 +++++++++++++++++++++++----
drivers/dax/bus.h | 34
drivers/dax/dax-private.h | 74 +
drivers/dax/device.c | 164 +--
drivers/dax/hmem.c | 56 -
drivers/dax/hmem/Makefile | 8
drivers/dax/hmem/device.c | 100 ++
drivers/dax/hmem/hmem.c | 93 +-
drivers/dax/kmem.c | 236 ++---
drivers/dax/pmem/compat.c | 2
drivers/dax/pmem/core.c | 36
drivers/firmware/efi/x86_fake_mem.c | 12
drivers/gpu/drm/i915/gem/i915_gem_shmem.c | 4
drivers/gpu/drm/nouveau/nouveau_dmem.c | 15
drivers/irqchip/irq-gic-v3-its.c | 2
drivers/nvdimm/badrange.c | 26
drivers/nvdimm/claim.c | 13
drivers/nvdimm/nd.h | 3
drivers/nvdimm/pfn_devs.c | 13
drivers/nvdimm/pmem.c | 27
drivers/nvdimm/region.c | 21
drivers/pci/p2pdma.c | 12
drivers/virtio/virtio_mem.c | 47 -
drivers/xen/unpopulated-alloc.c | 45
fs/fs_parser.c | 2
fs/ntfs/inode.c | 6
fs/ocfs2/alloc.c | 6
fs/ocfs2/localalloc.c | 2
fs/proc/base.c | 3
fs/proc/task_mmu.c | 104 +-
fs/xattr.c | 22
include/acpi/acpi_numa.h | 14
include/kunit/test.h | 5
include/linux/acpi.h | 2
include/linux/compaction.h | 3
include/linux/compiler-clang.h | 8
include/linux/compiler-gcc.h | 2
include/linux/compiler.h | 2
include/linux/dax.h | 8
include/linux/export.h | 2
include/linux/fs.h | 4
include/linux/gfp.h | 6
include/linux/huge_mm.h | 3
include/linux/kasan.h | 6
include/linux/memblock.h | 90 +
include/linux/memcontrol.h | 13
include/linux/memory_hotplug.h | 23
include/linux/memremap.h | 15
include/linux/mm.h | 36
include/linux/mmap_lock.h | 5
include/linux/mmzone.h | 37
include/linux/numa.h | 11
include/linux/oom.h | 1
include/linux/page-flags.h | 42
include/linux/pagemap.h | 43
include/linux/range.h | 6
include/linux/sched.h | 4
include/linux/sched/coredump.h | 1
include/linux/slab.h | 2
include/linux/swap.h | 10
include/linux/swap_slots.h | 2
kernel/dma/contiguous.c | 11
kernel/fork.c | 25
kernel/resource.c | 11
lib/Kconfig.debug | 9
lib/Kconfig.kasan | 31
lib/Makefile | 5
lib/kunit/test.c | 13
lib/test_free_pages.c | 42
lib/test_hmm.c | 65 -
lib/test_kasan.c | 732 ++++++---------
lib/test_kasan_module.c | 111 ++
mm/Kconfig | 4
mm/Makefile | 1
mm/compaction.c | 5
mm/debug.c | 18
mm/dmapool.c | 46 -
mm/fadvise.c | 9
mm/filemap.c | 78 -
mm/gup.c | 44
mm/gup_benchmark.c | 23
mm/huge_memory.c | 4
mm/hugetlb.c | 100 +-
mm/internal.h | 3
mm/kasan/report.c | 34
mm/kmemleak-test.c | 99 --
mm/kmemleak.c | 8
mm/madvise.c | 21
mm/memblock.c | 102 --
mm/memcontrol.c | 262 +++--
mm/memory-failure.c | 5
mm/memory.c | 147 +--
mm/memory_hotplug.c | 10
mm/mempolicy.c | 8
mm/mempool.c | 18
mm/memremap.c | 344 ++++---
mm/migrate.c | 3
mm/mincore.c | 28
mm/mmap.c | 45
mm/oom_kill.c | 2
mm/page_alloc.c | 82 -
mm/page_counter.c | 2
mm/page_io.c | 14
mm/page_isolation.c | 41
mm/shmem.c | 19
mm/slab.c | 4
mm/slab.h | 50 -
mm/slub.c | 33
mm/sparse.c | 10
mm/swap.c | 14
mm/swap_slots.c | 3
mm/swap_state.c | 38
mm/swapfile.c | 12
mm/truncate.c | 58 -
mm/vmalloc.c | 6
mm/vmscan.c | 5
mm/z3fold.c | 3
mm/zbud.c | 1
samples/Makefile | 1
samples/kmemleak/Makefile | 3
samples/kmemleak/kmemleak-test.c | 99 ++
scripts/decodecode | 29
scripts/spelling.txt | 4
tools/testing/nvdimm/dax-dev.c | 28
tools/testing/nvdimm/test/iomap.c | 2
tools/testing/selftests/vm/Makefile | 17
tools/testing/selftests/vm/compaction_test.c | 11
tools/testing/selftests/vm/gup_benchmark.c | 14
tools/testing/selftests/vm/hmm-tests.c | 4
194 files changed, 4273 insertions(+), 2777 deletions(-)
^ permalink raw reply [flat|nested] 215+ messages in thread
* incoming
@ 2020-10-11 6:15 Andrew Morton
0 siblings, 0 replies; 215+ messages in thread
From: Andrew Morton @ 2020-10-11 6:15 UTC (permalink / raw)
To: Linus Torvalds; +Cc: mm-commits, linux-mm
5 patches, based on da690031a5d6d50a361e3f19f3eeabd086a6f20d.
Subsystems affected by this patch series:
MAINTAINERS
mm/pagemap
mm/swap
mm/hugetlb
Subsystem: MAINTAINERS
Kees Cook <keescook@chromium.org>:
MAINTAINERS: change hardening mailing list
Antoine Tenart <atenart@kernel.org>:
MAINTAINERS: Antoine Tenart's email address
Subsystem: mm/pagemap
Miaohe Lin <linmiaohe@huawei.com>:
mm: mmap: Fix general protection fault in unlink_file_vma()
Subsystem: mm/swap
Minchan Kim <minchan@kernel.org>:
mm: validate inode in mapping_set_error()
Subsystem: mm/hugetlb
Vijay Balakrishna <vijayb@linux.microsoft.com>:
mm: khugepaged: recalculate min_free_kbytes after memory hotplug as expected by khugepaged
.mailmap | 4 +++-
MAINTAINERS | 8 ++++----
include/linux/khugepaged.h | 5 +++++
include/linux/pagemap.h | 3 ++-
mm/khugepaged.c | 13 +++++++++++--
mm/mmap.c | 6 +++++-
mm/page_alloc.c | 3 +++
7 files changed, 33 insertions(+), 9 deletions(-)
^ permalink raw reply [flat|nested] 215+ messages in thread
* incoming
@ 2020-10-03 5:20 Andrew Morton
0 siblings, 0 replies; 215+ messages in thread
From: Andrew Morton @ 2020-10-03 5:20 UTC (permalink / raw)
To: Linus Torvalds; +Cc: linux-mm, mm-commits
3 patches, based on d3d45f8220d60a0b2aaaacf8fb2be4e6ffd9008e.
Subsystems affected by this patch series:
mm/slub
mm/cma
scripts
Subsystem: mm/slub
Eric Farman <farman@linux.ibm.com>:
mm, slub: restore initial kmem_cache flags
Subsystem: mm/cma
Joonsoo Kim <iamjoonsoo.kim@lge.com>:
mm/page_alloc: handle a missing case for memalloc_nocma_{save/restore} APIs
Subsystem: scripts
Eric Biggers <ebiggers@google.com>:
scripts/spelling.txt: fix malformed entry
mm/page_alloc.c | 19 ++++++++++++++++---
mm/slub.c | 6 +-----
scripts/spelling.txt | 2 +-
3 files changed, 18 insertions(+), 9 deletions(-)
^ permalink raw reply [flat|nested] 215+ messages in thread
* incoming
@ 2020-09-26 4:17 Andrew Morton
0 siblings, 0 replies; 215+ messages in thread
From: Andrew Morton @ 2020-09-26 4:17 UTC (permalink / raw)
To: Linus Torvalds; +Cc: mm-commits, linux-mm
9 patches, based on 7c7ec3226f5f33f9c050d85ec20f18419c622ad6.
Subsystems affected by this patch series:
mm/thp
mm/memcg
mm/gup
mm/migration
lib
x86
mm/memory-hotplug
Subsystem: mm/thp
Gao Xiang <hsiangkao@redhat.com>:
mm, THP, swap: fix allocating cluster for swapfile by mistake
Subsystem: mm/memcg
Muchun Song <songmuchun@bytedance.com>:
mm: memcontrol: fix missing suffix of workingset_restore
Subsystem: mm/gup
Vasily Gorbik <gor@linux.ibm.com>:
mm/gup: fix gup_fast with dynamic page table folding
Subsystem: mm/migration
Zi Yan <ziy@nvidia.com>:
mm/migrate: correct thp migration stats
Subsystem: lib
Nick Desaulniers <ndesaulniers@google.com>:
lib/string.c: implement stpcpy
Jason Yan <yanaijie@huawei.com>:
lib/memregion.c: include memregion.h
Subsystem: x86
Mikulas Patocka <mpatocka@redhat.com>:
arch/x86/lib/usercopy_64.c: fix __copy_user_flushcache() cache writeback
Subsystem: mm/memory-hotplug
Laurent Dufour <ldufour@linux.ibm.com>:
Patch series "mm: fix memory to node bad links in sysfs", v3:
mm: replace memmap_context by meminit_context
mm: don't rely on system state to detect hot-plug operations
Documentation/admin-guide/cgroup-v2.rst | 25 ++++++---
arch/ia64/mm/init.c | 6 +-
arch/s390/include/asm/pgtable.h | 42 +++++++++++----
arch/x86/lib/usercopy_64.c | 2
drivers/base/node.c | 85 ++++++++++++++++++++------------
include/linux/mm.h | 2
include/linux/mmzone.h | 11 +++-
include/linux/node.h | 11 ++--
include/linux/pgtable.h | 10 +++
lib/memregion.c | 1
lib/string.c | 24 +++++++++
mm/gup.c | 18 +++---
mm/memcontrol.c | 4 -
mm/memory_hotplug.c | 5 +
mm/migrate.c | 7 +-
mm/page_alloc.c | 10 +--
mm/swapfile.c | 2
17 files changed, 181 insertions(+), 84 deletions(-)
^ permalink raw reply [flat|nested] 215+ messages in thread
* incoming
@ 2020-09-19 4:19 Andrew Morton
0 siblings, 0 replies; 215+ messages in thread
From: Andrew Morton @ 2020-09-19 4:19 UTC (permalink / raw)
To: Linus Torvalds; +Cc: mm-commits, linux-mm
15 patches, based on 92ab97adeefccf375de7ebaad9d5b75d4125fe8b.
Subsystems affected by this patch series:
mailmap
mm/hotfixes
mm/thp
mm/memory-hotplug
misc
kcsan
Subsystem: mailmap
Kees Cook <keescook@chromium.org>:
mailmap: add older email addresses for Kees Cook
Subsystem: mm/hotfixes
Hugh Dickins <hughd@google.com>:
Patch series "mm: fixes to past from future testing":
ksm: reinstate memcg charge on copied pages
mm: migration of hugetlbfs page skip memcg
shmem: shmem_writepage() split unlikely i915 THP
mm: fix check_move_unevictable_pages() on THP
mlock: fix unevictable_pgs event counts on THP
Byron Stanoszek <gandalf@winds.org>:
tmpfs: restore functionality of nr_inodes=0
Muchun Song <songmuchun@bytedance.com>:
kprobes: fix kill kprobe which has been marked as gone
Subsystem: mm/thp
Ralph Campbell <rcampbell@nvidia.com>:
mm/thp: fix __split_huge_pmd_locked() for migration PMD
Christophe Leroy <christophe.leroy@csgroup.eu>:
selftests/vm: fix display of page size in map_hugetlb
Subsystem: mm/memory-hotplug
Pavel Tatashin <pasha.tatashin@soleen.com>:
mm/memory_hotplug: drain per-cpu pages again during memory offline
Subsystem: misc
Tobias Klauser <tklauser@distanz.ch>:
ftrace: let ftrace_enable_sysctl take a kernel pointer buffer
stackleak: let stack_erasing_sysctl take a kernel pointer buffer
fs/fs-writeback.c: adjust dirtytime_interval_handler definition to match prototype
Subsystem: kcsan
Changbin Du <changbin.du@gmail.com>:
kcsan: kconfig: move to menu 'Generic Kernel Debugging Instruments'
.mailmap | 4 ++
fs/fs-writeback.c | 2 -
include/linux/ftrace.h | 3 --
include/linux/stackleak.h | 2 -
kernel/kprobes.c | 9 +++++-
kernel/stackleak.c | 2 -
kernel/trace/ftrace.c | 3 --
lib/Kconfig.debug | 4 --
mm/huge_memory.c | 42 ++++++++++++++++---------------
mm/ksm.c | 4 ++
mm/memory_hotplug.c | 14 ++++++++++
mm/migrate.c | 3 +-
mm/mlock.c | 24 +++++++++++------
mm/page_isolation.c | 8 +++++
mm/shmem.c | 20 +++++++++++---
mm/swap.c | 6 ++--
mm/vmscan.c | 10 +++++--
tools/testing/selftests/vm/map_hugetlb.c | 2 -
18 files changed, 111 insertions(+), 51 deletions(-)
^ permalink raw reply [flat|nested] 215+ messages in thread
* incoming
@ 2020-09-04 23:34 Andrew Morton
0 siblings, 0 replies; 215+ messages in thread
From: Andrew Morton @ 2020-09-04 23:34 UTC (permalink / raw)
To: Linus Torvalds; +Cc: mm-commits, linux-mm
19 patches, based on 59126901f200f5fc907153468b03c64e0081b6e6.
Subsystems affected by this patch series:
mm/memcg
mm/slub
MAINTAINERS
mm/pagemap
ipc
fork
checkpatch
mm/madvise
mm/migration
mm/hugetlb
lib
Subsystem: mm/memcg
Michal Hocko <mhocko@suse.com>:
memcg: fix use-after-free in uncharge_batch
Xunlei Pang <xlpang@linux.alibaba.com>:
mm: memcg: fix memcg reclaim soft lockup
Subsystem: mm/slub
Eugeniu Rosca <erosca@de.adit-jv.com>:
mm: slub: fix conversion of freelist_corrupted()
Subsystem: MAINTAINERS
Robert Richter <rric@kernel.org>:
MAINTAINERS: update Cavium/Marvell entries
Nick Desaulniers <ndesaulniers@google.com>:
MAINTAINERS: add LLVM maintainers
Randy Dunlap <rdunlap@infradead.org>:
MAINTAINERS: IA64: mark Status as Odd Fixes only
Subsystem: mm/pagemap
Joerg Roedel <jroedel@suse.de>:
mm: track page table modifications in __apply_to_page_range()
Subsystem: ipc
Tobias Klauser <tklauser@distanz.ch>:
ipc: adjust proc_ipc_sem_dointvec definition to match prototype
Subsystem: fork
Tobias Klauser <tklauser@distanz.ch>:
fork: adjust sysctl_max_threads definition to match prototype
Subsystem: checkpatch
Mrinal Pandey <mrinalmni@gmail.com>:
checkpatch: fix the usage of capture group ( ... )
Subsystem: mm/madvise
Yang Shi <shy828301@gmail.com>:
mm: madvise: fix vma user-after-free
Subsystem: mm/migration
Alistair Popple <alistair@popple.id.au>:
mm/migrate: fixup setting UFFD_WP flag
mm/rmap: fixup copying of soft dirty and uffd ptes
Ralph Campbell <rcampbell@nvidia.com>:
Patch series "mm/migrate: preserve soft dirty in remove_migration_pte()":
mm/migrate: remove unnecessary is_zone_device_page() check
mm/migrate: preserve soft dirty in remove_migration_pte()
Subsystem: mm/hugetlb
Li Xinhai <lixinhai.lxh@gmail.com>:
mm/hugetlb: try preferred node first when alloc gigantic page from cma
Muchun Song <songmuchun@bytedance.com>:
mm/hugetlb: fix a race between hugetlb sysctl handlers
David Howells <dhowells@redhat.com>:
mm/khugepaged.c: fix khugepaged's request size in collapse_file
Subsystem: lib
Jason Gunthorpe <jgg@nvidia.com>:
include/linux/log2.h: add missing () around n in roundup_pow_of_two()
MAINTAINERS | 32 ++++++++++++++++----------------
include/linux/log2.h | 2 +-
ipc/ipc_sysctl.c | 2 +-
kernel/fork.c | 2 +-
mm/hugetlb.c | 49 +++++++++++++++++++++++++++++++++++++------------
mm/khugepaged.c | 2 +-
mm/madvise.c | 2 +-
mm/memcontrol.c | 6 ++++++
mm/memory.c | 37 ++++++++++++++++++++++++-------------
mm/migrate.c | 31 +++++++++++++++++++------------
mm/rmap.c | 9 +++++++--
mm/slub.c | 12 ++++++------
mm/vmscan.c | 8 ++++++++
scripts/checkpatch.pl | 4 ++--
14 files changed, 130 insertions(+), 68 deletions(-)
^ permalink raw reply [flat|nested] 215+ messages in thread
* incoming
@ 2020-08-21 0:41 Andrew Morton
0 siblings, 0 replies; 215+ messages in thread
From: Andrew Morton @ 2020-08-21 0:41 UTC (permalink / raw)
To: Linus Torvalds; +Cc: mm-commits, linux-mm
11 patches, based on 7eac66d0456fe12a462e5c14c68e97c7460989da.
Subsystems affected by this patch series:
misc
mm/hugetlb
mm/vmalloc
mm/misc
romfs
relay
uprobes
squashfs
mm/cma
mm/pagealloc
Subsystem: misc
Nick Desaulniers <ndesaulniers@google.com>:
mailmap: add Andi Kleen
Subsystem: mm/hugetlb
Xu Wang <vulab@iscas.ac.cn>:
hugetlb_cgroup: convert comma to semicolon
Hugh Dickins <hughd@google.com>:
khugepaged: adjust VM_BUG_ON_MM() in __khugepaged_enter()
Subsystem: mm/vmalloc
"Aneesh Kumar K.V" <aneesh.kumar@linux.ibm.com>:
mm/vunmap: add cond_resched() in vunmap_pmd_range
Subsystem: mm/misc
Leon Romanovsky <leonro@nvidia.com>:
mm/rodata_test.c: fix missing function declaration
Subsystem: romfs
Jann Horn <jannh@google.com>:
romfs: fix uninitialized memory leak in romfs_dev_read()
Subsystem: relay
Wei Yongjun <weiyongjun1@huawei.com>:
kernel/relay.c: fix memleak on destroy relay channel
Subsystem: uprobes
Hugh Dickins <hughd@google.com>:
uprobes: __replace_page() avoid BUG in munlock_vma_page()
Subsystem: squashfs
Phillip Lougher <phillip@squashfs.org.uk>:
squashfs: avoid bio_alloc() failure with 1Mbyte blocks
Subsystem: mm/cma
Doug Berger <opendmb@gmail.com>:
mm: include CMA pages in lowmem_reserve at boot
Subsystem: mm/pagealloc
Charan Teja Reddy <charante@codeaurora.org>:
mm, page_alloc: fix core hung in free_pcppages_bulk()
.mailmap | 1 +
fs/romfs/storage.c | 4 +---
fs/squashfs/block.c | 6 +++++-
kernel/events/uprobes.c | 2 +-
kernel/relay.c | 1 +
mm/hugetlb_cgroup.c | 4 ++--
mm/khugepaged.c | 2 +-
mm/page_alloc.c | 7 ++++++-
mm/rodata_test.c | 1 +
mm/vmalloc.c | 2 ++
10 files changed, 21 insertions(+), 9 deletions(-)
^ permalink raw reply [flat|nested] 215+ messages in thread
* incoming
@ 2020-08-15 0:29 Andrew Morton
0 siblings, 0 replies; 215+ messages in thread
From: Andrew Morton @ 2020-08-15 0:29 UTC (permalink / raw)
To: Linus Torvalds; +Cc: linux-mm, mm-commits
39 patches, based on b923f1247b72fc100b87792fd2129d026bb10e66.
Subsystems affected by this patch series:
mm/hotfixes
lz4
exec
mailmap
mm/thp
autofs
mm/madvise
sysctl
mm/kmemleak
mm/misc
lib
Subsystem: mm/hotfixes
Mike Rapoport <rppt@linux.ibm.com>:
asm-generic: pgalloc.h: use correct #ifdef to enable pud_alloc_one()
Baoquan He <bhe@redhat.com>:
Revert "mm/vmstat.c: do not show lowmem reserve protection information of empty zone"
Subsystem: lz4
Nick Terrell <terrelln@fb.com>:
lz4: fix kernel decompression speed
Subsystem: exec
Kees Cook <keescook@chromium.org>:
Patch series "Fix S_ISDIR execve() errno":
exec: restore EACCES of S_ISDIR execve()
selftests/exec: add file type errno tests
Subsystem: mailmap
Greg Kurz <groug@kaod.org>:
mailmap: add entry for Greg Kurz
Subsystem: mm/thp
"Matthew Wilcox (Oracle)" <willy@infradead.org>:
Patch series "THP prep patches":
mm: store compound_nr as well as compound_order
mm: move page-flags include to top of file
mm: add thp_order
mm: add thp_size
mm: replace hpage_nr_pages with thp_nr_pages
mm: add thp_head
mm: introduce offset_in_thp
Subsystem: autofs
Randy Dunlap <rdunlap@infradead.org>:
fs: autofs: delete repeated words in comments
Subsystem: mm/madvise
Minchan Kim <minchan@kernel.org>:
Patch series "introduce memory hinting API for external process", v8:
mm/madvise: pass task and mm to do_madvise
pid: move pidfd_get_pid() to pid.c
mm/madvise: introduce process_madvise() syscall: an external memory hinting API
mm/madvise: check fatal signal pending of target process
Subsystem: sysctl
Xiaoming Ni <nixiaoming@huawei.com>:
all arch: remove system call sys_sysctl
Subsystem: mm/kmemleak
Qian Cai <cai@lca.pw>:
mm/kmemleak: silence KCSAN splats in checksum
Subsystem: mm/misc
Qian Cai <cai@lca.pw>:
mm/frontswap: mark various intentional data races
mm/page_io: mark various intentional data races
mm/swap_state: mark various intentional data races
Kirill A. Shutemov <kirill@shutemov.name>:
mm/filemap.c: fix a data race in filemap_fault()
Qian Cai <cai@lca.pw>:
mm/swapfile: fix and annotate various data races
mm/page_counter: fix various data races at memsw
mm/memcontrol: fix a data race in scan count
mm/list_lru: fix a data race in list_lru_count_one
mm/mempool: fix a data race in mempool_free()
mm/rmap: annotate a data race at tlb_flush_batched
mm/swap.c: annotate data races for lru_rotate_pvecs
mm: annotate a data race in page_zonenum()
Romain Naour <romain.naour@gmail.com>:
include/asm-generic/vmlinux.lds.h: align ro_after_init
Kuninori Morimoto <kuninori.morimoto.gx@renesas.com>:
sh: clkfwk: remove r8/r16/r32
sh: use generic strncpy()
Subsystem: lib
Krzysztof Kozlowski <krzk@kernel.org>:
Patch series "iomap: Constify ioreadX() iomem argument", v3:
iomap: constify ioreadX() iomem argument (as in generic implementation)
rtl818x: constify ioreadX() iomem argument (as in generic implementation)
ntb: intel: constify ioreadX() iomem argument (as in generic implementation)
virtio: pci: constify ioreadX() iomem argument (as in generic implementation)
.mailmap | 1
arch/alpha/include/asm/core_apecs.h | 6
arch/alpha/include/asm/core_cia.h | 6
arch/alpha/include/asm/core_lca.h | 6
arch/alpha/include/asm/core_marvel.h | 4
arch/alpha/include/asm/core_mcpcia.h | 6
arch/alpha/include/asm/core_t2.h | 2
arch/alpha/include/asm/io.h | 12 -
arch/alpha/include/asm/io_trivial.h | 16 -
arch/alpha/include/asm/jensen.h | 2
arch/alpha/include/asm/machvec.h | 6
arch/alpha/kernel/core_marvel.c | 2
arch/alpha/kernel/io.c | 12 -
arch/alpha/kernel/syscalls/syscall.tbl | 3
arch/arm/configs/am200epdkit_defconfig | 1
arch/arm/tools/syscall.tbl | 3
arch/arm64/include/asm/unistd.h | 2
arch/arm64/include/asm/unistd32.h | 6
arch/ia64/kernel/syscalls/syscall.tbl | 3
arch/m68k/kernel/syscalls/syscall.tbl | 3
arch/microblaze/kernel/syscalls/syscall.tbl | 3
arch/mips/configs/cu1000-neo_defconfig | 1
arch/mips/kernel/syscalls/syscall_n32.tbl | 3
arch/mips/kernel/syscalls/syscall_n64.tbl | 3
arch/mips/kernel/syscalls/syscall_o32.tbl | 3
arch/parisc/include/asm/io.h | 4
arch/parisc/kernel/syscalls/syscall.tbl | 3
arch/parisc/lib/iomap.c | 72 +++---
arch/powerpc/kernel/iomap.c | 28 +-
arch/powerpc/kernel/syscalls/syscall.tbl | 3
arch/s390/kernel/syscalls/syscall.tbl | 3
arch/sh/configs/dreamcast_defconfig | 1
arch/sh/configs/espt_defconfig | 1
arch/sh/configs/hp6xx_defconfig | 1
arch/sh/configs/landisk_defconfig | 1
arch/sh/configs/lboxre2_defconfig | 1
arch/sh/configs/microdev_defconfig | 1
arch/sh/configs/migor_defconfig | 1
arch/sh/configs/r7780mp_defconfig | 1
arch/sh/configs/r7785rp_defconfig | 1
arch/sh/configs/rts7751r2d1_defconfig | 1
arch/sh/configs/rts7751r2dplus_defconfig | 1
arch/sh/configs/se7206_defconfig | 1
arch/sh/configs/se7343_defconfig | 1
arch/sh/configs/se7619_defconfig | 1
arch/sh/configs/se7705_defconfig | 1
arch/sh/configs/se7750_defconfig | 1
arch/sh/configs/se7751_defconfig | 1
arch/sh/configs/secureedge5410_defconfig | 1
arch/sh/configs/sh03_defconfig | 1
arch/sh/configs/sh7710voipgw_defconfig | 1
arch/sh/configs/sh7757lcr_defconfig | 1
arch/sh/configs/sh7763rdp_defconfig | 1
arch/sh/configs/shmin_defconfig | 1
arch/sh/configs/titan_defconfig | 1
arch/sh/include/asm/string_32.h | 26 --
arch/sh/kernel/iomap.c | 22 -
arch/sh/kernel/syscalls/syscall.tbl | 3
arch/sparc/kernel/syscalls/syscall.tbl | 3
arch/x86/entry/syscalls/syscall_32.tbl | 3
arch/x86/entry/syscalls/syscall_64.tbl | 4
arch/xtensa/kernel/syscalls/syscall.tbl | 3
drivers/mailbox/bcm-pdc-mailbox.c | 2
drivers/net/wireless/realtek/rtl818x/rtl8180/rtl8180.h | 6
drivers/ntb/hw/intel/ntb_hw_gen1.c | 2
drivers/ntb/hw/intel/ntb_hw_gen3.h | 2
drivers/ntb/hw/intel/ntb_hw_intel.h | 2
drivers/nvdimm/btt.c | 4
drivers/nvdimm/pmem.c | 6
drivers/sh/clk/cpg.c | 25 --
drivers/virtio/virtio_pci_modern.c | 6
fs/autofs/dev-ioctl.c | 4
fs/io_uring.c | 2
fs/namei.c | 4
include/asm-generic/iomap.h | 28 +-
include/asm-generic/pgalloc.h | 2
include/asm-generic/vmlinux.lds.h | 1
include/linux/compat.h | 5
include/linux/huge_mm.h | 58 ++++-
include/linux/io-64-nonatomic-hi-lo.h | 4
include/linux/io-64-nonatomic-lo-hi.h | 4
include/linux/memcontrol.h | 2
include/linux/mm.h | 16 -
include/linux/mm_inline.h | 6
include/linux/mm_types.h | 1
include/linux/pagemap.h | 6
include/linux/pid.h | 1
include/linux/syscalls.h | 4
include/linux/sysctl.h | 6
include/uapi/asm-generic/unistd.h | 4
kernel/Makefile | 2
kernel/exit.c | 17 -
kernel/pid.c | 17 +
kernel/sys_ni.c | 3
kernel/sysctl_binary.c | 171 --------------
lib/iomap.c | 30 +-
lib/lz4/lz4_compress.c | 4
lib/lz4/lz4_decompress.c | 18 -
lib/lz4/lz4defs.h | 10
lib/lz4/lz4hc_compress.c | 2
mm/compaction.c | 2
mm/filemap.c | 22 +
mm/frontswap.c | 8
mm/gup.c | 2
mm/internal.h | 4
mm/kmemleak.c | 2
mm/list_lru.c | 2
mm/madvise.c | 190 ++++++++++++++--
mm/memcontrol.c | 10
mm/memory.c | 4
mm/memory_hotplug.c | 7
mm/mempolicy.c | 2
mm/mempool.c | 2
mm/migrate.c | 18 -
mm/mlock.c | 9
mm/page_alloc.c | 5
mm/page_counter.c | 13 -
mm/page_io.c | 12 -
mm/page_vma_mapped.c | 6
mm/rmap.c | 10
mm/swap.c | 21 -
mm/swap_state.c | 10
mm/swapfile.c | 33 +-
mm/vmscan.c | 6
mm/vmstat.c | 12 -
mm/workingset.c | 6
tools/perf/arch/powerpc/entry/syscalls/syscall.tbl | 2
tools/perf/arch/s390/entry/syscalls/syscall.tbl | 2
tools/perf/arch/x86/entry/syscalls/syscall_64.tbl | 2
tools/testing/selftests/exec/.gitignore | 1
tools/testing/selftests/exec/Makefile | 5
tools/testing/selftests/exec/non-regular.c | 196 +++++++++++++++++
132 files changed, 815 insertions(+), 614 deletions(-)
^ permalink raw reply [flat|nested] 215+ messages in thread
* incoming
@ 2020-08-12 1:29 Andrew Morton
0 siblings, 0 replies; 215+ messages in thread
From: Andrew Morton @ 2020-08-12 1:29 UTC (permalink / raw)
To: Linus Torvalds; +Cc: mm-commits, linux-mm
- Most of the rest of MM
- various other subsystems
165 patches, based on 00e4db51259a5f936fec1424b884f029479d3981.
Subsystems affected by this patch series:
mm/memcg
mm/hugetlb
mm/vmscan
mm/proc
mm/compaction
mm/mempolicy
mm/oom-kill
mm/hugetlbfs
mm/migration
mm/thp
mm/cma
mm/util
mm/memory-hotplug
mm/cleanups
mm/uaccess
alpha
misc
sparse
bitmap
lib
lz4
bitops
checkpatch
autofs
minix
nilfs
ufs
fat
signals
kmod
coredump
exec
kdump
rapidio
panic
kcov
kgdb
ipc
mm/migration
mm/gup
mm/pagemap
Subsystem: mm/memcg
Roman Gushchin <guro@fb.com>:
Patch series "mm: memcg accounting of percpu memory", v3:
percpu: return number of released bytes from pcpu_free_area()
mm: memcg/percpu: account percpu memory to memory cgroups
mm: memcg/percpu: per-memcg percpu memory statistics
mm: memcg: charge memcg percpu memory to the parent cgroup
kselftests: cgroup: add perpcu memory accounting test
Subsystem: mm/hugetlb
Muchun Song <songmuchun@bytedance.com>:
mm/hugetlb: add mempolicy check in the reservation routine
Subsystem: mm/vmscan
Joonsoo Kim <iamjoonsoo.kim@lge.com>:
Patch series "workingset protection/detection on the anonymous LRU list", v7:
mm/vmscan: make active/inactive ratio as 1:1 for anon lru
mm/vmscan: protect the workingset on anonymous LRU
mm/workingset: prepare the workingset detection infrastructure for anon LRU
mm/swapcache: support to handle the shadow entries
mm/swap: implement workingset detection for anonymous LRU
mm/vmscan: restore active/inactive ratio for anonymous LRU
Subsystem: mm/proc
Michal Koutný <mkoutny@suse.com>:
/proc/PID/smaps: consistent whitespace output format
Subsystem: mm/compaction
Nitin Gupta <nigupta@nvidia.com>:
mm: proactive compaction
mm: fix compile error due to COMPACTION_HPAGE_ORDER
mm: use unsigned types for fragmentation score
Alex Shi <alex.shi@linux.alibaba.com>:
mm/compaction: correct the comments of compact_defer_shift
Subsystem: mm/mempolicy
Krzysztof Kozlowski <krzk@kernel.org>:
mm: mempolicy: fix kerneldoc of numa_map_to_online_node()
Wenchao Hao <haowenchao22@gmail.com>:
mm/mempolicy.c: check parameters first in kernel_get_mempolicy
Yanfei Xu <yanfei.xu@windriver.com>:
include/linux/mempolicy.h: fix typo
Subsystem: mm/oom-kill
Yafang Shao <laoar.shao@gmail.com>:
mm, oom: make the calculation of oom badness more accurate
Michal Hocko <mhocko@suse.com>:
doc, mm: sync up oom_score_adj documentation
doc, mm: clarify /proc/<pid>/oom_score value range
Yafang Shao <laoar.shao@gmail.com>:
mm, oom: show process exiting information in __oom_kill_process()
Subsystem: mm/hugetlbfs
Mike Kravetz <mike.kravetz@oracle.com>:
hugetlbfs: prevent filesystem stacking of hugetlbfs
hugetlbfs: remove call to huge_pte_alloc without i_mmap_rwsem
Subsystem: mm/migration
Ralph Campbell <rcampbell@nvidia.com>:
Patch series "mm/migrate: optimize migrate_vma_setup() for holes":
mm/migrate: optimize migrate_vma_setup() for holes
mm/migrate: add migrate-shared test for migrate_vma_*()
Subsystem: mm/thp
Yang Shi <yang.shi@linux.alibaba.com>:
mm: thp: remove debug_cow switch
Anshuman Khandual <anshuman.khandual@arm.com>:
mm/vmstat: add events for THP migration without split
Subsystem: mm/cma
Jianqun Xu <jay.xu@rock-chips.com>:
mm/cma.c: fix NULL pointer dereference when cma could not be activated
Barry Song <song.bao.hua@hisilicon.com>:
Patch series "mm: fix the names of general cma and hugetlb cma", v2:
mm: cma: fix the name of CMA areas
mm: hugetlb: fix the name of hugetlb CMA
Mike Kravetz <mike.kravetz@oracle.com>:
cma: don't quit at first error when activating reserved areas
Subsystem: mm/util
Waiman Long <longman@redhat.com>:
include/linux/sched/mm.h: optimize current_gfp_context()
Krzysztof Kozlowski <krzk@kernel.org>:
mm: mmu_notifier: fix and extend kerneldoc
Subsystem: mm/memory-hotplug
Daniel Jordan <daniel.m.jordan@oracle.com>:
x86/mm: use max memory block size on bare metal
Jia He <justin.he@arm.com>:
mm/memory_hotplug: introduce default dummy memory_add_physaddr_to_nid()
mm/memory_hotplug: fix unpaired mem_hotplug_begin/done
Charan Teja Reddy <charante@codeaurora.org>:
mm, memory_hotplug: update pcp lists everytime onlining a memory block
Subsystem: mm/cleanups
Randy Dunlap <rdunlap@infradead.org>:
mm: drop duplicated words in <linux/pgtable.h>
mm: drop duplicated words in <linux/mm.h>
include/linux/highmem.h: fix duplicated words in a comment
include/linux/frontswap.h: drop duplicated word in a comment
include/linux/memcontrol.h: drop duplicate word and fix spello
Arvind Sankar <nivedita@alum.mit.edu>:
sh/mm: drop unused MAX_PHYSADDR_BITS
sparc: drop unused MAX_PHYSADDR_BITS
Randy Dunlap <rdunlap@infradead.org>:
mm/compaction.c: delete duplicated word
mm/filemap.c: delete duplicated word
mm/hmm.c: delete duplicated word
mm/hugetlb.c: delete duplicated words
mm/memcontrol.c: delete duplicated words
mm/memory.c: delete duplicated words
mm/migrate.c: delete duplicated word
mm/nommu.c: delete duplicated words
mm/page_alloc.c: delete or fix duplicated words
mm/shmem.c: delete duplicated word
mm/slab_common.c: delete duplicated word
mm/usercopy.c: delete duplicated word
mm/vmscan.c: delete or fix duplicated words
mm/zpool.c: delete duplicated word and fix grammar
mm/zsmalloc.c: fix duplicated words
Subsystem: mm/uaccess
Christoph Hellwig <hch@lst.de>:
Patch series "clean up address limit helpers", v2:
syscalls: use uaccess_kernel in addr_limit_user_check
nds32: use uaccess_kernel in show_regs
riscv: include <asm/pgtable.h> in <asm/uaccess.h>
uaccess: remove segment_eq
uaccess: add force_uaccess_{begin,end} helpers
exec: use force_uaccess_begin during exec and exit
Subsystem: alpha
Luc Van Oostenryck <luc.vanoostenryck@gmail.com>:
alpha: fix annotation of io{read,write}{16,32}be()
Subsystem: misc
Randy Dunlap <rdunlap@infradead.org>:
include/linux/compiler-clang.h: drop duplicated word in a comment
include/linux/exportfs.h: drop duplicated word in a comment
include/linux/async_tx.h: drop duplicated word in a comment
include/linux/xz.h: drop duplicated word
Christoph Hellwig <hch@lst.de>:
kernel: add a kernel_wait helper
Feng Tang <feng.tang@intel.com>:
./Makefile: add debug option to enable function aligned on 32 bytes
Arvind Sankar <nivedita@alum.mit.edu>:
kernel.h: remove duplicate include of asm/div64.h
"Alexander A. Klimov" <grandmaster@al2klimov.de>:
include/: replace HTTP links with HTTPS ones
Matthew Wilcox <willy@infradead.org>:
include/linux/poison.h: remove obsolete comment
Subsystem: sparse
Luc Van Oostenryck <luc.vanoostenryck@gmail.com>:
sparse: group the defines by functionality
Subsystem: bitmap
Stefano Brivio <sbrivio@redhat.com>:
Patch series "lib: Fix bitmap_cut() for overlaps, add test":
lib/bitmap.c: fix bitmap_cut() for partial overlapping case
lib/test_bitmap.c: add test for bitmap_cut()
Subsystem: lib
Luc Van Oostenryck <luc.vanoostenryck@gmail.com>:
lib/generic-radix-tree.c: remove unneeded __rcu
Geert Uytterhoeven <geert@linux-m68k.org>:
lib/test_bitops: do the full test during module init
Wei Yongjun <weiyongjun1@huawei.com>:
lib/test_lockup.c: make symbol 'test_works' static
Tiezhu Yang <yangtiezhu@loongson.cn>:
lib/Kconfig.debug: make TEST_LOCKUP depend on module
lib/test_lockup.c: fix return value of test_lockup_init()
"Alexander A. Klimov" <grandmaster@al2klimov.de>:
lib/: replace HTTP links with HTTPS ones
"Kars Mulder" <kerneldev@karsmulder.nl>:
kstrto*: correct documentation references to simple_strto*()
kstrto*: do not describe simple_strto*() as obsolete/replaced
Subsystem: lz4
Nick Terrell <terrelln@fb.com>:
lz4: fix kernel decompression speed
Subsystem: bitops
Rikard Falkeborn <rikard.falkeborn@gmail.com>:
lib/test_bits.c: add tests of GENMASK
Subsystem: checkpatch
Joe Perches <joe@perches.com>:
checkpatch: add test for possible misuse of IS_ENABLED() without CONFIG_
checkpatch: add --fix option for ASSIGN_IN_IF
Quentin Monnet <quentin@isovalent.com>:
checkpatch: fix CONST_STRUCT when const_structs.checkpatch is missing
Joe Perches <joe@perches.com>:
checkpatch: add test for repeated words
checkpatch: remove missing switch/case break test
Subsystem: autofs
Randy Dunlap <rdunlap@infradead.org>:
autofs: fix doubled word
Subsystem: minix
Eric Biggers <ebiggers@google.com>:
Patch series "fs/minix: fix syzbot bugs and set s_maxbytes":
fs/minix: check return value of sb_getblk()
fs/minix: don't allow getting deleted inodes
fs/minix: reject too-large maximum file size
fs/minix: set s_maxbytes correctly
fs/minix: fix block limit check for V1 filesystems
fs/minix: remove expected error message in block_to_path()
Subsystem: nilfs
Eric Biggers <ebiggers@google.com>:
Patch series "nilfs2 updates":
nilfs2: only call unlock_new_inode() if I_NEW
Joe Perches <joe@perches.com>:
nilfs2: convert __nilfs_msg to integrate the level and format
nilfs2: use a more common logging style
Subsystem: ufs
Colin Ian King <colin.king@canonical.com>:
fs/ufs: avoid potential u32 multiplication overflow
Subsystem: fat
Yubo Feng <fengyubo3@huawei.com>:
fatfs: switch write_lock to read_lock in fat_ioctl_get_attributes
"Alexander A. Klimov" <grandmaster@al2klimov.de>:
VFAT/FAT/MSDOS FILESYSTEM: replace HTTP links with HTTPS ones
OGAWA Hirofumi <hirofumi@mail.parknet.co.jp>:
fat: fix fat_ra_init() for data clusters == 0
Subsystem: signals
Helge Deller <deller@gmx.de>:
fs/signalfd.c: fix inconsistent return codes for signalfd4
Subsystem: kmod
Tiezhu Yang <yangtiezhu@loongson.cn>:
Patch series "kmod/umh: a few fixes":
selftests: kmod: use variable NAME in kmod_test_0001()
kmod: remove redundant "be an" in the comment
test_kmod: avoid potential double free in trigger_config_run_type()
Subsystem: coredump
Lepton Wu <ytht.net@gmail.com>:
coredump: add %f for executable filename
Subsystem: exec
Kees Cook <keescook@chromium.org>:
Patch series "Relocate execve() sanity checks", v2:
exec: change uselib(2) IS_SREG() failure to EACCES
exec: move S_ISREG() check earlier
exec: move path_noexec() check earlier
Subsystem: kdump
Vijay Balakrishna <vijayb@linux.microsoft.com>:
kdump: append kernel build-id string to VMCOREINFO
Subsystem: rapidio
"Gustavo A. R. Silva" <gustavoars@kernel.org>:
drivers/rapidio/devices/rio_mport_cdev.c: use struct_size() helper
drivers/rapidio/rio-scan.c: use struct_size() helper
rapidio/rio_mport_cdev: use array_size() helper in copy_{from,to}_user()
Subsystem: panic
Tiezhu Yang <yangtiezhu@loongson.cn>:
kernel/panic.c: make oops_may_print() return bool
lib/Kconfig.debug: fix typo in the help text of CONFIG_PANIC_TIMEOUT
Yue Hu <huyue2@yulong.com>:
panic: make print_oops_end_marker() static
Subsystem: kcov
Marco Elver <elver@google.com>:
kcov: unconditionally add -fno-stack-protector to compiler options
Wei Yongjun <weiyongjun1@huawei.com>:
kcov: make some symbols static
Subsystem: kgdb
Nick Desaulniers <ndesaulniers@google.com>:
scripts/gdb: fix python 3.8 SyntaxWarning
Subsystem: ipc
Alexey Dobriyan <adobriyan@gmail.com>:
ipc: uninline functions
Liao Pingfang <liao.pingfang@zte.com.cn>:
ipc/shm.c: remove the superfluous break
Subsystem: mm/migration
Joonsoo Kim <iamjoonsoo.kim@lge.com>:
Patch series "clean-up the migration target allocation functions", v5:
mm/page_isolation: prefer the node of the source page
mm/migrate: move migration helper from .h to .c
mm/hugetlb: unify migration callbacks
mm/migrate: clear __GFP_RECLAIM to make the migration callback consistent with regular THP allocations
mm/migrate: introduce a standard migration target allocation function
mm/mempolicy: use a standard migration target allocation callback
mm/page_alloc: remove a wrapper for alloc_migration_target()
Subsystem: mm/gup
Joonsoo Kim <iamjoonsoo.kim@lge.com>:
mm/gup: restrict CMA region by using allocation scope API
mm/hugetlb: make hugetlb migration callback CMA aware
mm/gup: use a standard migration target allocation callback
Subsystem: mm/pagemap
Peter Xu <peterx@redhat.com>:
Patch series "mm: Page fault accounting cleanups", v5:
mm: do page fault accounting in handle_mm_fault
mm/alpha: use general page fault accounting
mm/arc: use general page fault accounting
mm/arm: use general page fault accounting
mm/arm64: use general page fault accounting
mm/csky: use general page fault accounting
mm/hexagon: use general page fault accounting
mm/ia64: use general page fault accounting
mm/m68k: use general page fault accounting
mm/microblaze: use general page fault accounting
mm/mips: use general page fault accounting
mm/nds32: use general page fault accounting
mm/nios2: use general page fault accounting
mm/openrisc: use general page fault accounting
mm/parisc: use general page fault accounting
mm/powerpc: use general page fault accounting
mm/riscv: use general page fault accounting
mm/s390: use general page fault accounting
mm/sh: use general page fault accounting
mm/sparc32: use general page fault accounting
mm/sparc64: use general page fault accounting
mm/x86: use general page fault accounting
mm/xtensa: use general page fault accounting
mm: clean up the last pieces of page fault accountings
mm/gup: remove task_struct pointer for all gup code
Documentation/admin-guide/cgroup-v2.rst | 4
Documentation/admin-guide/sysctl/kernel.rst | 3
Documentation/admin-guide/sysctl/vm.rst | 15 +
Documentation/filesystems/proc.rst | 11 -
Documentation/vm/page_migration.rst | 27 +++
Makefile | 4
arch/alpha/include/asm/io.h | 8
arch/alpha/include/asm/uaccess.h | 2
arch/alpha/mm/fault.c | 10 -
arch/arc/include/asm/segment.h | 3
arch/arc/kernel/process.c | 2
arch/arc/mm/fault.c | 20 --
arch/arm/include/asm/uaccess.h | 4
arch/arm/kernel/signal.c | 2
arch/arm/mm/fault.c | 27 ---
arch/arm64/include/asm/uaccess.h | 2
arch/arm64/kernel/sdei.c | 2
arch/arm64/mm/fault.c | 31 ---
arch/arm64/mm/numa.c | 10 -
arch/csky/include/asm/segment.h | 2
arch/csky/mm/fault.c | 15 -
arch/h8300/include/asm/segment.h | 2
arch/hexagon/mm/vm_fault.c | 11 -
arch/ia64/include/asm/uaccess.h | 2
arch/ia64/mm/fault.c | 11 -
arch/ia64/mm/numa.c | 2
arch/m68k/include/asm/segment.h | 2
arch/m68k/include/asm/tlbflush.h | 6
arch/m68k/mm/fault.c | 16 -
arch/microblaze/include/asm/uaccess.h | 2
arch/microblaze/mm/fault.c | 11 -
arch/mips/include/asm/uaccess.h | 2
arch/mips/kernel/unaligned.c | 27 +--
arch/mips/mm/fault.c | 16 -
arch/nds32/include/asm/uaccess.h | 2
arch/nds32/kernel/process.c | 2
arch/nds32/mm/alignment.c | 7
arch/nds32/mm/fault.c | 21 --
arch/nios2/include/asm/uaccess.h | 2
arch/nios2/mm/fault.c | 16 -
arch/openrisc/include/asm/uaccess.h | 2
arch/openrisc/mm/fault.c | 11 -
arch/parisc/include/asm/uaccess.h | 2
arch/parisc/mm/fault.c | 10 -
arch/powerpc/include/asm/uaccess.h | 3
arch/powerpc/mm/copro_fault.c | 7
arch/powerpc/mm/fault.c | 13 -
arch/riscv/include/asm/uaccess.h | 6
arch/riscv/mm/fault.c | 18 --
arch/s390/include/asm/uaccess.h | 2
arch/s390/kvm/interrupt.c | 2
arch/s390/kvm/kvm-s390.c | 2
arch/s390/kvm/priv.c | 8
arch/s390/mm/fault.c | 18 --
arch/s390/mm/gmap.c | 4
arch/sh/include/asm/segment.h | 3
arch/sh/include/asm/sparsemem.h | 4
arch/sh/kernel/traps_32.c | 12 -
arch/sh/mm/fault.c | 13 -
arch/sh/mm/init.c | 9 -
arch/sparc/include/asm/sparsemem.h | 1
arch/sparc/include/asm/uaccess_32.h | 2
arch/sparc/include/asm/uaccess_64.h | 2
arch/sparc/mm/fault_32.c | 15 -
arch/sparc/mm/fault_64.c | 13 -
arch/um/kernel/trap.c | 6
arch/x86/include/asm/uaccess.h | 2
arch/x86/mm/fault.c | 19 --
arch/x86/mm/init_64.c | 9 +
arch/x86/mm/numa.c | 1
arch/xtensa/include/asm/uaccess.h | 2
arch/xtensa/mm/fault.c | 17 -
drivers/firmware/arm_sdei.c | 5
drivers/gpu/drm/i915/gem/i915_gem_userptr.c | 2
drivers/infiniband/core/umem_odp.c | 2
drivers/iommu/amd/iommu_v2.c | 2
drivers/iommu/intel/svm.c | 3
drivers/rapidio/devices/rio_mport_cdev.c | 7
drivers/rapidio/rio-scan.c | 8
drivers/vfio/vfio_iommu_type1.c | 4
fs/coredump.c | 17 +
fs/exec.c | 38 ++--
fs/fat/Kconfig | 2
fs/fat/fatent.c | 3
fs/fat/file.c | 4
fs/hugetlbfs/inode.c | 6
fs/minix/inode.c | 48 ++++-
fs/minix/itree_common.c | 8
fs/minix/itree_v1.c | 16 -
fs/minix/itree_v2.c | 15 -
fs/minix/minix.h | 1
fs/namei.c | 10 -
fs/nilfs2/alloc.c | 38 ++--
fs/nilfs2/btree.c | 42 ++--
fs/nilfs2/cpfile.c | 10 -
fs/nilfs2/dat.c | 14 -
fs/nilfs2/direct.c | 14 -
fs/nilfs2/gcinode.c | 2
fs/nilfs2/ifile.c | 4
fs/nilfs2/inode.c | 32 +--
fs/nilfs2/ioctl.c | 37 ++--
fs/nilfs2/mdt.c | 2
fs/nilfs2/namei.c | 6
fs/nilfs2/nilfs.h | 18 +-
fs/nilfs2/page.c | 11 -
fs/nilfs2/recovery.c | 32 +--
fs/nilfs2/segbuf.c | 2
fs/nilfs2/segment.c | 38 ++--
fs/nilfs2/sufile.c | 29 +--
fs/nilfs2/super.c | 73 ++++----
fs/nilfs2/sysfs.c | 29 +--
fs/nilfs2/the_nilfs.c | 85 ++++-----
fs/open.c | 6
fs/proc/base.c | 11 +
fs/proc/task_mmu.c | 4
fs/signalfd.c | 10 -
fs/ufs/super.c | 2
include/asm-generic/uaccess.h | 4
include/clocksource/timer-ti-dm.h | 2
include/linux/async_tx.h | 2
include/linux/btree.h | 2
include/linux/compaction.h | 6
include/linux/compiler-clang.h | 2
include/linux/compiler_types.h | 44 ++---
include/linux/crash_core.h | 6
include/linux/delay.h | 2
include/linux/dma/k3-psil.h | 2
include/linux/dma/k3-udma-glue.h | 2
include/linux/dma/ti-cppi5.h | 2
include/linux/exportfs.h | 2
include/linux/frontswap.h | 2
include/linux/fs.h | 10 +
include/linux/generic-radix-tree.h | 2
include/linux/highmem.h | 2
include/linux/huge_mm.h | 7
include/linux/hugetlb.h | 53 ++++--
include/linux/irqchip/irq-omap-intc.h | 2
include/linux/jhash.h | 2
include/linux/kernel.h | 12 -
include/linux/leds-ti-lmu-common.h | 2
include/linux/memcontrol.h | 12 +
include/linux/mempolicy.h | 18 +-
include/linux/migrate.h | 42 +---
include/linux/mm.h | 20 +-
include/linux/mmzone.h | 17 +
include/linux/oom.h | 4
include/linux/pgtable.h | 12 -
include/linux/platform_data/davinci-cpufreq.h | 2
include/linux/platform_data/davinci_asp.h | 2
include/linux/platform_data/elm.h | 2
include/linux/platform_data/gpio-davinci.h | 2
include/linux/platform_data/gpmc-omap.h | 2
include/linux/platform_data/mtd-davinci-aemif.h | 2
include/linux/platform_data/omap-twl4030.h | 2
include/linux/platform_data/uio_pruss.h | 2
include/linux/platform_data/usb-omap.h | 2
include/linux/poison.h | 4
include/linux/sched/mm.h | 8
include/linux/sched/task.h | 1
include/linux/soc/ti/k3-ringacc.h | 2
include/linux/soc/ti/knav_qmss.h | 2
include/linux/soc/ti/ti-msgmgr.h | 2
include/linux/swap.h | 25 ++
include/linux/syscalls.h | 2
include/linux/uaccess.h | 20 ++
include/linux/vm_event_item.h | 3
include/linux/wkup_m3_ipc.h | 2
include/linux/xxhash.h | 2
include/linux/xz.h | 4
include/linux/zlib.h | 2
include/soc/arc/aux.h | 2
include/trace/events/migrate.h | 17 +
include/uapi/linux/auto_dev-ioctl.h | 2
include/uapi/linux/elf.h | 2
include/uapi/linux/map_to_7segment.h | 2
include/uapi/linux/types.h | 2
include/uapi/linux/usb/ch9.h | 2
ipc/sem.c | 3
ipc/shm.c | 4
kernel/Makefile | 2
kernel/crash_core.c | 50 +++++
kernel/events/callchain.c | 5
kernel/events/core.c | 5
kernel/events/uprobes.c | 8
kernel/exit.c | 18 +-
kernel/futex.c | 2
kernel/kcov.c | 6
kernel/kmod.c | 5
kernel/kthread.c | 5
kernel/panic.c | 4
kernel/stacktrace.c | 5
kernel/sysctl.c | 11 +
kernel/umh.c | 29 ---
lib/Kconfig.debug | 27 ++-
lib/Makefile | 1
lib/bitmap.c | 4
lib/crc64.c | 2
lib/decompress_bunzip2.c | 2
lib/decompress_unlzma.c | 6
lib/kstrtox.c | 20 --
lib/lz4/lz4_compress.c | 4
lib/lz4/lz4_decompress.c | 18 +-
lib/lz4/lz4defs.h | 10 +
lib/lz4/lz4hc_compress.c | 2
lib/math/rational.c | 2
lib/rbtree.c | 2
lib/test_bitmap.c | 58 ++++++
lib/test_bitops.c | 18 +-
lib/test_bits.c | 75 ++++++++
lib/test_kmod.c | 2
lib/test_lockup.c | 6
lib/ts_bm.c | 2
lib/xxhash.c | 2
lib/xz/xz_crc32.c | 2
lib/xz/xz_dec_bcj.c | 2
lib/xz/xz_dec_lzma2.c | 2
lib/xz/xz_lzma2.h | 2
lib/xz/xz_stream.h | 2
mm/cma.c | 40 +---
mm/cma.h | 4
mm/compaction.c | 207 +++++++++++++++++++++--
mm/filemap.c | 2
mm/gup.c | 195 ++++++----------------
mm/hmm.c | 5
mm/huge_memory.c | 23 --
mm/hugetlb.c | 93 ++++------
mm/internal.h | 9 -
mm/khugepaged.c | 2
mm/ksm.c | 3
mm/maccess.c | 22 +-
mm/memcontrol.c | 42 +++-
mm/memory-failure.c | 7
mm/memory.c | 107 +++++++++---
mm/memory_hotplug.c | 30 ++-
mm/mempolicy.c | 49 +----
mm/migrate.c | 151 ++++++++++++++---
mm/mmu_notifier.c | 9 -
mm/nommu.c | 4
mm/oom_kill.c | 24 +-
mm/page_alloc.c | 14 +
mm/page_isolation.c | 21 --
mm/percpu-internal.h | 55 ++++++
mm/percpu-km.c | 5
mm/percpu-stats.c | 36 ++--
mm/percpu-vm.c | 5
mm/percpu.c | 208 +++++++++++++++++++++---
mm/process_vm_access.c | 2
mm/rmap.c | 2
mm/shmem.c | 5
mm/slab_common.c | 2
mm/swap.c | 13 -
mm/swap_state.c | 80 +++++++--
mm/swapfile.c | 4
mm/usercopy.c | 2
mm/userfaultfd.c | 2
mm/vmscan.c | 36 ++--
mm/vmstat.c | 32 +++
mm/workingset.c | 23 +-
mm/zpool.c | 8
mm/zsmalloc.c | 2
scripts/checkpatch.pl | 116 +++++++++----
scripts/gdb/linux/rbtree.py | 4
security/tomoyo/domain.c | 2
tools/testing/selftests/cgroup/test_kmem.c | 70 +++++++-
tools/testing/selftests/kmod/kmod.sh | 4
tools/testing/selftests/vm/hmm-tests.c | 35 ++++
virt/kvm/async_pf.c | 2
virt/kvm/kvm_main.c | 2
268 files changed, 2481 insertions(+), 1551 deletions(-)
^ permalink raw reply [flat|nested] 215+ messages in thread
* incoming
@ 2020-08-07 6:16 Andrew Morton
0 siblings, 0 replies; 215+ messages in thread
From: Andrew Morton @ 2020-08-07 6:16 UTC (permalink / raw)
To: Linus Torvalds; +Cc: mm-commits, linux-mm
- A few MM hotfixes
- kthread, tools, scripts, ntfs and ocfs2
- Some of MM
163 patches, based on d6efb3ac3e6c19ab722b28bdb9252bae0b9676b6.
Subsystems affected by this patch series:
mm/pagemap
mm/hofixes
mm/pagealloc
kthread
tools
scripts
ntfs
ocfs2
mm/slab-generic
mm/slab
mm/slub
mm/kcsan
mm/debug
mm/pagecache
mm/gup
mm/swap
mm/shmem
mm/memcg
mm/pagemap
mm/mremap
mm/mincore
mm/sparsemem
mm/vmalloc
mm/kasan
mm/pagealloc
mm/hugetlb
mm/vmscan
Subsystem: mm/pagemap
Yang Shi <yang.shi@linux.alibaba.com>:
mm/memory.c: avoid access flag update TLB flush for retried page fault
Subsystem: mm/hofixes
Ralph Campbell <rcampbell@nvidia.com>:
mm/migrate: fix migrate_pgmap_owner w/o CONFIG_MMU_NOTIFIER
Subsystem: mm/pagealloc
David Hildenbrand <david@redhat.com>:
mm/shuffle: don't move pages between zones and don't read garbage memmaps
Subsystem: kthread
Peter Zijlstra <peterz@infradead.org>:
mm: fix kthread_use_mm() vs TLB invalidate
Ilias Stamatis <stamatis.iliass@gmail.com>:
kthread: remove incorrect comment in kthread_create_on_cpu()
Subsystem: tools
"Alexander A. Klimov" <grandmaster@al2klimov.de>:
tools/: replace HTTP links with HTTPS ones
Gaurav Singh <gaurav1086@gmail.com>:
tools/testing/selftests/cgroup/cgroup_util.c: cg_read_strcmp: fix null pointer dereference
Subsystem: scripts
Jialu Xu <xujialu@vimux.org>:
scripts/tags.sh: collect compiled source precisely
Nikolay Borisov <nborisov@suse.com>:
scripts/bloat-o-meter: Support comparing library archives
Konstantin Khlebnikov <khlebnikov@yandex-team.ru>:
scripts/decode_stacktrace.sh: skip missing symbols
scripts/decode_stacktrace.sh: guess basepath if not specified
scripts/decode_stacktrace.sh: guess path to modules
scripts/decode_stacktrace.sh: guess path to vmlinux by release name
Joe Perches <joe@perches.com>:
const_structs.checkpatch: add regulator_ops
Colin Ian King <colin.king@canonical.com>:
scripts/spelling.txt: add more spellings to spelling.txt
Subsystem: ntfs
Luca Stefani <luca.stefani.ge1@gmail.com>:
ntfs: fix ntfs_test_inode and ntfs_init_locked_inode function type
Subsystem: ocfs2
Gang He <ghe@suse.com>:
ocfs2: fix remounting needed after setfacl command
Randy Dunlap <rdunlap@infradead.org>:
ocfs2: suballoc.h: delete a duplicated word
Junxiao Bi <junxiao.bi@oracle.com>:
ocfs2: change slot number type s16 to u16
"Alexander A. Klimov" <grandmaster@al2klimov.de>:
ocfs2: replace HTTP links with HTTPS ones
Pavel Machek <pavel@ucw.cz>:
ocfs2: fix unbalanced locking
Subsystem: mm/slab-generic
Waiman Long <longman@redhat.com>:
mm, treewide: rename kzfree() to kfree_sensitive()
William Kucharski <william.kucharski@oracle.com>:
mm: ksize() should silently accept a NULL pointer
Subsystem: mm/slab
Kees Cook <keescook@chromium.org>:
Patch series "mm: Expand CONFIG_SLAB_FREELIST_HARDENED to include SLAB":
mm/slab: expand CONFIG_SLAB_FREELIST_HARDENED to include SLAB
mm/slab: add naive detection of double free
Long Li <lonuxli.64@gmail.com>:
mm, slab: check GFP_SLAB_BUG_MASK before alloc_pages in kmalloc_order
Xiao Yang <yangx.jy@cn.fujitsu.com>:
mm/slab.c: update outdated kmem_list3 in a comment
Subsystem: mm/slub
Vlastimil Babka <vbabka@suse.cz>:
Patch series "slub_debug fixes and improvements":
mm, slub: extend slub_debug syntax for multiple blocks
mm, slub: make some slub_debug related attributes read-only
mm, slub: remove runtime allocation order changes
mm, slub: make remaining slub_debug related attributes read-only
mm, slub: make reclaim_account attribute read-only
mm, slub: introduce static key for slub_debug()
mm, slub: introduce kmem_cache_debug_flags()
mm, slub: extend checks guarded by slub_debug static key
mm, slab/slub: move and improve cache_from_obj()
mm, slab/slub: improve error reporting and overhead of cache_from_obj()
Sebastian Andrzej Siewior <bigeasy@linutronix.de>:
mm/slub.c: drop lockdep_assert_held() from put_map()
Subsystem: mm/kcsan
Marco Elver <elver@google.com>:
mm, kcsan: instrument SLAB/SLUB free with "ASSERT_EXCLUSIVE_ACCESS"
Subsystem: mm/debug
Anshuman Khandual <anshuman.khandual@arm.com>:
Patch series "mm/debug_vm_pgtable: Add some more tests", v5:
mm/debug_vm_pgtable: add tests validating arch helpers for core MM features
mm/debug_vm_pgtable: add tests validating advanced arch page table helpers
mm/debug_vm_pgtable: add debug prints for individual tests
Documentation/mm: add descriptions for arch page table helpers
"Matthew Wilcox (Oracle)" <willy@infradead.org>:
Patch series "Improvements for dump_page()", v2:
mm/debug: handle page->mapping better in dump_page
mm/debug: dump compound page information on a second line
mm/debug: print head flags in dump_page
mm/debug: switch dump_page to get_kernel_nofault
mm/debug: print the inode number in dump_page
mm/debug: print hashed address of struct page
John Hubbard <jhubbard@nvidia.com>:
mm, dump_page: do not crash with bad compound_mapcount()
Subsystem: mm/pagecache
Yang Shi <yang.shi@linux.alibaba.com>:
mm: filemap: clear idle flag for writes
mm: filemap: add missing FGP_ flags in kerneldoc comment for pagecache_get_page
Subsystem: mm/gup
Tang Yizhou <tangyizhou@huawei.com>:
mm/gup.c: fix the comment of return value for populate_vma_page_range()
Subsystem: mm/swap
Zhen Lei <thunder.leizhen@huawei.com>:
Patch series "clean up some functions in mm/swap_slots.c":
mm/swap_slots.c: simplify alloc_swap_slot_cache()
mm/swap_slots.c: simplify enable_swap_slots_cache()
mm/swap_slots.c: remove redundant check for swap_slot_cache_initialized
Krzysztof Kozlowski <krzk@kernel.org>:
mm: swap: fix kerneldoc of swap_vma_readahead()
Xianting Tian <xianting_tian@126.com>:
mm/page_io.c: use blk_io_schedule() for avoiding task hung in sync io
Subsystem: mm/shmem
Chris Down <chris@chrisdown.name>:
Patch series "tmpfs: inode: Reduce risk of inum overflow", v7:
tmpfs: per-superblock i_ino support
tmpfs: support 64-bit inums per-sb
Subsystem: mm/memcg
Roman Gushchin <guro@fb.com>:
mm: kmem: make memcg_kmem_enabled() irreversible
Patch series "The new cgroup slab memory controller", v7:
mm: memcg: factor out memcg- and lruvec-level changes out of __mod_lruvec_state()
mm: memcg: prepare for byte-sized vmstat items
mm: memcg: convert vmstat slab counters to bytes
mm: slub: implement SLUB version of obj_to_index()
Johannes Weiner <hannes@cmpxchg.org>:
mm: memcontrol: decouple reference counting from page accounting
Roman Gushchin <guro@fb.com>:
mm: memcg/slab: obj_cgroup API
mm: memcg/slab: allocate obj_cgroups for non-root slab pages
mm: memcg/slab: save obj_cgroup for non-root slab objects
mm: memcg/slab: charge individual slab objects instead of pages
mm: memcg/slab: deprecate memory.kmem.slabinfo
mm: memcg/slab: move memcg_kmem_bypass() to memcontrol.h
mm: memcg/slab: use a single set of kmem_caches for all accounted allocations
mm: memcg/slab: simplify memcg cache creation
mm: memcg/slab: remove memcg_kmem_get_cache()
mm: memcg/slab: deprecate slab_root_caches
mm: memcg/slab: remove redundant check in memcg_accumulate_slabinfo()
mm: memcg/slab: use a single set of kmem_caches for all allocations
kselftests: cgroup: add kernel memory accounting tests
tools/cgroup: add memcg_slabinfo.py tool
Shakeel Butt <shakeelb@google.com>:
mm: memcontrol: account kernel stack per node
Roman Gushchin <guro@fb.com>:
mm: memcg/slab: remove unused argument by charge_slab_page()
mm: slab: rename (un)charge_slab_page() to (un)account_slab_page()
mm: kmem: switch to static_branch_likely() in memcg_kmem_enabled()
mm: memcontrol: avoid workload stalls when lowering memory.high
Chris Down <chris@chrisdown.name>:
Patch series "mm, memcg: reclaim harder before high throttling", v2:
mm, memcg: reclaim more aggressively before high allocator throttling
mm, memcg: unify reclaim retry limits with page allocator
Yafang Shao <laoar.shao@gmail.com>:
Patch series "mm, memcg: memory.{low,min} reclaim fix & cleanup", v4:
mm, memcg: avoid stale protection values when cgroup is above protection
Chris Down <chris@chrisdown.name>:
mm, memcg: decouple e{low,min} state mutations from protection checks
Yafang Shao <laoar.shao@gmail.com>:
memcg, oom: check memcg margin for parallel oom
Johannes Weiner <hannes@cmpxchg.org>:
mm: memcontrol: restore proper dirty throttling when memory.high changes
mm: memcontrol: don't count limit-setting reclaim as memory pressure
Michal Koutný <mkoutny@suse.com>:
mm/page_counter.c: fix protection usage propagation
Subsystem: mm/pagemap
Ralph Campbell <rcampbell@nvidia.com>:
mm: remove redundant check non_swap_entry()
Alex Zhang <zhangalex@google.com>:
mm/memory.c: make remap_pfn_range() reject unaligned addr
Mike Rapoport <rppt@linux.ibm.com>:
Patch series "mm: cleanup usage of <asm/pgalloc.h>":
mm: remove unneeded includes of <asm/pgalloc.h>
opeinrisc: switch to generic version of pte allocation
xtensa: switch to generic version of pte allocation
asm-generic: pgalloc: provide generic pmd_alloc_one() and pmd_free_one()
asm-generic: pgalloc: provide generic pud_alloc_one() and pud_free_one()
asm-generic: pgalloc: provide generic pgd_free()
mm: move lib/ioremap.c to mm/
Joerg Roedel <jroedel@suse.de>:
mm: move p?d_alloc_track to separate header file
Zhen Lei <thunder.leizhen@huawei.com>:
mm/mmap: optimize a branch judgment in ksys_mmap_pgoff()
Feng Tang <feng.tang@intel.com>:
Patch series "make vm_committed_as_batch aware of vm overcommit policy", v6:
proc/meminfo: avoid open coded reading of vm_committed_as
mm/util.c: make vm_memory_committed() more accurate
percpu_counter: add percpu_counter_sync()
mm: adjust vm_committed_as_batch according to vm overcommit policy
Anshuman Khandual <anshuman.khandual@arm.com>:
Patch series "arm64: Enable vmemmap mapping from device memory", v4:
mm/sparsemem: enable vmem_altmap support in vmemmap_populate_basepages()
mm/sparsemem: enable vmem_altmap support in vmemmap_alloc_block_buf()
arm64/mm: enable vmem_altmap support for vmemmap mappings
Miaohe Lin <linmiaohe@huawei.com>:
mm: mmap: merge vma after call_mmap() if possible
Peter Collingbourne <pcc@google.com>:
mm: remove unnecessary wrapper function do_mmap_pgoff()
Subsystem: mm/mremap
Wei Yang <richard.weiyang@linux.alibaba.com>:
Patch series "mm/mremap: cleanup move_page_tables() a little", v5:
mm/mremap: it is sure to have enough space when extent meets requirement
mm/mremap: calculate extent in one place
mm/mremap: start addresses are properly aligned
Subsystem: mm/mincore
Ricardo Cañuelo <ricardo.canuelo@collabora.com>:
selftests: add mincore() tests
Subsystem: mm/sparsemem
Wei Yang <richard.weiyang@linux.alibaba.com>:
mm/sparse: never partially remove memmap for early section
mm/sparse: only sub-section aligned range would be populated
Mike Rapoport <rppt@linux.ibm.com>:
mm/sparse: cleanup the code surrounding memory_present()
Subsystem: mm/vmalloc
"Matthew Wilcox (Oracle)" <willy@infradead.org>:
vmalloc: convert to XArray
"Uladzislau Rezki (Sony)" <urezki@gmail.com>:
mm/vmalloc: simplify merge_or_add_vmap_area()
mm/vmalloc: simplify augment_tree_propagate_check()
mm/vmalloc: switch to "propagate()" callback
mm/vmalloc: update the header about KVA rework
Mike Rapoport <rppt@linux.ibm.com>:
mm: vmalloc: remove redundant assignment in unmap_kernel_range_noflush()
"Uladzislau Rezki (Sony)" <urezki@gmail.com>:
mm/vmalloc.c: remove BUG() from the find_va_links()
Subsystem: mm/kasan
Marco Elver <elver@google.com>:
kasan: improve and simplify Kconfig.kasan
kasan: update required compiler versions in documentation
Walter Wu <walter-zh.wu@mediatek.com>:
Patch series "kasan: memorize and print call_rcu stack", v8:
rcu: kasan: record and print call_rcu() call stack
kasan: record and print the free track
kasan: add tests for call_rcu stack recording
kasan: update documentation for generic kasan
Vincenzo Frascino <vincenzo.frascino@arm.com>:
kasan: remove kasan_unpoison_stack_above_sp_to()
Walter Wu <walter-zh.wu@mediatek.com>:
lib/test_kasan.c: fix KASAN unit tests for tag-based KASAN
Andrey Konovalov <andreyknvl@google.com>:
Patch series "kasan: support stack instrumentation for tag-based mode", v2:
kasan: don't tag stacks allocated with pagealloc
efi: provide empty efi_enter_virtual_mode implementation
kasan, arm64: don't instrument functions that enable kasan
kasan: allow enabling stack tagging for tag-based mode
kasan: adjust kasan_stack_oob for tag-based mode
Subsystem: mm/pagealloc
Vlastimil Babka <vbabka@suse.cz>:
mm, page_alloc: use unlikely() in task_capc()
Jaewon Kim <jaewon31.kim@samsung.com>:
page_alloc: consider highatomic reserve in watermark fast
Charan Teja Reddy <charante@codeaurora.org>:
mm, page_alloc: skip ->waternark_boost for atomic order-0 allocations
David Hildenbrand <david@redhat.com>:
mm: remove vm_total_pages
mm/page_alloc: remove nr_free_pagecache_pages()
mm/memory_hotplug: document why shuffle_zone() is relevant
mm/shuffle: remove dynamic reconfiguration
Wei Yang <richard.weiyang@linux.alibaba.com>:
mm/page_alloc.c: replace the definition of NR_MIGRATETYPE_BITS with PB_migratetype_bits
mm/page_alloc.c: extract the common part in pfn_to_bitidx()
mm/page_alloc.c: simplify pageblock bitmap access
mm/page_alloc.c: remove unnecessary end_bitidx for [set|get]_pfnblock_flags_mask()
Qian Cai <cai@lca.pw>:
mm/page_alloc: silence a KASAN false positive
Wei Yang <richard.weiyang@linux.alibaba.com>:
mm/page_alloc: fallbacks at most has 3 elements
Muchun Song <songmuchun@bytedance.com>:
mm/page_alloc.c: skip setting nodemask when we are in interrupt
Joonsoo Kim <iamjoonsoo.kim@lge.com>:
mm/page_alloc: fix memalloc_nocma_{save/restore} APIs
Subsystem: mm/hugetlb
"Alexander A. Klimov" <grandmaster@al2klimov.de>:
mm: thp: replace HTTP links with HTTPS ones
Peter Xu <peterx@redhat.com>:
mm/hugetlb: fix calculation of adjust_range_if_pmd_sharing_possible
Hugh Dickins <hughd@google.com>:
khugepaged: collapse_pte_mapped_thp() flush the right range
khugepaged: collapse_pte_mapped_thp() protect the pmd lock
khugepaged: retract_page_tables() remember to test exit
khugepaged: khugepaged_test_exit() check mmget_still_valid()
Subsystem: mm/vmscan
dylan-meiners <spacct.spacct@gmail.com>:
mm/vmscan.c: fix typo
Shakeel Butt <shakeelb@google.com>:
mm: vmscan: consistent update to pgrefill
Documentation/admin-guide/kernel-parameters.txt | 2
Documentation/dev-tools/kasan.rst | 10
Documentation/filesystems/dlmfs.rst | 2
Documentation/filesystems/ocfs2.rst | 2
Documentation/filesystems/tmpfs.rst | 18
Documentation/vm/arch_pgtable_helpers.rst | 258 +++++
Documentation/vm/memory-model.rst | 9
Documentation/vm/slub.rst | 51 -
arch/alpha/include/asm/pgalloc.h | 21
arch/alpha/include/asm/tlbflush.h | 1
arch/alpha/kernel/core_irongate.c | 1
arch/alpha/kernel/core_marvel.c | 1
arch/alpha/kernel/core_titan.c | 1
arch/alpha/kernel/machvec_impl.h | 2
arch/alpha/kernel/smp.c | 1
arch/alpha/mm/numa.c | 1
arch/arc/mm/fault.c | 1
arch/arc/mm/init.c | 1
arch/arm/include/asm/pgalloc.h | 12
arch/arm/include/asm/tlb.h | 1
arch/arm/kernel/machine_kexec.c | 1
arch/arm/kernel/smp.c | 1
arch/arm/kernel/suspend.c | 1
arch/arm/mach-omap2/omap-mpuss-lowpower.c | 1
arch/arm/mm/hugetlbpage.c | 1
arch/arm/mm/init.c | 9
arch/arm/mm/mmu.c | 1
arch/arm64/include/asm/pgalloc.h | 39
arch/arm64/kernel/setup.c | 2
arch/arm64/kernel/smp.c | 1
arch/arm64/mm/hugetlbpage.c | 1
arch/arm64/mm/init.c | 6
arch/arm64/mm/ioremap.c | 1
arch/arm64/mm/mmu.c | 63 -
arch/csky/include/asm/pgalloc.h | 7
arch/csky/kernel/smp.c | 1
arch/hexagon/include/asm/pgalloc.h | 7
arch/ia64/include/asm/pgalloc.h | 24
arch/ia64/include/asm/tlb.h | 1
arch/ia64/kernel/process.c | 1
arch/ia64/kernel/smp.c | 1
arch/ia64/kernel/smpboot.c | 1
arch/ia64/mm/contig.c | 1
arch/ia64/mm/discontig.c | 4
arch/ia64/mm/hugetlbpage.c | 1
arch/ia64/mm/tlb.c | 1
arch/m68k/include/asm/mmu_context.h | 2
arch/m68k/include/asm/sun3_pgalloc.h | 7
arch/m68k/kernel/dma.c | 2
arch/m68k/kernel/traps.c | 3
arch/m68k/mm/cache.c | 2
arch/m68k/mm/fault.c | 1
arch/m68k/mm/kmap.c | 2
arch/m68k/mm/mcfmmu.c | 1
arch/m68k/mm/memory.c | 1
arch/m68k/sun3x/dvma.c | 2
arch/microblaze/include/asm/pgalloc.h | 6
arch/microblaze/include/asm/tlbflush.h | 1
arch/microblaze/kernel/process.c | 1
arch/microblaze/kernel/signal.c | 1
arch/microblaze/mm/init.c | 3
arch/mips/include/asm/pgalloc.h | 19
arch/mips/kernel/setup.c | 8
arch/mips/loongson64/numa.c | 1
arch/mips/sgi-ip27/ip27-memory.c | 2
arch/mips/sgi-ip32/ip32-memory.c | 1
arch/nds32/mm/mm-nds32.c | 2
arch/nios2/include/asm/pgalloc.h | 7
arch/openrisc/include/asm/pgalloc.h | 33
arch/openrisc/include/asm/tlbflush.h | 1
arch/openrisc/kernel/or32_ksyms.c | 1
arch/parisc/include/asm/mmu_context.h | 1
arch/parisc/include/asm/pgalloc.h | 12
arch/parisc/kernel/cache.c | 1
arch/parisc/kernel/pci-dma.c | 1
arch/parisc/kernel/process.c | 1
arch/parisc/kernel/signal.c | 1
arch/parisc/kernel/smp.c | 1
arch/parisc/mm/hugetlbpage.c | 1
arch/parisc/mm/init.c | 5
arch/parisc/mm/ioremap.c | 2
arch/powerpc/include/asm/tlb.h | 1
arch/powerpc/mm/book3s64/hash_hugetlbpage.c | 1
arch/powerpc/mm/book3s64/hash_pgtable.c | 1
arch/powerpc/mm/book3s64/hash_tlb.c | 1
arch/powerpc/mm/book3s64/radix_hugetlbpage.c | 1
arch/powerpc/mm/init_32.c | 1
arch/powerpc/mm/init_64.c | 4
arch/powerpc/mm/kasan/8xx.c | 1
arch/powerpc/mm/kasan/book3s_32.c | 1
arch/powerpc/mm/mem.c | 3
arch/powerpc/mm/nohash/40x.c | 1
arch/powerpc/mm/nohash/8xx.c | 1
arch/powerpc/mm/nohash/fsl_booke.c | 1
arch/powerpc/mm/nohash/kaslr_booke.c | 1
arch/powerpc/mm/nohash/tlb.c | 1
arch/powerpc/mm/numa.c | 1
arch/powerpc/mm/pgtable.c | 1
arch/powerpc/mm/pgtable_64.c | 1
arch/powerpc/mm/ptdump/hashpagetable.c | 2
arch/powerpc/mm/ptdump/ptdump.c | 1
arch/powerpc/platforms/pseries/cmm.c | 1
arch/riscv/include/asm/pgalloc.h | 18
arch/riscv/mm/fault.c | 1
arch/riscv/mm/init.c | 3
arch/s390/crypto/prng.c | 4
arch/s390/include/asm/tlb.h | 1
arch/s390/include/asm/tlbflush.h | 1
arch/s390/kernel/machine_kexec.c | 1
arch/s390/kernel/ptrace.c | 1
arch/s390/kvm/diag.c | 1
arch/s390/kvm/priv.c | 1
arch/s390/kvm/pv.c | 1
arch/s390/mm/cmm.c | 1
arch/s390/mm/init.c | 1
arch/s390/mm/mmap.c | 1
arch/s390/mm/pgtable.c | 1
arch/sh/include/asm/pgalloc.h | 4
arch/sh/kernel/idle.c | 1
arch/sh/kernel/machine_kexec.c | 1
arch/sh/mm/cache-sh3.c | 1
arch/sh/mm/cache-sh7705.c | 1
arch/sh/mm/hugetlbpage.c | 1
arch/sh/mm/init.c | 7
arch/sh/mm/ioremap_fixed.c | 1
arch/sh/mm/numa.c | 3
arch/sh/mm/tlb-sh3.c | 1
arch/sparc/include/asm/ide.h | 1
arch/sparc/include/asm/tlb_64.h | 1
arch/sparc/kernel/leon_smp.c | 1
arch/sparc/kernel/process_32.c | 1
arch/sparc/kernel/signal_32.c | 1
arch/sparc/kernel/smp_32.c | 1
arch/sparc/kernel/smp_64.c | 1
arch/sparc/kernel/sun4m_irq.c | 1
arch/sparc/mm/highmem.c | 1
arch/sparc/mm/init_64.c | 1
arch/sparc/mm/io-unit.c | 1
arch/sparc/mm/iommu.c | 1
arch/sparc/mm/tlb.c | 1
arch/um/include/asm/pgalloc.h | 9
arch/um/include/asm/pgtable-3level.h | 3
arch/um/kernel/mem.c | 17
arch/x86/ia32/ia32_aout.c | 1
arch/x86/include/asm/mmu_context.h | 1
arch/x86/include/asm/pgalloc.h | 42
arch/x86/kernel/alternative.c | 1
arch/x86/kernel/apic/apic.c | 1
arch/x86/kernel/mpparse.c | 1
arch/x86/kernel/traps.c | 1
arch/x86/mm/fault.c | 1
arch/x86/mm/hugetlbpage.c | 1
arch/x86/mm/init_32.c | 2
arch/x86/mm/init_64.c | 12
arch/x86/mm/kaslr.c | 1
arch/x86/mm/pgtable_32.c | 1
arch/x86/mm/pti.c | 1
arch/x86/platform/uv/bios_uv.c | 1
arch/x86/power/hibernate.c | 2
arch/xtensa/include/asm/pgalloc.h | 46
arch/xtensa/kernel/xtensa_ksyms.c | 1
arch/xtensa/mm/cache.c | 1
arch/xtensa/mm/fault.c | 1
crypto/adiantum.c | 2
crypto/ahash.c | 4
crypto/api.c | 2
crypto/asymmetric_keys/verify_pefile.c | 4
crypto/deflate.c | 2
crypto/drbg.c | 10
crypto/ecc.c | 8
crypto/ecdh.c | 2
crypto/gcm.c | 2
crypto/gf128mul.c | 4
crypto/jitterentropy-kcapi.c | 2
crypto/rng.c | 2
crypto/rsa-pkcs1pad.c | 6
crypto/seqiv.c | 2
crypto/shash.c | 2
crypto/skcipher.c | 2
crypto/testmgr.c | 6
crypto/zstd.c | 2
drivers/base/node.c | 10
drivers/block/xen-blkback/common.h | 1
drivers/crypto/allwinner/sun8i-ce/sun8i-ce-cipher.c | 2
drivers/crypto/allwinner/sun8i-ss/sun8i-ss-cipher.c | 2
drivers/crypto/amlogic/amlogic-gxl-cipher.c | 4
drivers/crypto/atmel-ecc.c | 2
drivers/crypto/caam/caampkc.c | 28
drivers/crypto/cavium/cpt/cptvf_main.c | 6
drivers/crypto/cavium/cpt/cptvf_reqmanager.c | 12
drivers/crypto/cavium/nitrox/nitrox_lib.c | 4
drivers/crypto/cavium/zip/zip_crypto.c | 6
drivers/crypto/ccp/ccp-crypto-rsa.c | 6
drivers/crypto/ccree/cc_aead.c | 4
drivers/crypto/ccree/cc_buffer_mgr.c | 4
drivers/crypto/ccree/cc_cipher.c | 6
drivers/crypto/ccree/cc_hash.c | 8
drivers/crypto/ccree/cc_request_mgr.c | 2
drivers/crypto/marvell/cesa/hash.c | 2
drivers/crypto/marvell/octeontx/otx_cptvf_main.c | 6
drivers/crypto/marvell/octeontx/otx_cptvf_reqmgr.h | 2
drivers/crypto/nx/nx.c | 4
drivers/crypto/virtio/virtio_crypto_algs.c | 12
drivers/crypto/virtio/virtio_crypto_core.c | 2
drivers/iommu/ipmmu-vmsa.c | 1
drivers/md/dm-crypt.c | 32
drivers/md/dm-integrity.c | 6
drivers/misc/ibmvmc.c | 6
drivers/net/ethernet/hisilicon/hns3/hns3pf/hclge_mbx.c | 2
drivers/net/ethernet/intel/ixgbe/ixgbe_ipsec.c | 6
drivers/net/ppp/ppp_mppe.c | 6
drivers/net/wireguard/noise.c | 4
drivers/net/wireguard/peer.c | 2
drivers/net/wireless/intel/iwlwifi/pcie/rx.c | 2
drivers/net/wireless/intel/iwlwifi/pcie/tx-gen2.c | 6
drivers/net/wireless/intel/iwlwifi/pcie/tx.c | 6
drivers/net/wireless/intersil/orinoco/wext.c | 4
drivers/s390/crypto/ap_bus.h | 4
drivers/staging/ks7010/ks_hostif.c | 2
drivers/staging/rtl8723bs/core/rtw_security.c | 2
drivers/staging/wlan-ng/p80211netdev.c | 2
drivers/target/iscsi/iscsi_target_auth.c | 2
drivers/xen/balloon.c | 1
drivers/xen/privcmd.c | 1
fs/Kconfig | 21
fs/aio.c | 6
fs/binfmt_elf_fdpic.c | 1
fs/cifs/cifsencrypt.c | 2
fs/cifs/connect.c | 10
fs/cifs/dfs_cache.c | 2
fs/cifs/misc.c | 8
fs/crypto/inline_crypt.c | 5
fs/crypto/keyring.c | 6
fs/crypto/keysetup_v1.c | 4
fs/ecryptfs/keystore.c | 4
fs/ecryptfs/messaging.c | 2
fs/hugetlbfs/inode.c | 2
fs/ntfs/dir.c | 2
fs/ntfs/inode.c | 27
fs/ntfs/inode.h | 4
fs/ntfs/mft.c | 4
fs/ocfs2/Kconfig | 6
fs/ocfs2/acl.c | 2
fs/ocfs2/blockcheck.c | 2
fs/ocfs2/dlmglue.c | 8
fs/ocfs2/ocfs2.h | 4
fs/ocfs2/suballoc.c | 4
fs/ocfs2/suballoc.h | 2
fs/ocfs2/super.c | 4
fs/proc/meminfo.c | 10
include/asm-generic/pgalloc.h | 80 +
include/asm-generic/tlb.h | 1
include/crypto/aead.h | 2
include/crypto/akcipher.h | 2
include/crypto/gf128mul.h | 2
include/crypto/hash.h | 2
include/crypto/internal/acompress.h | 2
include/crypto/kpp.h | 2
include/crypto/skcipher.h | 2
include/linux/efi.h | 4
include/linux/fs.h | 17
include/linux/huge_mm.h | 2
include/linux/kasan.h | 4
include/linux/memcontrol.h | 209 +++-
include/linux/mm.h | 86 -
include/linux/mm_types.h | 5
include/linux/mman.h | 4
include/linux/mmu_notifier.h | 13
include/linux/mmzone.h | 54 -
include/linux/pageblock-flags.h | 30
include/linux/percpu_counter.h | 4
include/linux/sched/mm.h | 8
include/linux/shmem_fs.h | 3
include/linux/slab.h | 11
include/linux/slab_def.h | 9
include/linux/slub_def.h | 31
include/linux/swap.h | 2
include/linux/vmstat.h | 14
init/Kconfig | 9
init/main.c | 2
ipc/shm.c | 2
kernel/fork.c | 54 -
kernel/kthread.c | 8
kernel/power/snapshot.c | 2
kernel/rcu/tree.c | 2
kernel/scs.c | 2
kernel/sysctl.c | 2
lib/Kconfig.kasan | 39
lib/Makefile | 1
lib/ioremap.c | 287 -----
lib/mpi/mpiutil.c | 6
lib/percpu_counter.c | 19
lib/test_kasan.c | 87 +
mm/Kconfig | 6
mm/Makefile | 2
mm/debug.c | 103 +-
mm/debug_vm_pgtable.c | 666 +++++++++++++
mm/filemap.c | 9
mm/gup.c | 3
mm/huge_memory.c | 14
mm/hugetlb.c | 25
mm/ioremap.c | 289 +++++
mm/kasan/common.c | 41
mm/kasan/generic.c | 43
mm/kasan/generic_report.c | 1
mm/kasan/kasan.h | 25
mm/kasan/quarantine.c | 1
mm/kasan/report.c | 54 -
mm/kasan/tags.c | 37
mm/khugepaged.c | 75 -
mm/memcontrol.c | 832 ++++++++++-------
mm/memory.c | 15
mm/memory_hotplug.c | 11
mm/migrate.c | 6
mm/mm_init.c | 20
mm/mmap.c | 45
mm/mremap.c | 19
mm/nommu.c | 6
mm/oom_kill.c | 2
mm/page-writeback.c | 6
mm/page_alloc.c | 226 ++--
mm/page_counter.c | 6
mm/page_io.c | 2
mm/pgalloc-track.h | 51 +
mm/shmem.c | 133 ++
mm/shuffle.c | 46
mm/shuffle.h | 17
mm/slab.c | 129 +-
mm/slab.h | 755 ++++++---------
mm/slab_common.c | 829 ++--------------
mm/slob.c | 12
mm/slub.c | 680 ++++---------
mm/sparse-vmemmap.c | 62 -
mm/sparse.c | 31
mm/swap_slots.c | 45
mm/swap_state.c | 2
mm/util.c | 52 +
mm/vmalloc.c | 176 +--
mm/vmscan.c | 39
mm/vmstat.c | 38
mm/workingset.c | 6
net/atm/mpoa_caches.c | 4
net/bluetooth/ecdh_helper.c | 6
net/bluetooth/smp.c | 24
net/core/sock.c | 2
net/ipv4/tcp_fastopen.c | 2
net/mac80211/aead_api.c | 4
net/mac80211/aes_gmac.c | 2
net/mac80211/key.c | 2
net/mac802154/llsec.c | 20
net/sctp/auth.c | 2
net/sunrpc/auth_gss/gss_krb5_crypto.c | 4
net/sunrpc/auth_gss/gss_krb5_keys.c | 6
net/sunrpc/auth_gss/gss_krb5_mech.c | 2
net/tipc/crypto.c | 10
net/wireless/core.c | 2
net/wireless/ibss.c | 4
net/wireless/lib80211_crypt_tkip.c | 2
net/wireless/lib80211_crypt_wep.c | 2
net/wireless/nl80211.c | 24
net/wireless/sme.c | 6
net/wireless/util.c | 2
net/wireless/wext-sme.c | 2
scripts/Makefile.kasan | 3
scripts/bloat-o-meter | 2
scripts/coccinelle/free/devm_free.cocci | 4
scripts/coccinelle/free/ifnullfree.cocci | 4
scripts/coccinelle/free/kfree.cocci | 6
scripts/coccinelle/free/kfreeaddr.cocci | 2
scripts/const_structs.checkpatch | 1
scripts/decode_stacktrace.sh | 85 +
scripts/spelling.txt | 19
scripts/tags.sh | 18
security/apparmor/domain.c | 4
security/apparmor/include/file.h | 2
security/apparmor/policy.c | 24
security/apparmor/policy_ns.c | 6
security/apparmor/policy_unpack.c | 14
security/keys/big_key.c | 6
security/keys/dh.c | 14
security/keys/encrypted-keys/encrypted.c | 14
security/keys/trusted-keys/trusted_tpm1.c | 34
security/keys/user_defined.c | 6
tools/cgroup/memcg_slabinfo.py | 226 ++++
tools/include/linux/jhash.h | 2
tools/lib/rbtree.c | 2
tools/lib/traceevent/event-parse.h | 2
tools/testing/ktest/examples/README | 2
tools/testing/ktest/examples/crosstests.conf | 2
tools/testing/selftests/Makefile | 1
tools/testing/selftests/cgroup/.gitignore | 1
tools/testing/selftests/cgroup/Makefile | 2
tools/testing/selftests/cgroup/cgroup_util.c | 2
tools/testing/selftests/cgroup/test_kmem.c | 382 +++++++
tools/testing/selftests/mincore/.gitignore | 2
tools/testing/selftests/mincore/Makefile | 6
tools/testing/selftests/mincore/mincore_selftest.c | 361 +++++++
397 files changed, 5547 insertions(+), 4072 deletions(-)
^ permalink raw reply [flat|nested] 215+ messages in thread
* incoming
@ 2020-07-24 4:14 Andrew Morton
0 siblings, 0 replies; 215+ messages in thread
From: Andrew Morton @ 2020-07-24 4:14 UTC (permalink / raw)
To: Linus Torvalds; +Cc: mm-commits, linux-mm
15 patches, based on f37e99aca03f63aa3f2bd13ceaf769455d12c4b0.
Subsystems affected by this patch series:
mm/pagemap
mm/shmem
mm/hotfixes
mm/memcg
mm/hugetlb
mailmap
squashfs
scripts
io-mapping
MAINTAINERS
gdb
Subsystem: mm/pagemap
Yang Shi <yang.shi@linux.alibaba.com>:
mm/memory.c: avoid access flag update TLB flush for retried page fault
"Kirill A. Shutemov" <kirill.shutemov@linux.intel.com>:
mm/mmap.c: close race between munmap() and expand_upwards()/downwards()
Subsystem: mm/shmem
Chengguang Xu <cgxu519@mykernel.net>:
vfs/xattr: mm/shmem: kernfs: release simple xattr entry in a right way
Subsystem: mm/hotfixes
Tom Rix <trix@redhat.com>:
mm: initialize return of vm_insert_pages
Bhupesh Sharma <bhsharma@redhat.com>:
mm/memcontrol: fix OOPS inside mem_cgroup_get_nr_swap_pages()
Subsystem: mm/memcg
Hugh Dickins <hughd@google.com>:
mm/memcg: fix refcount error while moving and swapping
Muchun Song <songmuchun@bytedance.com>:
mm: memcg/slab: fix memory leak at non-root kmem_cache destroy
Subsystem: mm/hugetlb
Barry Song <song.bao.hua@hisilicon.com>:
mm/hugetlb: avoid hardcoding while checking if cma is enabled
"Kirill A. Shutemov" <kirill.shutemov@linux.intel.com>:
khugepaged: fix null-pointer dereference due to race
Subsystem: mailmap
Mike Rapoport <rppt@linux.ibm.com>:
mailmap: add entry for Mike Rapoport
Subsystem: squashfs
Phillip Lougher <phillip@squashfs.org.uk>:
squashfs: fix length field overlap check in metadata reading
Subsystem: scripts
Pi-Hsun Shih <pihsun@chromium.org>:
scripts/decode_stacktrace: strip basepath from all paths
Subsystem: io-mapping
"Michael J. Ruhl" <michael.j.ruhl@intel.com>:
io-mapping: indicate mapping failure
Subsystem: MAINTAINERS
Andrey Konovalov <andreyknvl@google.com>:
MAINTAINERS: add KCOV section
Subsystem: gdb
Stefano Garzarella <sgarzare@redhat.com>:
scripts/gdb: fix lx-symbols 'gdb.error' while loading modules
.mailmap | 3 +++
MAINTAINERS | 11 +++++++++++
fs/squashfs/block.c | 2 +-
include/linux/io-mapping.h | 5 ++++-
include/linux/xattr.h | 3 ++-
mm/hugetlb.c | 15 ++++++++++-----
mm/khugepaged.c | 3 +++
mm/memcontrol.c | 13 ++++++++++---
mm/memory.c | 9 +++++++--
mm/mmap.c | 16 ++++++++++++++--
mm/shmem.c | 2 +-
mm/slab_common.c | 35 ++++++++++++++++++++++++++++-------
scripts/decode_stacktrace.sh | 4 ++--
scripts/gdb/linux/symbols.py | 2 +-
14 files changed, 97 insertions(+), 26 deletions(-)
^ permalink raw reply [flat|nested] 215+ messages in thread
* incoming
@ 2020-07-03 22:14 Andrew Morton
0 siblings, 0 replies; 215+ messages in thread
From: Andrew Morton @ 2020-07-03 22:14 UTC (permalink / raw)
To: Linus Torvalds; +Cc: mm-commits, linux-mm
5 patches, based on cdd3bb54332f82295ed90cd0c09c78cd0c0ee822.
Subsystems affected by this patch series:
mm/hugetlb
samples
mm/cma
mm/vmalloc
mm/pagealloc
Subsystem: mm/hugetlb
Mike Kravetz <mike.kravetz@oracle.com>:
mm/hugetlb.c: fix pages per hugetlb calculation
Subsystem: samples
Kees Cook <keescook@chromium.org>:
samples/vfs: avoid warning in statx override
Subsystem: mm/cma
Barry Song <song.bao.hua@hisilicon.com>:
mm/cma.c: use exact_nid true to fix possible per-numa cma leak
Subsystem: mm/vmalloc
Christoph Hellwig <hch@lst.de>:
vmalloc: fix the owner argument for the new __vmalloc_node_range callers
Subsystem: mm/pagealloc
Joel Savitz <jsavitz@redhat.com>:
mm/page_alloc: fix documentation error
arch/arm64/kernel/probes/kprobes.c | 2 +-
arch/x86/hyperv/hv_init.c | 3 ++-
kernel/module.c | 2 +-
mm/cma.c | 4 ++--
mm/hugetlb.c | 2 +-
mm/page_alloc.c | 2 +-
samples/vfs/test-statx.c | 2 ++
7 files changed, 10 insertions(+), 7 deletions(-)
^ permalink raw reply [flat|nested] 215+ messages in thread
* incoming
@ 2020-06-26 3:28 Andrew Morton
0 siblings, 0 replies; 215+ messages in thread
From: Andrew Morton @ 2020-06-26 3:28 UTC (permalink / raw)
To: Linus Torvalds; +Cc: linux-mm, mm-commits
32 patches, based on 908f7d12d3ba51dfe0449b9723199b423f97ca9a.
Subsystems affected by this patch series:
hotfixes
mm/pagealloc
kexec
ocfs2
lib
misc
mm/slab
mm/slab
mm/slub
mm/swap
mm/pagemap
mm/vmalloc
mm/memcg
mm/gup
mm/thp
mm/vmscan
x86
mm/memory-hotplug
MAINTAINERS
Subsystem: hotfixes
Stafford Horne <shorne@gmail.com>:
openrisc: fix boot oops when DEBUG_VM is enabled
Michal Hocko <mhocko@suse.com>:
mm: do_swap_page(): fix up the error code
Subsystem: mm/pagealloc
Vlastimil Babka <vbabka@suse.cz>:
mm, compaction: make capture control handling safe wrt interrupts
Subsystem: kexec
Lianbo Jiang <lijiang@redhat.com>:
kexec: do not verify the signature without the lockdown or mandatory signature
Subsystem: ocfs2
Junxiao Bi <junxiao.bi@oracle.com>:
Patch series "ocfs2: fix nfsd over ocfs2 issues", v2:
ocfs2: avoid inode removal while nfsd is accessing it
ocfs2: load global_inode_alloc
ocfs2: fix panic on nfs server over ocfs2
ocfs2: fix value of OCFS2_INVALID_SLOT
Subsystem: lib
Randy Dunlap <rdunlap@infradead.org>:
lib: fix test_hmm.c reference after free
Subsystem: misc
Rikard Falkeborn <rikard.falkeborn@gmail.com>:
linux/bits.h: fix unsigned less than zero warnings
Subsystem: mm/slab
Waiman Long <longman@redhat.com>:
mm, slab: fix sign conversion problem in memcg_uncharge_slab()
Subsystem: mm/slab
Waiman Long <longman@redhat.com>:
mm/slab: use memzero_explicit() in kzfree()
Subsystem: mm/slub
Sebastian Andrzej Siewior <bigeasy@linutronix.de>:
slub: cure list_slab_objects() from double fix
Subsystem: mm/swap
Hugh Dickins <hughd@google.com>:
mm: fix swap cache node allocation mask
Subsystem: mm/pagemap
Arjun Roy <arjunroy@google.com>:
mm/memory.c: properly pte_offset_map_lock/unlock in vm_insert_pages()
Christophe Leroy <christophe.leroy@csgroup.eu>:
mm/debug_vm_pgtable: fix build failure with powerpc 8xx
Stephen Rothwell <sfr@canb.auug.org.au>:
make asm-generic/cacheflush.h more standalone
Nathan Chancellor <natechancellor@gmail.com>:
media: omap3isp: remove cacheflush.h
Subsystem: mm/vmalloc
Masanari Iida <standby24x7@gmail.com>:
mm/vmalloc.c: fix a warning while make xmldocs
Subsystem: mm/memcg
Johannes Weiner <hannes@cmpxchg.org>:
mm: memcontrol: handle div0 crash race condition in memory.low
Muchun Song <songmuchun@bytedance.com>:
mm/memcontrol.c: add missed css_put()
Chris Down <chris@chrisdown.name>:
mm/memcontrol.c: prevent missed memory.low load tears
Subsystem: mm/gup
Souptick Joarder <jrdr.linux@gmail.com>:
docs: mm/gup: minor documentation update
Subsystem: mm/thp
Yang Shi <yang.shi@linux.alibaba.com>:
doc: THP CoW fault no longer allocate THP
Subsystem: mm/vmscan
Johannes Weiner <hannes@cmpxchg.org>:
Patch series "fix for "mm: balance LRU lists based on relative thrashing" patchset":
mm: workingset: age nonresident information alongside anonymous pages
Joonsoo Kim <iamjoonsoo.kim@lge.com>:
mm/swap: fix for "mm: workingset: age nonresident information alongside anonymous pages"
mm/memory: fix IO cost for anonymous page
Subsystem: x86
Christoph Hellwig <hch@lst.de>:
Patch series "fix a hyperv W^X violation and remove vmalloc_exec":
x86/hyperv: allocate the hypercall page with only read and execute bits
arm64: use PAGE_KERNEL_ROX directly in alloc_insn_page
mm: remove vmalloc_exec
Subsystem: mm/memory-hotplug
Ben Widawsky <ben.widawsky@intel.com>:
mm/memory_hotplug.c: fix false softlockup during pfn range removal
Subsystem: MAINTAINERS
Luc Van Oostenryck <luc.vanoostenryck@gmail.com>:
MAINTAINERS: update info for sparse
Documentation/admin-guide/cgroup-v2.rst | 4 +-
Documentation/admin-guide/mm/transhuge.rst | 3 -
Documentation/core-api/pin_user_pages.rst | 2 -
MAINTAINERS | 4 +-
arch/arm64/kernel/probes/kprobes.c | 12 +------
arch/openrisc/kernel/dma.c | 5 +++
arch/x86/hyperv/hv_init.c | 4 +-
arch/x86/include/asm/pgtable_types.h | 2 +
drivers/media/platform/omap3isp/isp.c | 2 -
drivers/media/platform/omap3isp/ispvideo.c | 1
fs/ocfs2/dlmglue.c | 17 ++++++++++
fs/ocfs2/ocfs2.h | 1
fs/ocfs2/ocfs2_fs.h | 4 +-
fs/ocfs2/suballoc.c | 9 +++--
include/asm-generic/cacheflush.h | 5 +++
include/linux/bits.h | 3 +
include/linux/mmzone.h | 4 +-
include/linux/swap.h | 1
include/linux/vmalloc.h | 1
kernel/kexec_file.c | 36 ++++------------------
kernel/module.c | 4 +-
lib/test_hmm.c | 3 -
mm/compaction.c | 17 ++++++++--
mm/debug_vm_pgtable.c | 4 +-
mm/memcontrol.c | 18 ++++++++---
mm/memory.c | 33 +++++++++++++-------
mm/memory_hotplug.c | 13 ++++++--
mm/nommu.c | 17 ----------
mm/slab.h | 4 +-
mm/slab_common.c | 2 -
mm/slub.c | 19 ++---------
mm/swap.c | 3 -
mm/swap_state.c | 4 +-
mm/vmalloc.c | 21 -------------
mm/vmscan.c | 3 +
mm/workingset.c | 46 +++++++++++++++++------------
36 files changed, 168 insertions(+), 163 deletions(-)
^ permalink raw reply [flat|nested] 215+ messages in thread
* incoming
@ 2020-06-12 0:30 Andrew Morton
0 siblings, 0 replies; 215+ messages in thread
From: Andrew Morton @ 2020-06-12 0:30 UTC (permalink / raw)
To: Linus Torvalds; +Cc: linux-mm, mm-commits
A few fixes and stragglers.
5 patches, based on 623f6dc593eaf98b91916836785278eddddaacf8.
Subsystems affected by this patch series:
mm/memory-failure
ocfs2
lib/lzo
misc
Subsystem: mm/memory-failure
Naoya Horiguchi <nao.horiguchi@gmail.com>:
Patch series "hwpoison: fixes signaling on memory error":
mm/memory-failure: prioritize prctl(PR_MCE_KILL) over vm.memory_failure_early_kill
mm/memory-failure: send SIGBUS(BUS_MCEERR_AR) only to current thread
Subsystem: ocfs2
Tom Seewald <tseewald@gmail.com>:
ocfs2: fix build failure when TCP/IP is disabled
Subsystem: lib/lzo
Dave Rodgman <dave.rodgman@arm.com>:
lib/lzo: fix ambiguous encoding bug in lzo-rle
Subsystem: misc
Christoph Hellwig <hch@lst.de>:
amdgpu: a NULL ->mm does not mean a thread is a kthread
Documentation/lzo.txt | 8 ++++-
drivers/gpu/drm/amd/amdgpu/amdgpu_amdkfd.h | 2 -
fs/ocfs2/Kconfig | 2 -
lib/lzo/lzo1x_compress.c | 13 ++++++++
mm/memory-failure.c | 43 +++++++++++++++++------------
5 files changed, 47 insertions(+), 21 deletions(-)
^ permalink raw reply [flat|nested] 215+ messages in thread
* incoming
@ 2020-06-11 1:40 Andrew Morton
0 siblings, 0 replies; 215+ messages in thread
From: Andrew Morton @ 2020-06-11 1:40 UTC (permalink / raw)
To: Linus Torvalds; +Cc: mm-commits, linux-mm
- various hotfixes and minor things
- hch's use_mm/unuse_mm clearnups
- new syscall process_madvise(): perform madvise() on a process other
than self
25 patches, based on 6f630784cc0d92fb58ea326e2bc01aa056279ecb.
Subsystems affected by this patch series:
mm/hugetlb
scripts
kcov
lib
nilfs
checkpatch
lib
mm/debug
ocfs2
lib
misc
mm/madvise
Subsystem: mm/hugetlb
Dan Carpenter <dan.carpenter@oracle.com>:
khugepaged: selftests: fix timeout condition in wait_for_scan()
Subsystem: scripts
SeongJae Park <sjpark@amazon.de>:
scripts/spelling: add a few more typos
Subsystem: kcov
Andrey Konovalov <andreyknvl@google.com>:
kcov: check kcov_softirq in kcov_remote_stop()
Subsystem: lib
Joe Perches <joe@perches.com>:
lib/lz4/lz4_decompress.c: document deliberate use of `&'
Subsystem: nilfs
Ryusuke Konishi <konishi.ryusuke@gmail.com>:
nilfs2: fix null pointer dereference at nilfs_segctor_do_construct()
Subsystem: checkpatch
Tim Froidcoeur <tim.froidcoeur@tessares.net>:
checkpatch: correct check for kernel parameters doc
Subsystem: lib
Alexander Gordeev <agordeev@linux.ibm.com>:
lib: fix bitmap_parse() on 64-bit big endian archs
Subsystem: mm/debug
"Aneesh Kumar K.V" <aneesh.kumar@linux.ibm.com>:
mm/debug_vm_pgtable: fix kernel crash by checking for THP support
Subsystem: ocfs2
Keyur Patel <iamkeyur96@gmail.com>:
ocfs2: fix spelling mistake and grammar
Ben Widawsky <ben.widawsky@intel.com>:
mm: add comments on pglist_data zones
Subsystem: lib
Wei Yang <richard.weiyang@gmail.com>:
lib: test get_count_order/long in test_bitops.c
Subsystem: misc
Walter Wu <walter-zh.wu@mediatek.com>:
stacktrace: cleanup inconsistent variable type
Christoph Hellwig <hch@lst.de>:
Patch series "improve use_mm / unuse_mm", v2:
kernel: move use_mm/unuse_mm to kthread.c
kernel: move use_mm/unuse_mm to kthread.c
kernel: better document the use_mm/unuse_mm API contract
kernel: set USER_DS in kthread_use_mm
Subsystem: mm/madvise
Minchan Kim <minchan@kernel.org>:
Patch series "introduce memory hinting API for external process", v7:
mm/madvise: pass task and mm to do_madvise
mm/madvise: introduce process_madvise() syscall: an external memory hinting API
mm/madvise: check fatal signal pending of target process
pid: move pidfd_get_pid() to pid.c
mm/madvise: support both pid and pidfd for process_madvise
Oleksandr Natalenko <oleksandr@redhat.com>:
mm/madvise: allow KSM hints for remote API
Minchan Kim <minchan@kernel.org>:
mm: support vector address ranges for process_madvise
mm: use only pidfd for process_madvise syscall
YueHaibing <yuehaibing@huawei.com>:
mm/madvise.c: remove duplicated include
arch/alpha/kernel/syscalls/syscall.tbl | 1
arch/arm/tools/syscall.tbl | 1
arch/arm64/include/asm/unistd.h | 2
arch/arm64/include/asm/unistd32.h | 4
arch/ia64/kernel/syscalls/syscall.tbl | 1
arch/m68k/kernel/syscalls/syscall.tbl | 1
arch/microblaze/kernel/syscalls/syscall.tbl | 1
arch/mips/kernel/syscalls/syscall_n32.tbl | 3
arch/mips/kernel/syscalls/syscall_n64.tbl | 1
arch/mips/kernel/syscalls/syscall_o32.tbl | 3
arch/parisc/kernel/syscalls/syscall.tbl | 3
arch/powerpc/kernel/syscalls/syscall.tbl | 3
arch/powerpc/platforms/powernv/vas-fault.c | 4
arch/s390/kernel/syscalls/syscall.tbl | 3
arch/sh/kernel/syscalls/syscall.tbl | 1
arch/sparc/kernel/syscalls/syscall.tbl | 3
arch/x86/entry/syscalls/syscall_32.tbl | 3
arch/x86/entry/syscalls/syscall_64.tbl | 5
arch/xtensa/kernel/syscalls/syscall.tbl | 1
drivers/gpu/drm/amd/amdgpu/amdgpu_amdkfd.h | 5
drivers/gpu/drm/amd/amdgpu/amdgpu_amdkfd_arcturus.c | 1
drivers/gpu/drm/amd/amdgpu/amdgpu_amdkfd_gfx_v10.c | 1
drivers/gpu/drm/amd/amdgpu/amdgpu_amdkfd_gfx_v7.c | 2
drivers/gpu/drm/amd/amdgpu/amdgpu_amdkfd_gfx_v8.c | 2
drivers/gpu/drm/amd/amdgpu/amdgpu_amdkfd_gfx_v9.c | 2
drivers/gpu/drm/i915/gvt/kvmgt.c | 2
drivers/usb/gadget/function/f_fs.c | 10
drivers/usb/gadget/legacy/inode.c | 6
drivers/vfio/vfio_iommu_type1.c | 6
drivers/vhost/vhost.c | 8
fs/aio.c | 1
fs/io-wq.c | 15 -
fs/io_uring.c | 11
fs/nilfs2/segment.c | 2
fs/ocfs2/mmap.c | 2
include/linux/compat.h | 10
include/linux/kthread.h | 9
include/linux/mm.h | 3
include/linux/mmu_context.h | 5
include/linux/mmzone.h | 14
include/linux/pid.h | 1
include/linux/stacktrace.h | 2
include/linux/syscalls.h | 16 -
include/uapi/asm-generic/unistd.h | 7
kernel/exit.c | 17 -
kernel/kcov.c | 26 +
kernel/kthread.c | 95 +++++-
kernel/pid.c | 17 +
kernel/sys_ni.c | 2
lib/Kconfig.debug | 10
lib/bitmap.c | 9
lib/lz4/lz4_decompress.c | 3
lib/test_bitops.c | 53 +++
mm/Makefile | 2
mm/debug_vm_pgtable.c | 6
mm/madvise.c | 295 ++++++++++++++------
mm/mmu_context.c | 64 ----
mm/oom_kill.c | 6
mm/vmacache.c | 4
scripts/checkpatch.pl | 4
scripts/spelling.txt | 9
tools/testing/selftests/vm/khugepaged.c | 2
62 files changed, 526 insertions(+), 285 deletions(-)
^ permalink raw reply [flat|nested] 215+ messages in thread
* incoming
@ 2020-06-09 4:29 Andrew Morton
0 siblings, 0 replies; 215+ messages in thread
From: Andrew Morton @ 2020-06-09 4:29 UTC (permalink / raw)
To: Linus Torvalds; +Cc: mm-commits, linux-mm
- a kernel-wide sweep of show_stack()
- pagetable cleanups
- abstract out accesses to mmap_sem - prep for mmap_sem scalability work
- hch's user acess work
93 patches, based on abfbb29297c27e3f101f348dc9e467b0fe70f919:
Subsystems affected by this patch series:
debug
mm/pagemap
mm/maccess
mm/documentation
Subsystem: debug
Dmitry Safonov <dima@arista.com>:
Patch series "Add log level to show_stack()", v3:
kallsyms/printk: add loglvl to print_ip_sym()
alpha: add show_stack_loglvl()
arc: add show_stack_loglvl()
arm/asm: add loglvl to c_backtrace()
arm: add loglvl to unwind_backtrace()
arm: add loglvl to dump_backtrace()
arm: wire up dump_backtrace_{entry,stm}
arm: add show_stack_loglvl()
arm64: add loglvl to dump_backtrace()
arm64: add show_stack_loglvl()
c6x: add show_stack_loglvl()
csky: add show_stack_loglvl()
h8300: add show_stack_loglvl()
hexagon: add show_stack_loglvl()
ia64: pass log level as arg into ia64_do_show_stack()
ia64: add show_stack_loglvl()
m68k: add show_stack_loglvl()
microblaze: add loglvl to microblaze_unwind_inner()
microblaze: add loglvl to microblaze_unwind()
microblaze: add show_stack_loglvl()
mips: add show_stack_loglvl()
nds32: add show_stack_loglvl()
nios2: add show_stack_loglvl()
openrisc: add show_stack_loglvl()
parisc: add show_stack_loglvl()
powerpc: add show_stack_loglvl()
riscv: add show_stack_loglvl()
s390: add show_stack_loglvl()
sh: add loglvl to dump_mem()
sh: remove needless printk()
sh: add loglvl to printk_address()
sh: add loglvl to show_trace()
sh: add show_stack_loglvl()
sparc: add show_stack_loglvl()
um/sysrq: remove needless variable sp
um: add show_stack_loglvl()
unicore32: remove unused pmode argument in c_backtrace()
unicore32: add loglvl to c_backtrace()
unicore32: add show_stack_loglvl()
x86: add missing const qualifiers for log_lvl
x86: add show_stack_loglvl()
xtensa: add loglvl to show_trace()
xtensa: add show_stack_loglvl()
sysrq: use show_stack_loglvl()
x86/amd_gart: print stacktrace for a leak with KERN_ERR
power: use show_stack_loglvl()
kdb: don't play with console_loglevel
sched: print stack trace with KERN_INFO
kernel: use show_stack_loglvl()
kernel: rename show_stack_loglvl() => show_stack()
Subsystem: mm/pagemap
Mike Rapoport <rppt@linux.ibm.com>:
Patch series "mm: consolidate definitions of page table accessors", v2:
mm: don't include asm/pgtable.h if linux/mm.h is already included
mm: introduce include/linux/pgtable.h
mm: reorder includes after introduction of linux/pgtable.h
csky: replace definitions of __pXd_offset() with pXd_index()
m68k/mm/motorola: move comment about page table allocation funcitons
m68k/mm: move {cache,nocahe}_page() definitions close to their user
x86/mm: simplify init_trampoline() and surrounding logic
mm: pgtable: add shortcuts for accessing kernel PMD and PTE
mm: consolidate pte_index() and pte_offset_*() definitions
Michel Lespinasse <walken@google.com>:
mmap locking API: initial implementation as rwsem wrappers
MMU notifier: use the new mmap locking API
DMA reservations: use the new mmap locking API
mmap locking API: use coccinelle to convert mmap_sem rwsem call sites
mmap locking API: convert mmap_sem call sites missed by coccinelle
mmap locking API: convert nested write lock sites
mmap locking API: add mmap_read_trylock_non_owner()
mmap locking API: add MMAP_LOCK_INITIALIZER
mmap locking API: add mmap_assert_locked() and mmap_assert_write_locked()
mmap locking API: rename mmap_sem to mmap_lock
mmap locking API: convert mmap_sem API comments
mmap locking API: convert mmap_sem comments
Subsystem: mm/maccess
Christoph Hellwig <hch@lst.de>:
Patch series "clean up and streamline probe_kernel_* and friends", v4:
maccess: unexport probe_kernel_write()
maccess: remove various unused weak aliases
maccess: remove duplicate kerneldoc comments
maccess: clarify kerneldoc comments
maccess: update the top of file comment
maccess: rename strncpy_from_unsafe_user to strncpy_from_user_nofault
maccess: rename strncpy_from_unsafe_strict to strncpy_from_kernel_nofault
maccess: rename strnlen_unsafe_user to strnlen_user_nofault
maccess: remove probe_read_common and probe_write_common
maccess: unify the probe kernel arch hooks
bpf: factor out a bpf_trace_copy_string helper
bpf: handle the compat string in bpf_trace_copy_string better
Andrew Morton <akpm@linux-foundation.org>:
bpf:bpf_seq_printf(): handle potentially unsafe format string better
Christoph Hellwig <hch@lst.de>:
bpf: rework the compat kernel probe handling
tracing/kprobes: handle mixed kernel/userspace probes better
maccess: remove strncpy_from_unsafe
maccess: always use strict semantics for probe_kernel_read
maccess: move user access routines together
maccess: allow architectures to provide kernel probing directly
x86: use non-set_fs based maccess routines
maccess: return -ERANGE when probe_kernel_read() fails
Subsystem: mm/documentation
Luis Chamberlain <mcgrof@kernel.org>:
include/linux/cache.h: expand documentation over __read_mostly
Documentation/admin-guide/mm/numa_memory_policy.rst | 10
Documentation/admin-guide/mm/userfaultfd.rst | 2
Documentation/filesystems/locking.rst | 2
Documentation/vm/hmm.rst | 6
Documentation/vm/transhuge.rst | 4
arch/alpha/boot/bootp.c | 1
arch/alpha/boot/bootpz.c | 1
arch/alpha/boot/main.c | 1
arch/alpha/include/asm/io.h | 1
arch/alpha/include/asm/pgtable.h | 16
arch/alpha/kernel/process.c | 1
arch/alpha/kernel/proto.h | 4
arch/alpha/kernel/ptrace.c | 1
arch/alpha/kernel/setup.c | 1
arch/alpha/kernel/smp.c | 1
arch/alpha/kernel/sys_alcor.c | 1
arch/alpha/kernel/sys_cabriolet.c | 1
arch/alpha/kernel/sys_dp264.c | 1
arch/alpha/kernel/sys_eb64p.c | 1
arch/alpha/kernel/sys_eiger.c | 1
arch/alpha/kernel/sys_jensen.c | 1
arch/alpha/kernel/sys_marvel.c | 1
arch/alpha/kernel/sys_miata.c | 1
arch/alpha/kernel/sys_mikasa.c | 1
arch/alpha/kernel/sys_nautilus.c | 1
arch/alpha/kernel/sys_noritake.c | 1
arch/alpha/kernel/sys_rawhide.c | 1
arch/alpha/kernel/sys_ruffian.c | 1
arch/alpha/kernel/sys_rx164.c | 1
arch/alpha/kernel/sys_sable.c | 1
arch/alpha/kernel/sys_sio.c | 1
arch/alpha/kernel/sys_sx164.c | 1
arch/alpha/kernel/sys_takara.c | 1
arch/alpha/kernel/sys_titan.c | 1
arch/alpha/kernel/sys_wildfire.c | 1
arch/alpha/kernel/traps.c | 40
arch/alpha/mm/fault.c | 12
arch/alpha/mm/init.c | 1
arch/arc/include/asm/bug.h | 3
arch/arc/include/asm/pgtable.h | 24
arch/arc/kernel/process.c | 4
arch/arc/kernel/stacktrace.c | 29
arch/arc/kernel/troubleshoot.c | 6
arch/arc/mm/fault.c | 6
arch/arc/mm/highmem.c | 14
arch/arc/mm/tlbex.S | 4
arch/arm/include/asm/bug.h | 3
arch/arm/include/asm/efi.h | 3
arch/arm/include/asm/fixmap.h | 4
arch/arm/include/asm/idmap.h | 2
arch/arm/include/asm/pgtable-2level.h | 1
arch/arm/include/asm/pgtable-3level.h | 7
arch/arm/include/asm/pgtable-nommu.h | 3
arch/arm/include/asm/pgtable.h | 25
arch/arm/include/asm/traps.h | 3
arch/arm/include/asm/unwind.h | 3
arch/arm/kernel/head.S | 4
arch/arm/kernel/machine_kexec.c | 1
arch/arm/kernel/module.c | 1
arch/arm/kernel/process.c | 4
arch/arm/kernel/ptrace.c | 1
arch/arm/kernel/smp.c | 1
arch/arm/kernel/suspend.c | 4
arch/arm/kernel/swp_emulate.c | 4
arch/arm/kernel/traps.c | 61
arch/arm/kernel/unwind.c | 7
arch/arm/kernel/vdso.c | 2
arch/arm/kernel/vmlinux.lds.S | 4
arch/arm/lib/backtrace-clang.S | 9
arch/arm/lib/backtrace.S | 14
arch/arm/lib/uaccess_with_memcpy.c | 16
arch/arm/mach-ebsa110/core.c | 1
arch/arm/mach-footbridge/common.c | 1
arch/arm/mach-imx/mm-imx21.c | 1
arch/arm/mach-imx/mm-imx27.c | 1
arch/arm/mach-imx/mm-imx3.c | 1
arch/arm/mach-integrator/core.c | 4
arch/arm/mach-iop32x/i2c.c | 1
arch/arm/mach-iop32x/iq31244.c | 1
arch/arm/mach-iop32x/iq80321.c | 1
arch/arm/mach-iop32x/n2100.c | 1
arch/arm/mach-ixp4xx/common.c | 1
arch/arm/mach-keystone/platsmp.c | 4
arch/arm/mach-sa1100/assabet.c | 3
arch/arm/mach-sa1100/hackkit.c | 4
arch/arm/mach-tegra/iomap.h | 2
arch/arm/mach-zynq/common.c | 4
arch/arm/mm/copypage-v4mc.c | 1
arch/arm/mm/copypage-v6.c | 1
arch/arm/mm/copypage-xscale.c | 1
arch/arm/mm/dump.c | 1
arch/arm/mm/fault-armv.c | 1
arch/arm/mm/fault.c | 9
arch/arm/mm/highmem.c | 4
arch/arm/mm/idmap.c | 4
arch/arm/mm/ioremap.c | 31
arch/arm/mm/mm.h | 8
arch/arm/mm/mmu.c | 7
arch/arm/mm/pageattr.c | 1
arch/arm/mm/proc-arm1020.S | 4
arch/arm/mm/proc-arm1020e.S | 4
arch/arm/mm/proc-arm1022.S | 4
arch/arm/mm/proc-arm1026.S | 4
arch/arm/mm/proc-arm720.S | 4
arch/arm/mm/proc-arm740.S | 4
arch/arm/mm/proc-arm7tdmi.S | 4
arch/arm/mm/proc-arm920.S | 4
arch/arm/mm/proc-arm922.S | 4
arch/arm/mm/proc-arm925.S | 4
arch/arm/mm/proc-arm926.S | 4
arch/arm/mm/proc-arm940.S | 4
arch/arm/mm/proc-arm946.S | 4
arch/arm/mm/proc-arm9tdmi.S | 4
arch/arm/mm/proc-fa526.S | 4
arch/arm/mm/proc-feroceon.S | 4
arch/arm/mm/proc-mohawk.S | 4
arch/arm/mm/proc-sa110.S | 4
arch/arm/mm/proc-sa1100.S | 4
arch/arm/mm/proc-v6.S | 4
arch/arm/mm/proc-v7.S | 4
arch/arm/mm/proc-xsc3.S | 4
arch/arm/mm/proc-xscale.S | 4
arch/arm/mm/pv-fixup-asm.S | 4
arch/arm64/include/asm/io.h | 4
arch/arm64/include/asm/kernel-pgtable.h | 2
arch/arm64/include/asm/kvm_mmu.h | 4
arch/arm64/include/asm/mmu_context.h | 4
arch/arm64/include/asm/pgtable.h | 40
arch/arm64/include/asm/stacktrace.h | 3
arch/arm64/include/asm/stage2_pgtable.h | 2
arch/arm64/include/asm/vmap_stack.h | 4
arch/arm64/kernel/acpi.c | 4
arch/arm64/kernel/head.S | 4
arch/arm64/kernel/hibernate.c | 5
arch/arm64/kernel/kaslr.c | 4
arch/arm64/kernel/process.c | 2
arch/arm64/kernel/ptrace.c | 1
arch/arm64/kernel/smp.c | 1
arch/arm64/kernel/suspend.c | 4
arch/arm64/kernel/traps.c | 37
arch/arm64/kernel/vdso.c | 8
arch/arm64/kernel/vmlinux.lds.S | 3
arch/arm64/kvm/mmu.c | 14
arch/arm64/mm/dump.c | 1
arch/arm64/mm/fault.c | 9
arch/arm64/mm/kasan_init.c | 3
arch/arm64/mm/mmu.c | 8
arch/arm64/mm/pageattr.c | 1
arch/arm64/mm/proc.S | 4
arch/c6x/include/asm/pgtable.h | 3
arch/c6x/kernel/traps.c | 28
arch/csky/include/asm/io.h | 2
arch/csky/include/asm/pgtable.h | 37
arch/csky/kernel/module.c | 1
arch/csky/kernel/ptrace.c | 5
arch/csky/kernel/stacktrace.c | 20
arch/csky/kernel/vdso.c | 4
arch/csky/mm/fault.c | 10
arch/csky/mm/highmem.c | 2
arch/csky/mm/init.c | 7
arch/csky/mm/tlb.c | 1
arch/h8300/include/asm/pgtable.h | 1
arch/h8300/kernel/process.c | 1
arch/h8300/kernel/setup.c | 1
arch/h8300/kernel/signal.c | 1
arch/h8300/kernel/traps.c | 26
arch/h8300/mm/fault.c | 1
arch/h8300/mm/init.c | 1
arch/h8300/mm/memory.c | 1
arch/hexagon/include/asm/fixmap.h | 4
arch/hexagon/include/asm/pgtable.h | 55
arch/hexagon/kernel/traps.c | 39
arch/hexagon/kernel/vdso.c | 4
arch/hexagon/mm/uaccess.c | 2
arch/hexagon/mm/vm_fault.c | 9
arch/ia64/include/asm/pgtable.h | 34
arch/ia64/include/asm/ptrace.h | 1
arch/ia64/include/asm/uaccess.h | 2
arch/ia64/kernel/efi.c | 1
arch/ia64/kernel/entry.S | 4
arch/ia64/kernel/head.S | 5
arch/ia64/kernel/irq_ia64.c | 4
arch/ia64/kernel/ivt.S | 4
arch/ia64/kernel/kprobes.c | 4
arch/ia64/kernel/mca.c | 2
arch/ia64/kernel/mca_asm.S | 4
arch/ia64/kernel/perfmon.c | 8
arch/ia64/kernel/process.c | 37
arch/ia64/kernel/ptrace.c | 1
arch/ia64/kernel/relocate_kernel.S | 6
arch/ia64/kernel/setup.c | 4
arch/ia64/kernel/smp.c | 1
arch/ia64/kernel/smpboot.c | 1
arch/ia64/kernel/uncached.c | 4
arch/ia64/kernel/vmlinux.lds.S | 4
arch/ia64/mm/contig.c | 1
arch/ia64/mm/fault.c | 17
arch/ia64/mm/init.c | 12
arch/m68k/68000/m68EZ328.c | 2
arch/m68k/68000/m68VZ328.c | 4
arch/m68k/68000/timers.c | 1
arch/m68k/amiga/config.c | 1
arch/m68k/apollo/config.c | 1
arch/m68k/atari/atasound.c | 1
arch/m68k/atari/stram.c | 1
arch/m68k/bvme6000/config.c | 1
arch/m68k/include/asm/mcf_pgtable.h | 63
arch/m68k/include/asm/motorola_pgalloc.h | 8
arch/m68k/include/asm/motorola_pgtable.h | 84 -
arch/m68k/include/asm/pgtable_mm.h | 1
arch/m68k/include/asm/pgtable_no.h | 2
arch/m68k/include/asm/sun3_pgtable.h | 24
arch/m68k/include/asm/sun3xflop.h | 4
arch/m68k/kernel/head.S | 4
arch/m68k/kernel/process.c | 1
arch/m68k/kernel/ptrace.c | 1
arch/m68k/kernel/setup_no.c | 1
arch/m68k/kernel/signal.c | 1
arch/m68k/kernel/sys_m68k.c | 14
arch/m68k/kernel/traps.c | 27
arch/m68k/kernel/uboot.c | 1
arch/m68k/mac/config.c | 1
arch/m68k/mm/fault.c | 10
arch/m68k/mm/init.c | 2
arch/m68k/mm/mcfmmu.c | 1
arch/m68k/mm/motorola.c | 65
arch/m68k/mm/sun3kmap.c | 1
arch/m68k/mm/sun3mmu.c | 1
arch/m68k/mvme147/config.c | 1
arch/m68k/mvme16x/config.c | 1
arch/m68k/q40/config.c | 1
arch/m68k/sun3/config.c | 1
arch/m68k/sun3/dvma.c | 1
arch/m68k/sun3/mmu_emu.c | 1
arch/m68k/sun3/sun3dvma.c | 1
arch/m68k/sun3x/dvma.c | 1
arch/m68k/sun3x/prom.c | 1
arch/microblaze/include/asm/pgalloc.h | 4
arch/microblaze/include/asm/pgtable.h | 23
arch/microblaze/include/asm/uaccess.h | 2
arch/microblaze/include/asm/unwind.h | 3
arch/microblaze/kernel/hw_exception_handler.S | 4
arch/microblaze/kernel/module.c | 4
arch/microblaze/kernel/setup.c | 4
arch/microblaze/kernel/signal.c | 9
arch/microblaze/kernel/stacktrace.c | 4
arch/microblaze/kernel/traps.c | 28
arch/microblaze/kernel/unwind.c | 46
arch/microblaze/mm/fault.c | 17
arch/microblaze/mm/init.c | 9
arch/microblaze/mm/pgtable.c | 4
arch/mips/fw/arc/memory.c | 1
arch/mips/include/asm/fixmap.h | 3
arch/mips/include/asm/mach-generic/floppy.h | 1
arch/mips/include/asm/mach-jazz/floppy.h | 1
arch/mips/include/asm/pgtable-32.h | 22
arch/mips/include/asm/pgtable-64.h | 32
arch/mips/include/asm/pgtable.h | 2
arch/mips/jazz/irq.c | 4
arch/mips/jazz/jazzdma.c | 1
arch/mips/jazz/setup.c | 4
arch/mips/kernel/module.c | 1
arch/mips/kernel/process.c | 1
arch/mips/kernel/ptrace.c | 1
arch/mips/kernel/ptrace32.c | 1
arch/mips/kernel/smp-bmips.c | 1
arch/mips/kernel/traps.c | 58
arch/mips/kernel/vdso.c | 4
arch/mips/kvm/mips.c | 4
arch/mips/kvm/mmu.c | 20
arch/mips/kvm/tlb.c | 1
arch/mips/kvm/trap_emul.c | 2
arch/mips/lib/dump_tlb.c | 1
arch/mips/lib/r3k_dump_tlb.c | 1
arch/mips/mm/c-octeon.c | 1
arch/mips/mm/c-r3k.c | 11
arch/mips/mm/c-r4k.c | 11
arch/mips/mm/c-tx39.c | 11
arch/mips/mm/fault.c | 12
arch/mips/mm/highmem.c | 2
arch/mips/mm/init.c | 1
arch/mips/mm/page.c | 1
arch/mips/mm/pgtable-32.c | 1
arch/mips/mm/pgtable-64.c | 1
arch/mips/mm/sc-ip22.c | 1
arch/mips/mm/sc-mips.c | 1
arch/mips/mm/sc-r5k.c | 1
arch/mips/mm/tlb-r3k.c | 1
arch/mips/mm/tlb-r4k.c | 1
arch/mips/mm/tlbex.c | 4
arch/mips/sgi-ip27/ip27-init.c | 1
arch/mips/sgi-ip27/ip27-timer.c | 1
arch/mips/sgi-ip32/ip32-memory.c | 1
arch/nds32/include/asm/highmem.h | 3
arch/nds32/include/asm/pgtable.h | 22
arch/nds32/kernel/head.S | 4
arch/nds32/kernel/module.c | 2
arch/nds32/kernel/traps.c | 33
arch/nds32/kernel/vdso.c | 6
arch/nds32/mm/fault.c | 17
arch/nds32/mm/init.c | 13
arch/nds32/mm/proc.c | 7
arch/nios2/include/asm/pgtable.h | 24
arch/nios2/kernel/module.c | 1
arch/nios2/kernel/nios2_ksyms.c | 4
arch/nios2/kernel/traps.c | 35
arch/nios2/mm/fault.c | 14
arch/nios2/mm/init.c | 5
arch/nios2/mm/pgtable.c | 1
arch/nios2/mm/tlb.c | 1
arch/openrisc/include/asm/io.h | 3
arch/openrisc/include/asm/pgtable.h | 33
arch/openrisc/include/asm/tlbflush.h | 1
arch/openrisc/kernel/asm-offsets.c | 1
arch/openrisc/kernel/entry.S | 4
arch/openrisc/kernel/head.S | 4
arch/openrisc/kernel/or32_ksyms.c | 4
arch/openrisc/kernel/process.c | 1
arch/openrisc/kernel/ptrace.c | 1
arch/openrisc/kernel/setup.c | 1
arch/openrisc/kernel/traps.c | 27
arch/openrisc/mm/fault.c | 12
arch/openrisc/mm/init.c | 1
arch/openrisc/mm/ioremap.c | 4
arch/openrisc/mm/tlb.c | 1
arch/parisc/include/asm/io.h | 2
arch/parisc/include/asm/mmu_context.h | 1
arch/parisc/include/asm/pgtable.h | 33
arch/parisc/kernel/asm-offsets.c | 4
arch/parisc/kernel/entry.S | 4
arch/parisc/kernel/head.S | 4
arch/parisc/kernel/module.c | 1
arch/parisc/kernel/pacache.S | 4
arch/parisc/kernel/pci-dma.c | 2
arch/parisc/kernel/pdt.c | 4
arch/parisc/kernel/ptrace.c | 1
arch/parisc/kernel/smp.c | 1
arch/parisc/kernel/traps.c | 42
arch/parisc/lib/memcpy.c | 14
arch/parisc/mm/fault.c | 10
arch/parisc/mm/fixmap.c | 6
arch/parisc/mm/init.c | 1
arch/powerpc/include/asm/book3s/32/pgtable.h | 20
arch/powerpc/include/asm/book3s/64/pgtable.h | 43
arch/powerpc/include/asm/fixmap.h | 4
arch/powerpc/include/asm/io.h | 1
arch/powerpc/include/asm/kup.h | 2
arch/powerpc/include/asm/nohash/32/pgtable.h | 17
arch/powerpc/include/asm/nohash/64/pgtable-4k.h | 4
arch/powerpc/include/asm/nohash/64/pgtable.h | 22
arch/powerpc/include/asm/nohash/pgtable.h | 2
arch/powerpc/include/asm/pgtable.h | 28
arch/powerpc/include/asm/pkeys.h | 2
arch/powerpc/include/asm/tlb.h | 2
arch/powerpc/kernel/asm-offsets.c | 1
arch/powerpc/kernel/btext.c | 4
arch/powerpc/kernel/fpu.S | 3
arch/powerpc/kernel/head_32.S | 4
arch/powerpc/kernel/head_40x.S | 4
arch/powerpc/kernel/head_44x.S | 4
arch/powerpc/kernel/head_8xx.S | 4
arch/powerpc/kernel/head_fsl_booke.S | 4
arch/powerpc/kernel/io-workarounds.c | 4
arch/powerpc/kernel/irq.c | 4
arch/powerpc/kernel/mce_power.c | 4
arch/powerpc/kernel/paca.c | 4
arch/powerpc/kernel/process.c | 30
arch/powerpc/kernel/prom.c | 4
arch/powerpc/kernel/prom_init.c | 4
arch/powerpc/kernel/rtas_pci.c | 4
arch/powerpc/kernel/setup-common.c | 4
arch/powerpc/kernel/setup_32.c | 4
arch/powerpc/kernel/setup_64.c | 4
arch/powerpc/kernel/signal_32.c | 1
arch/powerpc/kernel/signal_64.c | 1
arch/powerpc/kernel/smp.c | 4
arch/powerpc/kernel/stacktrace.c | 2
arch/powerpc/kernel/traps.c | 1
arch/powerpc/kernel/vdso.c | 7
arch/powerpc/kvm/book3s_64_mmu_radix.c | 4
arch/powerpc/kvm/book3s_hv.c | 6
arch/powerpc/kvm/book3s_hv_nested.c | 4
arch/powerpc/kvm/book3s_hv_rm_xics.c | 4
arch/powerpc/kvm/book3s_hv_rm_xive.c | 4
arch/powerpc/kvm/book3s_hv_uvmem.c | 18
arch/powerpc/kvm/e500_mmu_host.c | 4
arch/powerpc/kvm/fpu.S | 4
arch/powerpc/lib/code-patching.c | 1
arch/powerpc/mm/book3s32/hash_low.S | 4
arch/powerpc/mm/book3s32/mmu.c | 2
arch/powerpc/mm/book3s32/tlb.c | 6
arch/powerpc/mm/book3s64/hash_hugetlbpage.c | 1
arch/powerpc/mm/book3s64/hash_native.c | 4
arch/powerpc/mm/book3s64/hash_pgtable.c | 5
arch/powerpc/mm/book3s64/hash_utils.c | 4
arch/powerpc/mm/book3s64/iommu_api.c | 4
arch/powerpc/mm/book3s64/radix_hugetlbpage.c | 1
arch/powerpc/mm/book3s64/radix_pgtable.c | 1
arch/powerpc/mm/book3s64/slb.c | 4
arch/powerpc/mm/book3s64/subpage_prot.c | 16
arch/powerpc/mm/copro_fault.c | 4
arch/powerpc/mm/fault.c | 23
arch/powerpc/mm/hugetlbpage.c | 1
arch/powerpc/mm/init-common.c | 4
arch/powerpc/mm/init_32.c | 1
arch/powerpc/mm/init_64.c | 1
arch/powerpc/mm/kasan/8xx.c | 4
arch/powerpc/mm/kasan/book3s_32.c | 2
arch/powerpc/mm/kasan/kasan_init_32.c | 8
arch/powerpc/mm/mem.c | 1
arch/powerpc/mm/nohash/40x.c | 5
arch/powerpc/mm/nohash/8xx.c | 2
arch/powerpc/mm/nohash/fsl_booke.c | 1
arch/powerpc/mm/nohash/tlb_low_64e.S | 4
arch/powerpc/mm/pgtable.c | 2
arch/powerpc/mm/pgtable_32.c | 5
arch/powerpc/mm/pgtable_64.c | 1
arch/powerpc/mm/ptdump/8xx.c | 2
arch/powerpc/mm/ptdump/bats.c | 4
arch/powerpc/mm/ptdump/book3s64.c | 2
arch/powerpc/mm/ptdump/hashpagetable.c | 1
arch/powerpc/mm/ptdump/ptdump.c | 1
arch/powerpc/mm/ptdump/shared.c | 2
arch/powerpc/oprofile/cell/spu_task_sync.c | 6
arch/powerpc/perf/callchain.c | 1
arch/powerpc/perf/callchain_32.c | 1
arch/powerpc/perf/callchain_64.c | 1
arch/powerpc/platforms/85xx/corenet_generic.c | 4
arch/powerpc/platforms/85xx/mpc85xx_cds.c | 4
arch/powerpc/platforms/85xx/qemu_e500.c | 4
arch/powerpc/platforms/85xx/sbc8548.c | 4
arch/powerpc/platforms/85xx/smp.c | 4
arch/powerpc/platforms/86xx/mpc86xx_smp.c | 4
arch/powerpc/platforms/8xx/cpm1.c | 1
arch/powerpc/platforms/8xx/micropatch.c | 1
arch/powerpc/platforms/cell/cbe_regs.c | 4
arch/powerpc/platforms/cell/interrupt.c | 4
arch/powerpc/platforms/cell/pervasive.c | 4
arch/powerpc/platforms/cell/setup.c | 1
arch/powerpc/platforms/cell/smp.c | 4
arch/powerpc/platforms/cell/spider-pic.c | 4
arch/powerpc/platforms/cell/spufs/file.c | 10
arch/powerpc/platforms/chrp/pci.c | 4
arch/powerpc/platforms/chrp/setup.c | 1
arch/powerpc/platforms/chrp/smp.c | 4
arch/powerpc/platforms/maple/setup.c | 1
arch/powerpc/platforms/maple/time.c | 1
arch/powerpc/platforms/powermac/setup.c | 1
arch/powerpc/platforms/powermac/smp.c | 4
arch/powerpc/platforms/powermac/time.c | 1
arch/powerpc/platforms/pseries/lpar.c | 4
arch/powerpc/platforms/pseries/setup.c | 1
arch/powerpc/platforms/pseries/smp.c | 4
arch/powerpc/sysdev/cpm2.c | 1
arch/powerpc/sysdev/fsl_85xx_cache_sram.c | 2
arch/powerpc/sysdev/mpic.c | 4
arch/powerpc/xmon/xmon.c | 1
arch/riscv/include/asm/fixmap.h | 4
arch/riscv/include/asm/io.h | 4
arch/riscv/include/asm/kasan.h | 4
arch/riscv/include/asm/pgtable-64.h | 7
arch/riscv/include/asm/pgtable.h | 22
arch/riscv/kernel/module.c | 2
arch/riscv/kernel/setup.c | 1
arch/riscv/kernel/soc.c | 2
arch/riscv/kernel/stacktrace.c | 23
arch/riscv/kernel/vdso.c | 4
arch/riscv/mm/cacheflush.c | 3
arch/riscv/mm/fault.c | 14
arch/riscv/mm/init.c | 31
arch/riscv/mm/kasan_init.c | 4
arch/riscv/mm/pageattr.c | 6
arch/riscv/mm/ptdump.c | 2
arch/s390/boot/ipl_parm.c | 4
arch/s390/boot/kaslr.c | 4
arch/s390/include/asm/hugetlb.h | 4
arch/s390/include/asm/kasan.h | 4
arch/s390/include/asm/pgtable.h | 15
arch/s390/include/asm/tlbflush.h | 1
arch/s390/kernel/asm-offsets.c | 4
arch/s390/kernel/dumpstack.c | 25
arch/s390/kernel/machine_kexec.c | 1
arch/s390/kernel/ptrace.c | 1
arch/s390/kernel/uv.c | 4
arch/s390/kernel/vdso.c | 5
arch/s390/kvm/gaccess.c | 8
arch/s390/kvm/interrupt.c | 4
arch/s390/kvm/kvm-s390.c | 32
arch/s390/kvm/priv.c | 38
arch/s390/mm/dump_pagetables.c | 1
arch/s390/mm/extmem.c | 4
arch/s390/mm/fault.c | 17
arch/s390/mm/gmap.c | 80
arch/s390/mm/init.c | 1
arch/s390/mm/kasan_init.c | 4
arch/s390/mm/pageattr.c | 13
arch/s390/mm/pgalloc.c | 2
arch/s390/mm/pgtable.c | 1
arch/s390/mm/vmem.c | 1
arch/s390/pci/pci_mmio.c | 4
arch/sh/include/asm/io.h | 2
arch/sh/include/asm/kdebug.h | 6
arch/sh/include/asm/pgtable-3level.h | 7
arch/sh/include/asm/pgtable.h | 2
arch/sh/include/asm/pgtable_32.h | 25
arch/sh/include/asm/processor_32.h | 2
arch/sh/kernel/dumpstack.c | 54
arch/sh/kernel/machine_kexec.c | 1
arch/sh/kernel/process_32.c | 2
arch/sh/kernel/ptrace_32.c | 1
arch/sh/kernel/signal_32.c | 1
arch/sh/kernel/sys_sh.c | 6
arch/sh/kernel/traps.c | 4
arch/sh/kernel/vsyscall/vsyscall.c | 4
arch/sh/mm/cache-sh3.c | 1
arch/sh/mm/cache-sh4.c | 11
arch/sh/mm/cache-sh7705.c | 1
arch/sh/mm/fault.c | 16
arch/sh/mm/kmap.c | 5
arch/sh/mm/nommu.c | 1
arch/sh/mm/pmb.c | 4
arch/sparc/include/asm/floppy_32.h | 4
arch/sparc/include/asm/highmem.h | 4
arch/sparc/include/asm/ide.h | 2
arch/sparc/include/asm/io-unit.h | 4
arch/sparc/include/asm/pgalloc_32.h | 4
arch/sparc/include/asm/pgalloc_64.h | 2
arch/sparc/include/asm/pgtable_32.h | 34
arch/sparc/include/asm/pgtable_64.h | 32
arch/sparc/kernel/cpu.c | 4
arch/sparc/kernel/entry.S | 4
arch/sparc/kernel/head_64.S | 4
arch/sparc/kernel/ktlb.S | 4
arch/sparc/kernel/leon_smp.c | 1
arch/sparc/kernel/pci.c | 4
arch/sparc/kernel/process_32.c | 29
arch/sparc/kernel/process_64.c | 3
arch/sparc/kernel/ptrace_32.c | 1
arch/sparc/kernel/ptrace_64.c | 1
arch/sparc/kernel/setup_32.c | 1
arch/sparc/kernel/setup_64.c | 1
arch/sparc/kernel/signal32.c | 1
arch/sparc/kernel/signal_32.c | 1
arch/sparc/kernel/signal_64.c | 1
arch/sparc/kernel/smp_32.c | 1
arch/sparc/kernel/smp_64.c | 1
arch/sparc/kernel/sun4m_irq.c | 4
arch/sparc/kernel/trampoline_64.S | 4
arch/sparc/kernel/traps_32.c | 4
arch/sparc/kernel/traps_64.c | 24
arch/sparc/lib/clear_page.S | 4
arch/sparc/lib/copy_page.S | 2
arch/sparc/mm/fault_32.c | 21
arch/sparc/mm/fault_64.c | 17
arch/sparc/mm/highmem.c | 12
arch/sparc/mm/hugetlbpage.c | 1
arch/sparc/mm/init_32.c | 1
arch/sparc/mm/init_64.c | 7
arch/sparc/mm/io-unit.c | 11
arch/sparc/mm/iommu.c | 9
arch/sparc/mm/tlb.c | 1
arch/sparc/mm/tsb.c | 4
arch/sparc/mm/ultra.S | 4
arch/sparc/vdso/vma.c | 4
arch/um/drivers/mconsole_kern.c | 2
arch/um/include/asm/mmu_context.h | 5
arch/um/include/asm/pgtable-3level.h | 4
arch/um/include/asm/pgtable.h | 69
arch/um/kernel/maccess.c | 12
arch/um/kernel/mem.c | 10
arch/um/kernel/process.c | 1
arch/um/kernel/skas/mmu.c | 3
arch/um/kernel/skas/uaccess.c | 1
arch/um/kernel/sysrq.c | 35
arch/um/kernel/tlb.c | 5
arch/um/kernel/trap.c | 15
arch/um/kernel/um_arch.c | 1
arch/unicore32/include/asm/pgtable.h | 19
arch/unicore32/kernel/hibernate.c | 4
arch/unicore32/kernel/hibernate_asm.S | 4
arch/unicore32/kernel/module.c | 1
arch/unicore32/kernel/setup.h | 4
arch/unicore32/kernel/traps.c | 50
arch/unicore32/lib/backtrace.S | 24
arch/unicore32/mm/alignment.c | 4
arch/unicore32/mm/fault.c | 9
arch/unicore32/mm/mm.h | 10
arch/unicore32/mm/proc-ucv2.S | 4
arch/x86/boot/compressed/kaslr_64.c | 4
arch/x86/entry/vdso/vma.c | 14
arch/x86/events/core.c | 4
arch/x86/include/asm/agp.h | 2
arch/x86/include/asm/asm-prototypes.h | 4
arch/x86/include/asm/efi.h | 4
arch/x86/include/asm/iomap.h | 1
arch/x86/include/asm/kaslr.h | 2
arch/x86/include/asm/mmu.h | 2
arch/x86/include/asm/pgtable-3level.h | 8
arch/x86/include/asm/pgtable.h | 89 -
arch/x86/include/asm/pgtable_32.h | 11
arch/x86/include/asm/pgtable_64.h | 4
arch/x86/include/asm/setup.h | 12
arch/x86/include/asm/stacktrace.h | 2
arch/x86/include/asm/uaccess.h | 16
arch/x86/include/asm/xen/hypercall.h | 4
arch/x86/include/asm/xen/page.h | 1
arch/x86/kernel/acpi/boot.c | 4
arch/x86/kernel/acpi/sleep.c | 4
arch/x86/kernel/alternative.c | 1
arch/x86/kernel/amd_gart_64.c | 5
arch/x86/kernel/apic/apic_numachip.c | 4
arch/x86/kernel/cpu/bugs.c | 4
arch/x86/kernel/cpu/common.c | 4
arch/x86/kernel/cpu/intel.c | 4
arch/x86/kernel/cpu/resctrl/pseudo_lock.c | 6
arch/x86/kernel/cpu/resctrl/rdtgroup.c | 6
arch/x86/kernel/crash_core_32.c | 4
arch/x86/kernel/crash_core_64.c | 4
arch/x86/kernel/doublefault_32.c | 1
arch/x86/kernel/dumpstack.c | 21
arch/x86/kernel/early_printk.c | 4
arch/x86/kernel/espfix_64.c | 2
arch/x86/kernel/head64.c | 4
arch/x86/kernel/head_64.S | 4
arch/x86/kernel/i8259.c | 4
arch/x86/kernel/irqinit.c | 4
arch/x86/kernel/kprobes/core.c | 4
arch/x86/kernel/kprobes/opt.c | 4
arch/x86/kernel/ldt.c | 2
arch/x86/kernel/machine_kexec_32.c | 1
arch/x86/kernel/machine_kexec_64.c | 1
arch/x86/kernel/module.c | 1
arch/x86/kernel/paravirt.c | 4
arch/x86/kernel/process_32.c | 1
arch/x86/kernel/process_64.c | 1
arch/x86/kernel/ptrace.c | 1
arch/x86/kernel/reboot.c | 4
arch/x86/kernel/smpboot.c | 4
arch/x86/kernel/tboot.c | 3
arch/x86/kernel/vm86_32.c | 4
arch/x86/kvm/mmu/paging_tmpl.h | 8
arch/x86/mm/cpu_entry_area.c | 4
arch/x86/mm/debug_pagetables.c | 2
arch/x86/mm/dump_pagetables.c | 1
arch/x86/mm/fault.c | 22
arch/x86/mm/init.c | 22
arch/x86/mm/init_32.c | 27
arch/x86/mm/init_64.c | 1
arch/x86/mm/ioremap.c | 4
arch/x86/mm/kasan_init_64.c | 1
arch/x86/mm/kaslr.c | 37
arch/x86/mm/maccess.c | 44
arch/x86/mm/mem_encrypt_boot.S | 2
arch/x86/mm/mmio-mod.c | 4
arch/x86/mm/pat/cpa-test.c | 1
arch/x86/mm/pat/memtype.c | 1
arch/x86/mm/pat/memtype_interval.c | 4
arch/x86/mm/pgtable.c | 1
arch/x86/mm/pgtable_32.c | 1
arch/x86/mm/pti.c | 1
arch/x86/mm/setup_nx.c | 4
arch/x86/platform/efi/efi_32.c | 4
arch/x86/platform/efi/efi_64.c | 1
arch/x86/platform/olpc/olpc_ofw.c | 4
arch/x86/power/cpu.c | 4
arch/x86/power/hibernate.c | 4
arch/x86/power/hibernate_32.c | 4
arch/x86/power/hibernate_64.c | 4
arch/x86/realmode/init.c | 4
arch/x86/um/vdso/vma.c | 4
arch/x86/xen/enlighten_pv.c | 1
arch/x86/xen/grant-table.c | 1
arch/x86/xen/mmu_pv.c | 4
arch/x86/xen/smp_pv.c | 2
arch/xtensa/include/asm/fixmap.h | 12
arch/xtensa/include/asm/highmem.h | 4
arch/xtensa/include/asm/initialize_mmu.h | 2
arch/xtensa/include/asm/mmu_context.h | 4
arch/xtensa/include/asm/pgtable.h | 20
arch/xtensa/kernel/entry.S | 4
arch/xtensa/kernel/process.c | 1
arch/xtensa/kernel/ptrace.c | 1
arch/xtensa/kernel/setup.c | 1
arch/xtensa/kernel/traps.c | 42
arch/xtensa/kernel/vectors.S | 4
arch/xtensa/mm/cache.c | 4
arch/xtensa/mm/fault.c | 12
arch/xtensa/mm/highmem.c | 2
arch/xtensa/mm/ioremap.c | 4
arch/xtensa/mm/kasan_init.c | 10
arch/xtensa/mm/misc.S | 4
arch/xtensa/mm/mmu.c | 5
drivers/acpi/scan.c | 3
drivers/android/binder_alloc.c | 14
drivers/atm/fore200e.c | 4
drivers/base/power/main.c | 4
drivers/block/z2ram.c | 4
drivers/char/agp/frontend.c | 1
drivers/char/agp/generic.c | 1
drivers/char/bsr.c | 1
drivers/char/mspec.c | 3
drivers/dma-buf/dma-resv.c | 5
drivers/firmware/efi/arm-runtime.c | 4
drivers/firmware/efi/efi.c | 2
drivers/gpu/drm/amd/amdgpu/amdgpu_amdkfd.h | 2
drivers/gpu/drm/amd/amdgpu/amdgpu_amdkfd_gfx_v7.c | 2
drivers/gpu/drm/amd/amdgpu/amdgpu_amdkfd_gfx_v8.c | 2
drivers/gpu/drm/amd/amdgpu/amdgpu_amdkfd_gpuvm.c | 4
drivers/gpu/drm/amd/amdgpu/amdgpu_ttm.c | 10
drivers/gpu/drm/amd/amdkfd/kfd_events.c | 4
drivers/gpu/drm/drm_vm.c | 4
drivers/gpu/drm/etnaviv/etnaviv_gem.c | 2
drivers/gpu/drm/i915/gem/i915_gem_mman.c | 4
drivers/gpu/drm/i915/gem/i915_gem_userptr.c | 14
drivers/gpu/drm/i915/i915_mm.c | 1
drivers/gpu/drm/i915/i915_perf.c | 2
drivers/gpu/drm/nouveau/nouveau_svm.c | 22
drivers/gpu/drm/radeon/radeon_cs.c | 4
drivers/gpu/drm/radeon/radeon_gem.c | 6
drivers/gpu/drm/ttm/ttm_bo_vm.c | 10
drivers/infiniband/core/umem_odp.c | 4
drivers/infiniband/core/uverbs_main.c | 6
drivers/infiniband/hw/hfi1/mmu_rb.c | 2
drivers/infiniband/hw/mlx4/mr.c | 4
drivers/infiniband/hw/qib/qib_file_ops.c | 4
drivers/infiniband/hw/qib/qib_user_pages.c | 6
drivers/infiniband/hw/usnic/usnic_uiom.c | 4
drivers/infiniband/sw/rdmavt/mmap.c | 1
drivers/infiniband/sw/rxe/rxe_mmap.c | 1
drivers/infiniband/sw/siw/siw_mem.c | 4
drivers/iommu/amd_iommu_v2.c | 4
drivers/iommu/intel-svm.c | 4
drivers/macintosh/macio-adb.c | 4
drivers/macintosh/mediabay.c | 4
drivers/macintosh/via-pmu.c | 4
drivers/media/pci/bt8xx/bt878.c | 4
drivers/media/pci/bt8xx/btcx-risc.c | 4
drivers/media/pci/bt8xx/bttv-risc.c | 4
drivers/media/platform/davinci/vpbe_display.c | 1
drivers/media/v4l2-core/v4l2-common.c | 1
drivers/media/v4l2-core/videobuf-core.c | 4
drivers/media/v4l2-core/videobuf-dma-contig.c | 4
drivers/media/v4l2-core/videobuf-dma-sg.c | 10
drivers/media/v4l2-core/videobuf-vmalloc.c | 4
drivers/misc/cxl/cxllib.c | 9
drivers/misc/cxl/fault.c | 4
drivers/misc/genwqe/card_utils.c | 2
drivers/misc/sgi-gru/grufault.c | 25
drivers/misc/sgi-gru/grufile.c | 4
drivers/mtd/ubi/ubi.h | 2
drivers/net/ethernet/amd/7990.c | 4
drivers/net/ethernet/amd/hplance.c | 4
drivers/net/ethernet/amd/mvme147.c | 4
drivers/net/ethernet/amd/sun3lance.c | 4
drivers/net/ethernet/amd/sunlance.c | 4
drivers/net/ethernet/apple/bmac.c | 4
drivers/net/ethernet/apple/mace.c | 4
drivers/net/ethernet/freescale/fs_enet/fs_enet-main.c | 4
drivers/net/ethernet/freescale/fs_enet/mac-fcc.c | 4
drivers/net/ethernet/freescale/fs_enet/mii-fec.c | 4
drivers/net/ethernet/i825xx/82596.c | 4
drivers/net/ethernet/korina.c | 4
drivers/net/ethernet/marvell/pxa168_eth.c | 4
drivers/net/ethernet/natsemi/jazzsonic.c | 4
drivers/net/ethernet/natsemi/macsonic.c | 4
drivers/net/ethernet/natsemi/xtsonic.c | 4
drivers/net/ethernet/sun/sunbmac.c | 4
drivers/net/ethernet/sun/sunhme.c | 1
drivers/net/ethernet/sun/sunqe.c | 4
drivers/oprofile/buffer_sync.c | 12
drivers/sbus/char/flash.c | 1
drivers/sbus/char/uctrl.c | 1
drivers/scsi/53c700.c | 4
drivers/scsi/a2091.c | 1
drivers/scsi/a3000.c | 1
drivers/scsi/arm/cumana_2.c | 4
drivers/scsi/arm/eesox.c | 4
drivers/scsi/arm/powertec.c | 4
drivers/scsi/dpt_i2o.c | 4
drivers/scsi/gvp11.c | 1
drivers/scsi/lasi700.c | 1
drivers/scsi/mac53c94.c | 4
drivers/scsi/mesh.c | 4
drivers/scsi/mvme147.c | 1
drivers/scsi/qlogicpti.c | 4
drivers/scsi/sni_53c710.c | 1
drivers/scsi/zorro_esp.c | 4
drivers/staging/android/ashmem.c | 4
drivers/staging/comedi/comedi_fops.c | 2
drivers/staging/kpc2000/kpc_dma/fileops.c | 4
drivers/staging/media/atomisp/pci/hmm/hmm_bo.c | 4
drivers/tee/optee/call.c | 4
drivers/tty/sysrq.c | 4
drivers/tty/vt/consolemap.c | 2
drivers/vfio/pci/vfio_pci.c | 22
drivers/vfio/vfio_iommu_type1.c | 8
drivers/vhost/vdpa.c | 4
drivers/video/console/newport_con.c | 1
drivers/video/fbdev/acornfb.c | 1
drivers/video/fbdev/atafb.c | 1
drivers/video/fbdev/cirrusfb.c | 1
drivers/video/fbdev/cyber2000fb.c | 1
drivers/video/fbdev/fb-puv3.c | 1
drivers/video/fbdev/hitfb.c | 1
drivers/video/fbdev/neofb.c | 1
drivers/video/fbdev/q40fb.c | 1
drivers/video/fbdev/savage/savagefb_driver.c | 1
drivers/xen/balloon.c | 1
drivers/xen/gntdev.c | 6
drivers/xen/grant-table.c | 1
drivers/xen/privcmd.c | 15
drivers/xen/xenbus/xenbus_probe.c | 1
drivers/xen/xenbus/xenbus_probe_backend.c | 1
drivers/xen/xenbus/xenbus_probe_frontend.c | 1
fs/aio.c | 4
fs/coredump.c | 8
fs/exec.c | 18
fs/ext2/file.c | 2
fs/ext4/super.c | 6
fs/hugetlbfs/inode.c | 2
fs/io_uring.c | 4
fs/kernfs/file.c | 4
fs/proc/array.c | 1
fs/proc/base.c | 24
fs/proc/meminfo.c | 1
fs/proc/nommu.c | 1
fs/proc/task_mmu.c | 34
fs/proc/task_nommu.c | 18
fs/proc/vmcore.c | 1
fs/userfaultfd.c | 46
fs/xfs/xfs_file.c | 2
fs/xfs/xfs_inode.c | 14
fs/xfs/xfs_iops.c | 4
include/asm-generic/io.h | 2
include/asm-generic/pgtable-nopmd.h | 1
include/asm-generic/pgtable-nopud.h | 1
include/asm-generic/pgtable.h | 1322 ----------------
include/linux/cache.h | 10
include/linux/crash_dump.h | 3
include/linux/dax.h | 1
include/linux/dma-noncoherent.h | 2
include/linux/fs.h | 4
include/linux/hmm.h | 2
include/linux/huge_mm.h | 2
include/linux/hugetlb.h | 2
include/linux/io-mapping.h | 4
include/linux/kallsyms.h | 4
include/linux/kasan.h | 4
include/linux/mempolicy.h | 2
include/linux/mm.h | 15
include/linux/mm_types.h | 4
include/linux/mmap_lock.h | 128 +
include/linux/mmu_notifier.h | 13
include/linux/pagemap.h | 2
include/linux/pgtable.h | 1444 +++++++++++++++++-
include/linux/rmap.h | 2
include/linux/sched/debug.h | 7
include/linux/sched/mm.h | 10
include/linux/uaccess.h | 62
include/xen/arm/page.h | 4
init/init_task.c | 1
ipc/shm.c | 8
kernel/acct.c | 6
kernel/bpf/stackmap.c | 21
kernel/bpf/syscall.c | 2
kernel/cgroup/cpuset.c | 4
kernel/debug/kdb/kdb_bt.c | 17
kernel/events/core.c | 10
kernel/events/uprobes.c | 20
kernel/exit.c | 11
kernel/fork.c | 15
kernel/futex.c | 4
kernel/locking/lockdep.c | 4
kernel/locking/rtmutex-debug.c | 4
kernel/power/snapshot.c | 1
kernel/relay.c | 2
kernel/sched/core.c | 10
kernel/sched/fair.c | 4
kernel/sys.c | 22
kernel/trace/bpf_trace.c | 176 +-
kernel/trace/ftrace.c | 8
kernel/trace/trace_kprobe.c | 80
kernel/trace/trace_output.c | 4
lib/dump_stack.c | 4
lib/ioremap.c | 1
lib/test_hmm.c | 14
lib/test_lockup.c | 16
mm/debug.c | 10
mm/debug_vm_pgtable.c | 1
mm/filemap.c | 46
mm/frame_vector.c | 6
mm/gup.c | 73
mm/hmm.c | 2
mm/huge_memory.c | 8
mm/hugetlb.c | 3
mm/init-mm.c | 6
mm/internal.h | 6
mm/khugepaged.c | 72
mm/ksm.c | 48
mm/maccess.c | 496 +++---
mm/madvise.c | 40
mm/memcontrol.c | 10
mm/memory.c | 61
mm/mempolicy.c | 36
mm/migrate.c | 16
mm/mincore.c | 8
mm/mlock.c | 22
mm/mmap.c | 74
mm/mmu_gather.c | 2
mm/mmu_notifier.c | 22
mm/mprotect.c | 22
mm/mremap.c | 14
mm/msync.c | 8
mm/nommu.c | 22
mm/oom_kill.c | 14
mm/page_io.c | 1
mm/page_reporting.h | 2
mm/pagewalk.c | 12
mm/pgtable-generic.c | 6
mm/process_vm_access.c | 4
mm/ptdump.c | 4
mm/rmap.c | 12
mm/shmem.c | 5
mm/sparse-vmemmap.c | 1
mm/sparse.c | 1
mm/swap_state.c | 5
mm/swapfile.c | 5
mm/userfaultfd.c | 26
mm/util.c | 12
mm/vmacache.c | 1
mm/zsmalloc.c | 4
net/ipv4/tcp.c | 8
net/xdp/xdp_umem.c | 4
security/keys/keyctl.c | 2
sound/core/oss/pcm_oss.c | 2
sound/core/sgbuf.c | 1
sound/pci/hda/hda_intel.c | 4
sound/soc/intel/common/sst-firmware.c | 4
sound/soc/intel/haswell/sst-haswell-pcm.c | 4
tools/include/linux/kallsyms.h | 2
virt/kvm/async_pf.c | 4
virt/kvm/kvm_main.c | 9
942 files changed, 4580 insertions(+), 5662 deletions(-)
^ permalink raw reply [flat|nested] 215+ messages in thread
* incoming
@ 2020-06-08 4:35 Andrew Morton
0 siblings, 0 replies; 215+ messages in thread
From: Andrew Morton @ 2020-06-08 4:35 UTC (permalink / raw)
To: Linus Torvalds; +Cc: mm-commits, linux-mm
Various trees. Mainly those parts of MM whose linux-next dependents
are now merged. I'm still sitting on ~160 patches which await merges
from -next.
54 patches, based on 9aa900c8094dba7a60dc805ecec1e9f720744ba1.
Subsystems affected by this patch series:
mm/proc
ipc
dynamic-debug
panic
lib
sysctl
mm/gup
mm/pagemap
Subsystem: mm/proc
SeongJae Park <sjpark@amazon.de>:
mm/page_idle.c: skip offline pages
Subsystem: ipc
Jules Irenge <jbi.octave@gmail.com>:
ipc/msg: add missing annotation for freeque()
Giuseppe Scrivano <gscrivan@redhat.com>:
ipc/namespace.c: use a work queue to free_ipc
Subsystem: dynamic-debug
Orson Zhai <orson.zhai@unisoc.com>:
dynamic_debug: add an option to enable dynamic debug for modules only
Subsystem: panic
Rafael Aquini <aquini@redhat.com>:
kernel: add panic_on_taint
Subsystem: lib
Manfred Spraul <manfred@colorfullife.com>:
xarray.h: correct return code documentation for xa_store_{bh,irq}()
Subsystem: sysctl
Vlastimil Babka <vbabka@suse.cz>:
Patch series "support setting sysctl parameters from kernel command line", v3:
kernel/sysctl: support setting sysctl parameters from kernel command line
kernel/sysctl: support handling command line aliases
kernel/hung_task convert hung_task_panic boot parameter to sysctl
tools/testing/selftests/sysctl/sysctl.sh: support CONFIG_TEST_SYSCTL=y
lib/test_sysctl: support testing of sysctl. boot parameter
"Guilherme G. Piccoli" <gpiccoli@canonical.com>:
kernel/watchdog.c: convert {soft/hard}lockup boot parameters to sysctl aliases
kernel/hung_task.c: introduce sysctl to print all traces when a hung task is detected
panic: add sysctl to dump all CPUs backtraces on oops event
Rafael Aquini <aquini@redhat.com>:
kernel/sysctl.c: ignore out-of-range taint bits introduced via kernel.tainted
Subsystem: mm/gup
Souptick Joarder <jrdr.linux@gmail.com>:
mm/gup.c: convert to use get_user_{page|pages}_fast_only()
John Hubbard <jhubbard@nvidia.com>:
mm/gup: update pin_user_pages.rst for "case 3" (mmu notifiers)
Patch series "mm/gup: introduce pin_user_pages_locked(), use it in frame_vector.c", v2:
mm/gup: introduce pin_user_pages_locked()
mm/gup: frame_vector: convert get_user_pages() --> pin_user_pages()
mm/gup: documentation fix for pin_user_pages*() APIs
Patch series "vhost, docs: convert to pin_user_pages(), new "case 5"":
docs: mm/gup: pin_user_pages.rst: add a "case 5"
vhost: convert get_user_pages() --> pin_user_pages()
Subsystem: mm/pagemap
Alexander Gordeev <agordeev@linux.ibm.com>:
mm/mmap.c: add more sanity checks to get_unmapped_area()
mm/mmap.c: do not allow mappings outside of allowed limits
Christoph Hellwig <hch@lst.de>:
Patch series "sort out the flush_icache_range mess", v2:
arm: fix the flush_icache_range arguments in set_fiq_handler
nds32: unexport flush_icache_page
powerpc: unexport flush_icache_user_range
unicore32: remove flush_cache_user_range
asm-generic: fix the inclusion guards for cacheflush.h
asm-generic: don't include <linux/mm.h> in cacheflush.h
asm-generic: improve the flush_dcache_page stub
alpha: use asm-generic/cacheflush.h
arm64: use asm-generic/cacheflush.h
c6x: use asm-generic/cacheflush.h
hexagon: use asm-generic/cacheflush.h
ia64: use asm-generic/cacheflush.h
microblaze: use asm-generic/cacheflush.h
m68knommu: use asm-generic/cacheflush.h
openrisc: use asm-generic/cacheflush.h
powerpc: use asm-generic/cacheflush.h
riscv: use asm-generic/cacheflush.h
arm,sparc,unicore32: remove flush_icache_user_range
mm: rename flush_icache_user_range to flush_icache_user_page
asm-generic: add a flush_icache_user_range stub
sh: implement flush_icache_user_range
xtensa: implement flush_icache_user_range
arm: rename flush_cache_user_range to flush_icache_user_range
m68k: implement flush_icache_user_range
exec: only build read_code when needed
exec: use flush_icache_user_range in read_code
binfmt_flat: use flush_icache_user_range
nommu: use flush_icache_user_range in brk and mmap
module: move the set_fs hack for flush_icache_range to m68k
Konstantin Khlebnikov <khlebnikov@yandex-team.ru>:
doc: cgroup: update note about conditions when oom killer is invoked
Documentation/admin-guide/cgroup-v2.rst | 17 +-
Documentation/admin-guide/dynamic-debug-howto.rst | 5
Documentation/admin-guide/kdump/kdump.rst | 8 +
Documentation/admin-guide/kernel-parameters.txt | 34 +++-
Documentation/admin-guide/sysctl/kernel.rst | 37 ++++
Documentation/core-api/pin_user_pages.rst | 47 ++++--
arch/alpha/include/asm/cacheflush.h | 38 +----
arch/alpha/kernel/smp.c | 2
arch/arm/include/asm/cacheflush.h | 7
arch/arm/kernel/fiq.c | 4
arch/arm/kernel/traps.c | 2
arch/arm64/include/asm/cacheflush.h | 46 ------
arch/c6x/include/asm/cacheflush.h | 19 --
arch/hexagon/include/asm/cacheflush.h | 19 --
arch/ia64/include/asm/cacheflush.h | 30 ----
arch/m68k/include/asm/cacheflush_mm.h | 6
arch/m68k/include/asm/cacheflush_no.h | 19 --
arch/m68k/mm/cache.c | 13 +
arch/microblaze/include/asm/cacheflush.h | 29 ---
arch/nds32/include/asm/cacheflush.h | 4
arch/nds32/mm/cacheflush.c | 3
arch/openrisc/include/asm/cacheflush.h | 33 ----
arch/powerpc/include/asm/cacheflush.h | 46 +-----
arch/powerpc/kvm/book3s_64_mmu_hv.c | 2
arch/powerpc/kvm/book3s_64_mmu_radix.c | 2
arch/powerpc/mm/mem.c | 3
arch/powerpc/perf/callchain_64.c | 4
arch/riscv/include/asm/cacheflush.h | 65 --------
arch/sh/include/asm/cacheflush.h | 1
arch/sparc/include/asm/cacheflush_32.h | 2
arch/sparc/include/asm/cacheflush_64.h | 1
arch/um/include/asm/tlb.h | 2
arch/unicore32/include/asm/cacheflush.h | 11 -
arch/x86/include/asm/cacheflush.h | 2
arch/xtensa/include/asm/cacheflush.h | 2
drivers/media/platform/omap3isp/ispvideo.c | 2
drivers/nvdimm/pmem.c | 3
drivers/vhost/vhost.c | 5
fs/binfmt_flat.c | 2
fs/exec.c | 5
fs/proc/proc_sysctl.c | 163 ++++++++++++++++++++--
include/asm-generic/cacheflush.h | 25 +--
include/linux/dev_printk.h | 6
include/linux/dynamic_debug.h | 2
include/linux/ipc_namespace.h | 2
include/linux/kernel.h | 9 +
include/linux/mm.h | 12 +
include/linux/net.h | 3
include/linux/netdevice.h | 6
include/linux/printk.h | 9 -
include/linux/sched/sysctl.h | 7
include/linux/sysctl.h | 4
include/linux/xarray.h | 4
include/rdma/ib_verbs.h | 6
init/main.c | 2
ipc/msg.c | 2
ipc/namespace.c | 24 ++-
kernel/events/core.c | 4
kernel/events/uprobes.c | 2
kernel/hung_task.c | 30 ++--
kernel/module.c | 8 -
kernel/panic.c | 45 ++++++
kernel/sysctl.c | 38 ++++-
kernel/watchdog.c | 37 +---
lib/Kconfig.debug | 12 +
lib/Makefile | 2
lib/dynamic_debug.c | 9 -
lib/test_sysctl.c | 13 +
mm/frame_vector.c | 7
mm/gup.c | 74 +++++++--
mm/mmap.c | 28 ++-
mm/nommu.c | 4
mm/page_alloc.c | 9 -
mm/page_idle.c | 7
tools/testing/selftests/sysctl/sysctl.sh | 44 +++++
virt/kvm/kvm_main.c | 8 -
76 files changed, 732 insertions(+), 517 deletions(-)
^ permalink raw reply [flat|nested] 215+ messages in thread
* incoming
@ 2020-06-04 23:45 Andrew Morton
0 siblings, 0 replies; 215+ messages in thread
From: Andrew Morton @ 2020-06-04 23:45 UTC (permalink / raw)
To: Linus Torvalds; +Cc: linux-mm, mm-commits
- More MM work. 100ish more to go. Mike's "mm: remove
__ARCH_HAS_5LEVEL_HACK" series should fix the current ppc issue.
- Various other little subsystems
127 patches, based on 6929f71e46bdddbf1c4d67c2728648176c67c555.
Subsystems affected by this patch series:
kcov
mm/pagemap
mm/vmalloc
mm/kmap
mm/util
mm/memory-hotplug
mm/cleanups
mm/zram
procfs
core-kernel
get_maintainer
lib
bitops
checkpatch
binfmt
init
fat
seq_file
exec
rapidio
relay
selftests
ubsan
Subsystem: kcov
Andrey Konovalov <andreyknvl@google.com>:
Patch series "kcov: collect coverage from usb soft interrupts", v4:
kcov: cleanup debug messages
kcov: fix potential use-after-free in kcov_remote_start
kcov: move t->kcov assignments into kcov_start/stop
kcov: move t->kcov_sequence assignment
kcov: use t->kcov_mode as enabled indicator
kcov: collect coverage from interrupts
usb: core: kcov: collect coverage from usb complete callback
Subsystem: mm/pagemap
Feng Tang <feng.tang@intel.com>:
mm/util.c: remove the VM_WARN_ONCE for vm_committed_as underflow check
Mike Rapoport <rppt@linux.ibm.com>:
Patch series "mm: remove __ARCH_HAS_5LEVEL_HACK", v4:
h8300: remove usage of __ARCH_USE_5LEVEL_HACK
arm: add support for folded p4d page tables
arm64: add support for folded p4d page tables
hexagon: remove __ARCH_USE_5LEVEL_HACK
ia64: add support for folded p4d page tables
nios2: add support for folded p4d page tables
openrisc: add support for folded p4d page tables
powerpc: add support for folded p4d page tables
Geert Uytterhoeven <geert+renesas@glider.be>:
sh: fault: modernize printing of kernel messages
Mike Rapoport <rppt@linux.ibm.com>:
sh: drop __pXd_offset() macros that duplicate pXd_index() ones
sh: add support for folded p4d page tables
unicore32: remove __ARCH_USE_5LEVEL_HACK
asm-generic: remove pgtable-nop4d-hack.h
mm: remove __ARCH_HAS_5LEVEL_HACK and include/asm-generic/5level-fixup.h
Anshuman Khandual <anshuman.khandual@arm.com>:
Patch series "mm/debug: Add tests validating architecture page table:
x86/mm: define mm_p4d_folded()
mm/debug: add tests validating architecture page table helpers
Subsystem: mm/vmalloc
Jeongtae Park <jtp.park@samsung.com>:
mm/vmalloc: fix a typo in comment
Subsystem: mm/kmap
Ira Weiny <ira.weiny@intel.com>:
Patch series "Remove duplicated kmap code", v3:
arch/kmap: remove BUG_ON()
arch/xtensa: move kmap build bug out of the way
arch/kmap: remove redundant arch specific kmaps
arch/kunmap: remove duplicate kunmap implementations
{x86,powerpc,microblaze}/kmap: move preempt disable
arch/kmap_atomic: consolidate duplicate code
arch/kunmap_atomic: consolidate duplicate code
arch/kmap: ensure kmap_prot visibility
arch/kmap: don't hard code kmap_prot values
arch/kmap: define kmap_atomic_prot() for all arch's
drm: remove drm specific kmap_atomic code
kmap: remove kmap_atomic_to_page()
parisc/kmap: remove duplicate kmap code
sparc: remove unnecessary includes
kmap: consolidate kmap_prot definitions
Subsystem: mm/util
Waiman Long <longman@redhat.com>:
mm: add kvfree_sensitive() for freeing sensitive data objects
Subsystem: mm/memory-hotplug
Vishal Verma <vishal.l.verma@intel.com>:
mm/memory_hotplug: refrain from adding memory into an impossible node
David Hildenbrand <david@redhat.com>:
powerpc/pseries/hotplug-memory: stop checking is_mem_section_removable()
mm/memory_hotplug: remove is_mem_section_removable()
Patch series "mm/memory_hotplug: handle memblocks only with:
mm/memory_hotplug: set node_start_pfn of hotadded pgdat to 0
mm/memory_hotplug: handle memblocks only with CONFIG_ARCH_KEEP_MEMBLOCK
Patch series "mm/memory_hotplug: Interface to add driver-managed system:
mm/memory_hotplug: introduce add_memory_driver_managed()
kexec_file: don't place kexec images on IORESOURCE_MEM_DRIVER_MANAGED
device-dax: add memory via add_memory_driver_managed()
Michal Hocko <mhocko@kernel.org>:
mm/memory_hotplug: disable the functionality for 32b
Subsystem: mm/cleanups
chenqiwu <chenqiwu@xiaomi.com>:
mm: replace zero-length array with flexible-array member
Ethon Paul <ethp@qq.com>:
mm/memory_hotplug: fix a typo in comment "recoreded"->"recorded"
mm: ksm: fix a typo in comment "alreaady"->"already"
mm: mmap: fix a typo in comment "compatbility"->"compatibility"
mm/hugetlb: fix a typos in comments
mm/vmsan: fix some typos in comment
mm/compaction: fix a typo in comment "pessemistic"->"pessimistic"
mm/memblock: fix a typo in comment "implict"->"implicit"
mm/list_lru: fix a typo in comment "numbesr"->"numbers"
mm/filemap: fix a typo in comment "unneccssary"->"unnecessary"
mm/frontswap: fix some typos in frontswap.c
mm, memcg: fix some typos in memcontrol.c
mm: fix a typo in comment "strucure"->"structure"
mm/slub: fix a typo in comment "disambiguiation"->"disambiguation"
mm/sparse: fix a typo in comment "convienence"->"convenience"
mm/page-writeback: fix a typo in comment "effictive"->"effective"
mm/memory: fix a typo in comment "attampt"->"attempt"
Zou Wei <zou_wei@huawei.com>:
mm: use false for bool variable
Jason Yan <yanaijie@huawei.com>:
include/linux/mm.h: return true in cpupid_pid_unset()
Subsystem: mm/zram
Andy Shevchenko <andriy.shevchenko@linux.intel.com>:
zcomp: Use ARRAY_SIZE() for backends list
Subsystem: procfs
Alexey Dobriyan <adobriyan@gmail.com>:
proc: rename "catch" function argument
Subsystem: core-kernel
Jason Yan <yanaijie@huawei.com>:
user.c: make uidhash_table static
Subsystem: get_maintainer
Joe Perches <joe@perches.com>:
get_maintainer: add email addresses from .yaml files
get_maintainer: fix unexpected behavior for path/to//file (double slashes)
Subsystem: lib
Christophe JAILLET <christophe.jaillet@wanadoo.fr>:
lib/math: avoid trailing newline hidden in pr_fmt()
KP Singh <kpsingh@chromium.org>:
lib: Add might_fault() to strncpy_from_user.
Jason Yan <yanaijie@huawei.com>:
lib/test_lockup.c: make test_inode static
Jann Horn <jannh@google.com>:
lib/zlib: remove outdated and incorrect pre-increment optimization
Joe Perches <joe@perches.com>:
lib/percpu-refcount.c: use a more common logging style
Tan Hu <tan.hu@zte.com.cn>:
lib/flex_proportions.c: cleanup __fprop_inc_percpu_max
Jesse Brandeburg <jesse.brandeburg@intel.com>:
lib: make a test module with set/clear bit
Subsystem: bitops
Arnd Bergmann <arnd@arndb.de>:
include/linux/bitops.h: avoid clang shift-count-overflow warnings
Subsystem: checkpatch
Joe Perches <joe@perches.com>:
checkpatch: additional MAINTAINER section entry ordering checks
checkpatch: look for c99 comments in ctx_locate_comment
checkpatch: disallow --git and --file/--fix
Geert Uytterhoeven <geert+renesas@glider.be>:
checkpatch: use patch subject when reading from stdin
Subsystem: binfmt
Anthony Iliopoulos <ailiop@suse.com>:
fs/binfmt_elf: remove redundant elf_map ifndef
Nick Desaulniers <ndesaulniers@google.com>:
elfnote: mark all .note sections SHF_ALLOC
Subsystem: init
Chris Down <chris@chrisdown.name>:
init: allow distribution configuration of default init
Subsystem: fat
OGAWA Hirofumi <hirofumi@mail.parknet.co.jp>:
fat: don't allow to mount if the FAT length == 0
fat: improve the readahead for FAT entries
Subsystem: seq_file
Joe Perches <joe@perches.com>:
fs/seq_file.c: seq_read: Update pr_info_ratelimited
Kefeng Wang <wangkefeng.wang@huawei.com>:
Patch series "seq_file: Introduce DEFINE_SEQ_ATTRIBUTE() helper macro":
include/linux/seq_file.h: introduce DEFINE_SEQ_ATTRIBUTE() helper macro
mm/vmstat.c: convert to use DEFINE_SEQ_ATTRIBUTE macro
kernel/kprobes.c: convert to use DEFINE_SEQ_ATTRIBUTE macro
Subsystem: exec
Christoph Hellwig <hch@lst.de>:
exec: simplify the copy_strings_kernel calling convention
exec: open code copy_string_kernel
Subsystem: rapidio
Madhuparna Bhowmik <madhuparnabhowmik10@gmail.com>:
rapidio: avoid data race between file operation callbacks and mport_cdev_add().
John Hubbard <jhubbard@nvidia.com>:
rapidio: convert get_user_pages() --> pin_user_pages()
Subsystem: relay
Daniel Axtens <dja@axtens.net>:
kernel/relay.c: handle alloc_percpu returning NULL in relay_open
Pengcheng Yang <yangpc@wangsu.com>:
kernel/relay.c: fix read_pos error when multiple readers
Subsystem: selftests
Ram Pai <linuxram@us.ibm.com>:
Patch series "selftests, powerpc, x86: Memory Protection Keys", v19:
selftests/x86/pkeys: move selftests to arch-neutral directory
selftests/vm/pkeys: rename all references to pkru to a generic name
selftests/vm/pkeys: move generic definitions to header file
Thiago Jung Bauermann <bauerman@linux.ibm.com>:
selftests/vm/pkeys: move some definitions to arch-specific header
selftests/vm/pkeys: make gcc check arguments of sigsafe_printf()
Sandipan Das <sandipan@linux.ibm.com>:
selftests: vm: pkeys: Use sane types for pkey register
selftests: vm: pkeys: add helpers for pkey bits
Ram Pai <linuxram@us.ibm.com>:
selftests/vm/pkeys: fix pkey_disable_clear()
selftests/vm/pkeys: fix assertion in pkey_disable_set/clear()
selftests/vm/pkeys: fix alloc_random_pkey() to make it really random
Sandipan Das <sandipan@linux.ibm.com>:
selftests: vm: pkeys: use the correct huge page size
Ram Pai <linuxram@us.ibm.com>:
selftests/vm/pkeys: introduce generic pkey abstractions
selftests/vm/pkeys: introduce powerpc support
"Desnes A. Nunes do Rosario" <desnesn@linux.vnet.ibm.com>:
selftests/vm/pkeys: fix number of reserved powerpc pkeys
Ram Pai <linuxram@us.ibm.com>:
selftests/vm/pkeys: fix assertion in test_pkey_alloc_exhaust()
selftests/vm/pkeys: improve checks to determine pkey support
selftests/vm/pkeys: associate key on a mapped page and detect access violation
selftests/vm/pkeys: associate key on a mapped page and detect write violation
selftests/vm/pkeys: detect write violation on a mapped access-denied-key page
selftests/vm/pkeys: introduce a sub-page allocator
selftests/vm/pkeys: test correct behaviour of pkey-0
selftests/vm/pkeys: override access right definitions on powerpc
Sandipan Das <sandipan@linux.ibm.com>:
selftests: vm: pkeys: use the correct page size on powerpc
selftests: vm: pkeys: fix multilib builds for x86
Jagadeesh Pagadala <jagdsh.linux@gmail.com>:
tools/testing/selftests/vm: remove duplicate headers
Subsystem: ubsan
Arnd Bergmann <arnd@arndb.de>:
lib/ubsan.c: fix gcc-10 warnings
Documentation/dev-tools/kcov.rst | 17
Documentation/features/debug/debug-vm-pgtable/arch-support.txt | 34
arch/arc/Kconfig | 1
arch/arc/include/asm/highmem.h | 20
arch/arc/mm/highmem.c | 34
arch/arm/include/asm/highmem.h | 9
arch/arm/include/asm/pgtable.h | 1
arch/arm/lib/uaccess_with_memcpy.c | 7
arch/arm/mach-sa1100/assabet.c | 2
arch/arm/mm/dump.c | 29
arch/arm/mm/fault-armv.c | 7
arch/arm/mm/fault.c | 22
arch/arm/mm/highmem.c | 41
arch/arm/mm/idmap.c | 3
arch/arm/mm/init.c | 2
arch/arm/mm/ioremap.c | 12
arch/arm/mm/mm.h | 2
arch/arm/mm/mmu.c | 35
arch/arm/mm/pgd.c | 40
arch/arm64/Kconfig | 1
arch/arm64/include/asm/kvm_mmu.h | 10
arch/arm64/include/asm/pgalloc.h | 10
arch/arm64/include/asm/pgtable-types.h | 5
arch/arm64/include/asm/pgtable.h | 37
arch/arm64/include/asm/stage2_pgtable.h | 48
arch/arm64/kernel/hibernate.c | 44
arch/arm64/kvm/mmu.c | 209
arch/arm64/mm/fault.c | 9
arch/arm64/mm/hugetlbpage.c | 15
arch/arm64/mm/kasan_init.c | 26
arch/arm64/mm/mmu.c | 52
arch/arm64/mm/pageattr.c | 7
arch/csky/include/asm/highmem.h | 12
arch/csky/mm/highmem.c | 64
arch/h8300/include/asm/pgtable.h | 1
arch/hexagon/include/asm/fixmap.h | 4
arch/hexagon/include/asm/pgtable.h | 1
arch/ia64/include/asm/pgalloc.h | 4
arch/ia64/include/asm/pgtable.h | 17
arch/ia64/mm/fault.c | 7
arch/ia64/mm/hugetlbpage.c | 18
arch/ia64/mm/init.c | 28
arch/microblaze/include/asm/highmem.h | 55
arch/microblaze/mm/highmem.c | 21
arch/microblaze/mm/init.c | 3
arch/mips/include/asm/highmem.h | 11
arch/mips/mm/cache.c | 6
arch/mips/mm/highmem.c | 62
arch/nds32/include/asm/highmem.h | 9
arch/nds32/mm/highmem.c | 49
arch/nios2/include/asm/pgtable.h | 3
arch/nios2/mm/fault.c | 9
arch/nios2/mm/ioremap.c | 6
arch/openrisc/include/asm/pgtable.h | 1
arch/openrisc/mm/fault.c | 10
arch/openrisc/mm/init.c | 4
arch/parisc/include/asm/cacheflush.h | 32
arch/powerpc/Kconfig | 1
arch/powerpc/include/asm/book3s/32/pgtable.h | 1
arch/powerpc/include/asm/book3s/64/hash.h | 4
arch/powerpc/include/asm/book3s/64/pgalloc.h | 4
arch/powerpc/include/asm/book3s/64/pgtable.h | 60
arch/powerpc/include/asm/book3s/64/radix.h | 6
arch/powerpc/include/asm/highmem.h | 56
arch/powerpc/include/asm/nohash/32/pgtable.h | 1
arch/powerpc/include/asm/nohash/64/pgalloc.h | 2
arch/powerpc/include/asm/nohash/64/pgtable-4k.h | 32
arch/powerpc/include/asm/nohash/64/pgtable.h | 6
arch/powerpc/include/asm/pgtable.h | 10
arch/powerpc/kvm/book3s_64_mmu_radix.c | 32
arch/powerpc/lib/code-patching.c | 7
arch/powerpc/mm/book3s64/hash_pgtable.c | 4
arch/powerpc/mm/book3s64/radix_pgtable.c | 26
arch/powerpc/mm/book3s64/subpage_prot.c | 6
arch/powerpc/mm/highmem.c | 26
arch/powerpc/mm/hugetlbpage.c | 28
arch/powerpc/mm/kasan/kasan_init_32.c | 2
arch/powerpc/mm/mem.c | 3
arch/powerpc/mm/nohash/book3e_pgtable.c | 15
arch/powerpc/mm/pgtable.c | 30
arch/powerpc/mm/pgtable_64.c | 10
arch/powerpc/mm/ptdump/hashpagetable.c | 20
arch/powerpc/mm/ptdump/ptdump.c | 12
arch/powerpc/platforms/pseries/hotplug-memory.c | 26
arch/powerpc/xmon/xmon.c | 27
arch/s390/Kconfig | 1
arch/sh/include/asm/pgtable-2level.h | 1
arch/sh/include/asm/pgtable-3level.h | 1
arch/sh/include/asm/pgtable_32.h | 5
arch/sh/include/asm/pgtable_64.h | 5
arch/sh/kernel/io_trapped.c | 7
arch/sh/mm/cache-sh4.c | 4
arch/sh/mm/cache-sh5.c | 7
arch/sh/mm/fault.c | 64
arch/sh/mm/hugetlbpage.c | 28
arch/sh/mm/init.c | 15
arch/sh/mm/kmap.c | 2
arch/sh/mm/tlbex_32.c | 6
arch/sh/mm/tlbex_64.c | 7
arch/sparc/include/asm/highmem.h | 29
arch/sparc/mm/highmem.c | 31
arch/sparc/mm/io-unit.c | 1
arch/sparc/mm/iommu.c | 1
arch/unicore32/include/asm/pgtable.h | 1
arch/unicore32/kernel/hibernate.c | 4
arch/x86/Kconfig | 1
arch/x86/include/asm/fixmap.h | 1
arch/x86/include/asm/highmem.h | 37
arch/x86/include/asm/pgtable_64.h | 6
arch/x86/mm/highmem_32.c | 52
arch/xtensa/include/asm/highmem.h | 31
arch/xtensa/mm/highmem.c | 28
drivers/block/zram/zcomp.c | 7
drivers/dax/dax-private.h | 1
drivers/dax/kmem.c | 28
drivers/gpu/drm/ttm/ttm_bo_util.c | 56
drivers/gpu/drm/vmwgfx/vmwgfx_blit.c | 17
drivers/rapidio/devices/rio_mport_cdev.c | 27
drivers/usb/core/hcd.c | 3
fs/binfmt_elf.c | 4
fs/binfmt_em86.c | 6
fs/binfmt_misc.c | 4
fs/binfmt_script.c | 6
fs/exec.c | 58
fs/fat/fatent.c | 103
fs/fat/inode.c | 6
fs/proc/array.c | 8
fs/seq_file.c | 7
include/asm-generic/5level-fixup.h | 59
include/asm-generic/pgtable-nop4d-hack.h | 64
include/asm-generic/pgtable-nopud.h | 4
include/drm/ttm/ttm_bo_api.h | 4
include/linux/binfmts.h | 3
include/linux/bitops.h | 2
include/linux/elfnote.h | 2
include/linux/highmem.h | 89
include/linux/ioport.h | 1
include/linux/memory_hotplug.h | 9
include/linux/mm.h | 12
include/linux/sched.h | 3
include/linux/seq_file.h | 19
init/Kconfig | 10
init/main.c | 10
kernel/kcov.c | 282 -
kernel/kexec_file.c | 5
kernel/kprobes.c | 34
kernel/relay.c | 22
kernel/user.c | 2
lib/Kconfig.debug | 44
lib/Makefile | 2
lib/flex_proportions.c | 7
lib/math/prime_numbers.c | 10
lib/percpu-refcount.c | 6
lib/strncpy_from_user.c | 1
lib/test_bitops.c | 60
lib/test_lockup.c | 2
lib/ubsan.c | 33
lib/zlib_inflate/inffast.c | 91
mm/Kconfig | 4
mm/Makefile | 1
mm/compaction.c | 2
mm/debug_vm_pgtable.c | 382 +
mm/filemap.c | 2
mm/frontswap.c | 6
mm/huge_memory.c | 2
mm/hugetlb.c | 16
mm/internal.h | 2
mm/kasan/init.c | 11
mm/ksm.c | 10
mm/list_lru.c | 2
mm/memblock.c | 2
mm/memcontrol.c | 4
mm/memory.c | 10
mm/memory_hotplug.c | 179
mm/mmap.c | 2
mm/mremap.c | 2
mm/page-writeback.c | 2
mm/slub.c | 2
mm/sparse.c | 2
mm/util.c | 22
mm/vmalloc.c | 2
mm/vmscan.c | 6
mm/vmstat.c | 32
mm/zbud.c | 2
scripts/checkpatch.pl | 62
scripts/get_maintainer.pl | 46
security/keys/internal.h | 11
security/keys/keyctl.c | 16
tools/testing/selftests/lib/config | 1
tools/testing/selftests/vm/.gitignore | 1
tools/testing/selftests/vm/Makefile | 75
tools/testing/selftests/vm/mremap_dontunmap.c | 1
tools/testing/selftests/vm/pkey-helpers.h | 557 +-
tools/testing/selftests/vm/pkey-powerpc.h | 153
tools/testing/selftests/vm/pkey-x86.h | 191
tools/testing/selftests/vm/protection_keys.c | 2370 ++++++++--
tools/testing/selftests/x86/.gitignore | 1
tools/testing/selftests/x86/Makefile | 2
tools/testing/selftests/x86/pkey-helpers.h | 219
tools/testing/selftests/x86/protection_keys.c | 1506 ------
200 files changed, 5182 insertions(+), 4033 deletions(-)
^ permalink raw reply [flat|nested] 215+ messages in thread
* incoming
@ 2020-06-03 22:55 Andrew Morton
0 siblings, 0 replies; 215+ messages in thread
From: Andrew Morton @ 2020-06-03 22:55 UTC (permalink / raw)
To: Linus Torvalds; +Cc: mm-commits, linux-mm
More mm/ work, plenty more to come.
131 patches, based on d6f9469a03d832dcd17041ed67774ffb5f3e73b3.
Subsystems affected by this patch series:
mm/slub
mm/memcg
mm/gup
mm/kasan
mm/pagealloc
mm/hugetlb
mm/vmscan
mm/tools
mm/mempolicy
mm/memblock
mm/hugetlbfs
mm/thp
mm/mmap
mm/kconfig
Subsystem: mm/slub
Wang Hai <wanghai38@huawei.com>:
mm/slub: fix a memory leak in sysfs_slab_add()
Subsystem: mm/memcg
Shakeel Butt <shakeelb@google.com>:
mm/memcg: optimize memory.numa_stat like memory.stat
Subsystem: mm/gup
John Hubbard <jhubbard@nvidia.com>:
Patch series "mm/gup, drm/i915: refactor gup_fast, convert to pin_user_pages()", v2:
mm/gup: move __get_user_pages_fast() down a few lines in gup.c
mm/gup: refactor and de-duplicate gup_fast() code
mm/gup: introduce pin_user_pages_fast_only()
drm/i915: convert get_user_pages() --> pin_user_pages()
mm/gup: might_lock_read(mmap_sem) in get_user_pages_fast()
Subsystem: mm/kasan
Daniel Axtens <dja@axtens.net>:
Patch series "Fix some incompatibilites between KASAN and FORTIFY_SOURCE", v4:
kasan: stop tests being eliminated as dead code with FORTIFY_SOURCE
string.h: fix incompatibility between FORTIFY_SOURCE and KASAN
Subsystem: mm/pagealloc
Michal Hocko <mhocko@suse.com>:
mm: clarify __GFP_MEMALLOC usage
Mike Rapoport <rppt@linux.ibm.com>:
Patch series "mm: rework free_area_init*() funcitons":
mm: memblock: replace dereferences of memblock_region.nid with API calls
mm: make early_pfn_to_nid() and related defintions close to each other
mm: remove CONFIG_HAVE_MEMBLOCK_NODE_MAP option
mm: free_area_init: use maximal zone PFNs rather than zone sizes
mm: use free_area_init() instead of free_area_init_nodes()
alpha: simplify detection of memory zone boundaries
arm: simplify detection of memory zone boundaries
arm64: simplify detection of memory zone boundaries for UMA configs
csky: simplify detection of memory zone boundaries
m68k: mm: simplify detection of memory zone boundaries
parisc: simplify detection of memory zone boundaries
sparc32: simplify detection of memory zone boundaries
unicore32: simplify detection of memory zone boundaries
xtensa: simplify detection of memory zone boundaries
Baoquan He <bhe@redhat.com>:
mm: memmap_init: iterate over memblock regions rather that check each PFN
Mike Rapoport <rppt@linux.ibm.com>:
mm: remove early_pfn_in_nid() and CONFIG_NODES_SPAN_OTHER_NODES
mm: free_area_init: allow defining max_zone_pfn in descending order
mm: rename free_area_init_node() to free_area_init_memoryless_node()
mm: clean up free_area_init_node() and its helpers
mm: simplify find_min_pfn_with_active_regions()
docs/vm: update memory-models documentation
Wei Yang <richard.weiyang@gmail.com>:
Patch series "mm/page_alloc.c: cleanup on check page", v3:
mm/page_alloc.c: bad_[reason|flags] is not necessary when PageHWPoison
mm/page_alloc.c: bad_flags is not necessary for bad_page()
mm/page_alloc.c: rename free_pages_check_bad() to check_free_page_bad()
mm/page_alloc.c: rename free_pages_check() to check_free_page()
mm/page_alloc.c: extract check_[new|free]_page_bad() common part to page_bad_reason()
Roman Gushchin <guro@fb.com>:
mm,page_alloc,cma: conditionally prefer cma pageblocks for movable allocations
Baoquan He <bhe@redhat.com>:
mm/page_alloc.c: remove unused free_bootmem_with_active_regions
Patch series "improvements about lowmem_reserve and /proc/zoneinfo", v2:
mm/page_alloc.c: only tune sysctl_lowmem_reserve_ratio value once when changing it
mm/page_alloc.c: clear out zone->lowmem_reserve[] if the zone is empty
mm/vmstat.c: do not show lowmem reserve protection information of empty zone
Joonsoo Kim <iamjoonsoo.kim@lge.com>:
Patch series "integrate classzone_idx and high_zoneidx", v5:
mm/page_alloc: use ac->high_zoneidx for classzone_idx
mm/page_alloc: integrate classzone_idx and high_zoneidx
Wei Yang <richard.weiyang@gmail.com>:
mm/page_alloc.c: use NODE_MASK_NONE in build_zonelists()
mm: rename gfpflags_to_migratetype to gfp_migratetype for same convention
Sandipan Das <sandipan@linux.ibm.com>:
mm/page_alloc.c: reset numa stats for boot pagesets
Charan Teja Reddy <charante@codeaurora.org>:
mm, page_alloc: reset the zone->watermark_boost early
Anshuman Khandual <anshuman.khandual@arm.com>:
mm/page_alloc: restrict and formalize compound_page_dtors[]
Daniel Jordan <daniel.m.jordan@oracle.com>:
Patch series "initialize deferred pages with interrupts enabled", v4:
mm/pagealloc.c: call touch_nmi_watchdog() on max order boundaries in deferred init
Pavel Tatashin <pasha.tatashin@soleen.com>:
mm: initialize deferred pages with interrupts enabled
mm: call cond_resched() from deferred_init_memmap()
Daniel Jordan <daniel.m.jordan@oracle.com>:
Patch series "padata: parallelize deferred page init", v3:
padata: remove exit routine
padata: initialize earlier
padata: allocate work structures for parallel jobs from a pool
padata: add basic support for multithreaded jobs
mm: don't track number of pages during deferred initialization
mm: parallelize deferred_init_memmap()
mm: make deferred init's max threads arch-specific
padata: document multithreaded jobs
Chen Tao <chentao107@huawei.com>:
mm/page_alloc.c: add missing newline
Subsystem: mm/hugetlb
"Kirill A. Shutemov" <kirill.shutemov@linux.intel.com>:
Patch series "thp/khugepaged improvements and CoW semantics", v4:
khugepaged: add self test
khugepaged: do not stop collapse if less than half PTEs are referenced
khugepaged: drain all LRU caches before scanning pages
khugepaged: drain LRU add pagevec after swapin
khugepaged: allow to collapse a page shared across fork
khugepaged: allow to collapse PTE-mapped compound pages
thp: change CoW semantics for anon-THP
khugepaged: introduce 'max_ptes_shared' tunable
Mike Kravetz <mike.kravetz@oracle.com>:
Patch series "Clean up hugetlb boot command line processing", v4:
hugetlbfs: add arch_hugetlb_valid_size
hugetlbfs: move hugepagesz= parsing to arch independent code
hugetlbfs: remove hugetlb_add_hstate() warning for existing hstate
hugetlbfs: clean up command line processing
hugetlbfs: fix changes to command line processing
Li Xinhai <lixinhai.lxh@gmail.com>:
mm/hugetlb: avoid unnecessary check on pud and pmd entry in huge_pte_offset
Anshuman Khandual <anshuman.khandual@arm.com>:
Patch series "mm/hugetlb: Add some new generic fallbacks", v3:
arm64/mm: drop __HAVE_ARCH_HUGE_PTEP_GET
mm/hugetlb: define a generic fallback for is_hugepage_only_range()
mm/hugetlb: define a generic fallback for arch_clear_hugepage_flags()
"Matthew Wilcox (Oracle)" <willy@infradead.org>:
mm: simplify calling a compound page destructor
Subsystem: mm/vmscan
Wei Yang <richard.weiyang@gmail.com>:
mm/vmscan.c: use update_lru_size() in update_lru_sizes()
Jaewon Kim <jaewon31.kim@samsung.com>:
mm/vmscan: count layzfree pages and fix nr_isolated_* mismatch
Maninder Singh <maninder1.s@samsung.com>:
mm/vmscan.c: change prototype for shrink_page_list
Qiwu Chen <qiwuchen55@gmail.com>:
mm/vmscan: update the comment of should_continue_reclaim()
Johannes Weiner <hannes@cmpxchg.org>:
Patch series "mm: memcontrol: charge swapin pages on instantiation", v2:
mm: fix NUMA node file count error in replace_page_cache()
mm: memcontrol: fix stat-corrupting race in charge moving
mm: memcontrol: drop @compound parameter from memcg charging API
mm: shmem: remove rare optimization when swapin races with hole punching
mm: memcontrol: move out cgroup swaprate throttling
mm: memcontrol: convert page cache to a new mem_cgroup_charge() API
mm: memcontrol: prepare uncharging for removal of private page type counters
mm: memcontrol: prepare move_account for removal of private page type counters
mm: memcontrol: prepare cgroup vmstat infrastructure for native anon counters
mm: memcontrol: switch to native NR_FILE_PAGES and NR_SHMEM counters
mm: memcontrol: switch to native NR_ANON_MAPPED counter
mm: memcontrol: switch to native NR_ANON_THPS counter
mm: memcontrol: convert anon and file-thp to new mem_cgroup_charge() API
mm: memcontrol: drop unused try/commit/cancel charge API
mm: memcontrol: prepare swap controller setup for integration
mm: memcontrol: make swap tracking an integral part of memory control
mm: memcontrol: charge swapin pages on instantiation
Alex Shi <alex.shi@linux.alibaba.com>:
mm: memcontrol: document the new swap control behavior
Johannes Weiner <hannes@cmpxchg.org>:
mm: memcontrol: delete unused lrucare handling
mm: memcontrol: update page->mem_cgroup stability rules
mm: fix LRU balancing effect of new transparent huge pages
mm: keep separate anon and file statistics on page reclaim activity
mm: allow swappiness that prefers reclaiming anon over the file workingset
mm: fold and remove lru_cache_add_anon() and lru_cache_add_file()
mm: workingset: let cache workingset challenge anon
mm: remove use-once cache bias from LRU balancing
mm: vmscan: drop unnecessary div0 avoidance rounding in get_scan_count()
mm: base LRU balancing on an explicit cost model
mm: deactivations shouldn't bias the LRU balance
mm: only count actual rotations as LRU reclaim cost
mm: balance LRU lists based on relative thrashing
mm: vmscan: determine anon/file pressure balance at the reclaim root
mm: vmscan: reclaim writepage is IO cost
mm: vmscan: limit the range of LRU type balancing
Shakeel Butt <shakeelb@google.com>:
mm: swap: fix vmstats for huge pages
mm: swap: memcg: fix memcg stats for huge pages
Subsystem: mm/tools
Changhee Han <ch0.han@lge.com>:
tools/vm/page_owner_sort.c: filter out unneeded line
Subsystem: mm/mempolicy
Michal Hocko <mhocko@suse.com>:
mm, mempolicy: fix up gup usage in lookup_node
Subsystem: mm/memblock
chenqiwu <chenqiwu@xiaomi.com>:
include/linux/memblock.h: fix minor typo and unclear comment
Mike Rapoport <rppt@linux.ibm.com>:
sparc32: register memory occupied by kernel as memblock.memory
Subsystem: mm/hugetlbfs
Shijie Hu <hushijie3@huawei.com>:
hugetlbfs: get unmapped area below TASK_UNMAPPED_BASE for hugetlbfs
Subsystem: mm/thp
Yang Shi <yang.shi@linux.alibaba.com>:
mm: thp: don't need to drain lru cache when splitting and mlocking THP
Anshuman Khandual <anshuman.khandual@arm.com>:
Patch series "mm/thp: Rename pmd_mknotpresent() as pmd_mknotvalid()", v2:
powerpc/mm: drop platform defined pmd_mknotpresent()
mm/thp: rename pmd_mknotpresent() as pmd_mkinvalid()
Subsystem: mm/mmap
Scott Cheloha <cheloha@linux.vnet.ibm.com>:
drivers/base/memory.c: cache memory blocks in xarray to accelerate lookup
Subsystem: mm/kconfig
Zong Li <zong.li@sifive.com>:
Patch series "Extract DEBUG_WX to shared use":
mm: add DEBUG_WX support
riscv: support DEBUG_WX
x86: mm: use ARCH_HAS_DEBUG_WX instead of arch defined
arm64: mm: use ARCH_HAS_DEBUG_WX instead of arch defined
Documentation/admin-guide/cgroup-v1/memory.rst | 19
Documentation/admin-guide/kernel-parameters.txt | 40
Documentation/admin-guide/mm/hugetlbpage.rst | 35
Documentation/admin-guide/mm/transhuge.rst | 7
Documentation/admin-guide/sysctl/vm.rst | 23
Documentation/core-api/padata.rst | 41
Documentation/features/vm/numa-memblock/arch-support.txt | 34
Documentation/vm/memory-model.rst | 9
Documentation/vm/page_owner.rst | 3
arch/alpha/mm/init.c | 16
arch/alpha/mm/numa.c | 22
arch/arc/include/asm/hugepage.h | 2
arch/arc/mm/init.c | 41
arch/arm/include/asm/hugetlb.h | 7
arch/arm/include/asm/pgtable-3level.h | 2
arch/arm/mm/init.c | 66
arch/arm64/Kconfig | 2
arch/arm64/Kconfig.debug | 29
arch/arm64/include/asm/hugetlb.h | 13
arch/arm64/include/asm/pgtable.h | 2
arch/arm64/mm/hugetlbpage.c | 48
arch/arm64/mm/init.c | 56
arch/arm64/mm/numa.c | 9
arch/c6x/mm/init.c | 8
arch/csky/kernel/setup.c | 26
arch/h8300/mm/init.c | 6
arch/hexagon/mm/init.c | 6
arch/ia64/Kconfig | 1
arch/ia64/include/asm/hugetlb.h | 5
arch/ia64/mm/contig.c | 2
arch/ia64/mm/discontig.c | 2
arch/m68k/mm/init.c | 6
arch/m68k/mm/mcfmmu.c | 9
arch/m68k/mm/motorola.c | 15
arch/m68k/mm/sun3mmu.c | 10
arch/microblaze/Kconfig | 1
arch/microblaze/mm/init.c | 2
arch/mips/Kconfig | 1
arch/mips/include/asm/hugetlb.h | 11
arch/mips/include/asm/pgtable.h | 2
arch/mips/loongson64/numa.c | 2
arch/mips/mm/init.c | 2
arch/mips/sgi-ip27/ip27-memory.c | 2
arch/nds32/mm/init.c | 11
arch/nios2/mm/init.c | 8
arch/openrisc/mm/init.c | 9
arch/parisc/include/asm/hugetlb.h | 10
arch/parisc/mm/init.c | 22
arch/powerpc/Kconfig | 10
arch/powerpc/include/asm/book3s/64/pgtable.h | 4
arch/powerpc/include/asm/hugetlb.h | 5
arch/powerpc/mm/hugetlbpage.c | 38
arch/powerpc/mm/mem.c | 2
arch/riscv/Kconfig | 2
arch/riscv/include/asm/hugetlb.h | 10
arch/riscv/include/asm/ptdump.h | 11
arch/riscv/mm/hugetlbpage.c | 44
arch/riscv/mm/init.c | 5
arch/s390/Kconfig | 1
arch/s390/include/asm/hugetlb.h | 8
arch/s390/mm/hugetlbpage.c | 34
arch/s390/mm/init.c | 2
arch/sh/Kconfig | 1
arch/sh/include/asm/hugetlb.h | 7
arch/sh/mm/init.c | 2
arch/sparc/Kconfig | 10
arch/sparc/include/asm/hugetlb.h | 10
arch/sparc/mm/init_32.c | 1
arch/sparc/mm/init_64.c | 67
arch/sparc/mm/srmmu.c | 21
arch/um/kernel/mem.c | 12
arch/unicore32/include/asm/memory.h | 2
arch/unicore32/include/mach/memory.h | 6
arch/unicore32/kernel/pci.c | 14
arch/unicore32/mm/init.c | 43
arch/x86/Kconfig | 11
arch/x86/Kconfig.debug | 27
arch/x86/include/asm/hugetlb.h | 10
arch/x86/include/asm/pgtable.h | 2
arch/x86/mm/hugetlbpage.c | 35
arch/x86/mm/init.c | 2
arch/x86/mm/init_64.c | 12
arch/x86/mm/kmmio.c | 2
arch/x86/mm/numa.c | 11
arch/xtensa/mm/init.c | 8
drivers/base/memory.c | 44
drivers/gpu/drm/i915/gem/i915_gem_userptr.c | 22
fs/cifs/file.c | 10
fs/fuse/dev.c | 2
fs/hugetlbfs/inode.c | 67
include/asm-generic/hugetlb.h | 2
include/linux/compaction.h | 9
include/linux/gfp.h | 7
include/linux/hugetlb.h | 16
include/linux/memblock.h | 15
include/linux/memcontrol.h | 102 -
include/linux/mm.h | 52
include/linux/mmzone.h | 46
include/linux/padata.h | 43
include/linux/string.h | 60
include/linux/swap.h | 17
include/linux/vm_event_item.h | 4
include/linux/vmstat.h | 2
include/trace/events/compaction.h | 22
include/trace/events/huge_memory.h | 3
include/trace/events/vmscan.h | 14
init/Kconfig | 17
init/main.c | 2
kernel/events/uprobes.c | 22
kernel/padata.c | 293 +++-
kernel/sysctl.c | 3
lib/test_kasan.c | 29
mm/Kconfig | 9
mm/Kconfig.debug | 32
mm/compaction.c | 70 -
mm/filemap.c | 55
mm/gup.c | 237 ++-
mm/huge_memory.c | 282 ----
mm/hugetlb.c | 260 ++-
mm/internal.h | 25
mm/khugepaged.c | 316 ++--
mm/memblock.c | 19
mm/memcontrol.c | 642 +++------
mm/memory.c | 103 -
mm/memory_hotplug.c | 10
mm/mempolicy.c | 5
mm/migrate.c | 30
mm/oom_kill.c | 4
mm/page_alloc.c | 735 ++++------
mm/page_owner.c | 7
mm/pgtable-generic.c | 2
mm/rmap.c | 53
mm/shmem.c | 156 --
mm/slab.c | 4
mm/slub.c | 8
mm/swap.c | 199 +-
mm/swap_cgroup.c | 10
mm/swap_state.c | 110 -
mm/swapfile.c | 39
mm/userfaultfd.c | 15
mm/vmscan.c | 344 ++--
mm/vmstat.c | 16
mm/workingset.c | 23
tools/testing/selftests/vm/.gitignore | 1
tools/testing/selftests/vm/Makefile | 1
tools/testing/selftests/vm/khugepaged.c | 1035 +++++++++++++++
tools/vm/page_owner_sort.c | 5
147 files changed, 3876 insertions(+), 3108 deletions(-)
^ permalink raw reply [flat|nested] 215+ messages in thread
* Re: incoming
[not found] ` <CAHk-=wgRV=SaiMn3L5u5mG0WfvB2VfEQadtudzDV3KRz5HnFrQ@mail.gmail.com>
@ 2020-06-02 21:38 ` Andrew Morton
0 siblings, 0 replies; 215+ messages in thread
From: Andrew Morton @ 2020-06-02 21:38 UTC (permalink / raw)
To: Linus Torvalds; +Cc: mm-commits, Linux-MM
On Tue, 2 Jun 2020 13:45:49 -0700 Linus Torvalds <torvalds@linux-foundation.org> wrote:
> On Tue, Jun 2, 2020 at 1:08 PM Andrew Morton <akpm@linux-foundation.org> wrote:
> >
> > The local_lock merge made rather a mess of all of this. I'm
> > cooking up a full resend of the same material.
>
> Hmm. I have no issues with conflicts, and already took your previous series.
Well that's odd.
> I've pushed it out now - does my tree match what you expect?
Yup, thanks.
^ permalink raw reply [flat|nested] 215+ messages in thread
* incoming
@ 2020-06-02 20:09 Andrew Morton
0 siblings, 0 replies; 215+ messages in thread
From: Andrew Morton @ 2020-06-02 20:09 UTC (permalink / raw)
To: Linus Torvalds; +Cc: mm-commits, linux-mm
A few little subsystems and a start of a lot of MM patches.
128 patches, based on f359287765c04711ff54fbd11645271d8e5ff763:
Subsystems affected by this patch series:
squashfs
ocfs2
parisc
vfs
mm/slab-generic
mm/slub
mm/debug
mm/pagecache
mm/gup
mm/swap
mm/memcg
mm/pagemap
mm/memory-failure
mm/vmalloc
mm/kasan
Subsystem: squashfs
Philippe Liard <pliard@google.com>:
squashfs: migrate from ll_rw_block usage to BIO
Subsystem: ocfs2
Jules Irenge <jbi.octave@gmail.com>:
ocfs2: add missing annotation for dlm_empty_lockres()
Gang He <ghe@suse.com>:
ocfs2: mount shared volume without ha stack
Subsystem: parisc
Andrew Morton <akpm@linux-foundation.org>:
arch/parisc/include/asm/pgtable.h: remove unused `old_pte'
Subsystem: vfs
Jeff Layton <jlayton@redhat.com>:
Patch series "vfs: have syncfs() return error when there are writeback:
vfs: track per-sb writeback errors and report them to syncfs
fs/buffer.c: record blockdev write errors in super_block that it backs
Subsystem: mm/slab-generic
Vlastimil Babka <vbabka@suse.cz>:
usercopy: mark dma-kmalloc caches as usercopy caches
Subsystem: mm/slub
Dongli Zhang <dongli.zhang@oracle.com>:
mm/slub.c: fix corrupted freechain in deactivate_slab()
Christoph Lameter <cl@linux.com>:
slub: Remove userspace notifier for cache add/remove
Christopher Lameter <cl@linux.com>:
slub: remove kmalloc under list_lock from list_slab_objects() V2
Qian Cai <cai@lca.pw>:
mm/slub: fix stack overruns with SLUB_STATS
Andrew Morton <akpm@linux-foundation.org>:
Documentation/vm/slub.rst: s/Toggle/Enable/
Subsystem: mm/debug
Vlastimil Babka <vbabka@suse.cz>:
mm, dump_page(): do not crash with invalid mapping pointer
Subsystem: mm/pagecache
"Matthew Wilcox (Oracle)" <willy@infradead.org>:
Patch series "Change readahead API", v11:
mm: move readahead prototypes from mm.h
mm: return void from various readahead functions
mm: ignore return value of ->readpages
mm: move readahead nr_pages check into read_pages
mm: add new readahead_control API
mm: use readahead_control to pass arguments
mm: rename various 'offset' parameters to 'index'
mm: rename readahead loop variable to 'i'
mm: remove 'page_offset' from readahead loop
mm: put readahead pages in cache earlier
mm: add readahead address space operation
mm: move end_index check out of readahead loop
mm: add page_cache_readahead_unbounded
mm: document why we don't set PageReadahead
mm: use memalloc_nofs_save in readahead path
fs: convert mpage_readpages to mpage_readahead
btrfs: convert from readpages to readahead
erofs: convert uncompressed files from readpages to readahead
erofs: convert compressed files from readpages to readahead
ext4: convert from readpages to readahead
ext4: pass the inode to ext4_mpage_readpages
f2fs: convert from readpages to readahead
f2fs: pass the inode to f2fs_mpage_readpages
fuse: convert from readpages to readahead
iomap: convert from readpages to readahead
Guoqing Jiang <guoqing.jiang@cloud.ionos.com>:
Patch series "Introduce attach/detach_page_private to cleanup code":
include/linux/pagemap.h: introduce attach/detach_page_private
md: remove __clear_page_buffers and use attach/detach_page_private
btrfs: use attach/detach_page_private
fs/buffer.c: use attach/detach_page_private
f2fs: use attach/detach_page_private
iomap: use attach/detach_page_private
ntfs: replace attach_page_buffers with attach_page_private
orangefs: use attach/detach_page_private
buffer_head.h: remove attach_page_buffers
mm/migrate.c: call detach_page_private to cleanup code
mm_types.h: change set_page_private to inline function
"Matthew Wilcox (Oracle)" <willy@infradead.org>:
mm/filemap.c: remove misleading comment
Chao Yu <yuchao0@huawei.com>:
mm/page-writeback.c: remove unused variable
NeilBrown <neilb@suse.de>:
mm/writeback: replace PF_LESS_THROTTLE with PF_LOCAL_THROTTLE
mm/writeback: discard NR_UNSTABLE_NFS, use NR_WRITEBACK instead
Subsystem: mm/gup
Souptick Joarder <jrdr.linux@gmail.com>:
mm/gup.c: update the documentation
John Hubbard <jhubbard@nvidia.com>:
mm/gup: introduce pin_user_pages_unlocked
ivtv: convert get_user_pages() --> pin_user_pages()
Miles Chen <miles.chen@mediatek.com>:
mm/gup.c: further document vma_permits_fault()
Subsystem: mm/swap
chenqiwu <chenqiwu@xiaomi.com>:
mm/swapfile: use list_{prev,next}_entry() instead of open-coding
Qian Cai <cai@lca.pw>:
mm/swap_state: fix a data race in swapin_nr_pages
Andrea Righi <andrea.righi@canonical.com>:
mm: swap: properly update readahead statistics in unuse_pte_range()
Wei Yang <richard.weiyang@gmail.com>:
mm/swapfile.c: offset is only used when there is more slots
mm/swapfile.c: explicitly show ssd/non-ssd is handled mutually exclusive
mm/swapfile.c: remove the unnecessary goto for SSD case
mm/swapfile.c: simplify the calculation of n_goal
mm/swapfile.c: remove the extra check in scan_swap_map_slots()
mm/swapfile.c: found_free could be represented by (tmp < max)
mm/swapfile.c: tmp is always smaller than max
mm/swapfile.c: omit a duplicate code by compare tmp and max first
Huang Ying <ying.huang@intel.com>:
swap: try to scan more free slots even when fragmented
Wei Yang <richard.weiyang@gmail.com>:
mm/swapfile.c: classify SWAP_MAP_XXX to make it more readable
mm/swapfile.c: __swap_entry_free() always free 1 entry
Huang Ying <ying.huang@intel.com>:
mm/swapfile.c: use prandom_u32_max()
swap: reduce lock contention on swap cache from swap slots allocation
Randy Dunlap <rdunlap@infradead.org>:
mm: swapfile: fix /proc/swaps heading and Size/Used/Priority alignment
Miaohe Lin <linmiaohe@huawei.com>:
include/linux/swap.h: delete meaningless __add_to_swap_cache() declaration
Subsystem: mm/memcg
Yafang Shao <laoar.shao@gmail.com>:
mm, memcg: add workingset_restore in memory.stat
Kaixu Xia <kaixuxia@tencent.com>:
mm: memcontrol: simplify value comparison between count and limit
Shakeel Butt <shakeelb@google.com>:
memcg: expose root cgroup's memory.stat
Jakub Kicinski <kuba@kernel.org>:
Patch series "memcg: Slow down swap allocation as the available space gets:
mm/memcg: prepare for swap over-high accounting and penalty calculation
mm/memcg: move penalty delay clamping out of calculate_high_delay()
mm/memcg: move cgroup high memory limit setting into struct page_counter
mm/memcg: automatically penalize tasks with high swap use
Zefan Li <lizefan@huawei.com>:
memcg: fix memcg_kmem_bypass() for remote memcg charging
Subsystem: mm/pagemap
Steven Price <steven.price@arm.com>:
Patch series "Fix W+X debug feature on x86":
x86: mm: ptdump: calculate effective permissions correctly
mm: ptdump: expand type of 'val' in note_page()
Huang Ying <ying.huang@intel.com>:
/proc/PID/smaps: Add PMD migration entry parsing
chenqiwu <chenqiwu@xiaomi.com>:
mm/memory: remove unnecessary pte_devmap case in copy_one_pte()
Subsystem: mm/memory-failure
Wetp Zhang <wetp.zy@linux.alibaba.com>:
mm, memory_failure: don't send BUS_MCEERR_AO for action required error
Subsystem: mm/vmalloc
Christoph Hellwig <hch@lst.de>:
Patch series "decruft the vmalloc API", v2:
x86/hyperv: use vmalloc_exec for the hypercall page
x86: fix vmap arguments in map_irq_stack
staging: android: ion: use vmap instead of vm_map_ram
staging: media: ipu3: use vmap instead of reimplementing it
dma-mapping: use vmap insted of reimplementing it
powerpc: add an ioremap_phb helper
powerpc: remove __ioremap_at and __iounmap_at
mm: remove __get_vm_area
mm: unexport unmap_kernel_range_noflush
mm: rename CONFIG_PGTABLE_MAPPING to CONFIG_ZSMALLOC_PGTABLE_MAPPING
mm: only allow page table mappings for built-in zsmalloc
mm: pass addr as unsigned long to vb_free
mm: remove vmap_page_range_noflush and vunmap_page_range
mm: rename vmap_page_range to map_kernel_range
mm: don't return the number of pages from map_kernel_range{,_noflush}
mm: remove map_vm_range
mm: remove unmap_vmap_area
mm: remove the prot argument from vm_map_ram
mm: enforce that vmap can't map pages executable
gpu/drm: remove the powerpc hack in drm_legacy_sg_alloc
mm: remove the pgprot argument to __vmalloc
mm: remove the prot argument to __vmalloc_node
mm: remove both instances of __vmalloc_node_flags
mm: remove __vmalloc_node_flags_caller
mm: switch the test_vmalloc module to use __vmalloc_node
mm: remove vmalloc_user_node_flags
arm64: use __vmalloc_node in arch_alloc_vmap_stack
powerpc: use __vmalloc_node in alloc_vm_stack
s390: use __vmalloc_node in stack_alloc
Joerg Roedel <jroedel@suse.de>:
Patch series "mm: Get rid of vmalloc_sync_(un)mappings()", v3:
mm: add functions to track page directory modifications
mm/vmalloc: track which page-table levels were modified
mm/ioremap: track which page-table levels were modified
x86/mm/64: implement arch_sync_kernel_mappings()
x86/mm/32: implement arch_sync_kernel_mappings()
mm: remove vmalloc_sync_(un)mappings()
x86/mm: remove vmalloc faulting
Subsystem: mm/kasan
Andrey Konovalov <andreyknvl@google.com>:
kasan: fix clang compilation warning due to stack protector
Kees Cook <keescook@chromium.org>:
ubsan: entirely disable alignment checks under UBSAN_TRAP
Jing Xia <jing.xia@unisoc.com>:
mm/mm_init.c: report kasan-tag information stored in page->flags
Andrey Konovalov <andreyknvl@google.com>:
kasan: move kasan_report() into report.c
Documentation/admin-guide/cgroup-v2.rst | 24 +
Documentation/core-api/cachetlb.rst | 2
Documentation/filesystems/locking.rst | 6
Documentation/filesystems/proc.rst | 4
Documentation/filesystems/vfs.rst | 15
Documentation/vm/slub.rst | 2
arch/arm/configs/omap2plus_defconfig | 2
arch/arm64/include/asm/pgtable.h | 3
arch/arm64/include/asm/vmap_stack.h | 6
arch/arm64/mm/dump.c | 2
arch/parisc/include/asm/pgtable.h | 2
arch/powerpc/include/asm/io.h | 10
arch/powerpc/include/asm/pci-bridge.h | 2
arch/powerpc/kernel/irq.c | 5
arch/powerpc/kernel/isa-bridge.c | 28 +
arch/powerpc/kernel/pci_64.c | 56 +-
arch/powerpc/mm/ioremap_64.c | 50 --
arch/riscv/include/asm/pgtable.h | 4
arch/riscv/mm/ptdump.c | 2
arch/s390/kernel/setup.c | 9
arch/sh/kernel/cpu/sh4/sq.c | 3
arch/x86/hyperv/hv_init.c | 5
arch/x86/include/asm/kvm_host.h | 3
arch/x86/include/asm/pgtable-2level_types.h | 2
arch/x86/include/asm/pgtable-3level_types.h | 2
arch/x86/include/asm/pgtable_64_types.h | 2
arch/x86/include/asm/pgtable_types.h | 8
arch/x86/include/asm/switch_to.h | 23 -
arch/x86/kernel/irq_64.c | 2
arch/x86/kernel/setup_percpu.c | 6
arch/x86/kvm/svm/sev.c | 3
arch/x86/mm/dump_pagetables.c | 35 +
arch/x86/mm/fault.c | 196 ----------
arch/x86/mm/init_64.c | 5
arch/x86/mm/pti.c | 8
arch/x86/mm/tlb.c | 37 -
block/blk-core.c | 1
drivers/acpi/apei/ghes.c | 6
drivers/base/node.c | 2
drivers/block/drbd/drbd_bitmap.c | 4
drivers/block/loop.c | 2
drivers/dax/device.c | 1
drivers/gpu/drm/drm_scatter.c | 11
drivers/gpu/drm/etnaviv/etnaviv_dump.c | 4
drivers/gpu/drm/i915/gem/selftests/mock_dmabuf.c | 2
drivers/lightnvm/pblk-init.c | 5
drivers/md/dm-bufio.c | 4
drivers/md/md-bitmap.c | 12
drivers/media/common/videobuf2/videobuf2-dma-sg.c | 3
drivers/media/common/videobuf2/videobuf2-vmalloc.c | 3
drivers/media/pci/ivtv/ivtv-udma.c | 19 -
drivers/media/pci/ivtv/ivtv-yuv.c | 17
drivers/media/pci/ivtv/ivtvfb.c | 4
drivers/mtd/ubi/io.c | 4
drivers/pcmcia/electra_cf.c | 45 --
drivers/scsi/sd_zbc.c | 3
drivers/staging/android/ion/ion_heap.c | 4
drivers/staging/media/ipu3/ipu3-css-pool.h | 4
drivers/staging/media/ipu3/ipu3-dmamap.c | 30 -
fs/block_dev.c | 7
fs/btrfs/disk-io.c | 4
fs/btrfs/extent_io.c | 64 ---
fs/btrfs/extent_io.h | 3
fs/btrfs/inode.c | 39 --
fs/buffer.c | 23 -
fs/erofs/data.c | 41 --
fs/erofs/decompressor.c | 2
fs/erofs/zdata.c | 31 -
fs/exfat/inode.c | 7
fs/ext2/inode.c | 10
fs/ext4/ext4.h | 5
fs/ext4/inode.c | 25 -
fs/ext4/readpage.c | 25 -
fs/ext4/verity.c | 35 -
fs/f2fs/data.c | 56 +-
fs/f2fs/f2fs.h | 14
fs/f2fs/verity.c | 35 -
fs/fat/inode.c | 7
fs/file_table.c | 1
fs/fs-writeback.c | 1
fs/fuse/file.c | 100 +----
fs/gfs2/aops.c | 23 -
fs/gfs2/dir.c | 9
fs/gfs2/quota.c | 2
fs/hpfs/file.c | 7
fs/iomap/buffered-io.c | 113 +----
fs/iomap/trace.h | 2
fs/isofs/inode.c | 7
fs/jfs/inode.c | 7
fs/mpage.c | 38 --
fs/nfs/blocklayout/extent_tree.c | 2
fs/nfs/internal.h | 10
fs/nfs/write.c | 4
fs/nfsd/vfs.c | 9
fs/nilfs2/inode.c | 15
fs/ntfs/aops.c | 2
fs/ntfs/malloc.h | 2
fs/ntfs/mft.c | 2
fs/ocfs2/aops.c | 34 -
fs/ocfs2/dlm/dlmmaster.c | 1
fs/ocfs2/ocfs2.h | 4
fs/ocfs2/slot_map.c | 46 +-
fs/ocfs2/super.c | 21 +
fs/omfs/file.c | 7
fs/open.c | 3
fs/orangefs/inode.c | 32 -
fs/proc/meminfo.c | 3
fs/proc/task_mmu.c | 16
fs/qnx6/inode.c | 7
fs/reiserfs/inode.c | 8
fs/squashfs/block.c | 273 +++++++-------
fs/squashfs/decompressor.h | 5
fs/squashfs/decompressor_multi.c | 9
fs/squashfs/decompressor_multi_percpu.c | 17
fs/squashfs/decompressor_single.c | 9
fs/squashfs/lz4_wrapper.c | 17
fs/squashfs/lzo_wrapper.c | 17
fs/squashfs/squashfs.h | 4
fs/squashfs/xz_wrapper.c | 51 +-
fs/squashfs/zlib_wrapper.c | 63 +--
fs/squashfs/zstd_wrapper.c | 62 +--
fs/sync.c | 6
fs/ubifs/debug.c | 2
fs/ubifs/lprops.c | 2
fs/ubifs/lpt_commit.c | 4
fs/ubifs/orphan.c | 2
fs/udf/inode.c | 7
fs/xfs/kmem.c | 2
fs/xfs/xfs_aops.c | 13
fs/xfs/xfs_buf.c | 2
fs/zonefs/super.c | 7
include/asm-generic/5level-fixup.h | 5
include/asm-generic/pgtable.h | 27 +
include/linux/buffer_head.h | 8
include/linux/fs.h | 18
include/linux/iomap.h | 3
include/linux/memcontrol.h | 4
include/linux/mm.h | 67 ++-
include/linux/mm_types.h | 6
include/linux/mmzone.h | 1
include/linux/mpage.h | 4
include/linux/page_counter.h | 8
include/linux/pagemap.h | 193 ++++++++++
include/linux/ptdump.h | 3
include/linux/sched.h | 3
include/linux/swap.h | 17
include/linux/vmalloc.h | 49 +-
include/linux/zsmalloc.h | 2
include/trace/events/erofs.h | 6
include/trace/events/f2fs.h | 6
include/trace/events/writeback.h | 5
kernel/bpf/core.c | 6
kernel/bpf/syscall.c | 29 -
kernel/dma/remap.c | 48 --
kernel/groups.c | 2
kernel/module.c | 3
kernel/notifier.c | 1
kernel/sys.c | 2
kernel/trace/trace.c | 12
lib/Kconfig.ubsan | 2
lib/ioremap.c | 46 +-
lib/test_vmalloc.c | 26 -
mm/Kconfig | 4
mm/debug.c | 56 ++
mm/fadvise.c | 6
mm/filemap.c | 1
mm/gup.c | 77 +++-
mm/internal.h | 14
mm/kasan/Makefile | 21 -
mm/kasan/common.c | 19 -
mm/kasan/report.c | 22 +
mm/memcontrol.c | 198 +++++++---
mm/memory-failure.c | 15
mm/memory.c | 2
mm/migrate.c | 9
mm/mm_init.c | 16
mm/nommu.c | 52 +-
mm/page-writeback.c | 62 ++-
mm/page_alloc.c | 7
mm/percpu.c | 2
mm/ptdump.c | 17
mm/readahead.c | 349 ++++++++++--------
mm/slab_common.c | 3
mm/slub.c | 67 ++-
mm/swap_state.c | 5
mm/swapfile.c | 194 ++++++----
mm/util.c | 2
mm/vmalloc.c | 399 ++++++++-------------
mm/vmscan.c | 4
mm/vmstat.c | 11
mm/zsmalloc.c | 12
net/bridge/netfilter/ebtables.c | 6
net/ceph/ceph_common.c | 3
sound/core/memalloc.c | 2
sound/core/pcm_memory.c | 2
195 files changed, 2292 insertions(+), 2288 deletions(-)
^ permalink raw reply [flat|nested] 215+ messages in thread
* Re: incoming
2020-06-02 4:44 incoming Andrew Morton
@ 2020-06-02 20:08 ` Andrew Morton
[not found] ` <CAHk-=wgRV=SaiMn3L5u5mG0WfvB2VfEQadtudzDV3KRz5HnFrQ@mail.gmail.com>
0 siblings, 1 reply; 215+ messages in thread
From: Andrew Morton @ 2020-06-02 20:08 UTC (permalink / raw)
To: Linus Torvalds, mm-commits, linux-mm
The local_lock merge made rather a mess of all of this. I'm
cooking up a full resend of the same material.
^ permalink raw reply [flat|nested] 215+ messages in thread
* incoming
@ 2020-06-02 4:44 Andrew Morton
2020-06-02 20:08 ` incoming Andrew Morton
0 siblings, 1 reply; 215+ messages in thread
From: Andrew Morton @ 2020-06-02 4:44 UTC (permalink / raw)
To: Linus Torvalds; +Cc: mm-commits, linux-mm
A few little subsystems and a start of a lot of MM patches.
128 patches, based on 9bf9511e3d9f328c03f6f79bfb741c3d18f2f2c0:
Subsystems affected by this patch series:
squashfs
ocfs2
parisc
vfs
mm/slab-generic
mm/slub
mm/debug
mm/pagecache
mm/gup
mm/swap
mm/memcg
mm/pagemap
mm/memory-failure
mm/vmalloc
mm/kasan
Subsystem: squashfs
Philippe Liard <pliard@google.com>:
squashfs: migrate from ll_rw_block usage to BIO
Subsystem: ocfs2
Jules Irenge <jbi.octave@gmail.com>:
ocfs2: add missing annotation for dlm_empty_lockres()
Gang He <ghe@suse.com>:
ocfs2: mount shared volume without ha stack
Subsystem: parisc
Andrew Morton <akpm@linux-foundation.org>:
arch/parisc/include/asm/pgtable.h: remove unused `old_pte'
Subsystem: vfs
Jeff Layton <jlayton@redhat.com>:
Patch series "vfs: have syncfs() return error when there are writeback:
vfs: track per-sb writeback errors and report them to syncfs
fs/buffer.c: record blockdev write errors in super_block that it backs
Subsystem: mm/slab-generic
Vlastimil Babka <vbabka@suse.cz>:
usercopy: mark dma-kmalloc caches as usercopy caches
Subsystem: mm/slub
Dongli Zhang <dongli.zhang@oracle.com>:
mm/slub.c: fix corrupted freechain in deactivate_slab()
Christoph Lameter <cl@linux.com>:
slub: Remove userspace notifier for cache add/remove
Christopher Lameter <cl@linux.com>:
slub: remove kmalloc under list_lock from list_slab_objects() V2
Qian Cai <cai@lca.pw>:
mm/slub: fix stack overruns with SLUB_STATS
Andrew Morton <akpm@linux-foundation.org>:
Documentation/vm/slub.rst: s/Toggle/Enable/
Subsystem: mm/debug
Vlastimil Babka <vbabka@suse.cz>:
mm, dump_page(): do not crash with invalid mapping pointer
Subsystem: mm/pagecache
"Matthew Wilcox (Oracle)" <willy@infradead.org>:
Patch series "Change readahead API", v11:
mm: move readahead prototypes from mm.h
mm: return void from various readahead functions
mm: ignore return value of ->readpages
mm: move readahead nr_pages check into read_pages
mm: add new readahead_control API
mm: use readahead_control to pass arguments
mm: rename various 'offset' parameters to 'index'
mm: rename readahead loop variable to 'i'
mm: remove 'page_offset' from readahead loop
mm: put readahead pages in cache earlier
mm: add readahead address space operation
mm: move end_index check out of readahead loop
mm: add page_cache_readahead_unbounded
mm: document why we don't set PageReadahead
mm: use memalloc_nofs_save in readahead path
fs: convert mpage_readpages to mpage_readahead
btrfs: convert from readpages to readahead
erofs: convert uncompressed files from readpages to readahead
erofs: convert compressed files from readpages to readahead
ext4: convert from readpages to readahead
ext4: pass the inode to ext4_mpage_readpages
f2fs: convert from readpages to readahead
f2fs: pass the inode to f2fs_mpage_readpages
fuse: convert from readpages to readahead
iomap: convert from readpages to readahead
Guoqing Jiang <guoqing.jiang@cloud.ionos.com>:
Patch series "Introduce attach/detach_page_private to cleanup code":
include/linux/pagemap.h: introduce attach/detach_page_private
md: remove __clear_page_buffers and use attach/detach_page_private
btrfs: use attach/detach_page_private
fs/buffer.c: use attach/detach_page_private
f2fs: use attach/detach_page_private
iomap: use attach/detach_page_private
ntfs: replace attach_page_buffers with attach_page_private
orangefs: use attach/detach_page_private
buffer_head.h: remove attach_page_buffers
mm/migrate.c: call detach_page_private to cleanup code
mm_types.h: change set_page_private to inline function
"Matthew Wilcox (Oracle)" <willy@infradead.org>:
mm/filemap.c: remove misleading comment
Chao Yu <yuchao0@huawei.com>:
mm/page-writeback.c: remove unused variable
NeilBrown <neilb@suse.de>:
mm/writeback: replace PF_LESS_THROTTLE with PF_LOCAL_THROTTLE
mm/writeback: discard NR_UNSTABLE_NFS, use NR_WRITEBACK instead
Subsystem: mm/gup
Souptick Joarder <jrdr.linux@gmail.com>:
mm/gup.c: update the documentation
John Hubbard <jhubbard@nvidia.com>:
mm/gup: introduce pin_user_pages_unlocked
ivtv: convert get_user_pages() --> pin_user_pages()
Miles Chen <miles.chen@mediatek.com>:
mm/gup.c: further document vma_permits_fault()
Subsystem: mm/swap
chenqiwu <chenqiwu@xiaomi.com>:
mm/swapfile: use list_{prev,next}_entry() instead of open-coding
Qian Cai <cai@lca.pw>:
mm/swap_state: fix a data race in swapin_nr_pages
Andrea Righi <andrea.righi@canonical.com>:
mm: swap: properly update readahead statistics in unuse_pte_range()
Wei Yang <richard.weiyang@gmail.com>:
mm/swapfile.c: offset is only used when there is more slots
mm/swapfile.c: explicitly show ssd/non-ssd is handled mutually exclusive
mm/swapfile.c: remove the unnecessary goto for SSD case
mm/swapfile.c: simplify the calculation of n_goal
mm/swapfile.c: remove the extra check in scan_swap_map_slots()
mm/swapfile.c: found_free could be represented by (tmp < max)
mm/swapfile.c: tmp is always smaller than max
mm/swapfile.c: omit a duplicate code by compare tmp and max first
Huang Ying <ying.huang@intel.com>:
swap: try to scan more free slots even when fragmented
Wei Yang <richard.weiyang@gmail.com>:
mm/swapfile.c: classify SWAP_MAP_XXX to make it more readable
mm/swapfile.c: __swap_entry_free() always free 1 entry
Huang Ying <ying.huang@intel.com>:
mm/swapfile.c: use prandom_u32_max()
swap: reduce lock contention on swap cache from swap slots allocation
Randy Dunlap <rdunlap@infradead.org>:
mm: swapfile: fix /proc/swaps heading and Size/Used/Priority alignment
Miaohe Lin <linmiaohe@huawei.com>:
include/linux/swap.h: delete meaningless __add_to_swap_cache() declaration
Subsystem: mm/memcg
Yafang Shao <laoar.shao@gmail.com>:
mm, memcg: add workingset_restore in memory.stat
Kaixu Xia <kaixuxia@tencent.com>:
mm: memcontrol: simplify value comparison between count and limit
Shakeel Butt <shakeelb@google.com>:
memcg: expose root cgroup's memory.stat
Jakub Kicinski <kuba@kernel.org>:
Patch series "memcg: Slow down swap allocation as the available space gets:
mm/memcg: prepare for swap over-high accounting and penalty calculation
mm/memcg: move penalty delay clamping out of calculate_high_delay()
mm/memcg: move cgroup high memory limit setting into struct page_counter
mm/memcg: automatically penalize tasks with high swap use
Zefan Li <lizefan@huawei.com>:
memcg: fix memcg_kmem_bypass() for remote memcg charging
Subsystem: mm/pagemap
Steven Price <steven.price@arm.com>:
Patch series "Fix W+X debug feature on x86":
x86: mm: ptdump: calculate effective permissions correctly
mm: ptdump: expand type of 'val' in note_page()
Huang Ying <ying.huang@intel.com>:
/proc/PID/smaps: Add PMD migration entry parsing
chenqiwu <chenqiwu@xiaomi.com>:
mm/memory: remove unnecessary pte_devmap case in copy_one_pte()
Subsystem: mm/memory-failure
Wetp Zhang <wetp.zy@linux.alibaba.com>:
mm, memory_failure: don't send BUS_MCEERR_AO for action required error
Subsystem: mm/vmalloc
Christoph Hellwig <hch@lst.de>:
Patch series "decruft the vmalloc API", v2:
x86/hyperv: use vmalloc_exec for the hypercall page
x86: fix vmap arguments in map_irq_stack
staging: android: ion: use vmap instead of vm_map_ram
staging: media: ipu3: use vmap instead of reimplementing it
dma-mapping: use vmap insted of reimplementing it
powerpc: add an ioremap_phb helper
powerpc: remove __ioremap_at and __iounmap_at
mm: remove __get_vm_area
mm: unexport unmap_kernel_range_noflush
mm: rename CONFIG_PGTABLE_MAPPING to CONFIG_ZSMALLOC_PGTABLE_MAPPING
mm: only allow page table mappings for built-in zsmalloc
mm: pass addr as unsigned long to vb_free
mm: remove vmap_page_range_noflush and vunmap_page_range
mm: rename vmap_page_range to map_kernel_range
mm: don't return the number of pages from map_kernel_range{,_noflush}
mm: remove map_vm_range
mm: remove unmap_vmap_area
mm: remove the prot argument from vm_map_ram
mm: enforce that vmap can't map pages executable
gpu/drm: remove the powerpc hack in drm_legacy_sg_alloc
mm: remove the pgprot argument to __vmalloc
mm: remove the prot argument to __vmalloc_node
mm: remove both instances of __vmalloc_node_flags
mm: remove __vmalloc_node_flags_caller
mm: switch the test_vmalloc module to use __vmalloc_node
mm: remove vmalloc_user_node_flags
arm64: use __vmalloc_node in arch_alloc_vmap_stack
powerpc: use __vmalloc_node in alloc_vm_stack
s390: use __vmalloc_node in stack_alloc
Joerg Roedel <jroedel@suse.de>:
Patch series "mm: Get rid of vmalloc_sync_(un)mappings()", v3:
mm: add functions to track page directory modifications
mm/vmalloc: track which page-table levels were modified
mm/ioremap: track which page-table levels were modified
x86/mm/64: implement arch_sync_kernel_mappings()
x86/mm/32: implement arch_sync_kernel_mappings()
mm: remove vmalloc_sync_(un)mappings()
x86/mm: remove vmalloc faulting
Subsystem: mm/kasan
Andrey Konovalov <andreyknvl@google.com>:
kasan: fix clang compilation warning due to stack protector
Kees Cook <keescook@chromium.org>:
ubsan: entirely disable alignment checks under UBSAN_TRAP
Jing Xia <jing.xia@unisoc.com>:
mm/mm_init.c: report kasan-tag information stored in page->flags
Andrey Konovalov <andreyknvl@google.com>:
kasan: move kasan_report() into report.c
Documentation/admin-guide/cgroup-v2.rst | 24 +
Documentation/core-api/cachetlb.rst | 2
Documentation/filesystems/locking.rst | 6
Documentation/filesystems/proc.rst | 4
Documentation/filesystems/vfs.rst | 15
Documentation/vm/slub.rst | 2
arch/arm/configs/omap2plus_defconfig | 2
arch/arm64/include/asm/pgtable.h | 3
arch/arm64/include/asm/vmap_stack.h | 6
arch/arm64/mm/dump.c | 2
arch/parisc/include/asm/pgtable.h | 2
arch/powerpc/include/asm/io.h | 10
arch/powerpc/include/asm/pci-bridge.h | 2
arch/powerpc/kernel/irq.c | 5
arch/powerpc/kernel/isa-bridge.c | 28 +
arch/powerpc/kernel/pci_64.c | 56 +-
arch/powerpc/mm/ioremap_64.c | 50 --
arch/riscv/include/asm/pgtable.h | 4
arch/riscv/mm/ptdump.c | 2
arch/s390/kernel/setup.c | 9
arch/sh/kernel/cpu/sh4/sq.c | 3
arch/x86/hyperv/hv_init.c | 5
arch/x86/include/asm/kvm_host.h | 3
arch/x86/include/asm/pgtable-2level_types.h | 2
arch/x86/include/asm/pgtable-3level_types.h | 2
arch/x86/include/asm/pgtable_64_types.h | 2
arch/x86/include/asm/pgtable_types.h | 8
arch/x86/include/asm/switch_to.h | 23 -
arch/x86/kernel/irq_64.c | 2
arch/x86/kernel/setup_percpu.c | 6
arch/x86/kvm/svm/sev.c | 3
arch/x86/mm/dump_pagetables.c | 35 +
arch/x86/mm/fault.c | 196 ----------
arch/x86/mm/init_64.c | 5
arch/x86/mm/pti.c | 8
arch/x86/mm/tlb.c | 37 -
block/blk-core.c | 1
drivers/acpi/apei/ghes.c | 6
drivers/base/node.c | 2
drivers/block/drbd/drbd_bitmap.c | 4
drivers/block/loop.c | 2
drivers/dax/device.c | 1
drivers/gpu/drm/drm_scatter.c | 11
drivers/gpu/drm/etnaviv/etnaviv_dump.c | 4
drivers/gpu/drm/i915/gem/selftests/mock_dmabuf.c | 2
drivers/lightnvm/pblk-init.c | 5
drivers/md/dm-bufio.c | 4
drivers/md/md-bitmap.c | 12
drivers/media/common/videobuf2/videobuf2-dma-sg.c | 3
drivers/media/common/videobuf2/videobuf2-vmalloc.c | 3
drivers/media/pci/ivtv/ivtv-udma.c | 19 -
drivers/media/pci/ivtv/ivtv-yuv.c | 17
drivers/media/pci/ivtv/ivtvfb.c | 4
drivers/mtd/ubi/io.c | 4
drivers/pcmcia/electra_cf.c | 45 --
drivers/scsi/sd_zbc.c | 3
drivers/staging/android/ion/ion_heap.c | 4
drivers/staging/media/ipu3/ipu3-css-pool.h | 4
drivers/staging/media/ipu3/ipu3-dmamap.c | 30 -
fs/block_dev.c | 7
fs/btrfs/disk-io.c | 4
fs/btrfs/extent_io.c | 64 ---
fs/btrfs/extent_io.h | 3
fs/btrfs/inode.c | 39 --
fs/buffer.c | 23 -
fs/erofs/data.c | 41 --
fs/erofs/decompressor.c | 2
fs/erofs/zdata.c | 31 -
fs/exfat/inode.c | 7
fs/ext2/inode.c | 10
fs/ext4/ext4.h | 5
fs/ext4/inode.c | 25 -
fs/ext4/readpage.c | 25 -
fs/ext4/verity.c | 35 -
fs/f2fs/data.c | 56 +-
fs/f2fs/f2fs.h | 14
fs/f2fs/verity.c | 35 -
fs/fat/inode.c | 7
fs/file_table.c | 1
fs/fs-writeback.c | 1
fs/fuse/file.c | 100 +----
fs/gfs2/aops.c | 23 -
fs/gfs2/dir.c | 9
fs/gfs2/quota.c | 2
fs/hpfs/file.c | 7
fs/iomap/buffered-io.c | 113 +----
fs/iomap/trace.h | 2
fs/isofs/inode.c | 7
fs/jfs/inode.c | 7
fs/mpage.c | 38 --
fs/nfs/blocklayout/extent_tree.c | 2
fs/nfs/internal.h | 10
fs/nfs/write.c | 4
fs/nfsd/vfs.c | 9
fs/nilfs2/inode.c | 15
fs/ntfs/aops.c | 2
fs/ntfs/malloc.h | 2
fs/ntfs/mft.c | 2
fs/ocfs2/aops.c | 34 -
fs/ocfs2/dlm/dlmmaster.c | 1
fs/ocfs2/ocfs2.h | 4
fs/ocfs2/slot_map.c | 46 +-
fs/ocfs2/super.c | 21 +
fs/omfs/file.c | 7
fs/open.c | 3
fs/orangefs/inode.c | 32 -
fs/proc/meminfo.c | 3
fs/proc/task_mmu.c | 16
fs/qnx6/inode.c | 7
fs/reiserfs/inode.c | 8
fs/squashfs/block.c | 273 +++++++-------
fs/squashfs/decompressor.h | 5
fs/squashfs/decompressor_multi.c | 9
fs/squashfs/decompressor_multi_percpu.c | 17
fs/squashfs/decompressor_single.c | 9
fs/squashfs/lz4_wrapper.c | 17
fs/squashfs/lzo_wrapper.c | 17
fs/squashfs/squashfs.h | 4
fs/squashfs/xz_wrapper.c | 51 +-
fs/squashfs/zlib_wrapper.c | 63 +--
fs/squashfs/zstd_wrapper.c | 62 +--
fs/sync.c | 6
fs/ubifs/debug.c | 2
fs/ubifs/lprops.c | 2
fs/ubifs/lpt_commit.c | 4
fs/ubifs/orphan.c | 2
fs/udf/inode.c | 7
fs/xfs/kmem.c | 2
fs/xfs/xfs_aops.c | 13
fs/xfs/xfs_buf.c | 2
fs/zonefs/super.c | 7
include/asm-generic/5level-fixup.h | 5
include/asm-generic/pgtable.h | 27 +
include/linux/buffer_head.h | 8
include/linux/fs.h | 18
include/linux/iomap.h | 3
include/linux/memcontrol.h | 4
include/linux/mm.h | 67 ++-
include/linux/mm_types.h | 6
include/linux/mmzone.h | 1
include/linux/mpage.h | 4
include/linux/page_counter.h | 8
include/linux/pagemap.h | 193 ++++++++++
include/linux/ptdump.h | 3
include/linux/sched.h | 3
include/linux/swap.h | 17
include/linux/vmalloc.h | 49 +-
include/linux/zsmalloc.h | 2
include/trace/events/erofs.h | 6
include/trace/events/f2fs.h | 6
include/trace/events/writeback.h | 5
kernel/bpf/core.c | 6
kernel/bpf/syscall.c | 29 -
kernel/dma/remap.c | 48 --
kernel/groups.c | 2
kernel/module.c | 3
kernel/notifier.c | 1
kernel/sys.c | 2
kernel/trace/trace.c | 12
lib/Kconfig.ubsan | 2
lib/ioremap.c | 46 +-
lib/test_vmalloc.c | 26 -
mm/Kconfig | 4
mm/debug.c | 56 ++
mm/fadvise.c | 6
mm/filemap.c | 1
mm/gup.c | 77 +++-
mm/internal.h | 14
mm/kasan/Makefile | 21 -
mm/kasan/common.c | 19 -
mm/kasan/report.c | 22 +
mm/memcontrol.c | 198 +++++++---
mm/memory-failure.c | 15
mm/memory.c | 2
mm/migrate.c | 9
mm/mm_init.c | 16
mm/nommu.c | 52 +-
mm/page-writeback.c | 62 ++-
mm/page_alloc.c | 7
mm/percpu.c | 2
mm/ptdump.c | 17
mm/readahead.c | 349 ++++++++++--------
mm/slab_common.c | 3
mm/slub.c | 67 ++-
mm/swap_state.c | 5
mm/swapfile.c | 194 ++++++----
mm/util.c | 2
mm/vmalloc.c | 399 ++++++++-------------
mm/vmscan.c | 4
mm/vmstat.c | 11
mm/zsmalloc.c | 12
net/bridge/netfilter/ebtables.c | 6
net/ceph/ceph_common.c | 3
sound/core/memalloc.c | 2
sound/core/pcm_memory.c | 2
195 files changed, 2292 insertions(+), 2288 deletions(-)
^ permalink raw reply [flat|nested] 215+ messages in thread
* Re: incoming
[not found] ` <CAHk-=wiU-vQVURz62dzitbh2Pk+m_+ipaJU6=z=ES3cd_wKSLQ@mail.gmail.com>
@ 2020-05-29 21:12 ` Andrew Morton
0 siblings, 0 replies; 215+ messages in thread
From: Andrew Morton @ 2020-05-29 21:12 UTC (permalink / raw)
To: Linus Torvalds; +Cc: mm-commits, Linux-MM
On Fri, 29 May 2020 13:38:35 -0700 Linus Torvalds <torvalds@linux-foundation.org> wrote:
> On Fri, May 29, 2020 at 1:31 PM Andrew Morton <akpm@linux-foundation.org> wrote:
> >
> > Bah. I got lazy (didn't want to interrupt an ongoing build) so I
> > generated the diffstat prior to folding two patches into a single one.
> > Evidently diffstat isn't as smart as I had assumed!
>
> Ahh. Yes - given two patches, diffstat just adds up the line number
> counts for the individual diffs, it doesn't count some kind of
> "combined diff result" line counts.
Stupid diffstat. Means that basically all my diffstats are very wrong.
Thanks for spotting it.
I can fix that...
^ permalink raw reply [flat|nested] 215+ messages in thread
* Re: incoming
[not found] ` <CAHk-=whQSWcE1WvKxptHdyc9BUXQyxxyAH954=Jb_YSBrNJYDQ@mail.gmail.com>
@ 2020-05-29 20:31 ` Andrew Morton
[not found] ` <CAHk-=wiU-vQVURz62dzitbh2Pk+m_+ipaJU6=z=ES3cd_wKSLQ@mail.gmail.com>
0 siblings, 1 reply; 215+ messages in thread
From: Andrew Morton @ 2020-05-29 20:31 UTC (permalink / raw)
To: Linus Torvalds; +Cc: mm-commits, Linux-MM
On Thu, 28 May 2020 13:10:18 -0700 Linus Torvalds <torvalds@linux-foundation.org> wrote:
> Hmm..
>
> On Wed, May 27, 2020 at 10:20 PM Andrew Morton
> <akpm@linux-foundation.org> wrote:
> >
> > fs/binfmt_elf.c | 2 +-
> > include/asm-generic/topology.h | 2 +-
> > include/linux/mm.h | 19 +++++++++++++++----
> > mm/khugepaged.c | 1 +
> > mm/z3fold.c | 3 +++
> > 5 files changed, 21 insertions(+), 6 deletions(-)
>
> I wonder how you generate that diffstat.
>
> The change to <linux/mm.h> simply doesn't match what you sent me. The
> patch you sent me that changed mm.h had this:
>
> include/linux/mm.h | 15 +++++++++++++--
> 1 file changed, 13 insertions(+), 2 deletions(-)
>
> (note 15 lines changed: it's +13 and -2) but now suddenly in your
> overall diffstat you have that
>
> include/linux/mm.h | 19 +++++++++++++++----
>
> with +15/-4.
>
> So your diffstat simply doesn't match what you are sending. What's going on?
>
Bah. I got lazy (didn't want to interrupt an ongoing build) so I
generated the diffstat prior to folding two patches into a single one.
Evidently diffstat isn't as smart as I had assumed!
^ permalink raw reply [flat|nested] 215+ messages in thread
* incoming
@ 2020-05-28 5:20 Andrew Morton
[not found] ` <CAHk-=whQSWcE1WvKxptHdyc9BUXQyxxyAH954=Jb_YSBrNJYDQ@mail.gmail.com>
0 siblings, 1 reply; 215+ messages in thread
From: Andrew Morton @ 2020-05-28 5:20 UTC (permalink / raw)
To: Linus Torvalds; +Cc: mm-commits, linux-mm
5 fixes, based on 444fc5cde64330661bf59944c43844e7d4c2ccd8:
Qian Cai <cai@lca.pw>:
mm/z3fold: silence kmemleak false positives of slots
Hugh Dickins <hughd@google.com>:
mm,thp: stop leaking unreleased file pages
Konstantin Khlebnikov <khlebnikov@yandex-team.ru>:
mm: remove VM_BUG_ON(PageSlab()) from page_mapcount()
Alexander Potapenko <glider@google.com>:
fs/binfmt_elf.c: allocate initialized memory in fill_thread_core_info()
Arnd Bergmann <arnd@arndb.de>:
include/asm-generic/topology.h: guard cpumask_of_node() macro argument
fs/binfmt_elf.c | 2 +-
include/asm-generic/topology.h | 2 +-
include/linux/mm.h | 19 +++++++++++++++----
mm/khugepaged.c | 1 +
mm/z3fold.c | 3 +++
5 files changed, 21 insertions(+), 6 deletions(-)
^ permalink raw reply [flat|nested] 215+ messages in thread
* incoming
@ 2020-05-14 0:50 Andrew Morton
0 siblings, 0 replies; 215+ messages in thread
From: Andrew Morton @ 2020-05-14 0:50 UTC (permalink / raw)
To: Linus Torvalds; +Cc: mm-commits, linux-mm
7 fixes, based on 24085f70a6e1b0cb647ec92623284641d8270637:
Yafang Shao <laoar.shao@gmail.com>:
mm, memcg: fix inconsistent oom event behavior
Roman Penyaev <rpenyaev@suse.de>:
epoll: call final ep_events_available() check under the lock
Peter Xu <peterx@redhat.com>:
mm/gup: fix fixup_user_fault() on multiple retries
Brian Geffon <bgeffon@google.com>:
userfaultfd: fix remap event with MREMAP_DONTUNMAP
Vasily Averin <vvs@virtuozzo.com>:
ipc/util.c: sysvipc_find_ipc() incorrectly updates position index
Andrey Konovalov <andreyknvl@google.com>:
kasan: consistently disable debugging features
kasan: add missing functions declarations to kasan.h
fs/eventpoll.c | 48 ++++++++++++++++++++++++++-------------------
include/linux/memcontrol.h | 2 +
ipc/util.c | 12 +++++------
mm/gup.c | 12 ++++++-----
mm/kasan/Makefile | 15 +++++++++-----
mm/kasan/kasan.h | 34 ++++++++++++++++++++++++++++++-
mm/mremap.c | 2 -
7 files changed, 86 insertions(+), 39 deletions(-)
^ permalink raw reply [flat|nested] 215+ messages in thread
* incoming
@ 2020-05-08 1:35 Andrew Morton
0 siblings, 0 replies; 215+ messages in thread
From: Andrew Morton @ 2020-05-08 1:35 UTC (permalink / raw)
To: Linus Torvalds; +Cc: mm-commits, linux-mm
14 fixes and one selftest to verify the ipc fixes herein.
15 patches, based on a811c1fa0a02c062555b54651065899437bacdbe:
Oleg Nesterov <oleg@redhat.com>:
ipc/mqueue.c: change __do_notify() to bypass check_kill_permission()
Yafang Shao <laoar.shao@gmail.com>:
mm, memcg: fix error return value of mem_cgroup_css_alloc()
David Hildenbrand <david@redhat.com>:
mm/page_alloc: fix watchdog soft lockups during set_zone_contiguous()
Maciej Grochowski <maciej.grochowski@pm.me>:
kernel/kcov.c: fix typos in kcov_remote_start documentation
Ivan Delalande <colona@arista.com>:
scripts/decodecode: fix trapping instruction formatting
Janakarajan Natarajan <Janakarajan.Natarajan@amd.com>:
arch/x86/kvm/svm/sev.c: change flag passed to GUP fast in sev_pin_memory()
Khazhismel Kumykov <khazhy@google.com>:
eventpoll: fix missing wakeup for ovflist in ep_poll_callback
Aymeric Agon-Rambosson <aymeric.agon@yandex.com>:
scripts/gdb: repair rb_first() and rb_last()
Waiman Long <longman@redhat.com>:
mm/slub: fix incorrect interpretation of s->offset
Filipe Manana <fdmanana@suse.com>:
percpu: make pcpu_alloc() aware of current gfp context
Roman Penyaev <rpenyaev@suse.de>:
kselftests: introduce new epoll60 testcase for catching lost wakeups
epoll: atomically remove wait entry on wake up
Qiwu Chen <qiwuchen55@gmail.com>:
mm/vmscan: remove unnecessary argument description of isolate_lru_pages()
Kees Cook <keescook@chromium.org>:
ubsan: disable UBSAN_ALIGNMENT under COMPILE_TEST
Henry Willard <henry.willard@oracle.com>:
mm: limit boost_watermark on small zones
arch/x86/kvm/svm/sev.c | 2
fs/eventpoll.c | 61 ++--
ipc/mqueue.c | 34 +-
kernel/kcov.c | 4
lib/Kconfig.ubsan | 15 -
mm/memcontrol.c | 15 -
mm/page_alloc.c | 9
mm/percpu.c | 14
mm/slub.c | 45 ++-
mm/vmscan.c | 1
scripts/decodecode | 2
scripts/gdb/linux/rbtree.py | 4
tools/testing/selftests/filesystems/epoll/epoll_wakeup_test.c | 146 ++++++++++
tools/testing/selftests/wireguard/qemu/debug.config | 1
14 files changed, 275 insertions(+), 78 deletions(-)
^ permalink raw reply [flat|nested] 215+ messages in thread
* incoming
@ 2020-04-12 7:41 Andrew Morton
0 siblings, 0 replies; 215+ messages in thread
From: Andrew Morton @ 2020-04-12 7:41 UTC (permalink / raw)
To: Linus Torvalds; +Cc: mm-commits, linux-mm
A straggler. This patch caused a lot of build errors on a lot of
architectures for a long time, but Anshuman believes it's all fixed up
now.
1 patch, based on GIT b032227c62939b5481bcd45442b36dfa263f4a7c.
Anshuman Khandual <anshuman.khandual@arm.com>:
mm/debug: add tests validating architecture page table helpers
Documentation/features/debug/debug-vm-pgtable/arch-support.txt | 34
arch/arc/Kconfig | 1
arch/arm64/Kconfig | 1
arch/powerpc/Kconfig | 1
arch/s390/Kconfig | 1
arch/x86/Kconfig | 1
arch/x86/include/asm/pgtable_64.h | 6
include/linux/mmdebug.h | 5
init/main.c | 2
lib/Kconfig.debug | 26
mm/Makefile | 1
mm/debug_vm_pgtable.c | 392 ++++++++++
12 files changed, 471 insertions(+)
^ permalink raw reply [flat|nested] 215+ messages in thread
* incoming
@ 2020-04-10 21:30 Andrew Morton
0 siblings, 0 replies; 215+ messages in thread
From: Andrew Morton @ 2020-04-10 21:30 UTC (permalink / raw)
To: Linus Torvalds; +Cc: mm-commits, linux-mm
Almost all of the rest of MM. Various other things.
35 patches, based on c0cc271173b2e1c2d8d0ceaef14e4dfa79eefc0d.
Subsystems affected by this patch series:
hfs
mm/memcg
mm/slab-generic
mm/slab
mm/pagealloc
mm/gup
ocfs2
mm/hugetlb
mm/pagemap
mm/memremap
kmod
misc
seqfile
Subsystem: hfs
Simon Gander <simon@tuxera.com>:
hfsplus: fix crash and filesystem corruption when deleting files
Subsystem: mm/memcg
Jakub Kicinski <kuba@kernel.org>:
mm, memcg: do not high throttle allocators based on wraparound
Subsystem: mm/slab-generic
Qiujun Huang <hqjagain@gmail.com>:
mm, slab_common: fix a typo in comment "eariler"->"earlier"
Subsystem: mm/slab
Mauro Carvalho Chehab <mchehab+huawei@kernel.org>:
docs: mm: slab.h: fix a broken cross-reference
Subsystem: mm/pagealloc
Randy Dunlap <rdunlap@infradead.org>:
mm/page_alloc.c: fix kernel-doc warning
Jason Yan <yanaijie@huawei.com>:
mm/page_alloc: make pcpu_drain_mutex and pcpu_drain static
Subsystem: mm/gup
Miles Chen <miles.chen@mediatek.com>:
mm/gup: fix null pointer dereference detected by coverity
Subsystem: ocfs2
Changwei Ge <chge@linux.alibaba.com>:
ocfs2: no need try to truncate file beyond i_size
Subsystem: mm/hugetlb
Aslan Bakirov <aslan@fb.com>:
mm: cma: NUMA node interface
Roman Gushchin <guro@fb.com>:
mm: hugetlb: optionally allocate gigantic hugepages using cma
Subsystem: mm/pagemap
Jaewon Kim <jaewon31.kim@samsung.com>:
mm/mmap.c: initialize align_offset explicitly for vm_unmapped_area
Arjun Roy <arjunroy@google.com>:
mm/memory.c: refactor insert_page to prepare for batched-lock insert
mm: bring sparc pte_index() semantics inline with other platforms
mm: define pte_index as macro for x86
mm/memory.c: add vm_insert_pages()
Anshuman Khandual <anshuman.khandual@arm.com>:
mm/vma: define a default value for VM_DATA_DEFAULT_FLAGS
mm/vma: introduce VM_ACCESS_FLAGS
mm/special: create generic fallbacks for pte_special() and pte_mkspecial()
Subsystem: mm/memremap
Logan Gunthorpe <logang@deltatee.com>:
Patch series "Allow setting caching mode in arch_add_memory() for P2PDMA", v4:
mm/memory_hotplug: drop the flags field from struct mhp_restrictions
mm/memory_hotplug: rename mhp_restrictions to mhp_params
x86/mm: thread pgprot_t through init_memory_mapping()
x86/mm: introduce __set_memory_prot()
powerpc/mm: thread pgprot_t through create_section_mapping()
mm/memory_hotplug: add pgprot_t to mhp_params
mm/memremap: set caching mode for PCI P2PDMA memory to WC
Subsystem: kmod
Eric Biggers <ebiggers@google.com>:
Patch series "module autoloading fixes and cleanups", v5:
kmod: make request_module() return an error when autoloading is disabled
fs/filesystems.c: downgrade user-reachable WARN_ONCE() to pr_warn_once()
docs: admin-guide: document the kernel.modprobe sysctl
selftests: kmod: fix handling test numbers above 9
selftests: kmod: test disabling module autoloading
Subsystem: misc
Pali Rohár <pali@kernel.org>:
change email address for Pali Rohár
kbuild test robot <lkp@intel.com>:
drivers/dma/tegra20-apb-dma.c: fix platform_get_irq.cocci warnings
Subsystem: seqfile
Vasily Averin <vvs@virtuozzo.com>:
Patch series "seq_file .next functions should increase position index":
fs/seq_file.c: seq_read(): add info message about buggy .next functions
kernel/gcov/fs.c: gcov_seq_next() should increase position index
ipc/util.c: sysvipc_find_ipc() should increase position index
Documentation/ABI/testing/sysfs-platform-dell-laptop | 8
Documentation/admin-guide/kernel-parameters.txt | 8
Documentation/admin-guide/sysctl/kernel.rst | 21 ++
MAINTAINERS | 16 -
arch/alpha/include/asm/page.h | 3
arch/alpha/include/asm/pgtable.h | 2
arch/arc/include/asm/page.h | 2
arch/arm/include/asm/page.h | 4
arch/arm/include/asm/pgtable-2level.h | 2
arch/arm/include/asm/pgtable.h | 15 -
arch/arm/mach-omap2/omap-secure.c | 2
arch/arm/mach-omap2/omap-secure.h | 2
arch/arm/mach-omap2/omap-smc.S | 2
arch/arm/mm/fault.c | 2
arch/arm/mm/mmu.c | 14 +
arch/arm64/include/asm/page.h | 4
arch/arm64/mm/fault.c | 2
arch/arm64/mm/init.c | 6
arch/arm64/mm/mmu.c | 7
arch/c6x/include/asm/page.h | 5
arch/csky/include/asm/page.h | 3
arch/csky/include/asm/pgtable.h | 3
arch/h8300/include/asm/page.h | 2
arch/hexagon/include/asm/page.h | 3
arch/hexagon/include/asm/pgtable.h | 2
arch/ia64/include/asm/page.h | 5
arch/ia64/include/asm/pgtable.h | 2
arch/ia64/mm/init.c | 7
arch/m68k/include/asm/mcf_pgtable.h | 10 -
arch/m68k/include/asm/motorola_pgtable.h | 2
arch/m68k/include/asm/page.h | 3
arch/m68k/include/asm/sun3_pgtable.h | 2
arch/microblaze/include/asm/page.h | 2
arch/microblaze/include/asm/pgtable.h | 4
arch/mips/include/asm/page.h | 5
arch/mips/include/asm/pgtable.h | 44 +++-
arch/nds32/include/asm/page.h | 3
arch/nds32/include/asm/pgtable.h | 9 -
arch/nds32/mm/fault.c | 2
arch/nios2/include/asm/page.h | 3
arch/nios2/include/asm/pgtable.h | 3
arch/openrisc/include/asm/page.h | 5
arch/openrisc/include/asm/pgtable.h | 2
arch/parisc/include/asm/page.h | 3
arch/parisc/include/asm/pgtable.h | 2
arch/powerpc/include/asm/book3s/64/hash.h | 3
arch/powerpc/include/asm/book3s/64/radix.h | 3
arch/powerpc/include/asm/page.h | 9 -
arch/powerpc/include/asm/page_64.h | 7
arch/powerpc/include/asm/sparsemem.h | 3
arch/powerpc/mm/book3s64/hash_utils.c | 5
arch/powerpc/mm/book3s64/pgtable.c | 7
arch/powerpc/mm/book3s64/pkeys.c | 2
arch/powerpc/mm/book3s64/radix_pgtable.c | 18 +-
arch/powerpc/mm/mem.c | 12 -
arch/riscv/include/asm/page.h | 3
arch/s390/include/asm/page.h | 3
arch/s390/mm/fault.c | 2
arch/s390/mm/init.c | 9 -
arch/sh/include/asm/page.h | 3
arch/sh/mm/init.c | 7
arch/sparc/include/asm/page_32.h | 3
arch/sparc/include/asm/page_64.h | 3
arch/sparc/include/asm/pgtable_32.h | 7
arch/sparc/include/asm/pgtable_64.h | 10 -
arch/um/include/asm/pgtable.h | 10 -
arch/unicore32/include/asm/page.h | 3
arch/unicore32/include/asm/pgtable.h | 3
arch/unicore32/mm/fault.c | 2
arch/x86/include/asm/page_types.h | 7
arch/x86/include/asm/pgtable.h | 6
arch/x86/include/asm/set_memory.h | 1
arch/x86/kernel/amd_gart_64.c | 3
arch/x86/kernel/setup.c | 4
arch/x86/mm/init.c | 9 -
arch/x86/mm/init_32.c | 19 +-
arch/x86/mm/init_64.c | 42 ++--
arch/x86/mm/mm_internal.h | 3
arch/x86/mm/pat/set_memory.c | 13 +
arch/x86/mm/pkeys.c | 2
arch/x86/platform/uv/bios_uv.c | 3
arch/x86/um/asm/vm-flags.h | 10 -
arch/xtensa/include/asm/page.h | 3
arch/xtensa/include/asm/pgtable.h | 3
drivers/char/hw_random/omap3-rom-rng.c | 4
drivers/dma/tegra20-apb-dma.c | 1
drivers/hwmon/dell-smm-hwmon.c | 4
drivers/platform/x86/dell-laptop.c | 4
drivers/platform/x86/dell-rbtn.c | 4
drivers/platform/x86/dell-rbtn.h | 2
drivers/platform/x86/dell-smbios-base.c | 4
drivers/platform/x86/dell-smbios-smm.c | 2
drivers/platform/x86/dell-smbios.h | 2
drivers/platform/x86/dell-smo8800.c | 2
drivers/platform/x86/dell-wmi.c | 4
drivers/power/supply/bq2415x_charger.c | 4
drivers/power/supply/bq27xxx_battery.c | 2
drivers/power/supply/isp1704_charger.c | 2
drivers/power/supply/rx51_battery.c | 4
drivers/staging/gasket/gasket_core.c | 2
fs/filesystems.c | 4
fs/hfsplus/attributes.c | 4
fs/ocfs2/alloc.c | 4
fs/seq_file.c | 7
fs/udf/ecma_167.h | 2
fs/udf/osta_udf.h | 2
include/linux/cma.h | 14 +
include/linux/hugetlb.h | 12 +
include/linux/memblock.h | 3
include/linux/memory_hotplug.h | 21 +-
include/linux/mm.h | 34 +++
include/linux/power/bq2415x_charger.h | 2
include/linux/slab.h | 2
ipc/util.c | 2
kernel/gcov/fs.c | 2
kernel/kmod.c | 4
mm/cma.c | 16 +
mm/gup.c | 3
mm/hugetlb.c | 109 ++++++++++++
mm/memblock.c | 2
mm/memcontrol.c | 3
mm/memory.c | 168 +++++++++++++++++--
mm/memory_hotplug.c | 13 -
mm/memremap.c | 17 +
mm/mmap.c | 4
mm/mprotect.c | 4
mm/page_alloc.c | 5
mm/slab_common.c | 2
tools/laptop/freefall/freefall.c | 2
tools/testing/selftests/kmod/kmod.sh | 43 ++++
130 files changed, 710 insertions(+), 370 deletions(-)
^ permalink raw reply [flat|nested] 215+ messages in thread
* incoming
@ 2020-04-07 3:02 Andrew Morton
0 siblings, 0 replies; 215+ messages in thread
From: Andrew Morton @ 2020-04-07 3:02 UTC (permalink / raw)
To: Linus Torvalds; +Cc: linux-mm, mm-commits
- a lot more of MM, quite a bit more yet to come.
- various other subsystems
166 patches based on 7e63420847ae5f1036e4f7c42f0b3282e73efbc2.
Subsystems affected by this patch series:
mm/memcg
mm/pagemap
mm/vmalloc
mm/pagealloc
mm/migration
mm/thp
mm/ksm
mm/madvise
mm/virtio
mm/userfaultfd
mm/memory-hotplug
mm/shmem
mm/rmap
mm/zswap
mm/zsmalloc
mm/cleanups
procfs
misc
MAINTAINERS
bitops
lib
checkpatch
epoll
binfmt
kallsyms
reiserfs
kmod
gcov
kconfig
kcov
ubsan
fault-injection
ipc
Subsystem: mm/memcg
Chris Down <chris@chrisdown.name>:
mm, memcg: bypass high reclaim iteration for cgroup hierarchy root
Subsystem: mm/pagemap
Li Xinhai <lixinhai.lxh@gmail.com>:
Patch series "mm: Fix misuse of parent anon_vma in dup_mmap path":
mm: don't prepare anon_vma if vma has VM_WIPEONFORK
Revert "mm/rmap.c: reuse mergeable anon_vma as parent when fork"
mm: set vm_next and vm_prev to NULL in vm_area_dup()
Anshuman Khandual <anshuman.khandual@arm.com>:
Patch series "mm/vma: Use all available wrappers when possible", v2:
mm/vma: add missing VMA flag readable name for VM_SYNC
mm/vma: make vma_is_accessible() available for general use
mm/vma: replace all remaining open encodings with is_vm_hugetlb_page()
mm/vma: replace all remaining open encodings with vma_is_anonymous()
mm/vma: append unlikely() while testing VMA access permissions
Subsystem: mm/vmalloc
Qiujun Huang <hqjagain@gmail.com>:
mm/vmalloc: fix a typo in comment
Subsystem: mm/pagealloc
Michal Hocko <mhocko@suse.com>:
mm: make it clear that gfp reclaim modifiers are valid only for sleepable allocations
Subsystem: mm/migration
Wei Yang <richardw.yang@linux.intel.com>:
Patch series "cleanup on do_pages_move()", v5:
mm/migrate.c: no need to check for i > start in do_pages_move()
mm/migrate.c: wrap do_move_pages_to_node() and store_status()
mm/migrate.c: check pagelist in move_pages_and_store_status()
mm/migrate.c: unify "not queued for migration" handling in do_pages_move()
Yang Shi <yang.shi@linux.alibaba.com>:
mm/migrate.c: migrate PG_readahead flag
Subsystem: mm/thp
David Rientjes <rientjes@google.com>:
mm, shmem: add vmstat for hugepage fallback
mm, thp: track fallbacks due to failed memcg charges separately
"Matthew Wilcox (Oracle)" <willy@infradead.org>:
include/linux/pagemap.h: optimise find_subpage for !THP
mm: remove CONFIG_TRANSPARENT_HUGE_PAGECACHE
Subsystem: mm/ksm
Li Chen <chenli@uniontech.com>:
mm/ksm.c: update get_user_pages() argument in comment
Subsystem: mm/madvise
Huang Ying <ying.huang@intel.com>:
mm: code cleanup for MADV_FREE
Subsystem: mm/virtio
Alexander Duyck <alexander.h.duyck@linux.intel.com>:
Patch series "mm / virtio: Provide support for free page reporting", v17:
mm: adjust shuffle code to allow for future coalescing
mm: use zone and order instead of free area in free_list manipulators
mm: add function __putback_isolated_page
mm: introduce Reported pages
virtio-balloon: pull page poisoning config out of free page hinting
virtio-balloon: add support for providing free page reports to host
mm/page_reporting: rotate reported pages to the tail of the list
mm/page_reporting: add budget limit on how many pages can be reported per pass
mm/page_reporting: add free page reporting documentation
David Hildenbrand <david@redhat.com>:
virtio-balloon: switch back to OOM handler for VIRTIO_BALLOON_F_DEFLATE_ON_OOM
Subsystem: mm/userfaultfd
Shaohua Li <shli@fb.com>:
Patch series "userfaultfd: write protection support", v6:
userfaultfd: wp: add helper for writeprotect check
Andrea Arcangeli <aarcange@redhat.com>:
userfaultfd: wp: hook userfault handler to write protection fault
userfaultfd: wp: add WP pagetable tracking to x86
userfaultfd: wp: userfaultfd_pte/huge_pmd_wp() helpers
userfaultfd: wp: add UFFDIO_COPY_MODE_WP
Peter Xu <peterx@redhat.com>:
mm: merge parameters for change_protection()
userfaultfd: wp: apply _PAGE_UFFD_WP bit
userfaultfd: wp: drop _PAGE_UFFD_WP properly when fork
userfaultfd: wp: add pmd_swp_*uffd_wp() helpers
userfaultfd: wp: support swap and page migration
khugepaged: skip collapse if uffd-wp detected
Shaohua Li <shli@fb.com>:
userfaultfd: wp: support write protection for userfault vma range
Andrea Arcangeli <aarcange@redhat.com>:
userfaultfd: wp: add the writeprotect API to userfaultfd ioctl
Shaohua Li <shli@fb.com>:
userfaultfd: wp: enabled write protection in userfaultfd API
Peter Xu <peterx@redhat.com>:
userfaultfd: wp: don't wake up when doing write protect
Martin Cracauer <cracauer@cons.org>:
userfaultfd: wp: UFFDIO_REGISTER_MODE_WP documentation update
Peter Xu <peterx@redhat.com>:
userfaultfd: wp: declare _UFFDIO_WRITEPROTECT conditionally
userfaultfd: selftests: refactor statistics
userfaultfd: selftests: add write-protect test
Subsystem: mm/memory-hotplug
David Hildenbrand <david@redhat.com>:
Patch series "mm: drop superfluous section checks when onlining/offlining":
drivers/base/memory.c: drop section_count
drivers/base/memory.c: drop pages_correctly_probed()
mm/page_ext.c: drop pfn_present() check when onlining
Baoquan He <bhe@redhat.com>:
mm/memory_hotplug.c: only respect mem= parameter during boot stage
David Hildenbrand <david@redhat.com>:
mm/memory_hotplug.c: simplify calculation of number of pages in __remove_pages()
mm/memory_hotplug.c: cleanup __add_pages()
Baoquan He <bhe@redhat.com>:
Patch series "mm/hotplug: Only use subsection map for VMEMMAP", v4:
mm/sparse.c: introduce new function fill_subsection_map()
mm/sparse.c: introduce a new function clear_subsection_map()
mm/sparse.c: only use subsection map in VMEMMAP case
mm/sparse.c: add note about only VMEMMAP supporting sub-section hotplug
mm/sparse.c: move subsection_map related functions together
David Hildenbrand <david@redhat.com>:
Patch series "mm/memory_hotplug: allow to specify a default online_type", v3:
drivers/base/memory: rename MMOP_ONLINE_KEEP to MMOP_ONLINE
drivers/base/memory: map MMOP_OFFLINE to 0
drivers/base/memory: store mapping between MMOP_* and string in an array
powernv/memtrace: always online added memory blocks
hv_balloon: don't check for memhp_auto_online manually
mm/memory_hotplug: unexport memhp_auto_online
mm/memory_hotplug: convert memhp_auto_online to store an online_type
mm/memory_hotplug: allow to specify a default online_type
chenqiwu <chenqiwu@xiaomi.com>:
mm/memory_hotplug.c: use __pfn_to_section() instead of open-coding
Subsystem: mm/shmem
Kees Cook <keescook@chromium.org>:
mm/shmem.c: distribute switch variables for initialization
Mateusz Nosek <mateusznosek0@gmail.com>:
mm/shmem.c: clean code by removing unnecessary assignment
Hugh Dickins <hughd@google.com>:
mm: huge tmpfs: try to split_huge_page() when punching hole
Subsystem: mm/rmap
Palmer Dabbelt <palmerdabbelt@google.com>:
mm: prevent a warning when casting void* -> enum
Subsystem: mm/zswap
"Maciej S. Szmigiero" <mail@maciej.szmigiero.name>:
mm/zswap: allow setting default status, compressor and allocator in Kconfig
Subsystem: mm/zsmalloc
Subsystem: mm/cleanups
Jules Irenge <jbi.octave@gmail.com>:
mm/compaction: add missing annotation for compact_lock_irqsave
mm/hugetlb: add missing annotation for gather_surplus_pages()
mm/mempolicy: add missing annotation for queue_pages_pmd()
mm/slub: add missing annotation for get_map()
mm/slub: add missing annotation for put_map()
mm/zsmalloc: add missing annotation for migrate_read_lock()
mm/zsmalloc: add missing annotation for migrate_read_unlock()
mm/zsmalloc: add missing annotation for pin_tag()
mm/zsmalloc: add missing annotation for unpin_tag()
chenqiwu <chenqiwu@xiaomi.com>:
mm: fix ambiguous comments for better code readability
Mateusz Nosek <mateusznosek0@gmail.com>:
mm/mm_init.c: clean code. Use BUILD_BUG_ON when comparing compile time constant
Joe Perches <joe@perches.com>:
mm: use fallthrough;
Steven Price <steven.price@arm.com>:
include/linux/swapops.h: correct guards for non_swap_entry()
Ira Weiny <ira.weiny@intel.com>:
include/linux/memremap.h: remove stale comments
Mateusz Nosek <mateusznosek0@gmail.com>:
mm/dmapool.c: micro-optimisation remove unnecessary branch
Waiman Long <longman@redhat.com>:
mm: remove dummy struct bootmem_data/bootmem_data_t
Subsystem: procfs
Jules Irenge <jbi.octave@gmail.com>:
fs/proc/inode.c: annotate close_pdeo() for sparse
Alexey Dobriyan <adobriyan@gmail.com>:
proc: faster open/read/close with "permanent" files
proc: speed up /proc/*/statm
"Matthew Wilcox (Oracle)" <willy@infradead.org>:
proc: inline vma_stop into m_stop
proc: remove m_cache_vma
proc: use ppos instead of m->version
seq_file: remove m->version
proc: inline m_next_vma into m_next
Subsystem: misc
Michal Simek <michal.simek@xilinx.com>:
asm-generic: fix unistd_32.h generation format
Nathan Chancellor <natechancellor@gmail.com>:
kernel/extable.c: use address-of operator on section symbols
Masahiro Yamada <masahiroy@kernel.org>:
sparc,x86: vdso: remove meaningless undefining CONFIG_OPTIMIZE_INLINING
compiler: remove CONFIG_OPTIMIZE_INLINING entirely
Vegard Nossum <vegard.nossum@oracle.com>:
compiler.h: fix error in BUILD_BUG_ON() reporting
Subsystem: MAINTAINERS
Joe Perches <joe@perches.com>:
MAINTAINERS: list the section entries in the preferred order
Subsystem: bitops
Josh Poimboeuf <jpoimboe@redhat.com>:
bitops: always inline sign extension helpers
Subsystem: lib
Konstantin Khlebnikov <khlebnikov@yandex-team.ru>:
lib/test_lockup: test module to generate lockups
Colin Ian King <colin.king@canonical.com>:
lib/test_lockup.c: fix spelling mistake "iteraions" -> "iterations"
Konstantin Khlebnikov <khlebnikov@yandex-team.ru>:
lib/test_lockup.c: add parameters for locking generic vfs locks
"Gustavo A. R. Silva" <gustavo@embeddedor.com>:
lib/bch.c: replace zero-length array with flexible-array member
lib/ts_bm.c: replace zero-length array with flexible-array member
lib/ts_fsm.c: replace zero-length array with flexible-array member
lib/ts_kmp.c: replace zero-length array with flexible-array member
Geert Uytterhoeven <geert+renesas@glider.be>:
lib/scatterlist: fix sg_copy_buffer() kerneldoc
Kees Cook <keescook@chromium.org>:
lib: test_stackinit.c: XFAIL switch variable init tests
Alexander Potapenko <glider@google.com>:
lib/stackdepot.c: check depot_index before accessing the stack slab
lib/stackdepot.c: fix a condition in stack_depot_fetch()
lib/stackdepot.c: build with -fno-builtin
kasan: stackdepot: move filter_irq_stacks() to stackdepot.c
Qian Cai <cai@lca.pw>:
percpu_counter: fix a data race at vm_committed_as
Andy Shevchenko <andriy.shevchenko@linux.intel.com>:
lib/test_bitmap.c: make use of EXP2_IN_BITS
chenqiwu <chenqiwu@xiaomi.com>:
lib/rbtree: fix coding style of assignments
Dan Carpenter <dan.carpenter@oracle.com>:
lib/test_kmod.c: remove a NULL test
Rikard Falkeborn <rikard.falkeborn@gmail.com>:
linux/bits.h: add compile time sanity check of GENMASK inputs
Chris Wilson <chris@chris-wilson.co.uk>:
lib/list: prevent compiler reloads inside 'safe' list iteration
Nathan Chancellor <natechancellor@gmail.com>:
lib/dynamic_debug.c: use address-of operator on section symbols
Subsystem: checkpatch
Joe Perches <joe@perches.com>:
checkpatch: remove email address comment from email address comparisons
Lubomir Rintel <lkundrak@v3.sk>:
checkpatch: check SPDX tags in YAML files
John Hubbard <jhubbard@nvidia.com>:
checkpatch: support "base-commit:" format
Joe Perches <joe@perches.com>:
checkpatch: prefer fallthrough; over fallthrough comments
Antonio Borneo <borneo.antonio@gmail.com>:
checkpatch: fix minor typo and mixed space+tab in indentation
checkpatch: fix multiple const * types
checkpatch: add command-line option for TAB size
Joe Perches <joe@perches.com>:
checkpatch: improve Gerrit Change-Id: test
Lubomir Rintel <lkundrak@v3.sk>:
checkpatch: check proper licensing of Devicetree bindings
Joe Perches <joe@perches.com>:
checkpatch: avoid warning about uninitialized_var()
Subsystem: epoll
Roman Penyaev <rpenyaev@suse.de>:
kselftest: introduce new epoll test case
Jason Baron <jbaron@akamai.com>:
fs/epoll: make nesting accounting safe for -rt kernel
Subsystem: binfmt
Alexey Dobriyan <adobriyan@gmail.com>:
fs/binfmt_elf.c: delete "loc" variable
fs/binfmt_elf.c: allocate less for static executable
fs/binfmt_elf.c: don't free interpreter's ELF pheaders on common path
Subsystem: kallsyms
Will Deacon <will@kernel.org>:
Patch series "Unexport kallsyms_lookup_name() and kallsyms_on_each_symbol()":
samples/hw_breakpoint: drop HW_BREAKPOINT_R when reporting writes
samples/hw_breakpoint: drop use of kallsyms_lookup_name()
kallsyms: unexport kallsyms_lookup_name() and kallsyms_on_each_symbol()
Subsystem: reiserfs
Colin Ian King <colin.king@canonical.com>:
reiserfs: clean up several indentation issues
Subsystem: kmod
Qiujun Huang <hqjagain@gmail.com>:
kernel/kmod.c: fix a typo "assuems" -> "assumes"
Subsystem: gcov
"Gustavo A. R. Silva" <gustavo@embeddedor.com>:
gcov: gcc_4_7: replace zero-length array with flexible-array member
gcov: gcc_3_4: replace zero-length array with flexible-array member
kernel/gcov/fs.c: replace zero-length array with flexible-array member
Subsystem: kconfig
Krzysztof Kozlowski <krzk@kernel.org>:
init/Kconfig: clean up ANON_INODES and old IO schedulers options
Subsystem: kcov
Andrey Konovalov <andreyknvl@google.com>:
Patch series "kcov: collect coverage from usb soft interrupts", v4:
kcov: cleanup debug messages
kcov: fix potential use-after-free in kcov_remote_start
kcov: move t->kcov assignments into kcov_start/stop
kcov: move t->kcov_sequence assignment
kcov: use t->kcov_mode as enabled indicator
kcov: collect coverage from interrupts
usb: core: kcov: collect coverage from usb complete callback
Subsystem: ubsan
Kees Cook <keescook@chromium.org>:
Patch series "ubsan: Split out bounds checker", v5:
ubsan: add trap instrumentation option
ubsan: split "bounds" checker from other options
drivers/misc/lkdtm/bugs.c: add arithmetic overflow and array bounds checks
ubsan: check panic_on_warn
kasan: unset panic_on_warn before calling panic()
ubsan: include bug type in report header
Subsystem: fault-injection
Qiujun Huang <hqjagain@gmail.com>:
lib/Kconfig.debug: fix a typo "capabilitiy" -> "capability"
Subsystem: ipc
Somala Swaraj <somalaswaraj@gmail.com>:
ipc/mqueue.c: fix a brace coding style issue
Jason Yan <yanaijie@huawei.com>:
ipc/shm.c: make compat_ksys_shmctl() static
Documentation/admin-guide/kernel-parameters.txt | 13
Documentation/admin-guide/mm/transhuge.rst | 14
Documentation/admin-guide/mm/userfaultfd.rst | 51
Documentation/dev-tools/kcov.rst | 17
Documentation/vm/free_page_reporting.rst | 41
Documentation/vm/zswap.rst | 20
MAINTAINERS | 35
arch/alpha/include/asm/mmzone.h | 2
arch/alpha/kernel/syscalls/syscallhdr.sh | 2
arch/csky/mm/fault.c | 4
arch/ia64/kernel/syscalls/syscallhdr.sh | 2
arch/ia64/kernel/vmlinux.lds.S | 2
arch/m68k/mm/fault.c | 4
arch/microblaze/kernel/syscalls/syscallhdr.sh | 2
arch/mips/kernel/syscalls/syscallhdr.sh | 3
arch/mips/mm/fault.c | 4
arch/nds32/kernel/vmlinux.lds.S | 1
arch/parisc/kernel/syscalls/syscallhdr.sh | 2
arch/powerpc/kernel/syscalls/syscallhdr.sh | 3
arch/powerpc/kvm/e500_mmu_host.c | 2
arch/powerpc/mm/fault.c | 2
arch/powerpc/platforms/powernv/memtrace.c | 14
arch/sh/kernel/syscalls/syscallhdr.sh | 2
arch/sh/mm/fault.c | 2
arch/sparc/kernel/syscalls/syscallhdr.sh | 2
arch/sparc/vdso/vdso32/vclock_gettime.c | 4
arch/x86/Kconfig | 1
arch/x86/configs/i386_defconfig | 1
arch/x86/configs/x86_64_defconfig | 1
arch/x86/entry/vdso/vdso32/vclock_gettime.c | 4
arch/x86/include/asm/pgtable.h | 67 +
arch/x86/include/asm/pgtable_64.h | 8
arch/x86/include/asm/pgtable_types.h | 12
arch/x86/mm/fault.c | 2
arch/xtensa/kernel/syscalls/syscallhdr.sh | 2
drivers/base/memory.c | 138 --
drivers/hv/hv_balloon.c | 25
drivers/misc/lkdtm/bugs.c | 75 +
drivers/misc/lkdtm/core.c | 3
drivers/misc/lkdtm/lkdtm.h | 3
drivers/usb/core/hcd.c | 3
drivers/virtio/Kconfig | 1
drivers/virtio/virtio_balloon.c | 190 ++-
fs/binfmt_elf.c | 56
fs/eventpoll.c | 64 -
fs/proc/array.c | 39
fs/proc/cpuinfo.c | 1
fs/proc/generic.c | 31
fs/proc/inode.c | 188 ++-
fs/proc/internal.h | 6
fs/proc/kmsg.c | 1
fs/proc/stat.c | 1
fs/proc/task_mmu.c | 97 -
fs/reiserfs/do_balan.c | 2
fs/reiserfs/ioctl.c | 11
fs/reiserfs/namei.c | 10
fs/seq_file.c | 28
fs/userfaultfd.c | 116 +
include/asm-generic/pgtable.h | 1
include/asm-generic/pgtable_uffd.h | 66 +
include/asm-generic/tlb.h | 3
include/linux/bitops.h | 4
include/linux/bits.h | 22
include/linux/compiler.h | 2
include/linux/compiler_types.h | 11
include/linux/gfp.h | 2
include/linux/huge_mm.h | 2
include/linux/list.h | 50
include/linux/memory.h | 1
include/linux/memory_hotplug.h | 13
include/linux/memremap.h | 2
include/linux/mm.h | 25
include/linux/mm_inline.h | 15
include/linux/mm_types.h | 4
include/linux/mmzone.h | 47
include/linux/page-flags.h | 16
include/linux/page_reporting.h | 26
include/linux/pagemap.h | 4
include/linux/percpu_counter.h | 4
include/linux/proc_fs.h | 17
include/linux/sched.h | 3
include/linux/seq_file.h | 1
include/linux/shmem_fs.h | 10
include/linux/stackdepot.h | 2
include/linux/swapops.h | 5
include/linux/userfaultfd_k.h | 42
include/linux/vm_event_item.h | 5
include/trace/events/huge_memory.h | 1
include/trace/events/mmflags.h | 1
include/trace/events/vmscan.h | 2
include/uapi/linux/userfaultfd.h | 40
include/uapi/linux/virtio_balloon.h | 1
init/Kconfig | 8
ipc/mqueue.c | 5
ipc/shm.c | 2
ipc/util.c | 1
kernel/configs/tiny.config | 1
kernel/events/core.c | 3
kernel/extable.c | 3
kernel/fork.c | 10
kernel/gcov/fs.c | 2
kernel/gcov/gcc_3_4.c | 6
kernel/gcov/gcc_4_7.c | 2
kernel/kallsyms.c | 2
kernel/kcov.c | 282 +++-
kernel/kmod.c | 2
kernel/module.c | 1
kernel/sched/fair.c | 2
lib/Kconfig.debug | 35
lib/Kconfig.ubsan | 51
lib/Makefile | 8
lib/bch.c | 2
lib/dynamic_debug.c | 2
lib/rbtree.c | 4
lib/scatterlist.c | 2
lib/stackdepot.c | 39
lib/test_bitmap.c | 2
lib/test_kmod.c | 2
lib/test_lockup.c | 601 +++++++++-
lib/test_stackinit.c | 28
lib/ts_bm.c | 2
lib/ts_fsm.c | 2
lib/ts_kmp.c | 2
lib/ubsan.c | 47
mm/Kconfig | 135 ++
mm/Makefile | 1
mm/compaction.c | 3
mm/dmapool.c | 4
mm/filemap.c | 14
mm/gup.c | 9
mm/huge_memory.c | 36
mm/hugetlb.c | 1
mm/hugetlb_cgroup.c | 6
mm/internal.h | 2
mm/kasan/common.c | 23
mm/kasan/report.c | 10
mm/khugepaged.c | 39
mm/ksm.c | 5
mm/list_lru.c | 2
mm/memcontrol.c