2008-11-17 03:53:29

by Andrey Borzenkov

[permalink] [raw]
Subject: 2.6.28-rc5: unused variable in pagetable_init

CC arch/x86/mm/init_32.o
/home/bor/src/linux-git/arch/x86/mm/init_32.c: In function ‘pagetable_init’:
/home/bor/src/linux-git/arch/x86/mm/init_32.c:515: warning: unused variable ‘pgd_base’

Well, pagetable_init is noop unless HIGHMEM is defined so it could be
as simple as that.

Or is something else expected to go into pagetable_init for more general
case?

--- arch/x86/mm/init_32.c 2008-11-10 06:19:14.000000000 +0300
+++ /tmp/init_32.c 2008-11-17 06:52:21.383685722 +0300
@@ -435,9 +435,17 @@ static void __init set_highmem_pages_ini
}
#endif /* !CONFIG_NUMA */

+static void __init pagetable_init(void)
+{
+ pgd_t *pgd_base = swapper_pg_dir;
+
+ permanent_kmaps_init(pgd_base);
+}
+
#else
# define permanent_kmaps_init(pgd_base) do { } while (0)
# define set_highmem_pages_init() do { } while (0)
+# define pagetable_init() do { } while (0)
#endif /* CONFIG_HIGHMEM */

void __init native_pagetable_setup_start(pgd_t *base)
@@ -510,13 +518,6 @@ static void __init early_ioremap_page_ta
early_ioremap_reset();
}

-static void __init pagetable_init(void)
-{
- pgd_t *pgd_base = swapper_pg_dir;
-
- permanent_kmaps_init(pgd_base);
-}
-
#ifdef CONFIG_ACPI_SLEEP
/*
* ACPI suspend needs this for resume, because things like the intel-agp


Attachments:
(No filename) (1.30 kB)
signature.asc (197.00 B)
This is a digitally signed message part.
Download all attachments

2008-11-17 08:25:42

by Ingo Molnar

[permalink] [raw]
Subject: Re: 2.6.28-rc5: unused variable in pagetable_init


* Andrey Borzenkov <[email protected]> wrote:

> CC arch/x86/mm/init_32.o
> /home/bor/src/linux-git/arch/x86/mm/init_32.c: In function ‘pagetable_init’:
> /home/bor/src/linux-git/arch/x86/mm/init_32.c:515: warning: unused variable ‘pgd_base’
>
> Well, pagetable_init is noop unless HIGHMEM is defined so it could
> be as simple as that.
>
> Or is something else expected to go into pagetable_init for more
> general case?
>
> --- arch/x86/mm/init_32.c 2008-11-10 06:19:14.000000000 +0300
> +++ /tmp/init_32.c 2008-11-17 06:52:21.383685722 +0300
> @@ -435,9 +435,17 @@ static void __init set_highmem_pages_ini
> }
> #endif /* !CONFIG_NUMA */
>
> +static void __init pagetable_init(void)
> +{
> + pgd_t *pgd_base = swapper_pg_dir;
> +
> + permanent_kmaps_init(pgd_base);
> +}
> +
> #else
> # define permanent_kmaps_init(pgd_base) do { } while (0)
> # define set_highmem_pages_init() do { } while (0)
> +# define pagetable_init() do { } while (0)
> #endif /* CONFIG_HIGHMEM */
>
> void __init native_pagetable_setup_start(pgd_t *base)
> @@ -510,13 +518,6 @@ static void __init early_ioremap_page_ta
> early_ioremap_reset();
> }
>
> -static void __init pagetable_init(void)
> -{
> - pgd_t *pgd_base = swapper_pg_dir;
> -
> - permanent_kmaps_init(pgd_base);
> -}
> -
> #ifdef CONFIG_ACPI_SLEEP

The better fix would be to convert permanent_kmaps_init() from a macro
to an (empty) inline. That way CPP does not eat away the code and GCC
will known that the variable is indeed used.

Ingo