[PATCH] ARM, sched/topology: Check return value of kcalloc()

Thorsten Blum posted 1 patch 1 year, 7 months ago
There is a newer version of this series
arch/arm/kernel/topology.c | 4 ++++
1 file changed, 4 insertions(+)
[PATCH] ARM, sched/topology: Check return value of kcalloc()
Posted by Thorsten Blum 1 year, 7 months ago
Check the return value of kcalloc() and return early if memory
allocation fails.

Compile-tested only.

Signed-off-by: Thorsten Blum <thorsten.blum@toblux.com>
---
 arch/arm/kernel/topology.c | 4 ++++
 1 file changed, 4 insertions(+)

diff --git a/arch/arm/kernel/topology.c b/arch/arm/kernel/topology.c
index 2336ee2aa44a..b77d1838e5a3 100644
--- a/arch/arm/kernel/topology.c
+++ b/arch/arm/kernel/topology.c
@@ -93,6 +93,10 @@ static void __init parse_dt_topology(void)
 
 	__cpu_capacity = kcalloc(nr_cpu_ids, sizeof(*__cpu_capacity),
 				 GFP_NOWAIT);
+	if (unlikely(!__cpu_capacity)) {
+		pr_crit("Failed to allocate memory for __cpu_capacity\n");
+		return;
+	}
 
 	for_each_possible_cpu(cpu) {
 		const __be32 *rate;
-- 
2.45.2
Re: [PATCH] ARM, sched/topology: Check return value of kcalloc()
Posted by Russell King (Oracle) 1 year, 7 months ago
On Fri, Jun 28, 2024 at 09:43:51PM +0200, Thorsten Blum wrote:
> Check the return value of kcalloc() and return early if memory
> allocation fails.

If we fail this allocation even with your fix, how likely is it that the
system will boot and manage to run userspace?

-- 
RMK's Patch system: https://www.armlinux.org.uk/developer/patches/
FTTP is here! 80Mbps down 10Mbps up. Decent connectivity at last!
Re: [PATCH] ARM, sched/topology: Check return value of kcalloc()
Posted by Thorsten Blum 1 year, 7 months ago
On 28. Jun 2024, at 14:55, Russell King (Oracle) <linux@armlinux.org.uk> wrote:
> On Fri, Jun 28, 2024 at 09:43:51PM +0200, Thorsten Blum wrote:
>> Check the return value of kcalloc() and return early if memory
>> allocation fails.
> 
> If we fail this allocation even with your fix, how likely is it that the
> system will boot and manage to run userspace?

I thought about panicking, but wasn't sure if it's justified.

But since it would just crash anyway when accessing a NULL pointer
later on, it's probably best to panic() if the memory allocation fails.

I'll submit a v2 shortly.

Thanks,
Thorsten