summaryrefslogtreecommitdiff
path: root/arch/x86/tools
diff options
context:
space:
mode:
authorH. Peter Anvin <hpa@zytor.com>2012-05-24 14:01:38 (GMT)
committerH. Peter Anvin <hpa@zytor.com>2012-05-24 14:16:18 (GMT)
commitea17e7414bc62e8d3bde8d08e3df1d921c518c17 (patch)
tree6f2ebd6032088da3e2b8eba58681d772169d8581 /arch/x86/tools
parentfd952815307f0f272bf49fd364a7fd2f9992bc42 (diff)
downloadlinux-ea17e7414bc62e8d3bde8d08e3df1d921c518c17.tar.xz
x86, relocs: Add jiffies and jiffies_64 to the relative whitelist
The symbol jiffies is created in the linker script as an alias to jiffies_64. Unfortunately this is done outside any section, and apparently GNU ld 2.21 doesn't carry the section with it, so we end up with an absolute symbol and therefore a broken kernel. Add jiffies and jiffies_64 to the whitelist. The most disturbing bit with this discovery is that it shows that we have had multiple linker bugs in this area crossing multiple generations, and have been silently building bad kernels for some time. Link: http://lkml.kernel.org/r/20120524171604.0d98284f3affc643e9714470@canb.auug.org.au Reported-by: Stephen Rothwell <sfr@canb.auug.org.au> Signed-off-by: H. Peter Anvin <hpa@zytor.com> Cc: <stable@vger.kernel.org> v3.4
Diffstat (limited to 'arch/x86/tools')
-rw-r--r--arch/x86/tools/relocs.c1
1 files changed, 1 insertions, 0 deletions
diff --git a/arch/x86/tools/relocs.c b/arch/x86/tools/relocs.c
index b8f7c65..b685296 100644
--- a/arch/x86/tools/relocs.c
+++ b/arch/x86/tools/relocs.c
@@ -71,6 +71,7 @@ static const char * const sym_regex_kernel[S_NSYMTYPES] = {
"__(start|stop)_notes|"
"__end_rodata|"
"__initramfs_start|"
+ "(jiffies|jiffies_64)|"
"_end)$"
};