summaryrefslogtreecommitdiffstats
path: root/sys/arm
diff options
context:
space:
mode:
authortijl <tijl@FreeBSD.org>2015-11-08 14:26:50 +0000
committertijl <tijl@FreeBSD.org>2015-11-08 14:26:50 +0000
commit4e8b6b4a06e9b8bd64928b39a5a6cfe0fabaf9f0 (patch)
treed99bd7707b05f7869f04d5798da496d2d1e398bd /sys/arm
parentd94cce972ea22ac1b6d1ef125b413808e1dadf36 (diff)
downloadFreeBSD-src-4e8b6b4a06e9b8bd64928b39a5a6cfe0fabaf9f0.zip
FreeBSD-src-4e8b6b4a06e9b8bd64928b39a5a6cfe0fabaf9f0.tar.gz
Since r289279 bufinit() uses mp_ncpus, but some architectures set this
variable during mp_start() which is too late. Move this to mp_setmaxid() where other architectures set it and move x86 assertions to MI code. Reviewed by: kib (x86 part)
Diffstat (limited to 'sys/arm')
-rw-r--r--sys/arm/annapurna/alpine/alpine_machdep_mp.c6
-rw-r--r--sys/arm/mv/armadaxp/armadaxp_mp.c5
-rw-r--r--sys/arm/qemu/virt_mp.c16
-rw-r--r--sys/arm/ti/omap4/omap4_mp.c4
-rw-r--r--sys/arm/xilinx/zy7_mp.c2
5 files changed, 12 insertions, 21 deletions
diff --git a/sys/arm/annapurna/alpine/alpine_machdep_mp.c b/sys/arm/annapurna/alpine/alpine_machdep_mp.c
index a4c45b8..4420025 100644
--- a/sys/arm/annapurna/alpine/alpine_machdep_mp.c
+++ b/sys/arm/annapurna/alpine/alpine_machdep_mp.c
@@ -128,16 +128,14 @@ platform_mp_init_secondary(void)
void
platform_mp_setmaxid(void)
{
- int core_cnt;
- core_cnt = platform_mp_get_core_cnt();
- mp_maxid = core_cnt - 1;
+ mp_ncpus = platform_mp_get_core_cnt();
+ mp_maxid = mp_ncpus - 1;
}
int
platform_mp_probe(void)
{
- mp_ncpus = platform_mp_get_core_cnt();
return (1);
}
diff --git a/sys/arm/mv/armadaxp/armadaxp_mp.c b/sys/arm/mv/armadaxp/armadaxp_mp.c
index 1fa4d53..6685204 100644
--- a/sys/arm/mv/armadaxp/armadaxp_mp.c
+++ b/sys/arm/mv/armadaxp/armadaxp_mp.c
@@ -82,15 +82,14 @@ void
platform_mp_setmaxid(void)
{
- mp_maxid = 3;
+ mp_ncpus = platform_get_ncpus();
+ mp_maxid = mp_ncpus - 1;
}
int
platform_mp_probe(void)
{
- mp_ncpus = platform_get_ncpus();
-
return (mp_ncpus > 1);
}
diff --git a/sys/arm/qemu/virt_mp.c b/sys/arm/qemu/virt_mp.c
index 2fe1592..89a30c6 100644
--- a/sys/arm/qemu/virt_mp.c
+++ b/sys/arm/qemu/virt_mp.c
@@ -49,17 +49,8 @@ static int running_cpus;
int
platform_mp_probe(void)
{
- int ncpus;
- ncpus = ofw_cpu_early_foreach(NULL, true);
- if (ncpus <= 1) {
- mp_ncpus = 1;
- return (0);
- }
-
- mp_ncpus = MIN(ncpus, MAXCPU);
-
- return (1);
+ return (mp_ncpus > 1);
}
static boolean_t
@@ -77,7 +68,10 @@ platform_mp_setmaxid(void)
{
mp_maxid = PCPU_GET(cpuid);
- ofw_cpu_early_foreach(virt_maxid, true);
+ mp_ncpus = ofw_cpu_early_foreach(virt_maxid, true);
+ if (mp_ncpus < 1)
+ mp_ncpus = 1;
+ mp_ncpus = MIN(ncpus, MAXCPU);
}
static boolean_t
diff --git a/sys/arm/ti/omap4/omap4_mp.c b/sys/arm/ti/omap4/omap4_mp.c
index f53748e..c32d302 100644
--- a/sys/arm/ti/omap4/omap4_mp.c
+++ b/sys/arm/ti/omap4/omap4_mp.c
@@ -51,14 +51,14 @@ void
platform_mp_setmaxid(void)
{
- mp_maxid = 1;
+ mp_maxid = 1;
+ mp_ncpus = 2;
}
int
platform_mp_probe(void)
{
- mp_ncpus = 2;
return (1);
}
diff --git a/sys/arm/xilinx/zy7_mp.c b/sys/arm/xilinx/zy7_mp.c
index 24e8595..c87cf29 100644
--- a/sys/arm/xilinx/zy7_mp.c
+++ b/sys/arm/xilinx/zy7_mp.c
@@ -57,13 +57,13 @@ platform_mp_setmaxid(void)
{
mp_maxid = 1;
+ mp_ncpus = 2;
}
int
platform_mp_probe(void)
{
- mp_ncpus = 2;
return (1);
}
OpenPOWER on IntegriCloud