Page MenuHomeFreeBSD

D28711.diff
No OneTemporary

D28711.diff

diff --git a/sys/arm64/arm64/machdep.c b/sys/arm64/arm64/machdep.c
--- a/sys/arm64/arm64/machdep.c
+++ b/sys/arm64/arm64/machdep.c
@@ -561,6 +561,11 @@
tf->tf_lr = imgp->entry_addr;
tf->tf_elr = imgp->entry_addr;
+ td->td_pcb->pcb_tpidr_el0 = 0;
+ td->td_pcb->pcb_tpidrro_el0 = 0;
+ WRITE_SPECIALREG(tpidrro_el0, 0);
+ WRITE_SPECIALREG(tpidr_el0, 0);
+
#ifdef VFP
vfp_reset_state(td, pcb);
#endif
diff --git a/sys/arm64/linux/linux_sysvec.c b/sys/arm64/linux/linux_sysvec.c
--- a/sys/arm64/linux/linux_sysvec.c
+++ b/sys/arm64/linux/linux_sysvec.c
@@ -365,6 +365,11 @@
#endif
regs->tf_elr = imgp->entry_addr;
+ td->td_pcb->pcb_tpidr_el0 = 0;
+ td->td_pcb->pcb_tpidrro_el0 = 0;
+ WRITE_SPECIALREG(tpidrro_el0, 0);
+ WRITE_SPECIALREG(tpidr_el0, 0);
+
#ifdef VFP
vfp_reset_state(td, td->td_pcb);
#endif

File Metadata

Mime Type
text/plain
Expires
Wed, Sep 25, 5:23 PM (22 h, 3 m)
Storage Engine
blob
Storage Format
Raw Data
Storage Handle
12776659
Default Alt Text
D28711.diff (827 B)

Event Timeline