Change some tests from CPU_CLASS686 to CPU_686 as appropriate, and
also correct a serious ommision that would cause process faulures due to forgetting an invltlb type operatino. This was just a transcription problem.
This commit is contained in:
parent
428fb2dd11
commit
fcf1880fa0
Notes:
svn2git
2020-12-20 02:59:44 +00:00
svn path=/head/; revision=35940
@ -39,7 +39,7 @@
|
|||||||
* SUCH DAMAGE.
|
* SUCH DAMAGE.
|
||||||
*
|
*
|
||||||
* from: @(#)pmap.c 7.7 (Berkeley) 5/12/91
|
* from: @(#)pmap.c 7.7 (Berkeley) 5/12/91
|
||||||
* $Id: pmap.c,v 1.194 1998/05/11 01:06:08 dyson Exp $
|
* $Id: pmap.c,v 1.195 1998/05/11 02:13:42 dyson Exp $
|
||||||
*/
|
*/
|
||||||
|
|
||||||
/*
|
/*
|
||||||
@ -449,7 +449,7 @@ getmtrr()
|
|||||||
{
|
{
|
||||||
int i;
|
int i;
|
||||||
|
|
||||||
if (cpu_class == CPUCLASS_686) {
|
if (cpu == CPU_686) {
|
||||||
for(i = 0; i < NPPROVMTRR; i++) {
|
for(i = 0; i < NPPROVMTRR; i++) {
|
||||||
PPro_vmtrr[i].base = rdmsr(PPRO_VMTRRphysBase0 + i * 2);
|
PPro_vmtrr[i].base = rdmsr(PPRO_VMTRRphysBase0 + i * 2);
|
||||||
PPro_vmtrr[i].mask = rdmsr(PPRO_VMTRRphysMask0 + i * 2);
|
PPro_vmtrr[i].mask = rdmsr(PPRO_VMTRRphysMask0 + i * 2);
|
||||||
@ -462,7 +462,7 @@ putmtrr()
|
|||||||
{
|
{
|
||||||
int i;
|
int i;
|
||||||
|
|
||||||
if (cpu_class == CPUCLASS_686) {
|
if (cpu == CPU_686) {
|
||||||
wbinvd();
|
wbinvd();
|
||||||
for(i = 0; i < NPPROVMTRR; i++) {
|
for(i = 0; i < NPPROVMTRR; i++) {
|
||||||
wrmsr(PPRO_VMTRRphysBase0 + i * 2, PPro_vmtrr[i].base);
|
wrmsr(PPRO_VMTRRphysBase0 + i * 2, PPro_vmtrr[i].base);
|
||||||
@ -474,7 +474,7 @@ putmtrr()
|
|||||||
void
|
void
|
||||||
pmap_setvidram(void)
|
pmap_setvidram(void)
|
||||||
{
|
{
|
||||||
if (cpu_class == CPUCLASS_686) {
|
if (cpu == CPU_686) {
|
||||||
wbinvd();
|
wbinvd();
|
||||||
/*
|
/*
|
||||||
* Set memory between 0-640K to be WB
|
* Set memory between 0-640K to be WB
|
||||||
@ -496,7 +496,7 @@ pmap_setdevram(unsigned long long basea, vm_offset_t sizea)
|
|||||||
unsigned long long base;
|
unsigned long long base;
|
||||||
unsigned long long mask;
|
unsigned long long mask;
|
||||||
|
|
||||||
if (cpu_class != CPUCLASS_686)
|
if (cpu != CPU_686)
|
||||||
return;
|
return;
|
||||||
|
|
||||||
free = -1;
|
free = -1;
|
||||||
@ -2773,7 +2773,7 @@ pmap_zero_page(phys)
|
|||||||
cpu_invlpg(&prv_CPAGE3);
|
cpu_invlpg(&prv_CPAGE3);
|
||||||
|
|
||||||
#if defined(I686_CPU)
|
#if defined(I686_CPU)
|
||||||
if (cpu_class == CPUCLASS_686)
|
if (cpu == CPU_686)
|
||||||
i686_pagezero(&prv_CPAGE3);
|
i686_pagezero(&prv_CPAGE3);
|
||||||
else
|
else
|
||||||
#endif
|
#endif
|
||||||
@ -2787,10 +2787,14 @@ pmap_zero_page(phys)
|
|||||||
#endif
|
#endif
|
||||||
|
|
||||||
*(int *) CMAP2 = PG_V | PG_RW | (phys & PG_FRAME) | PG_A | PG_M;
|
*(int *) CMAP2 = PG_V | PG_RW | (phys & PG_FRAME) | PG_A | PG_M;
|
||||||
invltlb_1pg(CADDR2);
|
if (cpu_class == CPUCLASS_386) {
|
||||||
|
invltlb();
|
||||||
|
} else {
|
||||||
|
invlpg((u_int)CADDR2);
|
||||||
|
}
|
||||||
|
|
||||||
#if defined(I686_CPU)
|
#if defined(I686_CPU)
|
||||||
if (cpu_class == CPUCLASS_686)
|
if (cpu == CPU_686)
|
||||||
i686_pagezero(CADDR2);
|
i686_pagezero(CADDR2);
|
||||||
else
|
else
|
||||||
#endif
|
#endif
|
||||||
@ -2836,6 +2840,12 @@ pmap_copy_page(src, dst)
|
|||||||
|
|
||||||
*(int *) CMAP1 = PG_V | (src & PG_FRAME) | PG_A;
|
*(int *) CMAP1 = PG_V | (src & PG_FRAME) | PG_A;
|
||||||
*(int *) CMAP2 = PG_V | PG_RW | (dst & PG_FRAME) | PG_A | PG_M;
|
*(int *) CMAP2 = PG_V | PG_RW | (dst & PG_FRAME) | PG_A | PG_M;
|
||||||
|
if (cpu_class == CPUCLASS_386) {
|
||||||
|
invltlb();
|
||||||
|
} else {
|
||||||
|
invlpg((u_int)CADDR1);
|
||||||
|
invlpg((u_int)CADDR2);
|
||||||
|
}
|
||||||
|
|
||||||
bcopy(CADDR1, CADDR2, PAGE_SIZE);
|
bcopy(CADDR1, CADDR2, PAGE_SIZE);
|
||||||
|
|
||||||
|
@ -39,7 +39,7 @@
|
|||||||
* SUCH DAMAGE.
|
* SUCH DAMAGE.
|
||||||
*
|
*
|
||||||
* from: @(#)pmap.c 7.7 (Berkeley) 5/12/91
|
* from: @(#)pmap.c 7.7 (Berkeley) 5/12/91
|
||||||
* $Id: pmap.c,v 1.194 1998/05/11 01:06:08 dyson Exp $
|
* $Id: pmap.c,v 1.195 1998/05/11 02:13:42 dyson Exp $
|
||||||
*/
|
*/
|
||||||
|
|
||||||
/*
|
/*
|
||||||
@ -449,7 +449,7 @@ getmtrr()
|
|||||||
{
|
{
|
||||||
int i;
|
int i;
|
||||||
|
|
||||||
if (cpu_class == CPUCLASS_686) {
|
if (cpu == CPU_686) {
|
||||||
for(i = 0; i < NPPROVMTRR; i++) {
|
for(i = 0; i < NPPROVMTRR; i++) {
|
||||||
PPro_vmtrr[i].base = rdmsr(PPRO_VMTRRphysBase0 + i * 2);
|
PPro_vmtrr[i].base = rdmsr(PPRO_VMTRRphysBase0 + i * 2);
|
||||||
PPro_vmtrr[i].mask = rdmsr(PPRO_VMTRRphysMask0 + i * 2);
|
PPro_vmtrr[i].mask = rdmsr(PPRO_VMTRRphysMask0 + i * 2);
|
||||||
@ -462,7 +462,7 @@ putmtrr()
|
|||||||
{
|
{
|
||||||
int i;
|
int i;
|
||||||
|
|
||||||
if (cpu_class == CPUCLASS_686) {
|
if (cpu == CPU_686) {
|
||||||
wbinvd();
|
wbinvd();
|
||||||
for(i = 0; i < NPPROVMTRR; i++) {
|
for(i = 0; i < NPPROVMTRR; i++) {
|
||||||
wrmsr(PPRO_VMTRRphysBase0 + i * 2, PPro_vmtrr[i].base);
|
wrmsr(PPRO_VMTRRphysBase0 + i * 2, PPro_vmtrr[i].base);
|
||||||
@ -474,7 +474,7 @@ putmtrr()
|
|||||||
void
|
void
|
||||||
pmap_setvidram(void)
|
pmap_setvidram(void)
|
||||||
{
|
{
|
||||||
if (cpu_class == CPUCLASS_686) {
|
if (cpu == CPU_686) {
|
||||||
wbinvd();
|
wbinvd();
|
||||||
/*
|
/*
|
||||||
* Set memory between 0-640K to be WB
|
* Set memory between 0-640K to be WB
|
||||||
@ -496,7 +496,7 @@ pmap_setdevram(unsigned long long basea, vm_offset_t sizea)
|
|||||||
unsigned long long base;
|
unsigned long long base;
|
||||||
unsigned long long mask;
|
unsigned long long mask;
|
||||||
|
|
||||||
if (cpu_class != CPUCLASS_686)
|
if (cpu != CPU_686)
|
||||||
return;
|
return;
|
||||||
|
|
||||||
free = -1;
|
free = -1;
|
||||||
@ -2773,7 +2773,7 @@ pmap_zero_page(phys)
|
|||||||
cpu_invlpg(&prv_CPAGE3);
|
cpu_invlpg(&prv_CPAGE3);
|
||||||
|
|
||||||
#if defined(I686_CPU)
|
#if defined(I686_CPU)
|
||||||
if (cpu_class == CPUCLASS_686)
|
if (cpu == CPU_686)
|
||||||
i686_pagezero(&prv_CPAGE3);
|
i686_pagezero(&prv_CPAGE3);
|
||||||
else
|
else
|
||||||
#endif
|
#endif
|
||||||
@ -2787,10 +2787,14 @@ pmap_zero_page(phys)
|
|||||||
#endif
|
#endif
|
||||||
|
|
||||||
*(int *) CMAP2 = PG_V | PG_RW | (phys & PG_FRAME) | PG_A | PG_M;
|
*(int *) CMAP2 = PG_V | PG_RW | (phys & PG_FRAME) | PG_A | PG_M;
|
||||||
invltlb_1pg(CADDR2);
|
if (cpu_class == CPUCLASS_386) {
|
||||||
|
invltlb();
|
||||||
|
} else {
|
||||||
|
invlpg((u_int)CADDR2);
|
||||||
|
}
|
||||||
|
|
||||||
#if defined(I686_CPU)
|
#if defined(I686_CPU)
|
||||||
if (cpu_class == CPUCLASS_686)
|
if (cpu == CPU_686)
|
||||||
i686_pagezero(CADDR2);
|
i686_pagezero(CADDR2);
|
||||||
else
|
else
|
||||||
#endif
|
#endif
|
||||||
@ -2836,6 +2840,12 @@ pmap_copy_page(src, dst)
|
|||||||
|
|
||||||
*(int *) CMAP1 = PG_V | (src & PG_FRAME) | PG_A;
|
*(int *) CMAP1 = PG_V | (src & PG_FRAME) | PG_A;
|
||||||
*(int *) CMAP2 = PG_V | PG_RW | (dst & PG_FRAME) | PG_A | PG_M;
|
*(int *) CMAP2 = PG_V | PG_RW | (dst & PG_FRAME) | PG_A | PG_M;
|
||||||
|
if (cpu_class == CPUCLASS_386) {
|
||||||
|
invltlb();
|
||||||
|
} else {
|
||||||
|
invlpg((u_int)CADDR1);
|
||||||
|
invlpg((u_int)CADDR2);
|
||||||
|
}
|
||||||
|
|
||||||
bcopy(CADDR1, CADDR2, PAGE_SIZE);
|
bcopy(CADDR1, CADDR2, PAGE_SIZE);
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user