mirror of
https://github.com/torvalds/linux.git
synced 2026-07-28 10:09:10 +02:00
ppc/fadump: invoke kmsg_dump in fadump panic path
fadump is registered in panic_notifier_list and gets triggered before kmsg_dump_desc() in the panic path. As a result, kmsg_dumpers such as pstore are not executed during fadump crashes. This is problematic because pstore provides a critical fallback mechanism for crash analysis. When fadump fails to successfully reboot the system or capture a dump, pstore logs may be the only available information from the crashed kernel. Without invoking kmsg_dump_desc() in the fadump path, we lose this valuable diagnostic data. Invoke kmsg_dump_desc() from the fadump panic handler, but only when fadump is actually registered (checked via should_fadump_crash()). This ensures kmsg_dumpers are called without duplicating the call that occurs later in panic() when fadump is not active. The call is placed before crash_fadump() to ensure logs are captured before the system attempts to trigger the firmware-assisted dump. Reported-by: Shirisha G <shirisha@linux.ibm.com> Suggested-by: Sourabh Jain <sourabhjain@linux.ibm.com> Signed-off-by: Shivang Upadhyay <shivangu@linux.ibm.com> Tested-by: Shirisha G <shirisha@linux.ibm.com> Reviewed-by: Mahesh Salgaonkar <mahesh@linux.ibm.com> Reviewed-by: Sourabh Jain <sourabhjain@linux.ibm.com> Signed-off-by: Madhavan Srinivasan <maddy@linux.ibm.com> Link: https://patch.msgid.link/20260412113057.46090-1-shivangu@linux.ibm.com
This commit is contained in:
parent
0521dbbc57
commit
6ed8332639
|
|
@ -68,6 +68,7 @@
|
|||
#include <asm/kasan.h>
|
||||
#include <asm/mce.h>
|
||||
#include <asm/systemcfg.h>
|
||||
#include <linux/kmsg_dump.h>
|
||||
|
||||
#include "setup.h"
|
||||
|
||||
|
|
@ -741,6 +742,13 @@ static int ppc_panic_fadump_handler(struct notifier_block *this,
|
|||
*/
|
||||
hard_irq_disable();
|
||||
|
||||
/*
|
||||
* Invoke kmsg_dump (e.g., pstore) before crash_fadump() as fadump
|
||||
* runs before panic()'s kmsg_dump_desc() call.
|
||||
*/
|
||||
if (should_fadump_crash())
|
||||
kmsg_dump_desc(KMSG_DUMP_PANIC, (char *)ptr);
|
||||
|
||||
/*
|
||||
* If firmware-assisted dump has been registered then trigger
|
||||
* its callback and let the firmware handles everything else.
|
||||
|
|
|
|||
Loading…
Reference in New Issue
Block a user