On Mon, 19 Mar 2018, Maciej W. Rozycki wrote: > > > Commit 304acb717e5b67cf56f05bc5b21123758e1f7ea0 AKA > > > https://patchwork.linux-mips.org/patch/9705/ was backported to 3.16.55 > > > stable as 8605aa2fea28c0485aeb60c114a9d52df1455915 and I'm afraid it > > > causes yeeloongs to fail to boot up. 3.16.54 was fine; bisection took > > > me to this patch. [...] > > Guenter Roeck reported the same problem on QEMU Malta emulation. > > I haven't yet ivnestigated why this causes breakage. I will aim to fix > > this in the next update (will be 3.16.57 now), if necessary by > > reverting that and whatever depends on it. > > I'll see if I can trigger it with my development setup and investigate. OK, I have been able to reproduce the crash and I can see what is going on here: the backport didn't take into account a change from `break' to `goto out' required for code in `do_cpu' in that old version and consequently `force_sig(SIGILL, current)' is reached whenever the first FPU instruction is executed on hard-float hardware, with obvious consequences. Rather than messing with commit 304acb717e5b ("MIPS: Set `si_code' for SIGFPE signals sent from emulation too") though, I suggest cherry-picking commit 27e28e8ec47a ("MIPS: Normalise code flow in the CpU exception handler"), which was in the original series and which I have verified to remove the crash. I believe it is obvious enough to be considered safe to backport. Please let me know if you need anything else from me. Maciej