[tip:perf/kprobes] kprobes: Ensure blacklist data is aligned

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



Commit-ID:  69902c718c0b476e94ed7fccd3cf29ca39fe433a
Gitweb:     http://git.kernel.org/tip/69902c718c0b476e94ed7fccd3cf29ca39fe433a
Author:     Vineet Gupta <Vineet.Gupta1@xxxxxxxxxxxx>
AuthorDate: Thu, 1 May 2014 10:56:44 +0530
Committer:  Ingo Molnar <mingo@xxxxxxxxxx>
CommitDate: Wed, 7 May 2014 21:04:57 +0200

kprobes: Ensure blacklist data is aligned

ARC Linux (not supporting native unaligned access) was failing
to boot because __start_kprobe_blacklist was not aligned.

This was because per generated vmlinux.lds it was emitted right
next to .rodata with strings etc hence could be randomly
unaligned.

Fix that by ensuring a word alignment. While 4 would suffice for
32bit arches and problem at hand, it is probably better to put 8.

| Path: (null) CPU: 0 PID: 1 Comm: swapper Not tainted
| 3.15.0-rc3-next-20140430 #2
| task: 8f044000 ti: 8f01e000 task.ti: 8f01e000
|
| [ECR   ]: 0x00230400 => Misaligned r/w from 0x800fb0d3
| [EFA   ]: 0x800fb0d3
| [BLINK ]: do_one_initcall+0x86/0x1bc
| [ERET  ]: init_kprobes+0x52/0x120

Signed-off-by: Vineet Gupta <vgupta@xxxxxxxxxxxx>
Cc: <torvalds@xxxxxxxxxxxxxxxxxxxx>
Cc: <rusty@xxxxxxxxxxxxxxx>
Cc: <rdunlap@xxxxxxxxxxxxx>
Cc: <jeremy@xxxxxxxx>
Cc: <arnd@xxxxxxxx>
Cc: <dl9pf@xxxxxx>
Cc: <sparse@xxxxxxxxxxx>
Cc: <anil.s.keshavamurthy@xxxxxxxxx>
Cc: <davem@xxxxxxxxxxxxx>
Cc: <ananth@xxxxxxxxxx>
Cc: <masami.hiramatsu.pt@xxxxxxxxxxx>
Cc: <chrisw@xxxxxxxxxxxx>
Cc: <akataria@xxxxxxxxxx>
Cc: anton Kolesov <Anton.Kolesov@xxxxxxxxxxxx>
Link: http://lkml.kernel.org/r/5361DB14.7010406@xxxxxxxxxxxx
Signed-off-by: Ingo Molnar <mingo@xxxxxxxxxx>
---
 include/asm-generic/vmlinux.lds.h | 3 ++-
 1 file changed, 2 insertions(+), 1 deletion(-)

diff --git a/include/asm-generic/vmlinux.lds.h b/include/asm-generic/vmlinux.lds.h
index 40ceb3c..8e0204a 100644
--- a/include/asm-generic/vmlinux.lds.h
+++ b/include/asm-generic/vmlinux.lds.h
@@ -110,7 +110,8 @@
 #endif
 
 #ifdef CONFIG_KPROBES
-#define KPROBE_BLACKLIST()	VMLINUX_SYMBOL(__start_kprobe_blacklist) = .; \
+#define KPROBE_BLACKLIST()	. = ALIGN(8);				      \
+				VMLINUX_SYMBOL(__start_kprobe_blacklist) = .; \
 				*(_kprobe_blacklist)			      \
 				VMLINUX_SYMBOL(__stop_kprobe_blacklist) = .;
 #else
--
To unsubscribe from this list: send the line "unsubscribe linux-tip-commits" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at  http://vger.kernel.org/majordomo-info.html




[Index of Archives]     [Linux Stable Commits]     [Linux Stable Kernel]     [Linux Kernel]     [Linux USB Devel]     [Linux Video &Media]     [Linux Audio Users]     [Yosemite News]     [Linux SCSI]

  Powered by Linux