Added missing vm_put_physical_page() in do_io().

Something is still fishy though: Opening the dma_resources_test device
in DiskProbe, the wrong data is shown. do_io() seems to be invoked with
the correct physical address, vm_get_physical_page() succeeds, and after
memcpy() the correct data are in the virtual address it returned, but
db in the kernel debugger shows that the data in the physical page have
not been changed. When quitting DiskProbe the "page still has mappings"
assert is triggered for the page.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@26602 a95241bf-73f2-0310-859d-f6bbb57e9c96
This commit is contained in:
Ingo Weinhold 2008-07-24 04:25:06 +00:00
parent 9951d585b6
commit 91ccfa19a0

View File

@ -191,6 +191,8 @@ do_io(void* data, IOOperation* operation)
else
memcpy(virtualAddress + pageOffset, disk + offset, toCopy);
vm_put_physical_page((addr_t)virtualAddress);
length -= toCopy;
offset += toCopy;
pageOffset = 0;