Andrey Ryabinin
39d114ddc6
arm64: add KASAN support
...
This patch adds arch specific code for kernel address sanitizer
(see Documentation/kasan.txt).
1/8 of kernel addresses reserved for shadow memory. There was no
big enough hole for this, so virtual addresses for shadow were
stolen from vmalloc area.
At early boot stage the whole shadow region populated with just
one physical page (kasan_zero_page). Later, this page reused
as readonly zero shadow for some memory that KASan currently
don't track (vmalloc).
After mapping the physical memory, pages for shadow memory are
allocated and mapped.
Functions like memset/memmove/memcpy do a lot of memory accesses.
If bad pointer passed to one of these function it is important
to catch this. Compiler's instrumentation cannot do this since
these functions are written in assembly.
KASan replaces memory functions with manually instrumented variants.
Original functions declared as weak symbols so strong definitions
in mm/kasan/kasan.c could replace them. Original functions have aliases
with '__' prefix in name, so we could call non-instrumented variant
if needed.
Some files built without kasan instrumentation (e.g. mm/slub.c).
Original mem* function replaced (via #define) with prefixed variants
to disable memory access checks for such files.
Signed-off-by: Andrey Ryabinin <ryabinin.a.a@gmail.com>
Tested-by: Linus Walleij <linus.walleij@linaro.org>
Reviewed-by: Catalin Marinas <catalin.marinas@arm.com>
Signed-off-by: Catalin Marinas <catalin.marinas@arm.com>
2015-10-12 17:46:36 +01:00
..
basic
kbuild: fixdep: drop meaningless hash table initialization
2015-08-24 16:36:08 +02:00
coccinelle
Merge branch 'akpm' (patches from Andrew)
2015-09-08 17:52:23 -07:00
dtc
scripts/dtc: Update to upstream version 9d3649bd3be245c9
2015-04-29 17:17:27 -05:00
gdb
scripts/gdb: remove useless global instruction
2015-06-30 19:44:58 -07:00
genksyms
genksyms: Regenerate parser
2015-08-20 14:57:47 +02:00
kconfig
Merge branch 'kconfig' of git://git.kernel.org/pub/scm/linux/kernel/git/mmarek/kbuild
2015-09-08 14:17:38 -07:00
ksymoops
mod
Merge branch 'kbuild' of git://git.kernel.org/pub/scm/linux/kernel/git/mmarek/kbuild
2015-09-08 14:12:19 -07:00
package
deb-pkg: add source package
2015-09-04 11:25:03 +02:00
selinux
selinux: explicitly declare the role "base_r"
2015-07-13 13:32:00 -04:00
tracing
.gitignore
scripts: add extract-cert and sign-file to .gitignore
2015-08-27 03:59:11 +10:00
analyze_suspend.py
asn1_compiler.c
ASN.1: Copy string names to tokens in ASN.1 compiler
2015-08-07 16:26:13 +01:00
bloat-o-meter
bootgraph.pl
check_extable.sh
scripts: add check_extable.sh script.
2015-04-13 21:03:02 +09:30
checkincludes.pl
checkkconfigsymbols.py
scripts/checkkconfigsymbols.py: support default statements
2015-08-03 17:16:58 -07:00
checkpatch.pl
checkpatch: add constant comparison on left side test
2015-09-10 13:29:01 -07:00
checkstack.pl
checksyscalls.sh
x86/asm/entry: Move the arch/x86/syscalls/ definitions to arch/x86/entry/syscalls/
2015-06-04 07:37:37 +02:00
checkversion.pl
cleanfile
cleanpatch
coccicheck
config
conmakehash.c
decode_stacktrace.sh
scripts: decode_stacktrace: fix ARM architecture decoding
2015-09-04 16:54:41 -07:00
decodecode
depmod.sh
diffconfig
vfs,ext2: remove CONFIG_EXT2_FS_XIP and rename CONFIG_FS_XIP to CONFIG_FS_DAX
2015-02-16 17:56:04 -08:00
docproc.c
export_report.pl
extract-cert.c
KEYS: Remove unnecessary header #inclusions from extract-cert.c
2015-09-25 16:31:45 +01:00
extract-ikconfig
scripts/extract-ikconfig: Support LZ4-compressed images.
2015-04-15 14:01:12 +02:00
extract-vmlinux
gcc-goto.sh
gcc-ld
gcc-version.sh
gcc-x86_32-has-stack-protector.sh
gcc-x86_64-has-stack-protector.sh
gen_initramfs_list.sh
get_maintainer.pl
get_maintainer: fix perl 5.22/5.24 deprecated/incompatible "\C" use
2015-06-25 17:00:39 -07:00
gfp-translate
headerdep.pl
headers.sh
CRIS: Fix headers_install
2014-12-20 00:01:12 +01:00
headers_check.pl
headers_install.sh
Merge branch 'kbuild' of git://git.kernel.org/pub/scm/linux/kernel/git/mmarek/kbuild
2014-10-14 09:22:26 +02:00
kallsyms.c
Kbuild: kallsyms: drop special handling of pre-3.0 GCC symbols
2015-04-07 13:04:51 +02:00
Kbuild.include
Merge branch 'kbuild' of git://git.kernel.org/pub/scm/linux/kernel/git/mmarek/kbuild
2015-09-08 14:12:19 -07:00
kernel-doc
kerneldoc: Convert error messages to GNU error message format
2015-09-04 16:54:41 -07:00
kernel-doc-xml-ref
scripts/kernel-doc: Adding cross-reference links to html documentation.
2015-08-16 22:11:16 -06:00
ld-version.sh
Lindent
scripts/Lindent: handle missing indent gracefully
2015-09-04 16:54:41 -07:00
link-vmlinux.sh
scripts: link-vmlinux: Don't pass page offset to kallsyms if XIP Kernel
2015-05-21 19:17:44 +08:00
Makefile
modsign: Use extract-cert to process CONFIG_SYSTEM_TRUSTED_KEYS
2015-08-12 17:01:01 +01:00
Makefile.asm-generic
Makefile.build
ftrace: allow architectures to specify ftrace compile options
2015-01-29 09:19:19 +01:00
Makefile.clean
Merge branch 'kbuild' of git://git.kernel.org/pub/scm/linux/kernel/git/mmarek/kbuild
2015-02-19 10:07:08 -08:00
Makefile.dtbinst
kbuild: include $(src)/Makefile rather than $(obj)/Makefile
2015-04-02 16:42:08 +02:00
Makefile.extrawarn
kbuild: Fix clang detection
2015-09-04 13:14:10 +02:00
Makefile.fwinst
kbuild: include $(src)/Makefile rather than $(obj)/Makefile
2015-04-02 16:42:08 +02:00
Makefile.headersinst
kbuild: collect shorthands into scripts/Kbuild.include
2014-11-26 14:36:52 +01:00
Makefile.help
Makefile.host
Makefile.kasan
arm64: add KASAN support
2015-10-12 17:46:36 +01:00
Makefile.lib
kbuild: Create directory for target DTB
2015-04-03 13:52:28 -07:00
Makefile.modbuiltin
Makefile.modinst
modsign: Abort modules_install when signing fails
2015-08-07 16:26:13 +01:00
Makefile.modpost
Makefile.modsign
makelst
markup_oops.pl
mkcompile_h
mkmakefile
mksysmap
mksysmap: Add h8300 local symbol pattern
2015-06-23 13:35:47 +09:00
mkuboot.sh
mkversion
module-common.lds
kernel: add support for .init_array.* constructors
2015-02-13 21:21:42 -08:00
namespace.pl
objdiff
patch-kernel
pnmtologo.c
profile2linkerlist.pl
recordmcount.c
s390/ftrace,kprobes: allow to patch first instruction
2014-10-27 13:27:27 +01:00
recordmcount.h
recordmcount.pl
Merge branch 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/s390/linux
2015-02-11 17:42:32 -08:00
setlocalversion
show_delta
sign-file.c
MODSIGN: Change from CMS to PKCS#7 signing if the openssl is too old
2015-09-25 16:31:46 +01:00
sortextable.c
ARCv2: extable: Enable sorting at build time
2015-06-22 14:06:56 +05:30
sortextable.h
scripts/sortextable: suppress warning: `relocs_size' may be used uninitialized
2014-10-14 02:18:23 +02:00
spelling.txt
scripts/spelling.txt: add some typo-words
2015-09-04 16:54:41 -07:00
stackdelta
scripts: add stackdelta script
2015-08-28 17:04:40 +02:00
stackusage
scripts: add stackusage script
2015-08-28 17:04:40 +02:00
tags.sh
Merge branch 'misc' of git://git.kernel.org/pub/scm/linux/kernel/git/mmarek/kbuild
2015-09-08 14:23:13 -07:00
unifdef.c
ver_linux
xen-hypercalls.sh
xen: build infrastructure for generating hypercall depending symbols
2015-03-16 14:49:13 +00:00
xz_wrap.sh