Page MenuHomeFreeBSD

D48060.diff
No OneTemporary

D48060.diff

Index: sys/mips/mips/mp_machdep.c
===================================================================
--- sys/mips/mips/mp_machdep.c
+++ sys/mips/mips/mp_machdep.c
@@ -60,6 +60,7 @@
static volatile int aps_ready;
static volatile int mp_naps;
+static volatile register_t saved_hwrena;
static void
ipi_send(struct pcpu *pc, int ipi)
@@ -246,6 +247,10 @@
int error, cpuid;
cpuset_t cpumask;
+ /* Stash the BSP HWREna to share with the APs. */
+ saved_hwrena = mips_rd_hwrena();
+ mips_sync();
+
mtx_init(&ap_boot_mtx, "ap boot", NULL, MTX_SPIN);
CPU_ZERO(&all_cpus);
@@ -292,6 +297,9 @@
mips_wr_entryhi(0);
+ /* Load up the BSP's hwrena, so it's on all CPUs */
+ mips_wr_hwrena(saved_hwrena);
+
pcpu_init(PCPU_ADDR(cpuid), cpuid, sizeof(struct pcpu));
dpcpu_init(dpcpu, cpuid);

File Metadata

Mime Type
text/plain
Expires
Sun, Jul 5, 11:14 AM (6 h, 1 m)
Storage Engine
blob
Storage Format
Raw Data
Storage Handle
34706874
Default Alt Text
D48060.diff (807 B)

Event Timeline