rte_virtio: fix access to unaligned struct
Change-Id: I8eaf5477d6d0e6f939ae9ad4db976f47cc60f0e2 Signed-off-by: Dariusz Stojaczyk <dariuszx.stojaczyk@intel.com> Reviewed-on: https://review.gerrithub.io/381513 Tested-by: SPDK Automated Test System <sys_sgsw@intel.com> Reviewed-by: Daniel Verkamp <daniel.verkamp@intel.com> Reviewed-by: Jim Harris <james.r.harris@intel.com>
This commit is contained in:
parent
5b17046d11
commit
2b756a2bff
@ -236,7 +236,6 @@ prepare_vhost_memory_user(struct vhost_user_msg *msg, int fds[])
|
|||||||
{
|
{
|
||||||
int i, num;
|
int i, num;
|
||||||
struct hugepage_file_info huges[VHOST_MEMORY_MAX_NREGIONS];
|
struct hugepage_file_info huges[VHOST_MEMORY_MAX_NREGIONS];
|
||||||
struct vhost_memory_region *mr;
|
|
||||||
|
|
||||||
num = get_hugepage_file_info(huges, VHOST_MEMORY_MAX_NREGIONS);
|
num = get_hugepage_file_info(huges, VHOST_MEMORY_MAX_NREGIONS);
|
||||||
if (num < 0) {
|
if (num < 0) {
|
||||||
@ -245,11 +244,11 @@ prepare_vhost_memory_user(struct vhost_user_msg *msg, int fds[])
|
|||||||
}
|
}
|
||||||
|
|
||||||
for (i = 0; i < num; ++i) {
|
for (i = 0; i < num; ++i) {
|
||||||
mr = &msg->payload.memory.regions[i];
|
/* the memory regions are unaligned */
|
||||||
mr->guest_phys_addr = huges[i].addr; /* use vaddr! */
|
msg->payload.memory.regions[i].guest_phys_addr = huges[i].addr; /* use vaddr! */
|
||||||
mr->userspace_addr = huges[i].addr;
|
msg->payload.memory.regions[i].userspace_addr = huges[i].addr;
|
||||||
mr->memory_size = huges[i].size;
|
msg->payload.memory.regions[i].memory_size = huges[i].size;
|
||||||
mr->mmap_offset = 0;
|
msg->payload.memory.regions[i].mmap_offset = 0;
|
||||||
fds[i] = open(huges[i].path, O_RDWR);
|
fds[i] = open(huges[i].path, O_RDWR);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user