On Fri, Oct 26, 2018 at 11:05:43AM +0200, Pavel Machek wrote: > On Mon 2018-10-22 06:20:13, Sasha Levin wrote: > > From: Gerald Schaefer <gerald.schaefer@xxxxxxxxxx> > > > > [ Upstream commit 55a5542a546238354d1f209f794414168cf8c71d ] > > > > The resume code checks if the resume cpu is the same as the suspend cpu. > > If not, and if it is also not possible to switch to the suspend cpu, an > > error message should be printed and the resume process should be stopped > > by loading a disabled wait psw. > > > > The current logic is broken in multiple ways, the message is never printed, > > and the disabled wait psw never loaded because the kernel panics before that: > > - sam31 and SIGP_SET_ARCHITECTURE to ESA mode is wrong, this will break > > on the first 64bit instruction in sclp_early_printk(). > > - The init stack should be used, but the stack pointer is not set up correctly > > (missing aghi %r15,-STACK_FRAME_OVERHEAD). > > - __sclp_early_printk() checks the sclp_init_state. If it is not > > sclp_init_state_uninitialized, it simply returns w/o printing anything. > > In the resumed kernel however, sclp_init_state will never be uninitialized. > > Stable patches should fix one bug, and one bug only. So should upstream patches, but the rule of "stable patches match upstream identically" overrules this :)