Messages in this thread |  | | From | Arnd Bergmann <> | Subject | Re: [PATCH 1/4] ARM: tegra: Unify tegra{20,30,114}_init_early() | Date | Sat, 9 Feb 2013 12:18:41 +0000 |
| |
On Friday 08 February 2013, Hiroshi Doyu wrote: > > > +#if defined(CONFIG_ARCH_TEGRA_3x_SOC) > > > > how about using: > > > > #if IS_BUILTIN(CONFIG_ARCH_TEGRA_3x_SOC) > > > > instead ? > > Why is IS_BUILTIN() prefered? >
Inside of a function, if(IS_ENABLED(CONFIG_FOO)) or the respective IS_BUILTIN is preferred over #ifdef because it provides better compile coverage and better readability. Also, IS_ENABLED() is nice when you want to check if something is builtin or module, without having to write a complex expression.
If you just replace the #ifdef with #if IS_BUILTIN as Felipe suggested, I see no real benefit, but it would be nice to write this as
void __init tegra_hotplug_init(void) { if (!IS_ENABLED(CONFIG_HOTPLUG_CPU)) return; if (IS_ENABLED(CONFIG_ARCH_TEGRA_2x_SOC)) && tegra_chip_id == TEGRA20) tegra_hotplug_shutdown = tegra20_hotplug_shutdown; if (IS_ENABLED(CONFIG_ARCH_TEGRA_3x_SOC)) && tegra_chip_id == TEGRA30) tegra_hotplug_shutdown = tegra30_hotplug_shutdown; }
which completely avoids all preprocessor conditionals and replaces them with compile-time choices based on constant expressions to eliminate the code paths for disabled platforms.
Arnd
|  |