linux/scripts
Andy Honig 0f55159d09 kallsyms: fix absolute addresses for kASLR
Currently symbols that are absolute addresses are incorrectly displayed
in /proc/kallsyms if the kernel is loaded with kASLR.

The problem was that the scripts/kallsyms.c file which generates the
array of symbol names and addresses uses an relocatable value for all
symbols, even absolute symbols.  This patch fixes that.

Several kallsyms output in different boot states for comparison:

  $ egrep '_(stext|_per_cpu_(start|end))' /root/kallsyms.nokaslr
  0000000000000000 D __per_cpu_start
  0000000000014280 D __per_cpu_end
  ffffffff810001c8 T _stext
  $ egrep '_(stext|_per_cpu_(start|end))' /root/kallsyms.kaslr1
  000000001f200000 D __per_cpu_start
  000000001f214280 D __per_cpu_end
  ffffffffa02001c8 T _stext
  $ egrep '_(stext|_per_cpu_(start|end))' /root/kallsyms.kaslr2
  000000000d400000 D __per_cpu_start
  000000000d414280 D __per_cpu_end
  ffffffff8e4001c8 T _stext
  $ egrep '_(stext|_per_cpu_(start|end))' /root/kallsyms.kaslr-fixed
  0000000000000000 D __per_cpu_start
  0000000000014280 D __per_cpu_end
  ffffffffadc001c8 T _stext

