mirror of
https://github.com/mmueller41/genode.git
synced 2026-01-21 12:32:56 +01:00
dde_linux: call init_page_count for each page
The lx_emul_virt_to_pages implementation initialized the page ref counter only for the first page, leaving the remaining elements in uninitialized state. This, in turn, rendered the Linux page_pool (as used by the emac network driver) ineffective, ultimately leading the a memory leak. The fix changes the call of 'init_page_count' to take the loop variable as argument. Issue #4225
This commit is contained in:
@@ -29,7 +29,7 @@ struct page *lx_emul_virt_to_pages(void const *virt, unsigned count)
|
|||||||
page = p;
|
page = p;
|
||||||
for (i = 0; i < count; i++, p++) {
|
for (i = 0; i < count; i++, p++) {
|
||||||
p->virtual = (void*)((uintptr_t)page_aligned_virt + i*PAGE_SIZE);
|
p->virtual = (void*)((uintptr_t)page_aligned_virt + i*PAGE_SIZE);
|
||||||
init_page_count(page);
|
init_page_count(p);
|
||||||
lx_emul_associate_page_with_virt_addr(p, p->virtual);
|
lx_emul_associate_page_with_virt_addr(p, p->virtual);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user