Re: [PATCH] arm64: armv8_deprecated: Checking return value for memory allocation

From: Will Deacon
Date: Mon Sep 30 2019 - 09:22:16 EST


On Sun, Sep 29, 2019 at 12:44:17PM +0800, Yunfeng Ye wrote:
> There are no return value checking when using kzalloc() and kcalloc() for
> memory allocation. so add it.
>
> Signed-off-by: Yunfeng Ye <yeyunfeng@xxxxxxxxxx>
> ---
> arch/arm64/kernel/armv8_deprecated.c | 5 +++++
> 1 file changed, 5 insertions(+)
>
> diff --git a/arch/arm64/kernel/armv8_deprecated.c b/arch/arm64/kernel/armv8_deprecated.c
> index 2ec09de..ca158be 100644
> --- a/arch/arm64/kernel/armv8_deprecated.c
> +++ b/arch/arm64/kernel/armv8_deprecated.c
> @@ -174,6 +174,9 @@ static void __init register_insn_emulation(struct insn_emulation_ops *ops)
> struct insn_emulation *insn;
>
> insn = kzalloc(sizeof(*insn), GFP_KERNEL);
> + if (!insn)
> + return;
> +
> insn->ops = ops;
> insn->min = INSN_UNDEF;
>
> @@ -233,6 +236,8 @@ static void __init register_insn_emulation_sysctl(void)
>
> insns_sysctl = kcalloc(nr_insn_emulated + 1, sizeof(*sysctl),
> GFP_KERNEL);
> + if (!insns_sysctl)
> + return;

Since both of these failure paths are fatal to the instruction emulation,
can you please return an error code when the allocation fails and use that
to fail the calling initcall() appropriately?

Will