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: 25baf3d816
("powerpc/eeh: Defer printing stack trace")
Signed-off-by: Michael Ellerman <mpe@ellerman.id.au>
This commit is contained in:
@@ -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 {
|
|||||||
*/
|
*/
|
||||||
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)
|
|||||||
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)
|
|||||||
|
|
||||||
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)
|
|||||||
* 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);
|
||||||
}
|
}
|
||||||
|
Reference in New Issue
Block a user