linux-stable/scripts/mod
Masahiro Yamada 2e766a1f5f 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: 26095a01d3 ("ACPI / scan: Add support for ACPI _CLS device matching")
Signed-off-by: Masahiro Yamada <masahiroy@kernel.org>
2024-11-03 22:52:12 +09:00
..
.gitignore .gitignore: prefix local generated files with a slash 2021-05-02 00:43:35 +09:00
devicetable-offsets.c slimbus: generate MODULE_ALIAS() from MODULE_DEVICE_TABLE() 2024-09-03 12:10:39 +02:00
empty.c Linux-2.6.12-rc2 2005-04-16 15:20:36 -07:00
file2alias.c modpost: fix acpi MODULE_DEVICE_TABLE built with mismatched endianness 2024-11-03 22:52:12 +09:00
Makefile Makefile: remove redundant tool coverage variables 2024-05-14 23:35:48 +09:00
mk_elfconfig.c modpost: detect endianness on run-time 2024-09-01 20:33:32 +09:00
modpost.c kbuild: compile constant module information only once 2024-09-07 17:24:08 +09:00
modpost.h modpost: simplify modpost_log() 2024-09-01 20:34:50 +09:00
sumversion.c sumversion: Fix a memory leak in get_src_version() 2024-10-23 16:11:13 +09:00
symsearch.c modpost: replace the use of NOFAIL() with xmalloc() etc. 2024-09-01 20:34:48 +09:00