Linux kernel mirror (for testing) git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
kernel os linux

parisc: initialize unwinder much earlier

The unwinder was being initialized way too late to be any use
debugging early boot crashes. Instead of relying on module_init
initcalls to initialize it, let's do it explicitly as early as
we can.

Signed-off-by: James Bottomley <James.Bottomley@HansenPartnership.com>
Signed-off-by: Kyle McMartin <kyle@mcmartin.ca>

authored by

James Bottomley and committed by
Kyle McMartin
f0514ae3 0be7d1fe

+5 -3
+2
arch/parisc/include/asm/unwind.h
··· 74 74 int unwind_once(struct unwind_frame_info *info); 75 75 int unwind_to_user(struct unwind_frame_info *info); 76 76 77 + int unwind_init(void); 78 + 77 79 #endif
+2
arch/parisc/kernel/setup.c
··· 44 44 #include <asm/pdc_chassis.h> 45 45 #include <asm/io.h> 46 46 #include <asm/setup.h> 47 + #include <asm/unwind.h> 47 48 48 49 static char __initdata command_line[COMMAND_LINE_SIZE]; 49 50 ··· 124 123 #ifdef CONFIG_64BIT 125 124 extern int parisc_narrow_firmware; 126 125 #endif 126 + unwind_init(); 127 127 128 128 init_per_cpu(smp_processor_id()); /* Set Modes & Enable FP */ 129 129
+1 -3
arch/parisc/kernel/unwind.c
··· 170 170 } 171 171 172 172 /* Called from setup_arch to import the kernel unwind info */ 173 - static int unwind_init(void) 173 + int unwind_init(void) 174 174 { 175 175 long start, stop; 176 176 register unsigned long gp __asm__ ("r27"); ··· 417 417 418 418 return ret; 419 419 } 420 - 421 - module_init(unwind_init);