mtrr: fix mtrr index out of range for vcnt > Nmtrr
This commit is contained in:
parent
fa4448b2d5
commit
6d24cced8f
1 changed files with 4 additions and 0 deletions
|
@ -290,6 +290,8 @@ mtrr(uvlong base, uvlong size, char *tstr)
|
|||
qlock(&mtrrlk);
|
||||
slot = -1;
|
||||
vcnt = cap & Capvcnt;
|
||||
if(vcnt > Nmtrr)
|
||||
vcnt = Nmtrr;
|
||||
for(i = 0; i < vcnt; i++){
|
||||
mtrrget(&mtrr, i);
|
||||
mok = mtrrdec(&mtrr, &mp, &msize, &mtype);
|
||||
|
@ -330,6 +332,8 @@ mtrrprint(char *buf, long bufsize)
|
|||
n += snprint(buf+n, bufsize-n, "cache default %s\n",
|
||||
type2str(def & Deftype));
|
||||
vcnt = cap & Capvcnt;
|
||||
if(vcnt > Nmtrr)
|
||||
vcnt = Nmtrr;
|
||||
for(i = 0; i < vcnt; i++){
|
||||
mtrrget(&mtrr, i);
|
||||
if (mtrrdec(&mtrr, &base, &size, &type))
|
||||
|
|
Loading…
Reference in a new issue