Re: [PATCH 5.15] ACPI: PRM: Clean up guid type in struct prm_handler_info

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



On Mon, Nov 11, 2024 at 07:37:32AM -0700, Nathan Chancellor wrote:
> From: Dan Carpenter <dan.carpenter@xxxxxxxxxx>
> 
> commit 3d1c651272cf1df8aac7d9b6d92d836d27bed50f upstream.
> 
> Clang 19 prints a warning when we pass &th->guid to efi_pa_va_lookup():
> 
> drivers/acpi/prmt.c:156:29: error: passing 1-byte aligned argument to
> 4-byte aligned parameter 1 of 'efi_pa_va_lookup' may result in an
> unaligned pointer access [-Werror,-Walign-mismatch]
>   156 |                         (void *)efi_pa_va_lookup(&th->guid, handler_info->handler_address);
>       |                                                  ^
> 
> The problem is that efi_pa_va_lookup() takes a efi_guid_t and &th->guid
> is a regular guid_t.  The difference between the two types is the
> alignment.  efi_guid_t is a typedef.
> 
> 	typedef guid_t efi_guid_t __aligned(__alignof__(u32));
> 
> It's possible that this a bug in Clang 19.  Even though the alignment of
> &th->guid is not explicitly specified, it will still end up being aligned
> at 4 or 8 bytes.
> 
> Anyway, as Ard points out, it's cleaner to change guid to efi_guid_t type
> and that also makes the warning go away.
> 
> Fixes: 088984c8d54c ("ACPI: PRM: Find EFI_MEMORY_RUNTIME block for PRM handler and context")
> Reported-by: Linux Kernel Functional Testing <lkft@xxxxxxxxxx>
> Suggested-by: Ard Biesheuvel <ardb@xxxxxxxxxx>
> Signed-off-by: Dan Carpenter <dan.carpenter@xxxxxxxxxx>
> Tested-by: Paul E. McKenney <paulmck@xxxxxxxxxx>
> Acked-by: Ard Biesheuvel <ardb@xxxxxxxxxx>
> Link: https://patch.msgid.link/3777d71b-9e19-45f4-be4e-17bf4fa7a834@stanley.mountain
> [ rjw: Subject edit ]
> Signed-off-by: Rafael J. Wysocki <rafael.j.wysocki@xxxxxxxxx>
> [nathan: Fix conflicts due to lack of e38abdab441c]
> Signed-off-by: Nathan Chancellor <nathan@xxxxxxxxxx>
> ---
> This resolves the warning that Naresh reported, which breaks the build
> with CONFIG_WERROR=y:
> 
> https://lore.kernel.org/CA+G9fYtgOA-5y73G1YEixQ+OjmG=awBQjdKjK+b0qLNYvAAVpQ@xxxxxxxxxxxxxx/
> https://storage.tuxsuite.com/public/clangbuiltlinux/continuous-integration2/builds/2ogNnyGv40aCb0Jqybv8RlPt3S7/build.log

Now queued up,t hanks.

greg k-h




[Index of Archives]     [Linux Kernel]     [Kernel Development Newbies]     [Linux USB Devel]     [Video for Linux]     [Linux Audio Users]     [Yosemite Hiking]     [Linux Kernel]     [Linux SCSI]

  Powered by Linux