Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 8975b6c0 authored by Russell King's avatar Russell King
Browse files

ARM: SMP: Clean up ncores sanity checks



scu_get_core_count() never returns zero cores, so we don't need to
check and correct if ncores is zero.

Tegra was missing the check against NR_CPUS, leading to a potential
bitfield overflow if this becomes the case.

Signed-off-by: default avatarRussell King <rmk+kernel@arm.linux.org.uk>
parent bbc3d14e
Loading
Loading
Loading
Loading
+0 −6
Original line number Diff line number Diff line
@@ -121,12 +121,6 @@ void __init smp_init_cpus(void)
	ncores = get_core_count();

	/* sanity check */
	if (ncores == 0) {
		printk(KERN_ERR
		       "OMAP4: strange core count of 0? Default to 1\n");
		ncores = 1;
	}

	if (ncores > NR_CPUS) {
		printk(KERN_WARNING
		       "OMAP4: no. of cores (%d) greater than configured "
+0 −7
Original line number Diff line number Diff line
@@ -161,13 +161,6 @@ void __init smp_init_cpus(void)
	unsigned int i, ncores = get_core_count();

	/* sanity check */
	if (ncores == 0) {
		printk(KERN_ERR
		       "Realview: strange CM count of 0? Default to 1\n");

		ncores = 1;
	}

	if (ncores > NR_CPUS) {
		printk(KERN_WARNING
		       "Realview: no. of cores (%d) greater than configured "
+0 −7
Original line number Diff line number Diff line
@@ -130,13 +130,6 @@ void __init smp_init_cpus(void)
	ncores = scu_base ? scu_get_core_count(scu_base) : 1;

	/* sanity check */
	if (ncores == 0) {
		printk(KERN_ERR
		       "S5PV310: strange CM count of 0? Default to 1\n");

		ncores = 1;
	}

	if (ncores > NR_CPUS) {
		printk(KERN_WARNING
		       "S5PV310: no. of cores (%d) greater than configured "
+6 −0
Original line number Diff line number Diff line
@@ -117,6 +117,12 @@ void __init smp_init_cpus(void)
{
	unsigned int i, ncores = scu_get_core_count(scu_base);

	if (ncores > NR_CPUS) {
		printk(KERN_ERR "Tegra: no. of cores (%u) greater than configured (%u), clipping\n",
			ncores, NR_CPUS);
		ncores = NR_CPUS;
	}

	for (i = 0; i < ncores; i++)
		cpu_set(i, cpu_possible_map);
}
+0 −6
Original line number Diff line number Diff line
@@ -129,12 +129,6 @@ void __init smp_init_cpus(void)
	unsigned int i, ncores = get_core_count();

	/* sanity check */
	if (ncores == 0) {
		printk(KERN_ERR
		       "U8500: strange CM count of 0? Default to 1\n");
		ncores = 1;
	}

	if (ncores > NR_CPUS) {
		printk(KERN_WARNING
		       "U8500: no. of cores (%d) greater than configured "
Loading