Commit f0514ae3 authored by James Bottomley's avatar James Bottomley Committed by Kyle McMartin

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: default avatarJames Bottomley <James.Bottomley@HansenPartnership.com>
Signed-off-by: default avatarKyle McMartin <kyle@mcmartin.ca>
parent 0be7d1fe
...@@ -74,4 +74,6 @@ void unwind_frame_init_running(struct unwind_frame_info *info, struct pt_regs *r ...@@ -74,4 +74,6 @@ void unwind_frame_init_running(struct unwind_frame_info *info, struct pt_regs *r
int unwind_once(struct unwind_frame_info *info); int unwind_once(struct unwind_frame_info *info);
int unwind_to_user(struct unwind_frame_info *info); int unwind_to_user(struct unwind_frame_info *info);
int unwind_init(void);
#endif #endif
...@@ -44,6 +44,7 @@ ...@@ -44,6 +44,7 @@
#include <asm/pdc_chassis.h> #include <asm/pdc_chassis.h>
#include <asm/io.h> #include <asm/io.h>
#include <asm/setup.h> #include <asm/setup.h>
#include <asm/unwind.h>
static char __initdata command_line[COMMAND_LINE_SIZE]; static char __initdata command_line[COMMAND_LINE_SIZE];
...@@ -123,6 +124,7 @@ void __init setup_arch(char **cmdline_p) ...@@ -123,6 +124,7 @@ void __init setup_arch(char **cmdline_p)
#ifdef CONFIG_64BIT #ifdef CONFIG_64BIT
extern int parisc_narrow_firmware; extern int parisc_narrow_firmware;
#endif #endif
unwind_init();
init_per_cpu(smp_processor_id()); /* Set Modes & Enable FP */ init_per_cpu(smp_processor_id()); /* Set Modes & Enable FP */
......
...@@ -170,7 +170,7 @@ void unwind_table_remove(struct unwind_table *table) ...@@ -170,7 +170,7 @@ void unwind_table_remove(struct unwind_table *table)
} }
/* Called from setup_arch to import the kernel unwind info */ /* Called from setup_arch to import the kernel unwind info */
static int unwind_init(void) int unwind_init(void)
{ {
long start, stop; long start, stop;
register unsigned long gp __asm__ ("r27"); register unsigned long gp __asm__ ("r27");
...@@ -417,5 +417,3 @@ int unwind_to_user(struct unwind_frame_info *info) ...@@ -417,5 +417,3 @@ int unwind_to_user(struct unwind_frame_info *info)
return ret; return ret;
} }
module_init(unwind_init);
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment