From: akpm@linux-foundation.org
To: akpm@linux-foundation.org, mm-commits@vger.kernel.org
Subject: [obsolete] linux-next-rejects.patch removed from -mm tree
Date: Wed, 16 Dec 2020 09:01:16 -0800 [thread overview]
Message-ID: <20201216170116.VxarP_fGi%akpm@linux-foundation.org> (raw)
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>
---
arch/riscv/Kconfig | 1
drivers/misc/lkdtm/Makefile | 1
lib/Makefile | 2
mm/highmem.c | 157 ++++++++++++++++++++++
tools/testing/selftests/lkdtm/tests.txt | 1
5 files changed, 162 insertions(+)
--- a/arch/riscv/Kconfig~linux-next-rejects
+++ a/arch/riscv/Kconfig
@@ -27,6 +27,7 @@ config RISCV
select ARCH_HAS_GIGANTIC_PAGE
select ARCH_HAS_KCOV
select ARCH_HAS_MMIOWB
+ select ARCH_STACKWALK
select ARCH_HAS_PTE_SPECIAL
select ARCH_HAS_SET_DIRECT_MAP
select ARCH_HAS_SET_MEMORY
--- a/drivers/misc/lkdtm/Makefile~linux-next-rejects
+++ a/drivers/misc/lkdtm/Makefile
@@ -11,6 +11,7 @@ lkdtm-$(CONFIG_LKDTM) += usercopy.o
lkdtm-$(CONFIG_LKDTM) += stackleak.o
lkdtm-$(CONFIG_LKDTM) += cfi.o
lkdtm-$(CONFIG_LKDTM) += fortify.o
+lkdtm-$(CONFIG_PPC_BOOK3S_64) += powerpc.o
KASAN_SANITIZE_rodata.o := n
KASAN_SANITIZE_stackleak.o := n
--- a/lib/Makefile~linux-next-rejects
+++ a/lib/Makefile
@@ -354,3 +354,5 @@ obj-$(CONFIG_BITS_TEST) += bits_kunit.o
obj-$(CONFIG_CMDLINE_KUNIT_TEST) += cmdline_kunit.o
obj-$(CONFIG_LINEAR_RANGES_TEST) += linear_ranges_kunit.o
obj-$(CONFIG_LIST_KUNIT_TEST) += list_kunit.o
+
+obj-$(CONFIG_GENERIC_LIB_DEVMEM_IS_ALLOWED) += devmem_is_allowed.o
--- a/mm/highmem.c~linux-next-rejects
+++ a/mm/highmem.c
@@ -420,6 +420,163 @@ EXPORT_SYMBOL(zero_user_segments);
#include <asm/kmap_size.h>
+static DEFINE_PER_CPU(int, __kmap_local_idx);
+
+/*
+ * With DEBUG_HIGHMEM the stack depth is doubled and every second
+ * slot is unused which acts as a guard page
+ */
+#ifdef CONFIG_DEBUG_HIGHMEM
+# define KM_INCR 2
+#else
+# define KM_INCR 1
+#endif
+
+static inline int kmap_local_idx_push(void)
+{
+ int idx = __this_cpu_add_return(__kmap_local_idx, KM_INCR) - 1;
+
+ WARN_ON_ONCE(in_irq() && !irqs_disabled());
+ BUG_ON(idx >= KM_MAX_IDX);
+ return idx;
+}
+
+static inline int kmap_local_idx(void)
+{
+ return __this_cpu_read(__kmap_local_idx) - 1;
+}
+
+static inline void kmap_local_idx_pop(void)
+{
+ int idx = __this_cpu_sub_return(__kmap_local_idx, KM_INCR);
+
+ BUG_ON(idx < 0);
+}
+
+#ifndef arch_kmap_local_post_map
+# define arch_kmap_local_post_map(vaddr, pteval) do { } while (0)
+#endif
+
+#ifndef arch_kmap_local_pre_unmap
+# define arch_kmap_local_pre_unmap(vaddr) do { } while (0)
+#endif
+
+#ifndef arch_kmap_local_post_unmap
+# define arch_kmap_local_post_unmap(vaddr) do { } while (0)
+#endif
+
+#ifndef arch_kmap_local_map_idx
+#define arch_kmap_local_map_idx(idx, pfn) kmap_local_calc_idx(idx)
+#endif
+
+#ifndef arch_kmap_local_unmap_idx
+#define arch_kmap_local_unmap_idx(idx, vaddr) kmap_local_calc_idx(idx)
+#endif
+
+#ifndef arch_kmap_local_high_get
+static inline void *arch_kmap_local_high_get(struct page *page)
+{
+ return NULL;
+}
+#endif
+
+/* Unmap a local mapping which was obtained by kmap_high_get() */
+static inline bool kmap_high_unmap_local(unsigned long vaddr)
+{
+#ifdef ARCH_NEEDS_KMAP_HIGH_GET
+ if (vaddr >= PKMAP_ADDR(0) && vaddr < PKMAP_ADDR(LAST_PKMAP)) {
+ kunmap_high(pte_page(pkmap_page_table[PKMAP_NR(vaddr)]));
+ return true;
+ }
+#endif
+ return false;
+}
+
+static inline int kmap_local_calc_idx(int idx)
+{
+ return idx + KM_MAX_IDX * smp_processor_id();
+}
+
+static pte_t *__kmap_pte;
+
+static pte_t *kmap_get_pte(void)
+{
+ if (!__kmap_pte)
+ __kmap_pte = virt_to_kpte(__fix_to_virt(FIX_KMAP_BEGIN));
+ return __kmap_pte;
+}
+
+void *__kmap_local_pfn_prot(unsigned long pfn, pgprot_t prot)
+{
+ pte_t pteval, *kmap_pte = kmap_get_pte();
+ unsigned long vaddr;
+ int idx;
+
+ preempt_disable();
+ idx = arch_kmap_local_map_idx(kmap_local_idx_push(), pfn);
+ vaddr = __fix_to_virt(FIX_KMAP_BEGIN + idx);
+ BUG_ON(!pte_none(*(kmap_pte - idx)));
+ pteval = pfn_pte(pfn, prot);
+ set_pte_at(&init_mm, vaddr, kmap_pte - idx, pteval);
+ arch_kmap_local_post_map(vaddr, pteval);
+ preempt_enable();
+
+ return (void *)vaddr;
+}
+EXPORT_SYMBOL_GPL(__kmap_local_pfn_prot);
+
+void *__kmap_local_page_prot(struct page *page, pgprot_t prot)
+{
+ void *kmap;
+
+ if (!PageHighMem(page))
+ return page_address(page);
+
+ /* Try kmap_high_get() if architecture has it enabled */
+ kmap = arch_kmap_local_high_get(page);
+ if (kmap)
+ return kmap;
+
+ return __kmap_local_pfn_prot(page_to_pfn(page), prot);
+}
+EXPORT_SYMBOL(__kmap_local_page_prot);
+
+void kunmap_local_indexed(void *vaddr)
+{
+ unsigned long addr = (unsigned long) vaddr & PAGE_MASK;
+ pte_t *kmap_pte = kmap_get_pte();
+ int idx;
+
+ if (addr < __fix_to_virt(FIX_KMAP_END) ||
+ addr > __fix_to_virt(FIX_KMAP_BEGIN)) {
+ /*
+ * Handle mappings which were obtained by kmap_high_get()
+ * first as the virtual address of such mappings is below
+ * PAGE_OFFSET. Warn for all other addresses which are in
+ * the user space part of the virtual address space.
+ */
+ if (!kmap_high_unmap_local(addr))
+ WARN_ON_ONCE(addr < PAGE_OFFSET);
+ return;
+ }
+
+ preempt_disable();
+ idx = arch_kmap_local_unmap_idx(kmap_local_idx(), addr);
+ WARN_ON_ONCE(addr != __fix_to_virt(FIX_KMAP_BEGIN + idx));
+
+ arch_kmap_local_pre_unmap(addr);
+ pte_clear(&init_mm, addr, kmap_pte - idx);
+ arch_kmap_local_post_unmap(addr);
+ kmap_local_idx_pop();
+ preempt_enable();
+}
+EXPORT_SYMBOL(kunmap_local_indexed);
+#endif
+
+#ifdef CONFIG_KMAP_LOCAL
+
+#include <asm/kmap_size.h>
+
/*
* With DEBUG_KMAP_LOCAL the stack depth is doubled and every second
* slot is unused which acts as a guard page
--- a/tools/testing/selftests/lkdtm/tests.txt~linux-next-rejects
+++ a/tools/testing/selftests/lkdtm/tests.txt
@@ -69,3 +69,4 @@ USERCOPY_KERNEL
STACKLEAK_ERASING OK: the rest of the thread stack is properly erased
CFI_FORWARD_PROTO
FORTIFIED_STRSCPY
+PPC_SLB_MULTIHIT Recovered
_
Patches currently in -mm which might be from akpm@linux-foundation.org are
mm.patch
mm-fix-initialization-of-struct-page-for-holes-in-memory-layout-checkpatch-fixes.patch
mm-vmstat-fix-proc-sys-vm-stat_refresh-generating-false-warnings-fix-2.patch
kmap-stupid-hacks-to-make-it-compile.patch
epoll-wire-up-syscall-epoll_pwait2-fix.patch
set_memory-allow-set_direct_map__noflush-for-multiple-pages-fix.patch
arch-mm-wire-up-memfd_secret-system-call-were-relevant-fix.patch
kernel-forkc-export-kernel_thread-to-modules.patch
next reply other threads:[~2020-12-16 17:02 UTC|newest]
Thread overview: 73+ messages / expand[flat|nested] mbox.gz Atom feed top
2020-12-16 17:01 akpm [this message]
-- strict thread matches above, loose matches on Subject: below --
2022-04-05 18:14 [obsolete] linux-next-rejects.patch removed from -mm tree Andrew Morton
2022-01-20 21:21 akpm
2021-11-04 1:47 akpm
2021-09-08 20:34 akpm
2021-07-06 19:07 akpm
2021-05-08 22:37 akpm
2021-03-20 3:07 akpm
2021-03-15 17:47 akpm
2021-03-09 4:05 akpm
2021-02-26 20:43 akpm
2020-12-23 18:26 akpm
2020-10-16 20:45 akpm
2020-08-18 22:35 akpm
2020-08-06 23:18 akpm
2020-06-10 0:36 akpm
[not found] <20200607212615.b050e41fac139a1e16fe00bd@linux-foundation.org>
2020-06-08 6:09 ` Andrew Morton
2020-06-05 19:54 akpm
2020-04-21 1:13 incoming Andrew Morton
2020-04-24 3:49 ` [obsolete] linux-next-rejects.patch removed from -mm tree Andrew Morton
2020-04-04 23:41 akpm
2020-02-19 19:13 akpm
2020-01-16 1:29 akpm
2018-02-07 19:53 akpm
2018-02-01 23:54 akpm
2017-09-07 18:35 akpm
2017-07-13 20:37 akpm
2017-06-16 19:27 akpm
2017-04-24 22:40 akpm
2016-12-14 19:22 akpm
2016-10-25 18:49 akpm
2016-08-03 18:22 akpm
2016-07-27 23:11 akpm
2016-05-23 20:03 akpm
2016-04-15 18:26 akpm
2016-03-22 17:46 akpm
2016-01-22 1:17 akpm
2015-11-06 20:15 akpm
2015-09-11 18:10 akpm
2015-06-25 19:02 akpm
2015-04-20 19:08 akpm
2015-03-02 19:09 akpm
2015-02-13 20:18 akpm
2015-02-11 20:20 akpm
2014-12-14 4:04 akpm
2014-10-14 18:17 akpm
2014-08-06 19:02 akpm
2014-06-16 19:07 akpm
2014-05-16 20:45 akpm
2014-04-14 20:07 akpm
2014-04-09 17:53 akpm
2014-04-04 19:28 akpm
2014-02-11 19:23 akpm
2013-11-22 21:13 akpm
2013-11-06 20:58 akpm
2013-10-29 19:44 akpm
2013-09-30 18:57 akpm
2013-05-07 17:43 akpm
2013-04-30 18:17 akpm
2013-03-14 18:50 akpm
2012-12-20 20:12 akpm
2012-12-14 21:35 akpm
2012-11-19 20:19 akpm
2012-05-31 19:12 akpm
2012-04-06 18:47 akpm
2011-07-26 7:47 akpm
2011-05-25 19:43 akpm
2011-03-23 20:29 akpm
2011-02-16 20:20 akpm
2011-01-21 20:30 akpm
2011-01-13 19:53 akpm
2009-03-30 18:40 akpm
2009-03-03 19:36 akpm
2009-02-17 19:44 akpm
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=20201216170116.VxarP_fGi%akpm@linux-foundation.org \
--to=akpm@linux-foundation.org \
--cc=linux-kernel@vger.kernel.org \
--cc=mm-commits@vger.kernel.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox