Page MenuHomeFreeBSD

D9827.id26350.diff
No OneTemporary

D9827.id26350.diff

Index: head/sys/arm/qemu/virt_machdep.c
===================================================================
--- head/sys/arm/qemu/virt_machdep.c
+++ head/sys/arm/qemu/virt_machdep.c
@@ -60,7 +60,6 @@
#ifdef SMP
PLATFORMMETHOD(platform_mp_start_ap, virt_mp_start_ap),
- PLATFORMMETHOD(platform_mp_setmaxid, virt_mp_setmaxid),
#endif
PLATFORMMETHOD_END,
Index: head/sys/arm/qemu/virt_mp.c
===================================================================
--- head/sys/arm/qemu/virt_mp.c
+++ head/sys/arm/qemu/virt_mp.c
@@ -50,27 +50,6 @@
static int running_cpus;
static boolean_t
-virt_maxid(u_int id, phandle_t node, u_int addr_cells, pcell_t *reg)
-{
-
- if (mp_maxid < id)
- mp_maxid = id;
-
- return (true);
-}
-
-void
-virt_mp_setmaxid(platform_t plat)
-{
-
- mp_maxid = PCPU_GET(cpuid);
- mp_ncpus = ofw_cpu_early_foreach(virt_maxid, true);
- if (mp_ncpus < 1)
- mp_ncpus = 1;
- mp_ncpus = MIN(mp_ncpus, MAXCPU);
-}
-
-static boolean_t
virt_start_ap(u_int id, phandle_t node, u_int addr_cells, pcell_t *reg)
{
int err;
Index: head/sys/dev/fdt/fdt_arm_platform.c
===================================================================
--- head/sys/dev/fdt/fdt_arm_platform.c
+++ head/sys/dev/fdt/fdt_arm_platform.c
@@ -30,12 +30,14 @@
__FBSDID("$FreeBSD$");
#include <sys/param.h>
+#include <sys/smp.h>
#include <arm/include/platform.h>
#include <arm/include/platformvar.h>
#include <dev/ofw/openfirm.h>
#include <dev/ofw/ofw_bus_subr.h>
+#include <dev/ofw/ofw_cpu.h>
#include <dev/fdt/fdt_common.h>
#include "platform_if.h"
@@ -43,6 +45,10 @@
#define FDT_PLATFORM(plat) \
((fdt_platform_def_t *)(plat)->cls->baseclasses[0])
+#if defined(SMP)
+static platform_mp_setmaxid_t fdt_platform_mp_setmaxid;
+#endif
+
static int
fdt_platform_probe(platform_t plat)
{
@@ -66,8 +72,36 @@
return 1;
}
+#if defined(SMP)
+static boolean_t
+fdt_platform_maxid(u_int id, phandle_t node, u_int addr_cells, pcell_t *reg)
+{
+
+ if (mp_maxid < id)
+ mp_maxid = id;
+
+ return (true);
+}
+
+static void
+fdt_platform_mp_setmaxid(platform_t plat)
+{
+
+ mp_maxid = PCPU_GET(cpuid);
+ mp_ncpus = ofw_cpu_early_foreach(fdt_platform_maxid, true);
+ if (mp_ncpus < 1)
+ mp_ncpus = 1;
+ mp_ncpus = MIN(mp_ncpus, MAXCPU);
+}
+#endif
+
platform_method_t fdt_platform_methods[] = {
PLATFORMMETHOD(platform_probe, fdt_platform_probe),
+
+#if defined(SMP)
+ PLATFORMMETHOD(platform_mp_setmaxid, fdt_platform_mp_setmaxid),
+#endif
+
PLATFORMMETHOD_END
};

File Metadata

Mime Type
text/plain
Expires
Fri, Apr 24, 7:48 PM (10 h, 56 m)
Storage Engine
blob
Storage Format
Raw Data
Storage Handle
32088917
Default Alt Text
D9827.id26350.diff (2 KB)

Event Timeline