ACPI: bus: Reduce runtime memory footprint of struct acpi_device

The ACPI handle is heavily used by the ACPI code. Making it as
the first member in the struct acpi_device reduces code size.

For instance, the drivers/acpi/scan.o (with `make allyesconfig`)
gives this statistics:

add/remove: 0/0 grow/shrink: 3/8 up/down: 50/-169 (-119)
Function                                     old     new   delta
acpi_device_add                             2294    2319     +25
acpi_add_single_object                      6523    6544     +21
acpi_dev_get_next_consumer_dev               602     606      +4
acpi_tie_acpi_dev                            169     165      -4
acpi_scan_drop_device                        319     315      -4
acpi_dev_clear_dependencies                 1151    1147      -4
acpi_bus_attach                             2898    2894      -4
acpi_dma_get_range                          1420    1415      -5
acpi_init_device_object                     5497    5485     -12
acpi_bus_check_add                          1940    1923     -17
acpi_device_hotplug                         3407    3288    -119
Total: Before=77509, After=77390, chg -0.15%

Signed-off-by: Andy Shevchenko <andriy.shevchenko@linux.intel.com>
[ rjw: Changelog tweaks ]
Link: https://patch.msgid.link/20260909163918.368017-1-andriy.shevchenko@linux.intel.com
Signed-off-by: Rafael J. Wysocki <rafael.j.wysocki@intel.com>
This commit is contained in:
Andy Shevchenko 2026-09-09 18:39:18 +02:00 committed by Rafael J. Wysocki
parent df2908090c
commit f8113f311c

View File

@ -435,9 +435,9 @@ struct acpi_device_software_nodes {
/* Device */
struct acpi_device {
acpi_handle handle; /* no handle for fixed hardware */
u32 pld_crc;
int device_type;
acpi_handle handle; /* no handle for fixed hardware */
struct fwnode_handle fwnode;
struct list_head wakeup_list;
struct list_head del_list;