summaryrefslogtreecommitdiff
path: root/usr/src/uts/intel/io/vmm/vmm_sol_dev.c
diff options
context:
space:
mode:
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.c5
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);