summaryrefslogtreecommitdiff
path: root/sys-kernel/linux-sources-redcore-lts/files/4.19-uksm-linux-hardened.patch
diff options
context:
space:
mode:
authorV3n3RiX <venerix@redcorelinux.org>2019-06-19 20:04:14 +0100
committerV3n3RiX <venerix@redcorelinux.org>2019-06-19 20:04:14 +0100
commitaab9bd8042722604df21892025dbbabd598cee10 (patch)
tree1d3940917d064be3a939c937e9a8c648587e8c41 /sys-kernel/linux-sources-redcore-lts/files/4.19-uksm-linux-hardened.patch
parentc8d5bd24241b4ba8b471c0e69c619aa92db19b06 (diff)
sys-kernel/linux-{image,sources}-redcore-lts : version bump
Diffstat (limited to 'sys-kernel/linux-sources-redcore-lts/files/4.19-uksm-linux-hardened.patch')
-rw-r--r--sys-kernel/linux-sources-redcore-lts/files/4.19-uksm-linux-hardened.patch116
1 files changed, 58 insertions, 58 deletions
diff --git a/sys-kernel/linux-sources-redcore-lts/files/4.19-uksm-linux-hardened.patch b/sys-kernel/linux-sources-redcore-lts/files/4.19-uksm-linux-hardened.patch
index afb30db2..9237058b 100644
--- a/sys-kernel/linux-sources-redcore-lts/files/4.19-uksm-linux-hardened.patch
+++ b/sys-kernel/linux-sources-redcore-lts/files/4.19-uksm-linux-hardened.patch
@@ -1,6 +1,6 @@
diff -Nur a/Documentation/vm/00-INDEX b/Documentation/vm/00-INDEX
---- a/Documentation/vm/00-INDEX 2019-02-06 16:30:16.000000000 +0000
-+++ b/Documentation/vm/00-INDEX 2019-02-09 17:23:06.726863699 +0000
+--- a/Documentation/vm/00-INDEX 2019-06-11 11:20:57.000000000 +0100
++++ b/Documentation/vm/00-INDEX 2019-06-19 19:34:58.729369555 +0100
@@ -18,6 +18,8 @@
- explains what hwpoison is
ksm.rst
@@ -12,7 +12,7 @@ diff -Nur a/Documentation/vm/00-INDEX b/Documentation/vm/00-INDEX
numa.rst
diff -Nur a/Documentation/vm/uksm.txt b/Documentation/vm/uksm.txt
--- a/Documentation/vm/uksm.txt 1970-01-01 01:00:00.000000000 +0100
-+++ b/Documentation/vm/uksm.txt 2019-02-09 17:23:06.726863699 +0000
++++ b/Documentation/vm/uksm.txt 2019-06-19 19:34:58.729369555 +0100
@@ -0,0 +1,61 @@
+The Ultra Kernel Samepage Merging feature
+----------------------------------------------
@@ -76,8 +76,8 @@ diff -Nur a/Documentation/vm/uksm.txt b/Documentation/vm/uksm.txt
+2016-09-10 UKSM 0.1.2.5 Fix a bug in dedup ratio calculation.
+2017-02-26 UKSM 0.1.2.6 Fix a bug in hugetlbpage handling and a race bug with page migration.
diff -Nur a/fs/exec.c b/fs/exec.c
---- a/fs/exec.c 2019-02-09 17:20:30.471820869 +0000
-+++ b/fs/exec.c 2019-02-09 17:26:11.522863979 +0000
+--- a/fs/exec.c 2019-06-19 19:33:03.485533722 +0100
++++ b/fs/exec.c 2019-06-19 19:34:58.729369555 +0100
@@ -63,6 +63,7 @@
#include <linux/compat.h>
#include <linux/vmalloc.h>
@@ -95,8 +95,8 @@ diff -Nur a/fs/exec.c b/fs/exec.c
}
EXPORT_SYMBOL(setup_new_exec);
diff -Nur a/fs/proc/meminfo.c b/fs/proc/meminfo.c
---- a/fs/proc/meminfo.c 2019-02-06 16:30:16.000000000 +0000
-+++ b/fs/proc/meminfo.c 2019-02-09 17:23:06.726863699 +0000
+--- a/fs/proc/meminfo.c 2019-06-11 11:20:57.000000000 +0100
++++ b/fs/proc/meminfo.c 2019-06-19 19:34:58.729369555 +0100
@@ -106,6 +106,10 @@
global_zone_page_state(NR_KERNEL_STACK_KB));
show_val_kb(m, "PageTables: ",
@@ -109,8 +109,8 @@ diff -Nur a/fs/proc/meminfo.c b/fs/proc/meminfo.c
show_val_kb(m, "Quicklists: ", quicklist_total_size());
#endif
diff -Nur a/include/asm-generic/pgtable.h b/include/asm-generic/pgtable.h
---- a/include/asm-generic/pgtable.h 2019-02-06 16:30:16.000000000 +0000
-+++ b/include/asm-generic/pgtable.h 2019-02-09 17:23:06.726863699 +0000
+--- a/include/asm-generic/pgtable.h 2019-06-11 11:20:57.000000000 +0100
++++ b/include/asm-generic/pgtable.h 2019-06-19 19:34:58.739369890 +0100
@@ -817,12 +817,25 @@
extern void untrack_pfn_moved(struct vm_area_struct *vma);
#endif
@@ -148,8 +148,8 @@ diff -Nur a/include/asm-generic/pgtable.h b/include/asm-generic/pgtable.h
static inline unsigned long my_zero_pfn(unsigned long addr)
diff -Nur a/include/linux/ksm.h b/include/linux/ksm.h
---- a/include/linux/ksm.h 2019-02-06 16:30:16.000000000 +0000
-+++ b/include/linux/ksm.h 2019-02-09 17:23:06.726863699 +0000
+--- a/include/linux/ksm.h 2019-06-11 11:20:57.000000000 +0100
++++ b/include/linux/ksm.h 2019-06-19 19:34:58.739369890 +0100
@@ -1,4 +1,4 @@
-/* SPDX-License-Identifier: GPL-2.0 */
+/* SPDX-License-Identifier: GPL-3.0 */
@@ -224,8 +224,8 @@ diff -Nur a/include/linux/ksm.h b/include/linux/ksm.h
+
#endif /* __LINUX_KSM_H */
diff -Nur a/include/linux/mm_types.h b/include/linux/mm_types.h
---- a/include/linux/mm_types.h 2019-02-06 16:30:16.000000000 +0000
-+++ b/include/linux/mm_types.h 2019-02-09 17:23:06.726863699 +0000
+--- a/include/linux/mm_types.h 2019-06-11 11:20:57.000000000 +0100
++++ b/include/linux/mm_types.h 2019-06-19 19:34:58.739369890 +0100
@@ -323,6 +323,9 @@
struct mempolicy *vm_policy; /* NUMA policy for the VMA */
#endif
@@ -237,8 +237,8 @@ diff -Nur a/include/linux/mm_types.h b/include/linux/mm_types.h
struct core_thread {
diff -Nur a/include/linux/mmzone.h b/include/linux/mmzone.h
---- a/include/linux/mmzone.h 2019-02-06 16:30:16.000000000 +0000
-+++ b/include/linux/mmzone.h 2019-02-09 17:23:06.726863699 +0000
+--- a/include/linux/mmzone.h 2019-06-11 11:20:57.000000000 +0100
++++ b/include/linux/mmzone.h 2019-06-19 19:34:58.739369890 +0100
@@ -148,6 +148,9 @@
NR_ZSPAGES, /* allocated in zsmalloc */
#endif
@@ -260,7 +260,7 @@ diff -Nur a/include/linux/mmzone.h b/include/linux/mmzone.h
* @zone - pointer to struct zone variable
diff -Nur a/include/linux/sradix-tree.h b/include/linux/sradix-tree.h
--- a/include/linux/sradix-tree.h 1970-01-01 01:00:00.000000000 +0100
-+++ b/include/linux/sradix-tree.h 2019-02-09 17:23:06.726863699 +0000
++++ b/include/linux/sradix-tree.h 2019-06-19 19:34:58.739369890 +0100
@@ -0,0 +1,77 @@
+#ifndef _LINUX_SRADIX_TREE_H
+#define _LINUX_SRADIX_TREE_H
@@ -341,7 +341,7 @@ diff -Nur a/include/linux/sradix-tree.h b/include/linux/sradix-tree.h
+#endif /* _LINUX_SRADIX_TREE_H */
diff -Nur a/include/linux/uksm.h b/include/linux/uksm.h
--- a/include/linux/uksm.h 1970-01-01 01:00:00.000000000 +0100
-+++ b/include/linux/uksm.h 2019-02-09 17:23:06.726863699 +0000
++++ b/include/linux/uksm.h 2019-06-19 19:34:58.739369890 +0100
@@ -0,0 +1,149 @@
+#ifndef __LINUX_UKSM_H
+#define __LINUX_UKSM_H
@@ -493,8 +493,8 @@ diff -Nur a/include/linux/uksm.h b/include/linux/uksm.h
+#endif /* !CONFIG_UKSM */
+#endif /* __LINUX_UKSM_H */
diff -Nur a/kernel/fork.c b/kernel/fork.c
---- a/kernel/fork.c 2019-02-09 17:20:30.481821193 +0000
-+++ b/kernel/fork.c 2019-02-09 17:23:06.736864024 +0000
+--- a/kernel/fork.c 2019-06-19 19:33:03.505534386 +0100
++++ b/kernel/fork.c 2019-06-19 19:34:58.739369890 +0100
@@ -543,7 +543,7 @@
__vma_link_rb(mm, tmp, rb_link, rb_parent);
rb_link = &tmp->vm_rb.rb_right;
@@ -505,10 +505,10 @@ diff -Nur a/kernel/fork.c b/kernel/fork.c
if (!(tmp->vm_flags & VM_WIPEONFORK))
retval = copy_page_range(mm, oldmm, mpnt);
diff -Nur a/lib/Makefile b/lib/Makefile
---- a/lib/Makefile 2019-02-06 16:30:16.000000000 +0000
-+++ b/lib/Makefile 2019-02-09 17:23:06.736864024 +0000
-@@ -18,7 +18,7 @@
- KCOV_INSTRUMENT_dynamic_debug.o := n
+--- a/lib/Makefile 2019-06-11 11:20:57.000000000 +0100
++++ b/lib/Makefile 2019-06-19 19:34:58.739369890 +0100
+@@ -29,7 +29,7 @@
+ endif
lib-y := ctype.o string.o vsprintf.o cmdline.o \
- rbtree.o radix-tree.o timerqueue.o\
@@ -518,7 +518,7 @@ diff -Nur a/lib/Makefile b/lib/Makefile
flex_proportions.o ratelimit.o show_mem.o \
diff -Nur a/lib/sradix-tree.c b/lib/sradix-tree.c
--- a/lib/sradix-tree.c 1970-01-01 01:00:00.000000000 +0100
-+++ b/lib/sradix-tree.c 2019-02-09 17:23:06.736864024 +0000
++++ b/lib/sradix-tree.c 2019-06-19 19:34:58.739369890 +0100
@@ -0,0 +1,476 @@
+#include <linux/errno.h>
+#include <linux/mm.h>
@@ -997,8 +997,8 @@ diff -Nur a/lib/sradix-tree.c b/lib/sradix-tree.c
+ return 0;
+}
diff -Nur a/mm/Kconfig b/mm/Kconfig
---- a/mm/Kconfig 2019-02-09 17:20:30.491821512 +0000
-+++ b/mm/Kconfig 2019-02-09 17:23:06.736864024 +0000
+--- a/mm/Kconfig 2019-06-19 19:33:03.515534719 +0100
++++ b/mm/Kconfig 2019-06-19 19:34:58.739369890 +0100
@@ -307,6 +307,32 @@
See Documentation/vm/ksm.rst for more information: KSM is inactive
until a program has madvised that an area is MADV_MERGEABLE, and
@@ -1033,8 +1033,8 @@ diff -Nur a/mm/Kconfig b/mm/Kconfig
config DEFAULT_MMAP_MIN_ADDR
int "Low address space to protect from user allocation"
diff -Nur a/mm/ksm.c b/mm/ksm.c
---- a/mm/ksm.c 2019-02-06 16:30:16.000000000 +0000
-+++ b/mm/ksm.c 2019-02-09 17:23:06.736864024 +0000
+--- a/mm/ksm.c 2019-06-11 11:20:57.000000000 +0100
++++ b/mm/ksm.c 2019-06-19 19:34:58.739369890 +0100
@@ -842,17 +842,6 @@
return err;
}
@@ -1054,8 +1054,8 @@ diff -Nur a/mm/ksm.c b/mm/ksm.c
/*
* Only called through the sysfs control interface:
diff -Nur a/mm/Makefile b/mm/Makefile
---- a/mm/Makefile 2019-02-06 16:30:16.000000000 +0000
-+++ b/mm/Makefile 2019-02-09 17:23:06.736864024 +0000
+--- a/mm/Makefile 2019-06-11 11:20:57.000000000 +0100
++++ b/mm/Makefile 2019-06-19 19:34:58.739369890 +0100
@@ -64,7 +64,8 @@
obj-$(CONFIG_SPARSEMEM_VMEMMAP) += sparse-vmemmap.o
obj-$(CONFIG_SLOB) += slob.o
@@ -1067,8 +1067,8 @@ diff -Nur a/mm/Makefile b/mm/Makefile
obj-$(CONFIG_SLAB) += slab.o
obj-$(CONFIG_SLUB) += slub.o
diff -Nur a/mm/memory.c b/mm/memory.c
---- a/mm/memory.c 2019-02-06 16:30:16.000000000 +0000
-+++ b/mm/memory.c 2019-02-09 17:23:06.736864024 +0000
+--- a/mm/memory.c 2019-06-11 11:20:57.000000000 +0100
++++ b/mm/memory.c 2019-06-19 19:34:58.739369890 +0100
@@ -128,6 +128,25 @@
unsigned long highest_memmap_pfn __read_mostly;
@@ -1134,7 +1134,7 @@ diff -Nur a/mm/memory.c b/mm/memory.c
if (!PageAnon(page)) {
if (pte_dirty(ptent)) {
-@@ -2353,8 +2380,10 @@
+@@ -2359,8 +2386,10 @@
clear_page(kaddr);
kunmap_atomic(kaddr);
flush_dcache_page(dst);
@@ -1146,7 +1146,7 @@ diff -Nur a/mm/memory.c b/mm/memory.c
}
static gfp_t __get_fault_gfp_mask(struct vm_area_struct *vma)
-@@ -2503,6 +2532,7 @@
+@@ -2509,6 +2538,7 @@
vmf->address);
if (!new_page)
goto oom;
@@ -1154,7 +1154,7 @@ diff -Nur a/mm/memory.c b/mm/memory.c
} else {
new_page = alloc_page_vma(GFP_HIGHUSER_MOVABLE, vma,
vmf->address);
-@@ -2529,7 +2559,9 @@
+@@ -2535,7 +2565,9 @@
mm_counter_file(old_page));
inc_mm_counter_fast(mm, MM_ANONPAGES);
}
@@ -1165,17 +1165,17 @@ diff -Nur a/mm/memory.c b/mm/memory.c
}
flush_cache_page(vma, vmf->address, pte_pfn(vmf->orig_pte));
diff -Nur a/mm/mmap.c b/mm/mmap.c
---- a/mm/mmap.c 2019-02-09 17:20:30.491821512 +0000
-+++ b/mm/mmap.c 2019-02-09 17:23:06.736864024 +0000
+--- a/mm/mmap.c 2019-06-19 19:33:03.515534719 +0100
++++ b/mm/mmap.c 2019-06-19 19:35:33.710535047 +0100
@@ -45,6 +45,7 @@
#include <linux/moduleparam.h>
#include <linux/pkeys.h>
#include <linux/oom.h>
+#include <linux/ksm.h>
+ #include <linux/sched/mm.h>
#include <linux/uaccess.h>
- #include <asm/cacheflush.h>
-@@ -182,6 +183,7 @@
+@@ -183,6 +184,7 @@
if (vma->vm_file)
fput(vma->vm_file);
mpol_put(vma_policy(vma));
@@ -1183,7 +1183,7 @@ diff -Nur a/mm/mmap.c b/mm/mmap.c
vm_area_free(vma);
return next;
}
-@@ -708,9 +710,16 @@
+@@ -709,9 +711,16 @@
long adjust_next = 0;
int remove_next = 0;
@@ -1200,7 +1200,7 @@ diff -Nur a/mm/mmap.c b/mm/mmap.c
if (end >= next->vm_end) {
/*
* vma expands, overlapping all the next, and
-@@ -843,6 +852,7 @@
+@@ -844,6 +853,7 @@
end_changed = true;
}
vma->vm_pgoff = pgoff;
@@ -1208,7 +1208,7 @@ diff -Nur a/mm/mmap.c b/mm/mmap.c
if (adjust_next) {
next->vm_start += adjust_next << PAGE_SHIFT;
next->vm_pgoff += adjust_next;
-@@ -948,6 +958,7 @@
+@@ -949,6 +959,7 @@
if (remove_next == 2) {
remove_next = 1;
end = next->vm_end;
@@ -1216,7 +1216,7 @@ diff -Nur a/mm/mmap.c b/mm/mmap.c
goto again;
}
else if (next)
-@@ -974,10 +985,14 @@
+@@ -975,10 +986,14 @@
*/
VM_WARN_ON(mm->highest_vm_end != vm_end_gap(vma));
}
@@ -1231,7 +1231,7 @@ diff -Nur a/mm/mmap.c b/mm/mmap.c
validate_mm(mm);
return 0;
-@@ -1434,6 +1449,9 @@
+@@ -1435,6 +1450,9 @@
vm_flags |= calc_vm_prot_bits(prot, pkey) | calc_vm_flag_bits(flags) |
mm->def_flags | VM_MAYREAD | VM_MAYWRITE | VM_MAYEXEC;
@@ -1241,7 +1241,7 @@ diff -Nur a/mm/mmap.c b/mm/mmap.c
if (flags & MAP_LOCKED)
if (!can_do_mlock())
return -EPERM;
-@@ -1798,6 +1816,7 @@
+@@ -1799,6 +1817,7 @@
allow_write_access(file);
}
file = vma->vm_file;
@@ -1249,7 +1249,7 @@ diff -Nur a/mm/mmap.c b/mm/mmap.c
out:
perf_event_mmap(vma);
-@@ -1840,6 +1859,7 @@
+@@ -1841,6 +1860,7 @@
if (vm_flags & VM_DENYWRITE)
allow_write_access(file);
free_vma:
@@ -1257,7 +1257,7 @@ diff -Nur a/mm/mmap.c b/mm/mmap.c
vm_area_free(vma);
unacct_error:
if (charged)
-@@ -2659,6 +2679,8 @@
+@@ -2663,6 +2683,8 @@
else
err = vma_adjust(vma, vma->vm_start, addr, vma->vm_pgoff, new);
@@ -1266,7 +1266,7 @@ diff -Nur a/mm/mmap.c b/mm/mmap.c
/* Success. */
if (!err)
return 0;
-@@ -2944,6 +2966,7 @@
+@@ -2948,6 +2970,7 @@
if ((flags & (~VM_EXEC)) != 0)
return -EINVAL;
flags |= VM_DATA_DEFAULT_FLAGS | VM_ACCOUNT | mm->def_flags;
@@ -1274,7 +1274,7 @@ diff -Nur a/mm/mmap.c b/mm/mmap.c
error = get_unmapped_area(NULL, addr, len, 0, MAP_FIXED);
if (offset_in_page(error))
-@@ -3000,6 +3023,7 @@
+@@ -3004,6 +3027,7 @@
vma->vm_flags = flags;
vma->vm_page_prot = vm_get_page_prot(flags);
vma_link(mm, vma, prev, rb_link, rb_parent);
@@ -1282,7 +1282,7 @@ diff -Nur a/mm/mmap.c b/mm/mmap.c
out:
perf_event_mmap(vma);
mm->total_vm += len >> PAGE_SHIFT;
-@@ -3077,6 +3101,12 @@
+@@ -3081,6 +3105,12 @@
up_write(&mm->mmap_sem);
}
@@ -1295,7 +1295,7 @@ diff -Nur a/mm/mmap.c b/mm/mmap.c
if (mm->locked_vm) {
vma = mm->mmap;
while (vma) {
-@@ -3111,6 +3141,11 @@
+@@ -3115,6 +3145,11 @@
vma = remove_vma(vma);
}
vm_unacct_memory(nr_accounted);
@@ -1307,7 +1307,7 @@ diff -Nur a/mm/mmap.c b/mm/mmap.c
}
/* Insert vm structure into process list sorted by address
-@@ -3218,6 +3253,7 @@
+@@ -3222,6 +3257,7 @@
new_vma->vm_ops->open(new_vma);
vma_link(mm, new_vma, prev, rb_link, rb_parent);
*need_rmap_locks = false;
@@ -1315,7 +1315,7 @@ diff -Nur a/mm/mmap.c b/mm/mmap.c
}
return new_vma;
-@@ -3368,6 +3404,7 @@
+@@ -3372,6 +3408,7 @@
vm_stat_account(mm, vma->vm_flags, len >> PAGE_SHIFT);
perf_event_mmap(vma);
@@ -1324,8 +1324,8 @@ diff -Nur a/mm/mmap.c b/mm/mmap.c
return vma;
diff -Nur a/mm/rmap.c b/mm/rmap.c
---- a/mm/rmap.c 2019-02-06 16:30:16.000000000 +0000
-+++ b/mm/rmap.c 2019-02-09 17:23:06.736864024 +0000
+--- a/mm/rmap.c 2019-06-11 11:20:57.000000000 +0100
++++ b/mm/rmap.c 2019-06-19 19:34:58.749370222 +0100
@@ -1017,9 +1017,9 @@
/**
@@ -1340,7 +1340,7 @@ diff -Nur a/mm/rmap.c b/mm/rmap.c
static void __page_set_anon_rmap(struct page *page,
diff -Nur a/mm/uksm.c b/mm/uksm.c
--- a/mm/uksm.c 1970-01-01 01:00:00.000000000 +0100
-+++ b/mm/uksm.c 2019-02-09 17:23:06.736864024 +0000
++++ b/mm/uksm.c 2019-06-19 19:34:58.749370222 +0100
@@ -0,0 +1,5584 @@
+/*
+ * Ultra KSM. Copyright (C) 2011-2012 Nai Xia
@@ -6927,8 +6927,8 @@ diff -Nur a/mm/uksm.c b/mm/uksm.c
+#endif
+
diff -Nur a/mm/vmstat.c b/mm/vmstat.c
---- a/mm/vmstat.c 2019-02-06 16:30:16.000000000 +0000
-+++ b/mm/vmstat.c 2019-02-09 17:23:06.736864024 +0000
+--- a/mm/vmstat.c 2019-06-11 11:20:57.000000000 +0100
++++ b/mm/vmstat.c 2019-06-19 19:34:58.749370222 +0100
@@ -1163,6 +1163,9 @@
"nr_written",
"", /* nr_indirectly_reclaimable */