2022-01-25 00:23:22

by Randy Dunlap

[permalink] [raw]
Subject: [PATCH -next v2] ia64: make IA64_MCA_RECOVERY bool instead of tristate

In linux-next, IA64_MCA_RECOVERY uses the (new) function make_task_dead(),
which is not exported for use by modules. Instead of exporting it for
one user, convert IA64_MCA_RECOVERY to be a bool Kconfig symbol.

In a config file from "kernel test robot <[email protected]>" for a
different problem, this linker error was exposed when
CONFIG_IA64_MCA_RECOVERY=m.

Fixes this build error:

ERROR: modpost: "make_task_dead" [arch/ia64/kernel/mca_recovery.ko] undefined!

Fixes: 0e25498f8cd4 ("exit: Add and use make_task_dead.")
Signed-off-by: Randy Dunlap <[email protected]>
Cc: "Eric W. Biederman" <[email protected]>
Cc: Andrew Morton <[email protected]>
Cc: [email protected]
Cc: Tony Luck <[email protected]>
Cc: kernel test robot <[email protected]>
Suggested-by: Christoph Hellwig <[email protected]>
---
v1 was [PATCH -next] exit: export make_task_dead().
Christoph suggests and prefers that IA64 MCA recovery code just be
forced to be builtin if it is enabled.

arch/ia64/Kconfig | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)

--- linux-next-20220121.orig/arch/ia64/Kconfig
+++ linux-next-20220121/arch/ia64/Kconfig
@@ -318,7 +318,7 @@ config ARCH_PROC_KCORE_TEXT
depends on PROC_KCORE

config IA64_MCA_RECOVERY
- tristate "MCA recovery from errors other than TLB."
+ bool "MCA recovery from errors other than TLB."

config IA64_PALINFO
tristate "/proc/pal support"


2022-01-25 08:40:47

by Eric W. Biederman

[permalink] [raw]
Subject: Re: [PATCH -next v2] ia64: make IA64_MCA_RECOVERY bool instead of tristate

Randy Dunlap <[email protected]> writes:

> In linux-next, IA64_MCA_RECOVERY uses the (new) function make_task_dead(),
> which is not exported for use by modules. Instead of exporting it for
> one user, convert IA64_MCA_RECOVERY to be a bool Kconfig symbol.
>
> In a config file from "kernel test robot <[email protected]>" for a
> different problem, this linker error was exposed when
> CONFIG_IA64_MCA_RECOVERY=m.
>
> Fixes this build error:
>
> ERROR: modpost: "make_task_dead" [arch/ia64/kernel/mca_recovery.ko] undefined!

Reviewed-by: "Eric W. Biederman" <[email protected]>

I looked and ia64_unreg_MCA_extension has no synchronization so I don't
think it has ever been safe to this code when built as a module.


> Fixes: 0e25498f8cd4 ("exit: Add and use make_task_dead.")
> Signed-off-by: Randy Dunlap <[email protected]>
> Cc: "Eric W. Biederman" <[email protected]>
> Cc: Andrew Morton <[email protected]>
> Cc: [email protected]
> Cc: Tony Luck <[email protected]>
> Cc: kernel test robot <[email protected]>
> Suggested-by: Christoph Hellwig <[email protected]>
> ---
> v1 was [PATCH -next] exit: export make_task_dead().
> Christoph suggests and prefers that IA64 MCA recovery code just be
> forced to be builtin if it is enabled.
>
> arch/ia64/Kconfig | 2 +-
> 1 file changed, 1 insertion(+), 1 deletion(-)
>
> --- linux-next-20220121.orig/arch/ia64/Kconfig
> +++ linux-next-20220121/arch/ia64/Kconfig
> @@ -318,7 +318,7 @@ config ARCH_PROC_KCORE_TEXT
> depends on PROC_KCORE
>
> config IA64_MCA_RECOVERY
> - tristate "MCA recovery from errors other than TLB."
> + bool "MCA recovery from errors other than TLB."
>
> config IA64_PALINFO
> tristate "/proc/pal support"