Actually hook up the IPI_INVLCACHE IDT vectors backing
pmap_invalidate_cache() in the SMP case so pmap_mapdev() in multiuser doesn't panic with a trap 30. I broke this many months ago when I added pmap_invalidate_cache() as early parts of the PAT work. Patience from: jmg Pointy hat: jhb
This commit is contained in:
parent
384a05bfd0
commit
5c15c7e71d
@ -342,7 +342,10 @@ cpu_mp_start(void)
|
||||
setidt(IPI_INVLTLB, IDTVEC(invltlb), SDT_SYSIGT, SEL_KPL, 0);
|
||||
setidt(IPI_INVLPG, IDTVEC(invlpg), SDT_SYSIGT, SEL_KPL, 0);
|
||||
setidt(IPI_INVLRNG, IDTVEC(invlrng), SDT_SYSIGT, SEL_KPL, 0);
|
||||
|
||||
|
||||
/* Install an inter-CPU IPI for cache invalidation. */
|
||||
setidt(IPI_INVLCACHE, IDTVEC(invlcache), SDT_SYSIGT, SEL_KPL, 0);
|
||||
|
||||
/* Install an inter-CPU IPI for all-CPU rendezvous */
|
||||
setidt(IPI_RENDEZVOUS, IDTVEC(rendezvous), SDT_SYSIGT, SEL_KPL, 0);
|
||||
|
||||
|
@ -385,7 +385,11 @@ cpu_mp_start(void)
|
||||
SDT_SYS386IGT, SEL_KPL, GSEL(GCODE_SEL, SEL_KPL));
|
||||
setidt(IPI_INVLRNG, IDTVEC(invlrng),
|
||||
SDT_SYS386IGT, SEL_KPL, GSEL(GCODE_SEL, SEL_KPL));
|
||||
|
||||
|
||||
/* Install an inter-CPU IPI for cache invalidation. */
|
||||
setidt(IPI_INVLCACHE, IDTVEC(invlcache),
|
||||
SDT_SYS386IGT, SEL_KPL, GSEL(GCODE_SEL, SEL_KPL));
|
||||
|
||||
/* Install an inter-CPU IPI for lazy pmap release */
|
||||
setidt(IPI_LAZYPMAP, IDTVEC(lazypmap),
|
||||
SDT_SYS386IGT, SEL_KPL, GSEL(GCODE_SEL, SEL_KPL));
|
||||
|
Loading…
x
Reference in New Issue
Block a user