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>
This commit is contained in:
committed by
Kyle McMartin
parent
0be7d1fe43
commit
f0514ae323
@@ -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 @@
|
|||||||
#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)
|
|||||||
#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)
|
|||||||
}
|
}
|
||||||
|
|
||||||
/* 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)
|
|||||||
|
|
||||||
return ret;
|
return ret;
|
||||||
}
|
}
|
||||||
|
|
||||||
module_init(unwind_init);
|
|
||||||
|
Reference in New Issue
Block a user