Do not vmap singe pages, just use page_address
This commit is contained in:
parent
66eeec39f5
commit
dbea68ddd2
|
@ -65,10 +65,15 @@ pbat_ctr(struct pbat* pbat,
|
|||
if (!cbd_alloc_pagev(pbat->pagev, nr_pages)) {
|
||||
return false;
|
||||
}
|
||||
if (nr_pages == 1) {
|
||||
pbat->buf = page_address(pbat->pagev[0]);
|
||||
}
|
||||
else {
|
||||
pbat->buf = vmap(pbat->pagev, nr_pages, VM_MAP, PAGE_KERNEL);
|
||||
if (!pbat->buf) {
|
||||
return false;
|
||||
}
|
||||
}
|
||||
|
||||
return true;
|
||||
}
|
||||
|
@ -82,7 +87,9 @@ pbat_dtr(struct pbat* pbat)
|
|||
for (n = 0; n < nr_pages; ++n) {
|
||||
lock_page(pbat->pagev[n]);
|
||||
}
|
||||
if (nr_pages != 1) {
|
||||
vunmap(pbat->buf);
|
||||
}
|
||||
pbat->buf = NULL;
|
||||
cbd_free_pagev(pbat->pagev, nr_pages);
|
||||
kfree(pbat->pagev);
|
||||
|
|
Loading…
Reference in New Issue