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

From: Dave Hansen
Date: Thu Mar 14 2024 - 11:05:48 EST


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.