return -EFAULT;
}
- if (v3_host_dev_read_guest_mem(dev->guestdev,
- dev,
+ if (v3_host_dev_read_guest_mem(dev,
+ dev->guestdev,
op.gpa,
temp,
op.len) != op.len) {
return -EFAULT;
}
- if (v3_host_dev_write_guest_mem(dev->guestdev,
- dev,
+ if (v3_host_dev_write_guest_mem(dev,
+ dev->guestdev,
op.gpa,
temp,
op.len) != op.len) {
DEEP_DEBUG_PRINT("palacios: hostdev: irq guest\n");
- return v3_host_dev_raise_irq(dev->guestdev, dev, op.irq);
+ return v3_host_dev_raise_irq(dev, dev->guestdev, op.irq);
}
break;
msr_val.lo = info->vm_regs.rax;
msr_val.hi = info->vm_regs.rdx;
- if (hook->write(info, msr_num, msr_val, hook->priv_data) == -1) {
- PrintError("Error in MSR hook Write\n");
- return -1;
+ if (hook->write) {
+ if (hook->write(info, msr_num, msr_val, hook->priv_data) == -1) {
+ PrintError("Error in MSR hook Write\n");
+ return -1;
+ }
+ } else {
+ PrintError("No write hook exists for msr 0x%x\n",msr_num);
}
}