2012-10-31 14:37:04

by Thomas Renninger

[permalink] [raw]
Subject: ACPI table overriding via initrd cleanups

These are against latest x86-tip.
Only tiny cleanups. Would be great if they can be applied
to x86-tip.

Thanks,

Thomas


2012-10-31 14:36:00

by Thomas Renninger

[permalink] [raw]
Subject: [PATCH 2/3] ACPI: Make acpi_table_checksum static

From: Fenghua Yu <[email protected]>

Signed-off-by: Thomas Renninger <[email protected]>
---
drivers/acpi/osl.c | 2 +-
1 files changed, 1 insertions(+), 1 deletions(-)

diff --git a/drivers/acpi/osl.c b/drivers/acpi/osl.c
index a2845ff..a873c4f 100644
--- a/drivers/acpi/osl.c
+++ b/drivers/acpi/osl.c
@@ -542,7 +542,7 @@ static u64 acpi_tables_addr;
static int all_tables_size;

/* Copied from acpica/tbutils.c:acpi_tb_checksum() */
-u8 __init acpi_table_checksum(u8 *buffer, u32 length)
+static u8 __init acpi_table_checksum(u8 *buffer, u32 length)
{
u8 sum = 0;
u8 *end = buffer + length;
--
1.7.6.1

2012-10-31 14:36:05

by Thomas Renninger

[permalink] [raw]
Subject: [PATCH 1/3] ACPI: Cleanup acpi_initrd_override declaration and remove ifdefs

Move the acpi_initrd_override() declaration out of CONFIG_ACPI area so that
acpi_initrd_override is also defined if CONFIG_ACPI is not defined.

Move the acpi_initrd_override() call into reserve_initrd() inside the
CONFIG_BLK_DEV_INITRD block.

Now ifdefs around the call in setup.c can be removed.

Cleanup only, no functional change.

Signed-off-by: Thomas Renninger <[email protected]>
---
arch/x86/kernel/setup.c | 6 ++----
include/linux/acpi.h | 16 ++++++++--------
2 files changed, 10 insertions(+), 12 deletions(-)

diff --git a/arch/x86/kernel/setup.c b/arch/x86/kernel/setup.c
index e800bc6..db3ba50 100644
--- a/arch/x86/kernel/setup.c
+++ b/arch/x86/kernel/setup.c
@@ -411,6 +411,8 @@ static void __init reserve_initrd(void)
relocate_initrd();

memblock_free(ramdisk_image, ramdisk_end - ramdisk_image);
+
+ acpi_initrd_override((void *)initrd_start, initrd_end - initrd_start);
}
#else
static void __init reserve_initrd(void)
@@ -956,10 +958,6 @@ void __init setup_arch(char **cmdline_p)

reserve_initrd();

-#if defined(CONFIG_ACPI) && defined(CONFIG_BLK_DEV_INITRD)
- acpi_initrd_override((void *)initrd_start, initrd_end - initrd_start);
-#endif
-
reserve_crashkernel();

vsmp_init();
diff --git a/include/linux/acpi.h b/include/linux/acpi.h
index f70f18d..e4f9445 100644
--- a/include/linux/acpi.h
+++ b/include/linux/acpi.h
@@ -76,14 +76,6 @@ typedef int (*acpi_table_handler) (struct acpi_table_header *table);

typedef int (*acpi_table_entry_handler) (struct acpi_subtable_header *header, const unsigned long end);

-#ifdef CONFIG_ACPI_INITRD_TABLE_OVERRIDE
-void acpi_initrd_override(void *data, size_t size);
-#else
-static inline void acpi_initrd_override(void *data, size_t size)
-{
-}
-#endif
-
char * __acpi_map_table (unsigned long phys_addr, unsigned long size);
void __acpi_unmap_table(char *map, unsigned long size);
int early_acpi_boot_init(void);
@@ -446,4 +438,12 @@ static inline void arch_reserve_mem_area(acpi_physical_address addr,
#define acpi_os_set_prepare_sleep(func, pm1a_ctrl, pm1b_ctrl) do { } while (0)
#endif

+#ifdef CONFIG_ACPI_INITRD_TABLE_OVERRIDE
+void acpi_initrd_override(void *data, size_t size);
+#else
+static inline void acpi_initrd_override(void *data, size_t size)
+{
+}
+#endif
+
#endif /*_LINUX_ACPI_H*/
--
1.7.6.1

2012-10-31 14:35:54

by Thomas Renninger

[permalink] [raw]
Subject: [PATCH 3/3] ACPI: Overriding ACPI tables via initrd only works with an initrd

Reflect this dependency in Kconfig.
Shorten the config description as suggested by Borislav Petkov

Signed-off-by: Thomas Renninger <[email protected]>
---
drivers/acpi/Kconfig | 3 ++-
1 files changed, 2 insertions(+), 1 deletions(-)

diff --git a/drivers/acpi/Kconfig b/drivers/acpi/Kconfig
index 44cea5d..ca939b4 100644
--- a/drivers/acpi/Kconfig
+++ b/drivers/acpi/Kconfig
@@ -262,7 +262,8 @@ config ACPI_CUSTOM_DSDT
default ACPI_CUSTOM_DSDT_FILE != ""

config ACPI_INITRD_TABLE_OVERRIDE
- bool "ACPI tables can be passed via uncompressed cpio in initrd"
+ bool "ACPI tables override via initrd"
+ depends on BLK_DEV_INITRD
default n
help
This option provides functionality to override arbitrary ACPI tables
--
1.7.6.1