Signed-off-by: Andy Honig <ahonig@google.com>
Signed-off-by: Kees Cook <keescook@chromium.org>
Cc: Michal Marek <mmarek@suse.cz>
Cc: Rusty Russell <rusty@rustcorp.com.au>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
2014-03-04 07:55:48 -08:00
..
basic kbuild: fixdep: support concatenated dep files 2013-04-05 12:22:58 -06:00
coccinelle scripts: Coccinelle script for pm_runtime_* return checks with IS_ERR_VALUE 2014-01-03 14:39:35 +01:00
dtc dtc: ensure #line directives don't consume data from the next line 2013-06-13 22:12:15 +01:00
genksyms genksyms: pass symbol-prefix instead of arch 2013-03-20 11:27:27 +10:30
kconfig localmodconfig: Add config depends by default settings 2013-12-20 17:02:44 -05:00
ksymoops Linux-2.6.12-rc2 2005-04-16 15:20:36 -07:00
mod Modpost: fixed USB alias generation for ranges including 0x9 and 0xA 2014-02-07 11:26:35 -08:00
package deb-pkg: Fix building for MIPS big-endian or ARM OABI 2014-01-03 17:28:23 +01:00
rt-tester Fix common misspellings 2011-03-31 11:26:23 -03:00
selinux Create Documentation/security/, 2011-05-19 15:59:38 -07:00
tracing tracing, perf: Convert the power tracer into an event tracer 2009-09-19 11:42:12 +02:00
.gitignore X.509: Add simple ASN.1 grammar compiler 2012-10-08 13:50:19 +10:30
Kbuild.include kbuild: fix ld-option function 2013-04-08 11:47:41 +02:00
Lindent scripts/Lindent: support gnu indent v2.2.10 2008-04-29 08:06:04 -07:00
Makefile X.509: Add simple ASN.1 grammar compiler 2012-10-08 13:50:19 +10:30
Makefile.asm-generic uapi: Allow automatic generation of uapi/asm/ header files 2012-10-17 12:25:44 +01:00
Makefile.build genksyms: pass symbol-prefix instead of arch 2013-03-20 11:27:27 +10:30
Makefile.clean kbuild: Really don't clean bounds.h and asm-offsets.h 2010-03-11 11:15:22 +01:00
Makefile.fwinst kbuild: Fix accidental revert in commit fe04ddf 2012-10-15 13:01:05 -07:00
Makefile.headersinst kbuild: fix make headers_install when path is too long 2013-05-17 22:10:35 +02:00
Makefile.help Add a target to use the Coccinelle checker 2010-06-12 00:00:29 +02:00
Makefile.host kbuild: fix some minor typoes 2008-04-25 20:18:48 +02:00
Makefile.lib of: Move testcase FDT data into drivers/of 2014-02-20 11:52:08 +00:00
Makefile.modbuiltin kbuild: Create output directory in Makefile.modbuiltin 2010-06-10 12:23:08 +02:00
Makefile.modinst modules: don't break modules_install on external modules with no key. 2012-11-06 11:52:24 +10:30
Makefile.modpost modpost: Optionally ignore secondary errors seen if a single module build fails 2013-09-23 15:45:03 +09:30
Makefile.modsign MODSIGN: Add modules_sign make target 2012-12-14 13:05:28 +10:30
analyze_suspend.py PM / tools: new tool for suspend/resume performance optimization 2014-01-17 01:47:26 +01:00
asn1_compiler.c X.509: remove possible code fragility: enumeration values not handled 2013-09-25 17:17:01 +01:00
bin2c.c Linux-2.6.12-rc2 2005-04-16 15:20:36 -07:00
bloat-o-meter scripts/bloat-o-meter: use .startswith rather than fragile slicing 2013-11-07 10:47:13 +01:00
bootgraph.pl bootgraph.pl: relax timing information requirements 2011-06-13 00:04:57 +02:00
checkincludes.pl checkincludes: fix perlcritic warnings 2010-03-07 21:19:57 +01:00
checkkconfigsymbols.sh scripts/checkkconfigsymbols.sh: replace echo -e with printf 2013-08-28 17:00:47 +02:00
checkpatch.pl checkpatch: fix detection of git repository 2014-02-10 16:01:40 -08:00
checkstack.pl scripts/checkstack.pl: Add metag support 2013-03-02 20:09:55 +00:00
checksyscalls.sh checksyscalls: fix "here document" handling 2012-09-25 08:59:21 -07:00
checkversion.pl kbuild: don't warn about include/linux/version.h not including itself 2011-04-29 15:38:55 +02:00
cleanfile scripts: Make cleanfile/cleanpatch warn about long lines 2007-07-16 21:15:50 +02:00
cleanpatch scripts: Make cleanfile/cleanpatch warn about long lines 2007-07-16 21:15:50 +02:00
coccicheck Coccinelle: Update information about the minimal version required 2013-07-03 22:58:20 +02:00
config scripts/config: fix variable substitution command 2013-09-13 13:06:59 +02:00
conmakehash.c Fix all -Wmissing-prototypes warnings in x86 defconfig 2009-09-23 07:39:28 -07:00
decodecode scripts/decodecode: make faulting insn ptr more robust 2013-04-29 15:54:27 -07:00
depmod.sh depmod: pass -P $CONFIG_SYMBOL_PREFIX 2013-02-22 11:52:31 +01:00
diffconfig diffconfig: Update script to support python versions 2.5 through 3.3 2013-09-01 21:24:51 +02:00
docproc.c kernel-doc: improve "no structured comments found" error 2013-11-13 12:09:32 +09:00
export_report.pl export_report: use warn() to issue WARNING, so they go to stderr 2011-05-24 16:07:07 +02:00
extract-ikconfig scripts/extract-ikconfig: add xz compression support 2011-02-10 15:23:03 +01:00
extract-vmlinux scripts: add extract-vmlinux 2011-08-31 16:12:17 +02:00
gcc-goto.sh arm64, jump label: detect %c support for ARM64 2014-01-08 15:21:29 +00:00
gcc-version.sh kbuild: Fix gcc -x syntax 2012-10-03 09:03:24 +02:00
gcc-x86_32-has-stack-protector.sh kbuild: Fix gcc -x syntax 2012-10-03 09:03:24 +02:00
gcc-x86_64-has-stack-protector.sh kbuild: Fix gcc -x syntax 2012-10-03 09:03:24 +02:00
gen_initramfs_list.sh scripts/gen_initramfs_list.sh: fix flags for initramfs LZ4 compression 2014-03-04 07:55:48 -08:00
get_maintainer.pl get_maintainer: fix detection of git repository 2014-02-10 16:01:40 -08:00
gfp-translate chmod +x scripts/gfp-translate 2012-06-27 12:44:29 -07:00
headerdep.pl headerdep: perlcritic warning 2010-03-23 12:26:38 +01:00
headers.sh kbuild, headers.sh: Don't make archheaders explicitly 2011-11-22 14:47:50 -08:00
headers_check.pl headers_check: special case seqbuf_dump() 2014-01-23 16:36:55 -08:00
headers_install.sh kbuild: fix make headers_install when path is too long 2013-05-17 22:10:35 +02:00
kallsyms.c kallsyms: fix absolute addresses for kASLR 2014-03-04 07:55:48 -08:00
kernel-doc Merge branch 'misc' of git://git.kernel.org/pub/scm/linux/kernel/git/mmarek/kbuild 2013-11-15 14:09:15 -08:00
link-vmlinux.sh scripts/link-vmlinux.sh: only filter kernel symbols for arm 2013-12-10 16:49:19 +10:30
makelst kbuild: introduce ccflags-y, asflags-y and ldflags-y 2007-10-15 22:25:06 +02:00
markup_oops.pl Merge branch 'for-35' of git://repo.or.cz/linux-kbuild 2010-06-01 08:55:52 -07:00
mkcompile_h Fix handling of backlash character in LINUX_COMPILE_BY name 2011-04-29 15:55:45 +02:00
mkmakefile kbuild: silence generated makefile message 2011-07-20 17:08:08 +02:00
mksysmap trivial: typo in comment in mksysmap 2012-07-20 10:36:05 +02:00
mkuboot.sh mkuboot.sh: Fail if mkimage is missing 2011-01-07 14:31:01 +01:00
mkversion Linux-2.6.12-rc2 2005-04-16 15:20:36 -07:00
module-common.lds module: Sort exported symbols 2011-05-19 16:55:27 +09:30
namespace.pl Revert "namespace: add source file location exceptions" 2010-10-28 00:59:56 +02:00
patch-kernel scripts/patch-kernel: digest kernel.org hosted .xz patches 2012-03-30 15:23:36 +02:00
pnmtologo.c scripts/pnmtologo: fix for plain PBM 2012-11-20 11:58:03 +01:00
profile2linkerlist.pl profile2linkerlist: fix perl warnings 2010-03-07 21:39:33 +01:00
recordmcount.c metag: ftrace support 2013-03-02 20:09:55 +00:00
recordmcount.h ftrace: Make recordmcount.c handle __fentry__ 2012-08-23 11:24:43 -04:00
recordmcount.pl ftrace: default to tilegx if ARCH=tile is specified 2013-12-05 15:59:26 -05:00
setlocalversion Fix detectition of kernel git repository in setlocalversion script [take #2] 2014-01-03 14:48:42 +01:00
show_delta show_delta: Update script to support python versions 2.5 through 3.3 2013-10-23 17:13:42 +02:00
sign-file MODSIGN: Add -s <signature> option to sign-file 2013-01-25 16:55:36 +10:30
sortextable.c microblaze: extable: sort the exception table at build time 2014-01-23 16:36:50 -08:00
sortextable.h scripts/sortextable: support objects with more than 64K sections. 2013-11-13 12:09:00 +09:00
tags.sh scripts/tags.sh: remove obsolete __devinit[const|data] 2013-11-08 10:57:20 +01:00
unifdef.c unifdef: update to upstream version 2.5 2011-01-22 15:50:59 +01:00
ver_linux Remove bashisms from scripts 2009-06-09 22:37:54 +02:00
xz_wrap.sh xz: Enable BCJ filters on SPARC and 32-bit x86 2012-04-18 13:13:18 -07:00