On Thu, Mar 14, 2024 at 4:05 PM Dave Hansen <dave.hansen@xxxxxxxxx> wrote: > > 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. This change is fine with me FWIW, but I agree that making it for kmemleak reasons feels kind of misguided.