Skip to content

Commit da3d3f9

Browse files
Aleksey Makarovrafaeljw
authored andcommitted
ACPI / tables: table upgrade: refactor function definitions
Refer initrd_start, initrd_end directly from drivers/acpi/tables.c. This allows to use the table upgrade feature in architectures other than x86. Also this simplifies header files. The patch renames acpi_table_initrd_init() to acpi_table_upgrade() (what reflects the purpose of the function) and removes the unneeded wraps early_acpi_table_init() and early_initrd_acpi_init(). Signed-off-by: Aleksey Makarov <[email protected]> Acked-by: Lv Zheng <[email protected]> Signed-off-by: Rafael J. Wysocki <[email protected]>
1 parent ce0c1fc commit da3d3f9

File tree

3 files changed

+11
-20
lines changed

3 files changed

+11
-20
lines changed

arch/x86/kernel/setup.c

Lines changed: 1 addition & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -399,20 +399,13 @@ static void __init reserve_initrd(void)
399399
memblock_free(ramdisk_image, ramdisk_end - ramdisk_image);
400400
}
401401

402-
static void __init early_initrd_acpi_init(void)
403-
{
404-
early_acpi_table_init((void *)initrd_start, initrd_end - initrd_start);
405-
}
406402
#else
407403
static void __init early_reserve_initrd(void)
408404
{
409405
}
410406
static void __init reserve_initrd(void)
411407
{
412408
}
413-
static void __init early_initrd_acpi_init(void)
414-
{
415-
}
416409
#endif /* CONFIG_BLK_DEV_INITRD */
417410

418411
static void __init parse_setup_data(void)
@@ -1146,7 +1139,7 @@ void __init setup_arch(char **cmdline_p)
11461139

11471140
reserve_initrd();
11481141

1149-
early_initrd_acpi_init();
1142+
acpi_table_upgrade();
11501143

11511144
vsmp_init();
11521145

drivers/acpi/tables.c

Lines changed: 4 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -34,6 +34,7 @@
3434
#include <linux/bootmem.h>
3535
#include <linux/earlycpio.h>
3636
#include <linux/memblock.h>
37+
#include <linux/initrd.h>
3738
#include "internal.h"
3839

3940
#ifdef CONFIG_ACPI_CUSTOM_DSDT
@@ -481,8 +482,10 @@ static DECLARE_BITMAP(acpi_initrd_installed, NR_ACPI_INITRD_TABLES);
481482

482483
#define MAP_CHUNK_SIZE (NR_FIX_BTMAPS << PAGE_SHIFT)
483484

484-
static void __init acpi_table_initrd_init(void *data, size_t size)
485+
void __init acpi_table_upgrade(void)
485486
{
487+
void *data = (void *)initrd_start;
488+
size_t size = initrd_end - initrd_start;
486489
int sig, no, table_nr = 0, total_offset = 0;
487490
long offset = 0;
488491
struct acpi_table_header *table;
@@ -696,10 +699,6 @@ static void __init acpi_table_initrd_scan(void)
696699
}
697700
}
698701
#else
699-
static void __init acpi_table_initrd_init(void *data, size_t size)
700-
{
701-
}
702-
703702
static acpi_status
704703
acpi_table_initrd_override(struct acpi_table_header *existing_table,
705704
acpi_physical_address *address,
@@ -742,11 +741,6 @@ acpi_os_table_override(struct acpi_table_header *existing_table,
742741
return AE_OK;
743742
}
744743

745-
void __init early_acpi_table_init(void *data, size_t size)
746-
{
747-
acpi_table_initrd_init(data, size);
748-
}
749-
750744
/*
751745
* acpi_table_init()
752746
*

include/linux/acpi.h

Lines changed: 6 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -208,7 +208,6 @@ void acpi_boot_table_init (void);
208208
int acpi_mps_check (void);
209209
int acpi_numa_init (void);
210210

211-
void early_acpi_table_init(void *data, size_t size);
212211
int acpi_table_init (void);
213212
int acpi_table_parse(char *id, acpi_tbl_table_handler handler);
214213
int __init acpi_parse_entries(char *id, unsigned long table_size,
@@ -588,7 +587,6 @@ static inline const char *acpi_dev_name(struct acpi_device *adev)
588587
return NULL;
589588
}
590589

591-
static inline void early_acpi_table_init(void *data, size_t size) { }
592590
static inline void acpi_early_init(void) { }
593591
static inline void acpi_subsystem_init(void) { }
594592

@@ -997,4 +995,10 @@ static inline struct fwnode_handle *acpi_get_next_subnode(struct device *dev,
997995
#define acpi_probe_device_table(t) ({ int __r = 0; __r;})
998996
#endif
999997

998+
#ifdef CONFIG_ACPI_TABLE_UPGRADE
999+
void acpi_table_upgrade(void);
1000+
#else
1001+
static inline void acpi_table_upgrade(void) { }
1002+
#endif
1003+
10001004
#endif /*_LINUX_ACPI_H*/

0 commit comments

Comments
 (0)