diff options
Diffstat (limited to 'usr/src/uts/intel/io/vmm/vmm_sol_dev.c')
-rw-r--r-- | usr/src/uts/intel/io/vmm/vmm_sol_dev.c | 5 |
1 files changed, 3 insertions, 2 deletions
diff --git a/usr/src/uts/intel/io/vmm/vmm_sol_dev.c b/usr/src/uts/intel/io/vmm/vmm_sol_dev.c index c66f1ce17a..d89bca5ce0 100644 --- a/usr/src/uts/intel/io/vmm/vmm_sol_dev.c +++ b/usr/src/uts/intel/io/vmm/vmm_sol_dev.c @@ -1703,9 +1703,10 @@ vmmdev_do_ioctl(vmm_softc_t *sc, int cmd, intptr_t arg, int md, } len = roundup(tracker.vdt_len / PAGESIZE, 8) / 8; bitmap = kmem_zalloc(len, KM_SLEEP); - vm_track_dirty_pages(sc->vmm_vm, tracker.vdt_start_gpa, + error = vm_track_dirty_pages(sc->vmm_vm, tracker.vdt_start_gpa, tracker.vdt_len, bitmap); - if (ddi_copyout(bitmap, tracker.vdt_pfns, len, md) != 0) { + if (error == 0 && + ddi_copyout(bitmap, tracker.vdt_pfns, len, md) != 0) { error = EFAULT; } kmem_free(bitmap, len); |