Commit 7f74c066 authored by Thorsten Blum's avatar Thorsten Blum Committed by Thomas Bogendoerfer
Browse files

MIPS: CPS: Fix potential NULL pointer dereferences in cps_prepare_cpus()



Check the return values of kcalloc() and exit early to avoid potential
NULL pointer dereferences.

Compile-tested only.

Cc: stable@vger.kernel.org
Fixes: 75fa6a58 ("MIPS: CPS: Introduce struct cluster_boot_config")
Fixes: 0856c143 ("MIPS: CPS: Boot CPUs in secondary clusters")
Signed-off-by: default avatarThorsten Blum <thorsten.blum@linux.dev>
Signed-off-by: default avatarThomas Bogendoerfer <tsbogend@alpha.franken.de>
parent cc3e3d3a
Loading
Loading
Loading
Loading
+4 −0
Original line number Diff line number Diff line
@@ -332,6 +332,8 @@ static void __init cps_prepare_cpus(unsigned int max_cpus)
	mips_cps_cluster_bootcfg = kcalloc(nclusters,
					   sizeof(*mips_cps_cluster_bootcfg),
					   GFP_KERNEL);
	if (!mips_cps_cluster_bootcfg)
		goto err_out;

	if (nclusters > 1)
		mips_cm_update_property();
@@ -348,6 +350,8 @@ static void __init cps_prepare_cpus(unsigned int max_cpus)
		mips_cps_cluster_bootcfg[cl].core_power =
			kcalloc(BITS_TO_LONGS(ncores), sizeof(unsigned long),
				GFP_KERNEL);
		if (!mips_cps_cluster_bootcfg[cl].core_power)
			goto err_out;

		/* Allocate VPE boot configuration structs */
		for (c = 0; c < ncores; c++) {