AVX register corruption from signal delivery

From: Barret Rhoden
Date: Tue Nov 26 2019 - 14:50:01 EST


Hi -

The Go Team found a bug[1] where the AVX registers can get corrupted during signal delivery. They were able to bisect it to commits related to the "x86: load FPU registers on return to userland" patchset[2].

The bug requires the kernel to be built with GCC 9 to trigger. In particular, arch/x86/kernel/fpu/signal.c needs to be built with GCC 9.

Thanks,

Barret

[1] https://bugzilla.kernel.org/show_bug.cgi?id=205663
[2] https://lore.kernel.org/kvm/20190403164156.19645-1-bigeasy@xxxxxxxxxxxxx/