On Mon, 2017-07-24 at 14:10:15 UTC, Michael Ellerman wrote: > For debugging very early boot problems we have CONFIG_PPC_EARLY_DEBUG, > which allows configuring the kernel such that it unconditionally writes > to a particular type of console, regardless of whether that console > exists or not. This is useful sometimes when the kernel crashes before > it can even determine what platform it's on, and therefore what consoles > exist. > > However if you boot a kernel built this way on a different platform, it > will generally crash because it writes to a console that doesn't exist. > > A particularly nasty instance of this is if you enable the hypervisor > console early debug, and then boot that kernel on bare metal. The result > is that the kernel calls "the hypervisor" very early in boot, but the > kernel *is* the hypervisor, so we jump to the system call handler and > start executing all sorts of code that isn't ready to be run. This may > lead to a machine check or check stop depending on how lucky you are. > > Luckily there is an easy way to avoid this particular case. We simply > read the MSR before installing the hooks, and if we see MSR_HV is set > then we are the hypervisor and we definitely should not use the > hypervisor console. > > Signed-off-by: Michael Ellerman <m...@ellerman.id.au>
Applied to powerpc next. https://git.kernel.org/powerpc/c/9227f0431435c9d664771b112c230e cheers