2010-11-04 15:24:01

by Jan Beulich

[permalink] [raw]
Subject: [PATCH] x86-64: adjust section annotations in AMD Fam10 MMCONF enabling code

check_enable_amd_mmconf_dmi() gets called only for the BSP, hence
everything hanging off of it can be __init*.

Signed-off-by: Jan Beulich <[email protected]>
Cc: Yinghai Lu <[email protected]>

---
arch/x86/kernel/mmconf-fam10h_64.c | 7 ++++---
1 file changed, 4 insertions(+), 3 deletions(-)

--- linux-2.6.37-rc1/arch/x86/kernel/mmconf-fam10h_64.c
+++ 2.6.37-rc1-x86_64-mmconf-fam10h-sections/arch/x86/kernel/mmconf-fam10h_64.c
@@ -217,13 +217,13 @@ void __cpuinit fam10h_check_enable_mmcfg
wrmsrl(address, val);
}

-static int __devinit set_check_enable_amd_mmconf(const struct dmi_system_id *d)
+static int __init set_check_enable_amd_mmconf(const struct dmi_system_id *d)
{
pci_probe |= PCI_CHECK_ENABLE_AMD_MMCONF;
return 0;
}

-static const struct dmi_system_id __cpuinitconst mmconf_dmi_table[] = {
+static const struct dmi_system_id __initconst mmconf_dmi_table[] = {
{
.callback = set_check_enable_amd_mmconf,
.ident = "Sun Microsystems Machine",
@@ -234,7 +234,8 @@ static const struct dmi_system_id __cpui
{}
};

-void __cpuinit check_enable_amd_mmconf_dmi(void)
+/* Called from a __cpuinit function, but only on the BSP. */
+void __ref check_enable_amd_mmconf_dmi(void)
{
dmi_check_system(mmconf_dmi_table);
}



2010-11-05 17:27:45

by Yinghai Lu

[permalink] [raw]
Subject: Re: [PATCH] x86-64: adjust section annotations in AMD Fam10 MMCONF enabling code

On 11/04/2010 08:23 AM, Jan Beulich wrote:
> check_enable_amd_mmconf_dmi() gets called only for the BSP, hence
> everything hanging off of it can be __init*.
>
> Signed-off-by: Jan Beulich <[email protected]>
> Cc: Yinghai Lu <[email protected]>
>
> ---
> arch/x86/kernel/mmconf-fam10h_64.c | 7 ++++---
> 1 file changed, 4 insertions(+), 3 deletions(-)
>
> --- linux-2.6.37-rc1/arch/x86/kernel/mmconf-fam10h_64.c
> +++ 2.6.37-rc1-x86_64-mmconf-fam10h-sections/arch/x86/kernel/mmconf-fam10h_64.c
> @@ -217,13 +217,13 @@ void __cpuinit fam10h_check_enable_mmcfg
> wrmsrl(address, val);
> }
>
> -static int __devinit set_check_enable_amd_mmconf(const struct dmi_system_id *d)
> +static int __init set_check_enable_amd_mmconf(const struct dmi_system_id *d)
> {
> pci_probe |= PCI_CHECK_ENABLE_AMD_MMCONF;
> return 0;
> }
>
> -static const struct dmi_system_id __cpuinitconst mmconf_dmi_table[] = {
> +static const struct dmi_system_id __initconst mmconf_dmi_table[] = {
> {
> .callback = set_check_enable_amd_mmconf,
> .ident = "Sun Microsystems Machine",
> @@ -234,7 +234,8 @@ static const struct dmi_system_id __cpui
> {}
> };
>
> -void __cpuinit check_enable_amd_mmconf_dmi(void)
> +/* Called from a __cpuinit function, but only on the BSP. */
> +void __ref check_enable_amd_mmconf_dmi(void)
> {
> dmi_check_system(mmconf_dmi_table);
> }
>
>
>

Acked-by: Yinghai Lu <[email protected]>