On 3/14/24 07:26, Anton Altaparmakov wrote: > /* image of the saved processor state */ > struct saved_context { > - /* > - * On x86_32, all segment registers except gs are saved at kernel > - * entry in pt_regs. > - */ > - u16 gs; > unsigned long cr0, cr2, cr3, cr4; > u64 misc_enable; > struct saved_msrs saved_msrs; > @@ -27,6 +22,11 @@ struct saved_context { > unsigned long tr; > unsigned long safety; > unsigned long return_address; > + /* > + * On x86_32, all segment registers except gs are saved at kernel > + * entry in pt_regs. > + */ > + u16 gs; > bool misc_enable_saved; > } __attribute__((packed)); Isn't this just kinda poking at the symptoms? This seems to be basically the exact same bug as b0b592cf08, just with a different source of unaligned structure members. There's nothing to keep folks from reintroducing these kinds of issues and evidently no way to detect when they happen without lengthy reproducers.