Commit 1b7f3b6c authored by Michael Ellerman's avatar Michael Ellerman

powerpc/eeh: Fix build with STACKTRACE=n

The build breaks when STACKTRACE=n, eg. skiroot_defconfig:

  arch/powerpc/kernel/eeh_event.c:124:23: error: implicit declaration of function 'stack_trace_save'

Fix it with some ifdefs for now.

Fixes: 25baf3d8 ("powerpc/eeh: Defer printing stack trace")
Signed-off-by: default avatarMichael Ellerman <mpe@ellerman.id.au>
parent 6ccb4ac2
...@@ -89,6 +89,7 @@ struct eeh_pe { ...@@ -89,6 +89,7 @@ struct eeh_pe {
struct list_head child; /* Memb. child_list/eeh_phb_pe */ struct list_head child; /* Memb. child_list/eeh_phb_pe */
struct list_head edevs; /* List of eeh_dev in this PE */ struct list_head edevs; /* List of eeh_dev in this PE */
#ifdef CONFIG_STACKTRACE
/* /*
* Saved stack trace. When we find a PE freeze in eeh_dev_check_failure * Saved stack trace. When we find a PE freeze in eeh_dev_check_failure
* the stack trace is saved here so we can print it in the recovery * the stack trace is saved here so we can print it in the recovery
...@@ -99,6 +100,7 @@ struct eeh_pe { ...@@ -99,6 +100,7 @@ struct eeh_pe {
*/ */
unsigned long stack_trace[64]; unsigned long stack_trace[64];
int trace_entries; int trace_entries;
#endif /* CONFIG_STACKTRACE */
}; };
#define eeh_pe_for_each_dev(pe, edev, tmp) \ #define eeh_pe_for_each_dev(pe, edev, tmp) \
......
...@@ -908,6 +908,7 @@ void eeh_handle_normal_event(struct eeh_pe *pe) ...@@ -908,6 +908,7 @@ void eeh_handle_normal_event(struct eeh_pe *pe)
eeh_pe_loc_get(pe), eeh_pe_loc_get(phb_pe)); eeh_pe_loc_get(pe), eeh_pe_loc_get(phb_pe));
} }
#ifdef CONFIG_STACKTRACE
/* /*
* Print the saved stack trace now that we've verified there's * Print the saved stack trace now that we've verified there's
* something to recover. * something to recover.
...@@ -926,7 +927,7 @@ void eeh_handle_normal_event(struct eeh_pe *pe) ...@@ -926,7 +927,7 @@ void eeh_handle_normal_event(struct eeh_pe *pe)
pe->trace_entries = 0; pe->trace_entries = 0;
} }
#endif /* CONFIG_STACKTRACE */
eeh_pe_update_time_stamp(pe); eeh_pe_update_time_stamp(pe);
pe->freeze_count++; pe->freeze_count++;
......
...@@ -117,12 +117,14 @@ int __eeh_send_failure_event(struct eeh_pe *pe) ...@@ -117,12 +117,14 @@ int __eeh_send_failure_event(struct eeh_pe *pe)
* while the PE is sitting in the event queue. * while the PE is sitting in the event queue.
*/ */
if (pe) { if (pe) {
#ifdef CONFIG_STACKTRACE
/* /*
* Save the current stack trace so we can dump it from the * Save the current stack trace so we can dump it from the
* event handler thread. * event handler thread.
*/ */
pe->trace_entries = stack_trace_save(pe->stack_trace, pe->trace_entries = stack_trace_save(pe->stack_trace,
ARRAY_SIZE(pe->stack_trace), 0); ARRAY_SIZE(pe->stack_trace), 0);
#endif /* CONFIG_STACKTRACE */
eeh_pe_state_mark(pe, EEH_PE_RECOVERING); eeh_pe_state_mark(pe, EEH_PE_RECOVERING);
} }
......
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