Re: [PATCH] vmalloc: remove #ifdef in function body

From: Joe Perches
Date: Wed Dec 21 2011 - 00:31:21 EST


On Wed, 2011-12-21 at 14:17 +0900, Minchan Kim wrote:
> We don't like function body which include #ifdef.
[]
> diff --git a/mm/vmalloc.c b/mm/vmalloc.c
[]
> @@ -505,6 +505,7 @@ static void unmap_vmap_area(struct vmap_area *va)
> vunmap_page_range(va->va_start, va->va_end);
> }
>
> +#ifdef CONFIG_DEBUG_PAGEALLOC
> static void vmap_debug_free_range(unsigned long start, unsigned long end)
> {
> /*
> @@ -520,11 +521,15 @@ static void vmap_debug_free_range(unsigned long start, unsigned long end)
> * debugging doesn't do a broadcast TLB flush so it is a lot
> * faster).
> */
> -#ifdef CONFIG_DEBUG_PAGEALLOC
> vunmap_page_range(start, end);
> flush_tlb_kernel_range(start, end);
> -#endif
> }
> +#else
> +static inline void vmap_debug_free_range(unsigned long start,
> + unsigned long end)
> +{
> +}
> +#endif

I don't like this change.
I think it's perfectly good style to use:

1 void foo(args...)
2 {
3 #ifdef CONFIG_FOO
4 ...
5 #endif
6 }

instead of

1 #ifdef CONFIG_FOO
2 void foo(args...)
3 {
4 ...
5 }
6 #else
7 void foo(args...)
8 {
9 }
10 #endif

The first version is shorter and gcc optimizes
away the void func just fine. It also means
that 2 function prototypes don't need to be
kept in agreement when someone changes one
without testing CONFIG_FOO=y and CONFIG_FOO=n.


--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/