summaryrefslogtreecommitdiffstats
path: root/arch/powerpc
diff options
context:
space:
mode:
authorMasahiro Yamada <masahiroy@kernel.org>2024-11-03 13:46:50 +0100
committerMasahiro Yamada <masahiroy@kernel.org>2024-11-03 14:52:12 +0100
commit2e766a1f5f94a142d9a906c9411d0f6101c4c721 (patch)
treec395b481f29701978e0249db6bb87ac9ff1bb156 /arch/powerpc
parentkconfig: show sub-menu entries even if the prompt is hidden (diff)
downloadlinux-2e766a1f5f94a142d9a906c9411d0f6101c4c721.tar.xz
linux-2e766a1f5f94a142d9a906c9411d0f6101c4c721.zip
modpost: fix acpi MODULE_DEVICE_TABLE built with mismatched endianness
When CONFIG_SATA_AHCI_PLATFORM=m, modpost outputs incorect acpi MODULE_ALIAS() if the endianness of the target and the build machine do not match. When the endianness of the target kernel and the build machine match, the output is correct: $ grep 'MODULE_ALIAS("acpi' drivers/ata/ahci_platform.mod.c MODULE_ALIAS("acpi*:APMC0D33:*"); MODULE_ALIAS("acpi*:010601:*"); However, when building a little-endian kernel on a big-endian machine (or vice versa), the output is incorrect: $ grep 'MODULE_ALIAS("acpi' drivers/ata/ahci_platform.mod.c MODULE_ALIAS("acpi*:APMC0D33:*"); MODULE_ALIAS("acpi*:0601??:*"); The 'cls' and 'cls_msk' fields are 32-bit. DEF_FIELD() must be used instead of DEF_FIELD_ADDR() to correctly handle endianness of these 32-bit fields. The check 'if (cls)' was unnecessary; it never became NULL, as it was the pointer to 'symval' plus the offset to the 'cls' field. Fixes: 26095a01d359 ("ACPI / scan: Add support for ACPI _CLS device matching") Signed-off-by: Masahiro Yamada <masahiroy@kernel.org>
Diffstat (limited to 'arch/powerpc')
0 files changed, 0 insertions, 0 deletions