kernel: fix pointer truncation in xspanalloc(), fix format prints
This commit is contained in:
parent
7613608b23
commit
dcea714680
1 changed files with 8 additions and 6 deletions
|
@ -57,6 +57,7 @@ xinit(void)
|
||||||
|
|
||||||
upages = conf.upages;
|
upages = conf.upages;
|
||||||
kpages = conf.npage - upages;
|
kpages = conf.npage - upages;
|
||||||
|
|
||||||
pm = palloc.mem;
|
pm = palloc.mem;
|
||||||
for(i=0; i<nelem(conf.mem); i++){
|
for(i=0; i<nelem(conf.mem); i++){
|
||||||
m = &conf.mem[i];
|
m = &conf.mem[i];
|
||||||
|
@ -99,7 +100,7 @@ xspanalloc(ulong size, int align, ulong span)
|
||||||
panic("xspanalloc: %lud %d %lux", size, align, span);
|
panic("xspanalloc: %lud %d %lux", size, align, span);
|
||||||
|
|
||||||
if(span > 2) {
|
if(span > 2) {
|
||||||
v = (a + span) & ~(span-1);
|
v = (a + span) & ~((uintptr)span-1);
|
||||||
t = v - a;
|
t = v - a;
|
||||||
if(t > 0)
|
if(t > 0)
|
||||||
xhole(PADDR(a), t);
|
xhole(PADDR(a), t);
|
||||||
|
@ -111,7 +112,7 @@ xspanalloc(ulong size, int align, ulong span)
|
||||||
v = a;
|
v = a;
|
||||||
|
|
||||||
if(align > 1)
|
if(align > 1)
|
||||||
v = (v + align) & ~(align-1);
|
v = (v + align) & ~((uintptr)align-1);
|
||||||
|
|
||||||
return (void*)v;
|
return (void*)v;
|
||||||
}
|
}
|
||||||
|
@ -261,16 +262,17 @@ xsummary(void)
|
||||||
{
|
{
|
||||||
int i;
|
int i;
|
||||||
Hole *h;
|
Hole *h;
|
||||||
|
uintptr s;
|
||||||
|
|
||||||
i = 0;
|
i = 0;
|
||||||
for(h = xlists.flist; h; h = h->link)
|
for(h = xlists.flist; h; h = h->link)
|
||||||
i++;
|
i++;
|
||||||
|
|
||||||
print("%d holes free\n", i);
|
print("%d holes free\n", i);
|
||||||
i = 0;
|
|
||||||
|
s = 0;
|
||||||
for(h = xlists.table; h; h = h->link) {
|
for(h = xlists.table; h; h = h->link) {
|
||||||
print("%#p %#p %p\n", h->addr, h->top, h->size);
|
print("%#p %#p %p\n", h->addr, h->top, h->size);
|
||||||
i += h->size;
|
s += h->size;
|
||||||
}
|
}
|
||||||
print("%d bytes free\n", i);
|
print("%lld bytes free\n", (vlong)s);
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in a new issue