From: Andrew Morton <akpm@linux-foundation.org>
To: akpm@linux-foundation.org, andreyknvl@google.com,
aryabinin@virtuozzo.com, Branislav.Rankov@arm.com,
catalin.marinas@arm.com, dvyukov@google.com, elver@google.com,
eugenis@google.com, glider@google.com, kevin.brodsky@arm.com,
linux-mm@kvack.org, mm-commits@vger.kernel.org, pcc@google.com,
torvalds@linux-foundation.org, vincenzo.frascino@arm.com,
will.deacon@arm.com
Subject: [patch 091/173] kasan, arm64: allow using KUnit tests with HW_TAGS mode
Date: Wed, 24 Feb 2021 12:05:26 -0800 [thread overview]
Message-ID: <20210224200526.338HIq6nE%akpm@linux-foundation.org> (raw)
In-Reply-To: <20210224115824.1e289a6895087f10c41dd8d6@linux-foundation.org>
From: Andrey Konovalov <andreyknvl@google.com>
Subject: kasan, arm64: allow using KUnit tests with HW_TAGS mode
On a high level, this patch allows running KUnit KASAN tests with the
hardware tag-based KASAN mode.
Internally, this change reenables tag checking at the end of each KASAN
test that triggers a tag fault and leads to tag checking being disabled.
Also simplify is_write calculation in report_tag_fault.
With this patch KASAN tests are still failing for the hardware tag-based
mode; fixes come in the next few patches.
[andreyknvl@google.com: export HW_TAGS symbols for KUnit tests]
Link: https://lkml.kernel.org/r/e7eeb252da408b08f0c81b950a55fb852f92000b.1613155970.git.andreyknvl@google.com
Link: https://linux-review.googlesource.com/id/Id94dc9eccd33b23cda4950be408c27f879e474c8
Link: https://lkml.kernel.org/r/51b23112cf3fd62b8f8e9df81026fa2b15870501.1610733117.git.andreyknvl@google.com
Signed-off-by: Andrey Konovalov <andreyknvl@google.com>
Reviewed-by: Catalin Marinas <catalin.marinas@arm.com>
Reviewed-by: Vincenzo Frascino <vincenzo.frascino@arm.com>
Cc: Alexander Potapenko <glider@google.com>
Cc: Andrey Ryabinin <aryabinin@virtuozzo.com>
Cc: Branislav Rankov <Branislav.Rankov@arm.com>
Cc: Dmitry Vyukov <dvyukov@google.com>
Cc: Evgenii Stepanov <eugenis@google.com>
Cc: Kevin Brodsky <kevin.brodsky@arm.com>
Cc: Marco Elver <elver@google.com>
Cc: Peter Collingbourne <pcc@google.com>
Cc: Will Deacon <will.deacon@arm.com>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
---
arch/arm64/include/asm/memory.h | 1
arch/arm64/include/asm/mte-kasan.h | 12 +++++++
arch/arm64/kernel/mte.c | 12 +++++++
arch/arm64/mm/fault.c | 20 +++++++++---
lib/Kconfig.kasan | 4 +-
lib/test_kasan.c | 42 ++++++++++++++++++---------
mm/kasan/hw_tags.c | 16 ++++++++++
mm/kasan/kasan.h | 21 +++++++++++++
8 files changed, 107 insertions(+), 21 deletions(-)
--- a/arch/arm64/include/asm/memory.h~kasan-arm64-allow-using-kunit-tests-with-hw_tags-mode
+++ a/arch/arm64/include/asm/memory.h
@@ -244,6 +244,7 @@ static inline const void *__tag_set(cons
#ifdef CONFIG_KASAN_HW_TAGS
#define arch_enable_tagging() mte_enable_kernel()
+#define arch_set_tagging_report_once(state) mte_set_report_once(state)
#define arch_init_tags(max_tag) mte_init_tags(max_tag)
#define arch_get_random_tag() mte_get_random_tag()
#define arch_get_mem_tag(addr) mte_get_mem_tag(addr)
--- a/arch/arm64/include/asm/mte-kasan.h~kasan-arm64-allow-using-kunit-tests-with-hw_tags-mode
+++ a/arch/arm64/include/asm/mte-kasan.h
@@ -32,6 +32,9 @@ void *mte_set_mem_tag_range(void *addr,
void mte_enable_kernel(void);
void mte_init_tags(u64 max_tag);
+void mte_set_report_once(bool state);
+bool mte_report_once(void);
+
#else /* CONFIG_ARM64_MTE */
static inline u8 mte_get_ptr_tag(void *ptr)
@@ -60,6 +63,15 @@ static inline void mte_init_tags(u64 max
{
}
+static inline void mte_set_report_once(bool state)
+{
+}
+
+static inline bool mte_report_once(void)
+{
+ return false;
+}
+
#endif /* CONFIG_ARM64_MTE */
#endif /* __ASSEMBLY__ */
--- a/arch/arm64/kernel/mte.c~kasan-arm64-allow-using-kunit-tests-with-hw_tags-mode
+++ a/arch/arm64/kernel/mte.c
@@ -25,6 +25,8 @@
u64 gcr_kernel_excl __ro_after_init;
+static bool report_fault_once = true;
+
static void mte_sync_page_tags(struct page *page, pte_t *ptep, bool check_swap)
{
pte_t old_pte = READ_ONCE(*ptep);
@@ -158,6 +160,16 @@ void mte_enable_kernel(void)
isb();
}
+void mte_set_report_once(bool state)
+{
+ WRITE_ONCE(report_fault_once, state);
+}
+
+bool mte_report_once(void)
+{
+ return READ_ONCE(report_fault_once);
+}
+
static void update_sctlr_el1_tcf0(u64 tcf0)
{
/* ISB required for the kernel uaccess routines */
--- a/arch/arm64/mm/fault.c~kasan-arm64-allow-using-kunit-tests-with-hw_tags-mode
+++ a/arch/arm64/mm/fault.c
@@ -302,12 +302,24 @@ static void die_kernel_fault(const char
static void report_tag_fault(unsigned long addr, unsigned int esr,
struct pt_regs *regs)
{
- bool is_write = ((esr & ESR_ELx_WNR) >> ESR_ELx_WNR_SHIFT) != 0;
+ static bool reported;
+ bool is_write;
+
+ if (READ_ONCE(reported))
+ return;
+
+ /*
+ * This is used for KASAN tests and assumes that no MTE faults
+ * happened before running the tests.
+ */
+ if (mte_report_once())
+ WRITE_ONCE(reported, true);
/*
* SAS bits aren't set for all faults reported in EL1, so we can't
* find out access size.
*/
+ is_write = !!(esr & ESR_ELx_WNR);
kasan_report(addr, 0, is_write, regs->pc);
}
#else
@@ -319,12 +331,8 @@ static inline void report_tag_fault(unsi
static void do_tag_recovery(unsigned long addr, unsigned int esr,
struct pt_regs *regs)
{
- static bool reported;
- if (!READ_ONCE(reported)) {
- report_tag_fault(addr, esr, regs);
- WRITE_ONCE(reported, true);
- }
+ report_tag_fault(addr, esr, regs);
/*
* Disable MTE Tag Checking on the local CPU for the current EL.
--- a/lib/Kconfig.kasan~kasan-arm64-allow-using-kunit-tests-with-hw_tags-mode
+++ a/lib/Kconfig.kasan
@@ -190,11 +190,11 @@ config KASAN_KUNIT_TEST
kernel debugging features like KASAN.
For more information on KUnit and unit tests in general, please refer
- to the KUnit documentation in Documentation/dev-tools/kunit
+ to the KUnit documentation in Documentation/dev-tools/kunit.
config TEST_KASAN_MODULE
tristate "KUnit-incompatible tests of KASAN bug detection capabilities"
- depends on m && KASAN
+ depends on m && KASAN && !KASAN_HW_TAGS
help
This is a part of the KASAN test suite that is incompatible with
KUnit. Currently includes tests that do bad copy_from/to_user
--- a/lib/test_kasan.c~kasan-arm64-allow-using-kunit-tests-with-hw_tags-mode
+++ a/lib/test_kasan.c
@@ -41,16 +41,20 @@ static bool multishot;
/*
* Temporarily enable multi-shot mode. Otherwise, KASAN would only report the
- * first detected bug and panic the kernel if panic_on_warn is enabled.
+ * first detected bug and panic the kernel if panic_on_warn is enabled. For
+ * hardware tag-based KASAN also allow tag checking to be reenabled for each
+ * test, see the comment for KUNIT_EXPECT_KASAN_FAIL().
*/
static int kasan_test_init(struct kunit *test)
{
multishot = kasan_save_enable_multi_shot();
+ kasan_set_tagging_report_once(false);
return 0;
}
static void kasan_test_exit(struct kunit *test)
{
+ kasan_set_tagging_report_once(true);
kasan_restore_multi_shot(multishot);
}
@@ -59,19 +63,31 @@ static void kasan_test_exit(struct kunit
* KASAN report; causes a test failure otherwise. This relies on a KUnit
* resource named "kasan_data". Do not use this name for KUnit resources
* outside of KASAN tests.
+ *
+ * For hardware tag-based KASAN, when a tag fault happens, tag checking is
+ * normally auto-disabled. When this happens, this test handler reenables
+ * tag checking. As tag checking can be only disabled or enabled per CPU, this
+ * handler disables migration (preemption).
*/
-#define KUNIT_EXPECT_KASAN_FAIL(test, expression) do { \
- fail_data.report_expected = true; \
- fail_data.report_found = false; \
- kunit_add_named_resource(test, \
- NULL, \
- NULL, \
- &resource, \
- "kasan_data", &fail_data); \
- expression; \
- KUNIT_EXPECT_EQ(test, \
- fail_data.report_expected, \
- fail_data.report_found); \
+#define KUNIT_EXPECT_KASAN_FAIL(test, expression) do { \
+ if (IS_ENABLED(CONFIG_KASAN_HW_TAGS)) \
+ migrate_disable(); \
+ fail_data.report_expected = true; \
+ fail_data.report_found = false; \
+ kunit_add_named_resource(test, \
+ NULL, \
+ NULL, \
+ &resource, \
+ "kasan_data", &fail_data); \
+ expression; \
+ KUNIT_EXPECT_EQ(test, \
+ fail_data.report_expected, \
+ fail_data.report_found); \
+ if (IS_ENABLED(CONFIG_KASAN_HW_TAGS)) { \
+ if (fail_data.report_found) \
+ kasan_enable_tagging(); \
+ migrate_enable(); \
+ } \
} while (0)
#define KASAN_TEST_NEEDS_CONFIG_ON(test, config) do { \
--- a/mm/kasan/hw_tags.c~kasan-arm64-allow-using-kunit-tests-with-hw_tags-mode
+++ a/mm/kasan/hw_tags.c
@@ -185,3 +185,19 @@ struct kasan_track *kasan_get_free_track
return &alloc_meta->free_track[0];
}
+
+#if IS_ENABLED(CONFIG_KASAN_KUNIT_TEST)
+
+void kasan_set_tagging_report_once(bool state)
+{
+ hw_set_tagging_report_once(state);
+}
+EXPORT_SYMBOL_GPL(kasan_set_tagging_report_once);
+
+void kasan_enable_tagging(void)
+{
+ hw_enable_tagging();
+}
+EXPORT_SYMBOL_GPL(kasan_enable_tagging);
+
+#endif
--- a/mm/kasan/kasan.h~kasan-arm64-allow-using-kunit-tests-with-hw_tags-mode
+++ a/mm/kasan/kasan.h
@@ -280,6 +280,9 @@ static inline const void *arch_kasan_set
#ifndef arch_init_tags
#define arch_init_tags(max_tag)
#endif
+#ifndef arch_set_tagging_report_once
+#define arch_set_tagging_report_once(state)
+#endif
#ifndef arch_get_random_tag
#define arch_get_random_tag() (0xFF)
#endif
@@ -292,12 +295,30 @@ static inline const void *arch_kasan_set
#define hw_enable_tagging() arch_enable_tagging()
#define hw_init_tags(max_tag) arch_init_tags(max_tag)
+#define hw_set_tagging_report_once(state) arch_set_tagging_report_once(state)
#define hw_get_random_tag() arch_get_random_tag()
#define hw_get_mem_tag(addr) arch_get_mem_tag(addr)
#define hw_set_mem_tag_range(addr, size, tag) arch_set_mem_tag_range((addr), (size), (tag))
+#else /* CONFIG_KASAN_HW_TAGS */
+
+#define hw_enable_tagging()
+#define hw_set_tagging_report_once(state)
+
#endif /* CONFIG_KASAN_HW_TAGS */
+#if defined(CONFIG_KASAN_HW_TAGS) && IS_ENABLED(CONFIG_KASAN_KUNIT_TEST)
+
+void kasan_set_tagging_report_once(bool state);
+void kasan_enable_tagging(void);
+
+#else /* CONFIG_KASAN_HW_TAGS || CONFIG_KASAN_KUNIT_TEST */
+
+static inline void kasan_set_tagging_report_once(bool state) { }
+static inline void kasan_enable_tagging(void) { }
+
+#endif /* CONFIG_KASAN_HW_TAGS || CONFIG_KASAN_KUNIT_TEST */
+
#ifdef CONFIG_KASAN_SW_TAGS
u8 kasan_random_tag(void);
#elif defined(CONFIG_KASAN_HW_TAGS)
_
next prev parent reply other threads:[~2021-02-24 20:05 UTC|newest]
Thread overview: 197+ messages / expand[flat|nested] mbox.gz Atom feed top
2021-02-24 19:58 incoming Andrew Morton
2021-02-24 20:00 ` [patch 001/173] hexagon: remove CONFIG_EXPERIMENTAL from defconfigs Andrew Morton
2021-02-24 20:00 ` [patch 002/173] scripts/spelling.txt: increase error-prone spell checking Andrew Morton
2021-02-24 20:00 ` [patch 003/173] scripts/spelling.txt: check for "exeeds" Andrew Morton
2021-02-24 20:00 ` [patch 004/173] scripts/spelling.txt: add "allocted" and "exeeds" typo Andrew Morton
2021-02-24 20:00 ` [patch 005/173] scripts/spelling.txt: add more spellings to spelling.txt Andrew Morton
2021-02-24 20:00 ` [patch 006/173] ntfs: layout.h: delete duplicated words Andrew Morton
2021-02-24 20:00 ` [patch 007/173] ntfs: check for valid standard information attribute Andrew Morton
2021-02-24 20:00 ` [patch 008/173] ocfs2: remove redundant conditional before iput Andrew Morton
2021-02-24 20:00 ` [patch 009/173] ocfs2: clean up some definitions which are not used any more Andrew Morton
2021-02-24 20:00 ` [patch 010/173] ocfs2: fix a use after free on error Andrew Morton
2021-02-24 20:00 ` [patch 011/173] ocfs2: simplify the calculation of variables Andrew Morton
2021-02-24 20:00 ` [patch 012/173] fs: delete repeated words in comments Andrew Morton
2021-02-24 20:00 ` [patch 013/173] ramfs: support O_TMPFILE Andrew Morton
2021-02-24 20:21 ` Christian Brauner
2021-02-24 20:00 ` [patch 014/173] mm, tracing: record slab name for kmem_cache_free() Andrew Morton
2021-02-25 1:37 ` Steven Rostedt
2021-02-25 1:51 ` Linus Torvalds
2021-02-25 1:52 ` Linus Torvalds
2021-02-25 2:03 ` Steven Rostedt
2021-02-25 7:06 ` Jacob Wen
2021-02-25 14:25 ` Steven Rostedt
2021-02-25 2:07 ` Steven Rostedt
2021-02-25 7:07 ` Jacob Wen
2021-02-25 14:31 ` Steven Rostedt
2021-02-25 17:49 ` Linus Torvalds
2021-02-25 17:57 ` Steven Rostedt
2021-02-25 21:48 ` Steven Rostedt
2021-02-26 15:54 ` Steven Rostedt
2021-02-26 2:02 ` Jacob Wen
2021-02-26 2:56 ` Steven Rostedt
2021-02-26 3:48 ` Jacob Wen
2021-02-26 14:15 ` Steven Rostedt
2021-02-24 20:00 ` [patch 015/173] mm/sl?b.c: remove ctor argument from kmem_cache_flags Andrew Morton
2021-02-24 20:01 ` [patch 016/173] mm/slab: minor coding style tweaks Andrew Morton
2021-02-24 20:01 ` [patch 017/173] mm/slub: disable user tracing for kmemleak caches by default Andrew Morton
2021-02-24 20:01 ` [patch 018/173] mm, slub: stop freeing kmem_cache_node structures on node offline Andrew Morton
2021-02-24 20:01 ` [patch 019/173] mm, slab, slub: stop taking memory hotplug lock Andrew Morton
2021-02-24 20:01 ` [patch 020/173] mm, slab, slub: stop taking cpu " Andrew Morton
2021-02-24 20:01 ` [patch 021/173] mm, slub: splice cpu and page freelists in deactivate_slab() Andrew Morton
2021-02-24 20:01 ` [patch 022/173] mm, slub: remove slub_memcg_sysfs boot param and CONFIG_SLUB_MEMCG_SYSFS_ON Andrew Morton
2021-02-24 20:01 ` [patch 023/173] mm/slub: minor coding style tweaks Andrew Morton
2021-02-24 20:01 ` [patch 024/173] mm/debug: improve memcg debugging Andrew Morton
2021-02-24 20:01 ` [patch 025/173] mm/debug_vm_pgtable/basic: add validation for dirtiness after write protect Andrew Morton
2021-02-24 20:01 ` [patch 026/173] mm/debug_vm_pgtable/basic: iterate over entire protection_map[] Andrew Morton
2021-02-24 20:01 ` [patch 027/173] mm/page_owner: use helper function zone_end_pfn() to get end_pfn Andrew Morton
2021-02-24 20:01 ` [patch 028/173] mm/filemap: remove unused parameter and change to void type for replace_page_cache_page() Andrew Morton
2021-02-24 20:01 ` [patch 029/173] mm/filemap: don't revert iter on -EIOCBQUEUED Andrew Morton
2021-02-24 20:01 ` [patch 030/173] mm/filemap: rename generic_file_buffered_read subfunctions Andrew Morton
2021-02-24 20:01 ` [patch 031/173] mm/filemap: remove dynamically allocated array from filemap_read Andrew Morton
2021-02-24 20:01 ` [patch 032/173] mm/filemap: convert filemap_get_pages to take a pagevec Andrew Morton
2021-02-24 20:01 ` [patch 033/173] mm/filemap: use head pages in generic_file_buffered_read Andrew Morton
2021-02-24 20:02 ` [patch 034/173] mm/filemap: pass a sleep state to put_and_wait_on_page_locked Andrew Morton
2021-02-24 20:02 ` [patch 035/173] mm/filemap: support readpage splitting a page Andrew Morton
2021-02-24 20:02 ` [patch 036/173] mm/filemap: inline __wait_on_page_locked_async into caller Andrew Morton
2021-02-24 20:02 ` [patch 037/173] mm/filemap: don't call ->readpage if IOCB_WAITQ is set Andrew Morton
2021-02-24 20:02 ` [patch 038/173] mm/filemap: change filemap_read_page calling conventions Andrew Morton
2021-02-24 20:02 ` [patch 039/173] mm/filemap: change filemap_create_page " Andrew Morton
2021-02-24 20:02 ` [patch 040/173] mm/filemap: convert filemap_update_page to return an errno Andrew Morton
2021-02-24 20:02 ` [patch 041/173] mm/filemap: move the iocb checks into filemap_update_page Andrew Morton
2021-02-24 20:02 ` [patch 042/173] mm/filemap: add filemap_range_uptodate Andrew Morton
2021-02-24 20:02 ` [patch 043/173] mm/filemap: split filemap_readahead out of filemap_get_pages Andrew Morton
2021-02-24 20:02 ` [patch 044/173] mm/filemap: restructure filemap_get_pages Andrew Morton
2021-02-24 20:02 ` [patch 045/173] mm/filemap: don't relock the page after calling readpage Andrew Morton
2021-02-24 20:02 ` [patch 046/173] mm/filemap: rename generic_file_buffered_read to filemap_read Andrew Morton
2021-02-24 20:02 ` [patch 047/173] mm/filemap: simplify generic_file_read_iter Andrew Morton
2021-02-24 20:02 ` [patch 048/173] fs/buffer.c: add checking buffer head stat before clear Andrew Morton
2021-02-24 20:02 ` [patch 049/173] mm: backing-dev: Remove duplicated macro definition Andrew Morton
2021-02-24 20:02 ` [patch 050/173] mm/swap_slots.c: remove redundant NULL check Andrew Morton
2021-02-24 20:02 ` [patch 051/173] mm/swapfile.c: fix debugging information problem Andrew Morton
2021-02-24 20:03 ` [patch 052/173] mm/page_io: use pr_alert_ratelimited for swap read/write errors Andrew Morton
2021-02-24 20:03 ` [patch 053/173] mm/swap_state: constify static struct attribute_group Andrew Morton
2021-02-24 20:03 ` [patch 054/173] mm/swap: don't SetPageWorkingset unconditionally during swapin Andrew Morton
2021-02-24 20:03 ` [patch 055/173] mm: memcg/slab: pre-allocate obj_cgroups for slab caches with SLAB_ACCOUNT Andrew Morton
2021-02-24 20:03 ` [patch 056/173] mm: memcontrol: optimize per-lruvec stats counter memory usage Andrew Morton
2021-02-24 20:03 ` [patch 057/173] mm: memcontrol: fix NR_ANON_THPS accounting in charge moving Andrew Morton
2021-02-24 20:03 ` [patch 058/173] mm: memcontrol: convert NR_ANON_THPS account to pages Andrew Morton
2021-02-24 20:03 ` [patch 059/173] mm: memcontrol: convert NR_FILE_THPS " Andrew Morton
2021-02-24 20:03 ` [patch 060/173] mm: memcontrol: convert NR_SHMEM_THPS " Andrew Morton
2021-02-24 20:03 ` [patch 061/173] mm: memcontrol: convert NR_SHMEM_PMDMAPPED " Andrew Morton
2021-02-24 20:03 ` [patch 062/173] mm: memcontrol: convert NR_FILE_PMDMAPPED " Andrew Morton
2021-02-24 20:03 ` [patch 063/173] mm: memcontrol: make the slab calculation consistent Andrew Morton
2021-02-24 20:03 ` [patch 064/173] mm/memcg: revise the using condition of lock_page_lruvec function series Andrew Morton
2021-02-24 20:03 ` [patch 065/173] mm/memcg: remove rcu locking for " Andrew Morton
2021-02-24 20:03 ` [patch 066/173] mm: memcg: add swapcache stat for memcg v2 Andrew Morton
2021-02-24 20:03 ` [patch 067/173] mm: kmem: make __memcg_kmem_(un)charge static Andrew Morton
2021-02-24 20:04 ` [patch 068/173] mm: page_counter: re-layout structure to reduce false sharing Andrew Morton
2021-02-24 20:04 ` [patch 069/173] mm/memcontrol: remove redundant NULL check Andrew Morton
2021-02-24 20:04 ` [patch 070/173] mm: memcontrol: replace the loop with a list_for_each_entry() Andrew Morton
2021-02-24 20:04 ` [patch 071/173] mm/list_lru.c: remove kvfree_rcu_local() Andrew Morton
2021-02-24 20:04 ` [patch 072/173] fs: buffer: use raw page_memcg() on locked page Andrew Morton
2021-02-24 20:04 ` [patch 073/173] mm: memcontrol: fix swap undercounting in cgroup2 Andrew Morton
2021-02-24 20:04 ` [patch 074/173] mm: memcontrol: fix get_active_memcg return value Andrew Morton
2021-02-24 20:04 ` [patch 075/173] mm: memcontrol: fix slub memory accounting Andrew Morton
2021-02-24 20:04 ` [patch 076/173] mm/mmap.c: remove unnecessary local variable Andrew Morton
2021-02-24 20:04 ` [patch 077/173] mm/memory.c: fix potential pte_unmap_unlock pte error Andrew Morton
2021-02-24 20:04 ` [patch 078/173] mm/pgtable-generic.c: simplify the VM_BUG_ON condition in pmdp_huge_clear_flush() Andrew Morton
2021-02-24 20:04 ` [patch 079/173] mm/pgtable-generic.c: optimize " Andrew Morton
2021-02-24 20:04 ` [patch 080/173] mm/memory.c: fix potential pte_unmap_unlock pte error Andrew Morton
2021-02-24 20:04 ` [patch 081/173] mm/mprotect.c: optimize error detection in do_mprotect_pkey() Andrew Morton
2021-02-24 20:04 ` [patch 082/173] mm: rmap: explicitly reset vma->anon_vma in unlink_anon_vmas() Andrew Morton
2021-02-24 20:04 ` [patch 083/173] mm: mremap: unlink anon_vmas when mremap with MREMAP_DONTUNMAP success Andrew Morton
2021-02-24 20:04 ` [patch 084/173] mm/page_reporting: use list_entry_is_head() in page_reporting_cycle() Andrew Morton
2021-02-24 20:05 ` [patch 085/173] vmalloc: remove redundant NULL check Andrew Morton
2021-02-24 20:05 ` [patch 086/173] kasan: prefix global functions with kasan_ Andrew Morton
2021-02-24 20:05 ` [patch 087/173] kasan: clarify HW_TAGS impact on TBI Andrew Morton
2021-02-24 20:05 ` [patch 088/173] kasan: clean up comments in tests Andrew Morton
2021-02-24 20:05 ` [patch 089/173] kasan: add macros to simplify checking test constraints Andrew Morton
2021-02-24 20:05 ` [patch 090/173] kasan: add match-all tag tests Andrew Morton
2021-02-24 20:05 ` Andrew Morton [this message]
2021-02-24 20:05 ` [patch 092/173] kasan: rename CONFIG_TEST_KASAN_MODULE Andrew Morton
2021-02-24 20:05 ` [patch 093/173] kasan: add compiler barriers to KUNIT_EXPECT_KASAN_FAIL Andrew Morton
2021-02-24 20:05 ` [patch 094/173] kasan: adapt kmalloc_uaf2 test to HW_TAGS mode Andrew Morton
2021-02-24 20:05 ` [patch 095/173] kasan: fix memory corruption in kasan_bitops_tags test Andrew Morton
2021-02-24 20:05 ` [patch 096/173] kasan: move _RET_IP_ to inline wrappers Andrew Morton
2021-02-24 20:05 ` [patch 097/173] kasan: fix bug detection via ksize for HW_TAGS mode Andrew Morton
2021-02-24 20:05 ` [patch 098/173] kasan: add proper page allocator tests Andrew Morton
2021-02-24 20:05 ` [patch 099/173] kasan: add a test for kmem_cache_alloc/free_bulk Andrew Morton
2021-02-24 20:06 ` [patch 100/173] kasan: don't run tests when KASAN is not enabled Andrew Morton
2021-02-24 20:06 ` [patch 101/173] kasan: remove redundant config option Andrew Morton
2021-02-24 20:06 ` [patch 102/173] mm: fix prototype warning from kernel test robot Andrew Morton
2021-02-24 20:06 ` [patch 103/173] mm: rename memmap_init() and memmap_init_zone() Andrew Morton
2021-02-24 20:06 ` [patch 104/173] mm: simplify parater of function memmap_init_zone() Andrew Morton
2021-02-24 20:06 ` [patch 105/173] mm: simplify parameter of setup_usemap() Andrew Morton
2021-02-24 20:06 ` [patch 106/173] mm: remove unneeded local variable in free_area_init_core Andrew Morton
2021-02-24 20:06 ` [patch 107/173] video: fbdev: acornfb: remove free_unused_pages() Andrew Morton
2021-02-24 20:06 ` [patch 108/173] mm: simplify free_highmem_page() and free_reserved_page() Andrew Morton
2021-02-24 20:06 ` [patch 109/173] mm/gfp: add kernel-doc for gfp_t Andrew Morton
2021-02-24 20:06 ` [patch 110/173] mm,hwpoison: send SIGBUS to PF_MCE_EARLY processes on action required events Andrew Morton
2021-02-24 20:06 ` [patch 111/173] mm/huge_memory.c: update tlb entry if pmd is changed Andrew Morton
2021-02-24 20:06 ` [patch 112/173] MIPS: do not call flush_tlb_all when setting pmd entry Andrew Morton
2021-02-24 20:06 ` [patch 113/173] mm/hugetlb: fix potential double free in hugetlb_register_node() error path Andrew Morton
2021-02-24 20:06 ` [patch 114/173] mm/hugetlb.c: fix unnecessary address expansion of pmd sharing Andrew Morton
2021-02-24 20:06 ` [patch 115/173] mm/hugetlb: avoid unnecessary hugetlb_acct_memory() call Andrew Morton
2021-02-24 20:07 ` [patch 116/173] mm/hugetlb: use helper huge_page_order and pages_per_huge_page Andrew Morton
2021-02-24 20:07 ` [patch 117/173] mm/hugetlb: fix use after free when subpool max_hpages accounting is not enabled Andrew Morton
2021-02-24 20:07 ` [patch 118/173] mm/hugetlb: simplify the calculation of variables Andrew Morton
2021-02-24 20:07 ` [patch 119/173] mm/hugetlb: grab head page refcount once for group of subpages Andrew Morton
2021-02-24 20:07 ` [patch 120/173] mm/hugetlb: refactor subpage recording Andrew Morton
2021-02-24 20:07 ` [patch 121/173] mm/hugetlb: fix some comment typos Andrew Morton
2021-02-24 20:07 ` [patch 122/173] mm/hugetlb: remove redundant check in preparing and destroying gigantic page Andrew Morton
2021-02-24 20:07 ` [patch 123/173] mm/hugetlb.c: fix typos in comments Andrew Morton
2021-02-24 20:07 ` [patch 124/173] mm/huge_memory.c: remove unused return value of set_huge_zero_page() Andrew Morton
2021-02-24 20:07 ` [patch 125/173] mm/pmem: avoid inserting hugepage PTE entry with fsdax if hugepage support is disabled Andrew Morton
2021-02-24 20:07 ` [patch 126/173] hugetlb_cgroup: use helper pages_per_huge_page() in hugetlb_cgroup Andrew Morton
2021-02-24 20:07 ` [patch 127/173] mm/hugetlb: use helper function range_in_vma() in page_table_shareable() Andrew Morton
2021-02-24 20:07 ` [patch 128/173] mm/hugetlb: remove unnecessary VM_BUG_ON_PAGE on putback_active_hugepage() Andrew Morton
2021-02-24 20:07 ` [patch 129/173] mm/hugetlb: use helper huge_page_size() to get hugepage size Andrew Morton
2021-02-24 20:07 ` [patch 130/173] hugetlb: fix update_and_free_page contig page struct assumption Andrew Morton
2021-02-24 20:07 ` [patch 131/173] hugetlb: fix copy_huge_page_from_user " Andrew Morton
2021-02-24 20:07 ` [patch 132/173] mm/hugetlb: suppress wrong warning info when alloc gigantic page Andrew Morton
2021-02-24 20:08 ` [patch 133/173] mm/vmscan: __isolate_lru_page_prepare() cleanup Andrew Morton
2021-02-24 20:08 ` [patch 134/173] mm/workingset.c: avoid unnecessary max_nodes estimation in count_shadow_nodes() Andrew Morton
2021-02-24 20:08 ` [patch 135/173] mm/vmscan.c: use add_page_to_lru_list() Andrew Morton
2021-02-24 20:08 ` [patch 136/173] include/linux/mm_inline.h: shuffle lru list addition and deletion functions Andrew Morton
2021-02-24 20:08 ` [patch 137/173] mm: don't pass "enum lru_list" to lru list addition functions Andrew Morton
2021-02-24 20:08 ` [patch 138/173] mm/swap.c: don't pass "enum lru_list" to trace_mm_lru_insertion() Andrew Morton
2021-02-24 20:08 ` [patch 139/173] mm/swap.c: don't pass "enum lru_list" to del_page_from_lru_list() Andrew Morton
2021-02-24 20:08 ` [patch 140/173] mm: add __clear_page_lru_flags() to replace page_off_lru() Andrew Morton
2021-02-24 20:08 ` [patch 141/173] mm: VM_BUG_ON lru page flags Andrew Morton
2021-02-24 20:08 ` [patch 142/173] include/linux/mm_inline.h: fold page_lru_base_type() into its sole caller Andrew Morton
2021-02-24 20:08 ` [patch 143/173] include/linux/mm_inline.h: fold __update_lru_size() " Andrew Morton
2021-02-24 20:08 ` [patch 144/173] mm/vmscan.c: make lruvec_lru_size() static Andrew Morton
2021-02-24 20:08 ` [patch 145/173] mm: workingset: clarify eviction order and distance calculation Andrew Morton
2021-02-24 20:08 ` [patch 146/173] hugetlb: use page.private for hugetlb specific page flags Andrew Morton
2021-02-24 20:08 ` [patch 147/173] hugetlb: convert page_huge_active() HPageMigratable flag Andrew Morton
2021-02-24 20:09 ` [patch 148/173] hugetlb: convert PageHugeTemporary() to HPageTemporary flag Andrew Morton
2021-02-24 20:09 ` [patch 149/173] hugetlb: convert PageHugeFreed to HPageFreed flag Andrew Morton
2021-02-24 20:09 ` [patch 150/173] include/linux/hugetlb.h: add synchronization information for new hugetlb specific flags Andrew Morton
2021-02-24 20:09 ` [patch 151/173] hugetlb: fix uninitialized subpool pointer Andrew Morton
2021-02-24 20:09 ` [patch 152/173] mm/vmscan: restore zone_reclaim_mode ABI Andrew Morton
2021-02-24 20:09 ` [patch 153/173] z3fold: remove unused attribute for release_z3fold_page Andrew Morton
2021-02-24 20:09 ` [patch 154/173] z3fold: simplify the zhdr initialization code in init_z3fold_page() Andrew Morton
2021-02-24 20:09 ` [patch 155/173] mm/compaction: remove rcu_read_lock during page compaction Andrew Morton
2021-02-24 20:09 ` [patch 156/173] mm/compaction: remove duplicated VM_BUG_ON_PAGE !PageLocked Andrew Morton
2021-02-24 20:09 ` [patch 157/173] mm/compaction: correct deferral logic for proactive compaction Andrew Morton
2021-02-24 20:09 ` [patch 158/173] mm/compaction: fix misbehaviors of fast_find_migrateblock() Andrew Morton
2021-02-24 20:09 ` [patch 159/173] mm, compaction: make fast_isolate_freepages() stay within zone Andrew Morton
2021-02-24 20:09 ` [patch 160/173] numa balancing: migrate on fault among multiple bound nodes Andrew Morton
2021-02-24 20:09 ` [patch 161/173] mm/mempolicy: use helper range_in_vma() in queue_pages_test_walk() Andrew Morton
2021-02-24 20:09 ` [patch 162/173] mm, oom: fix a comment in dump_task() Andrew Morton
2021-02-24 20:09 ` [patch 163/173] mm/hugetlb: change hugetlb_reserve_pages() to type bool Andrew Morton
2021-02-24 20:09 ` [patch 164/173] hugetlbfs: remove special hugetlbfs_set_page_dirty() Andrew Morton
2021-02-24 20:10 ` [patch 165/173] hugetlbfs: remove useless BUG_ON(!inode) in hugetlbfs_setattr() Andrew Morton
2021-02-24 20:10 ` [patch 166/173] hugetlbfs: use helper macro default_hstate in init_hugetlbfs_fs Andrew Morton
2021-02-24 20:10 ` [patch 167/173] hugetlbfs: correct obsolete function name in hugetlbfs_read_iter() Andrew Morton
2021-02-24 20:10 ` [patch 168/173] hugetlbfs: remove meaningless variable avoid_reserve Andrew Morton
2021-02-24 20:10 ` [patch 169/173] hugetlbfs: make hugepage size conversion more readable Andrew Morton
2021-02-24 20:10 ` [patch 170/173] hugetlbfs: correct some obsolete comments about inode i_mutex Andrew Morton
2021-02-24 20:10 ` [patch 171/173] hugetlbfs: fix some comment typos Andrew Morton
2021-02-24 20:10 ` [patch 172/173] hugetlbfs: remove unneeded return value of hugetlb_vmtruncate() Andrew Morton
2021-02-24 20:10 ` [patch 173/173] mm/migrate: remove unneeded semicolons Andrew Morton
2021-02-24 21:30 ` incoming Linus Torvalds
2021-02-24 21:37 ` incoming Linus Torvalds
2021-02-25 8:53 ` incoming Arnd Bergmann
2021-02-25 9:12 ` incoming Andrey Ryabinin
2021-02-25 11:07 ` incoming Walter Wu
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20210224200526.338HIq6nE%akpm@linux-foundation.org \
--to=akpm@linux-foundation.org \
--cc=Branislav.Rankov@arm.com \
--cc=andreyknvl@google.com \
--cc=aryabinin@virtuozzo.com \
--cc=catalin.marinas@arm.com \
--cc=dvyukov@google.com \
--cc=elver@google.com \
--cc=eugenis@google.com \
--cc=glider@google.com \
--cc=kevin.brodsky@arm.com \
--cc=linux-mm@kvack.org \
--cc=mm-commits@vger.kernel.org \
--cc=pcc@google.com \
--cc=torvalds@linux-foundation.org \
--cc=vincenzo.frascino@arm.com \
--cc=will.deacon@arm.com \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).