Hi, These two paths seem to be duplicating each other. We have an issue where we're using mtdoops to collect kernel logs on oops and panic, we also have a crash kernel (which also collects these logs). mtdoops saves logs differently for oops and panic, since oops isn't always fatal it schedules a write to the flash. Since panic() is always fatal is writes the logs immediately. In oops_end() the crash kernel runs immediately while still signaling an OOPS condition to mtdoops. Since mtdoops schedules a write to flash later, there is no later since the crash kernel runs immediately, we end up without getting the logs I'm wondering what the significance is to have these two paths ? oops_end() could just call into panic() or a modified panic_with_regs() then we would collapse multiple paths. There is what I would call a hack in kexec_should_crash() which checks if there are crash_kexec_post_notifiers and it runs panic() if they exist. This wouldn't be needed if we always called panic() . I also wonder if there are other things in panic() which we should be running , but don't get run because of these two paths. Any info appreciated. Daniel