Re: [PATCH] x86/pm: Fix false positive kmemleak report in msr_build_context().

From: Rafael J. Wysocki
Date: Thu Mar 14 2024 - 11:55:59 EST


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.