Page MenuHomeFreeBSD

D52184.id161048.diff
No OneTemporary

D52184.id161048.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
@@ -857,7 +857,7 @@
cninit();
set_ttbr0(abp->kern_ttbr0);
- cpu_tlb_flushID();
+ pmap_s1_invalidate_all_kernel();
if (!valid)
panic("Invalid bus configuration: %s",
diff --git a/sys/arm64/arm64/pmap.c b/sys/arm64/arm64/pmap.c
--- a/sys/arm64/arm64/pmap.c
+++ b/sys/arm64/arm64/pmap.c
@@ -201,8 +201,6 @@
#define pv_dummy pv_dummy_large.pv_page
__read_mostly static struct pmap_large_md_page *pv_table;
-static __inline void pmap_s1_invalidate_all_kernel(void);
-
static struct pmap_large_md_page *
_pa_to_pmdp(vm_paddr_t pa)
{
@@ -1965,7 +1963,7 @@
pmap_s2_invalidate_range(pmap, sva, eva, final_only);
}
-static __inline void
+void
pmap_s1_invalidate_all_kernel(void)
{
dsb(ishst);
diff --git a/sys/arm64/include/pmap.h b/sys/arm64/include/pmap.h
--- a/sys/arm64/include/pmap.h
+++ b/sys/arm64/include/pmap.h
@@ -174,6 +174,8 @@
struct pcb *pmap_switch(struct thread *);
+void pmap_s1_invalidate_all_kernel(void);
+
extern void (*pmap_clean_stage2_tlbi)(void);
extern void (*pmap_stage2_invalidate_range)(uint64_t, vm_offset_t, vm_offset_t,
bool);

File Metadata

Mime Type
text/plain
Expires
Fri, Dec 5, 2:51 PM (7 h, 40 m)
Storage Engine
blob
Storage Format
Raw Data
Storage Handle
26680589
Default Alt Text
D52184.id161048.diff (1 KB)

Event Timeline