516949480d
Don't use printk() where "current_thread_info()" is crap. Until when we switch to running on init_stack, current_thread_info() evaluates to crap. Printk uses "current" at times (in detail, ¤t is evaluated with CONFIG_DEBUG_SPINLOCK to check the spinlock owner task). And this leads to random segmentation faults. Exactly, what happens is that ¤t = *(current_thread_info()), i.e. round down $esp and dereference the value. I.e. access the stack below $esp, which causes SIGSEGV on a VM_GROWSDOWN vma (see arch/i386/mm/fault.c). Signed-off-by: Paolo 'Blaisorblade' Giarrusso <blaisorblade@yahoo.it> Signed-off-by: Linus Torvalds <torvalds@osdl.org> |
||
---|---|---|
.. | ||
drivers | ||
include | ||
sys-i386 | ||
sys-x86_64 | ||
aio.c | ||
elf_aux.c | ||
file.c | ||
helper.c | ||
main.c | ||
Makefile | ||
mem.c | ||
process.c | ||
signal.c | ||
start_up.c | ||
time.c | ||
tt.c | ||
tty.c | ||
uaccess.c | ||
user_syms.c |