ARM: tegra: Remove board_init_funcs array
authorArnd Bergmann <arnd@arndb.de>
Wed, 22 Jun 2016 12:39:41 +0000 (14:39 +0200)
committerThierry Reding <treding@nvidia.com>
Mon, 11 Jul 2016 14:47:53 +0000 (16:47 +0200)
In a configuration that enables CONFIG_UBSAN_SANITIZE_ALL, I am getting
a section mismatch warning for tegra20:

WARNING: arch/arm/mach-tegra/built-in.o(.data+0x6e0): Section mismatch in reference from the variable board_init_funcs to the function .init.text:paz00_init()

The array is no longer useful here since there is only one entry,
so we can simply call the function directly after checking
of_machine_is_compatible(). This fixes the section mismatch
and is easier to read.

Signed-off-by: Arnd Bergmann <arnd@arndb.de>
Signed-off-by: Thierry Reding <treding@nvidia.com>
arch/arm/mach-tegra/tegra.c

index 2378fa560a210b4a523d60a230b1b6ca128a42ce..42d7ee9658facac7fccaca9bae02ee737f6e2771 100644 (file)
@@ -118,32 +118,14 @@ out:
        of_platform_populate(NULL, of_default_bus_match_table, NULL, parent);
 }
 
-static void __init paz00_init(void)
-{
-       if (IS_ENABLED(CONFIG_ARCH_TEGRA_2x_SOC))
-               tegra_paz00_wifikill_init();
-}
-
-static struct {
-       char *machine;
-       void (*init)(void);
-} board_init_funcs[] = {
-       { "compal,paz00", paz00_init },
-};
-
 static void __init tegra_dt_init_late(void)
 {
-       int i;
-
        tegra_init_suspend();
        tegra_cpuidle_init();
 
-       for (i = 0; i < ARRAY_SIZE(board_init_funcs); i++) {
-               if (of_machine_is_compatible(board_init_funcs[i].machine)) {
-                       board_init_funcs[i].init();
-                       break;
-               }
-       }
+       if (IS_ENABLED(CONFIG_ARCH_TEGRA_2x_SOC) &&
+           of_machine_is_compatible("compal,paz00"))
+               tegra_paz00_wifikill_init();
 }
 
 static const char * const tegra_dt_board_compat[] = {