* [Qemu-devel] [PULL] vhost: build fix @ 2015-10-22 19:37 Michael S. Tsirkin 2015-10-22 19:37 ` [Qemu-devel] [PULL] vhost-user: fix up rhel6 build Michael S. Tsirkin 2015-10-23 11:08 ` [Qemu-devel] [PULL] vhost: build fix Peter Maydell 0 siblings, 2 replies; 4+ messages in thread From: Michael S. Tsirkin @ 2015-10-22 19:37 UTC (permalink / raw) To: qemu-devel; +Cc: Peter Maydell The following changes since commit 3c23402d4032f69af44a87fdb8019ad3229a4f31: hw/isa/lpc_ich9: inject the SMI on the VCPU that is writing to APM_CNT (2015-10-22 14:39:09 +0300) are available in the git repository at: git://git.kernel.org/pub/scm/virt/kvm/mst/qemu.git tags/for_upstream for you to fetch changes up to 7f4a930e64b9e69cd340395a7e4f0494aef4fcdd: vhost-user: fix up rhel6 build (2015-10-22 22:34:59 +0300) ---------------------------------------------------------------- vhost: build fix Fix build breakages when using older gcc. Signed-off-by: Michael S. Tsirkin <mst@redhat.com> ---------------------------------------------------------------- Michael S. Tsirkin (1): vhost-user: fix up rhel6 build hw/virtio/vhost-user.c | 48 ++++++++++++++++++++++++------------------------ 1 file changed, 24 insertions(+), 24 deletions(-) ^ permalink raw reply [flat|nested] 4+ messages in thread
* [Qemu-devel] [PULL] vhost-user: fix up rhel6 build 2015-10-22 19:37 [Qemu-devel] [PULL] vhost: build fix Michael S. Tsirkin @ 2015-10-22 19:37 ` Michael S. Tsirkin 2015-10-23 5:24 ` Laurent Desnogues 2015-10-23 11:08 ` [Qemu-devel] [PULL] vhost: build fix Peter Maydell 1 sibling, 1 reply; 4+ messages in thread From: Michael S. Tsirkin @ 2015-10-22 19:37 UTC (permalink / raw) To: qemu-devel; +Cc: Peter Maydell Build on RHEL6 fails: https://gcc.gnu.org/bugzilla/show_bug.cgi?id=42875 Apparently unnamed unions couldn't use C99 named field initializers. Let's just name the payload union field. Signed-off-by: Michael S. Tsirkin <mst@redhat.com> --- hw/virtio/vhost-user.c | 48 ++++++++++++++++++++++++------------------------ 1 file changed, 24 insertions(+), 24 deletions(-) diff --git a/hw/virtio/vhost-user.c b/hw/virtio/vhost-user.c index 78442ba..0aa8e0d 100644 --- a/hw/virtio/vhost-user.c +++ b/hw/virtio/vhost-user.c @@ -89,7 +89,7 @@ typedef struct VhostUserMsg { struct vhost_vring_state state; struct vhost_vring_addr addr; VhostUserMemory memory; - }; + } payload; } QEMU_PACKED VhostUserMsg; static VhostUserMsg m __attribute__ ((unused)); @@ -200,8 +200,8 @@ static int vhost_user_set_log_base(struct vhost_dev *dev, uint64_t base, VhostUserMsg msg = { .request = VHOST_USER_SET_LOG_BASE, .flags = VHOST_USER_VERSION, - .u64 = base, - .size = sizeof(m.u64), + .payload.u64 = base, + .size = sizeof(m.payload.u64), }; if (shmfd && log->fd != -1) { @@ -247,17 +247,17 @@ static int vhost_user_set_mem_table(struct vhost_dev *dev, &ram_addr); fd = qemu_get_ram_fd(ram_addr); if (fd > 0) { - msg.memory.regions[fd_num].userspace_addr = reg->userspace_addr; - msg.memory.regions[fd_num].memory_size = reg->memory_size; - msg.memory.regions[fd_num].guest_phys_addr = reg->guest_phys_addr; - msg.memory.regions[fd_num].mmap_offset = reg->userspace_addr - + msg.payload.memory.regions[fd_num].userspace_addr = reg->userspace_addr; + msg.payload.memory.regions[fd_num].memory_size = reg->memory_size; + msg.payload.memory.regions[fd_num].guest_phys_addr = reg->guest_phys_addr; + msg.payload.memory.regions[fd_num].mmap_offset = reg->userspace_addr - (uintptr_t) qemu_get_ram_block_host_ptr(ram_addr); assert(fd_num < VHOST_MEMORY_MAX_NREGIONS); fds[fd_num++] = fd; } } - msg.memory.nregions = fd_num; + msg.payload.memory.nregions = fd_num; if (!fd_num) { error_report("Failed initializing vhost-user memory map, " @@ -265,8 +265,8 @@ static int vhost_user_set_mem_table(struct vhost_dev *dev, return -1; } - msg.size = sizeof(m.memory.nregions); - msg.size += sizeof(m.memory.padding); + msg.size = sizeof(m.payload.memory.nregions); + msg.size += sizeof(m.payload.memory.padding); msg.size += fd_num * sizeof(VhostUserMemoryRegion); vhost_user_write(dev, &msg, fds, fd_num); @@ -280,7 +280,7 @@ static int vhost_user_set_vring_addr(struct vhost_dev *dev, VhostUserMsg msg = { .request = VHOST_USER_SET_VRING_ADDR, .flags = VHOST_USER_VERSION, - .addr = *addr, + .payload.addr = *addr, .size = sizeof(*addr), }; @@ -303,7 +303,7 @@ static int vhost_set_vring(struct vhost_dev *dev, VhostUserMsg msg = { .request = request, .flags = VHOST_USER_VERSION, - .state = *ring, + .payload.state = *ring, .size = sizeof(*ring), }; @@ -345,7 +345,7 @@ static int vhost_user_get_vring_base(struct vhost_dev *dev, VhostUserMsg msg = { .request = VHOST_USER_GET_VRING_BASE, .flags = VHOST_USER_VERSION, - .state = *ring, + .payload.state = *ring, .size = sizeof(*ring), }; @@ -361,12 +361,12 @@ static int vhost_user_get_vring_base(struct vhost_dev *dev, return -1; } - if (msg.size != sizeof(m.state)) { + if (msg.size != sizeof(m.payload.state)) { error_report("Received bad msg size."); return -1; } - *ring = msg.state; + *ring = msg.payload.state; return 0; } @@ -380,14 +380,14 @@ static int vhost_set_vring_file(struct vhost_dev *dev, VhostUserMsg msg = { .request = request, .flags = VHOST_USER_VERSION, - .u64 = file->index & VHOST_USER_VRING_IDX_MASK, - .size = sizeof(m.u64), + .payload.u64 = file->index & VHOST_USER_VRING_IDX_MASK, + .size = sizeof(m.payload.u64), }; if (ioeventfd_enabled() && file->fd > 0) { fds[fd_num++] = file->fd; } else { - msg.u64 |= VHOST_USER_VRING_NOFD_MASK; + msg.payload.u64 |= VHOST_USER_VRING_NOFD_MASK; } vhost_user_write(dev, &msg, fds, fd_num); @@ -412,8 +412,8 @@ static int vhost_user_set_u64(struct vhost_dev *dev, int request, uint64_t u64) VhostUserMsg msg = { .request = request, .flags = VHOST_USER_VERSION, - .u64 = u64, - .size = sizeof(m.u64), + .payload.u64 = u64, + .size = sizeof(m.payload.u64), }; vhost_user_write(dev, &msg, NULL, 0); @@ -456,12 +456,12 @@ static int vhost_user_get_u64(struct vhost_dev *dev, int request, uint64_t *u64) return -1; } - if (msg.size != sizeof(m.u64)) { + if (msg.size != sizeof(m.payload.u64)) { error_report("Received bad msg size."); return -1; } - *u64 = msg.u64; + *u64 = msg.payload.u64; return 0; } @@ -591,8 +591,8 @@ static int vhost_user_migration_done(struct vhost_dev *dev, char* mac_addr) VHOST_USER_PROTOCOL_F_RARP)) { msg.request = VHOST_USER_SEND_RARP; msg.flags = VHOST_USER_VERSION; - memcpy((char *)&msg.u64, mac_addr, 6); - msg.size = sizeof(m.u64); + memcpy((char *)&msg.payload.u64, mac_addr, 6); + msg.size = sizeof(m.payload.u64); err = vhost_user_write(dev, &msg, NULL, 0); return err; -- MST ^ permalink raw reply related [flat|nested] 4+ messages in thread
* Re: [Qemu-devel] [PULL] vhost-user: fix up rhel6 build 2015-10-22 19:37 ` [Qemu-devel] [PULL] vhost-user: fix up rhel6 build Michael S. Tsirkin @ 2015-10-23 5:24 ` Laurent Desnogues 0 siblings, 0 replies; 4+ messages in thread From: Laurent Desnogues @ 2015-10-23 5:24 UTC (permalink / raw) To: Michael S. Tsirkin; +Cc: Peter Maydell, qemu-devel@nongnu.org Hello, On Thu, Oct 22, 2015 at 9:37 PM, Michael S. Tsirkin <mst@redhat.com> wrote: > Build on RHEL6 fails: > https://gcc.gnu.org/bugzilla/show_bug.cgi?id=42875 > > Apparently unnamed unions couldn't use C99 named field initializers. > Let's just name the payload union field. This fixes the issue I previously reported. > Signed-off-by: Michael S. Tsirkin <mst@redhat.com> Tested-by: Laurent Desnogues <laurent.desnogues@gmail.com> Thanks, Laurent > --- > hw/virtio/vhost-user.c | 48 ++++++++++++++++++++++++------------------------ > 1 file changed, 24 insertions(+), 24 deletions(-) > > diff --git a/hw/virtio/vhost-user.c b/hw/virtio/vhost-user.c > index 78442ba..0aa8e0d 100644 > --- a/hw/virtio/vhost-user.c > +++ b/hw/virtio/vhost-user.c > @@ -89,7 +89,7 @@ typedef struct VhostUserMsg { > struct vhost_vring_state state; > struct vhost_vring_addr addr; > VhostUserMemory memory; > - }; > + } payload; > } QEMU_PACKED VhostUserMsg; > > static VhostUserMsg m __attribute__ ((unused)); > @@ -200,8 +200,8 @@ static int vhost_user_set_log_base(struct vhost_dev *dev, uint64_t base, > VhostUserMsg msg = { > .request = VHOST_USER_SET_LOG_BASE, > .flags = VHOST_USER_VERSION, > - .u64 = base, > - .size = sizeof(m.u64), > + .payload.u64 = base, > + .size = sizeof(m.payload.u64), > }; > > if (shmfd && log->fd != -1) { > @@ -247,17 +247,17 @@ static int vhost_user_set_mem_table(struct vhost_dev *dev, > &ram_addr); > fd = qemu_get_ram_fd(ram_addr); > if (fd > 0) { > - msg.memory.regions[fd_num].userspace_addr = reg->userspace_addr; > - msg.memory.regions[fd_num].memory_size = reg->memory_size; > - msg.memory.regions[fd_num].guest_phys_addr = reg->guest_phys_addr; > - msg.memory.regions[fd_num].mmap_offset = reg->userspace_addr - > + msg.payload.memory.regions[fd_num].userspace_addr = reg->userspace_addr; > + msg.payload.memory.regions[fd_num].memory_size = reg->memory_size; > + msg.payload.memory.regions[fd_num].guest_phys_addr = reg->guest_phys_addr; > + msg.payload.memory.regions[fd_num].mmap_offset = reg->userspace_addr - > (uintptr_t) qemu_get_ram_block_host_ptr(ram_addr); > assert(fd_num < VHOST_MEMORY_MAX_NREGIONS); > fds[fd_num++] = fd; > } > } > > - msg.memory.nregions = fd_num; > + msg.payload.memory.nregions = fd_num; > > if (!fd_num) { > error_report("Failed initializing vhost-user memory map, " > @@ -265,8 +265,8 @@ static int vhost_user_set_mem_table(struct vhost_dev *dev, > return -1; > } > > - msg.size = sizeof(m.memory.nregions); > - msg.size += sizeof(m.memory.padding); > + msg.size = sizeof(m.payload.memory.nregions); > + msg.size += sizeof(m.payload.memory.padding); > msg.size += fd_num * sizeof(VhostUserMemoryRegion); > > vhost_user_write(dev, &msg, fds, fd_num); > @@ -280,7 +280,7 @@ static int vhost_user_set_vring_addr(struct vhost_dev *dev, > VhostUserMsg msg = { > .request = VHOST_USER_SET_VRING_ADDR, > .flags = VHOST_USER_VERSION, > - .addr = *addr, > + .payload.addr = *addr, > .size = sizeof(*addr), > }; > > @@ -303,7 +303,7 @@ static int vhost_set_vring(struct vhost_dev *dev, > VhostUserMsg msg = { > .request = request, > .flags = VHOST_USER_VERSION, > - .state = *ring, > + .payload.state = *ring, > .size = sizeof(*ring), > }; > > @@ -345,7 +345,7 @@ static int vhost_user_get_vring_base(struct vhost_dev *dev, > VhostUserMsg msg = { > .request = VHOST_USER_GET_VRING_BASE, > .flags = VHOST_USER_VERSION, > - .state = *ring, > + .payload.state = *ring, > .size = sizeof(*ring), > }; > > @@ -361,12 +361,12 @@ static int vhost_user_get_vring_base(struct vhost_dev *dev, > return -1; > } > > - if (msg.size != sizeof(m.state)) { > + if (msg.size != sizeof(m.payload.state)) { > error_report("Received bad msg size."); > return -1; > } > > - *ring = msg.state; > + *ring = msg.payload.state; > > return 0; > } > @@ -380,14 +380,14 @@ static int vhost_set_vring_file(struct vhost_dev *dev, > VhostUserMsg msg = { > .request = request, > .flags = VHOST_USER_VERSION, > - .u64 = file->index & VHOST_USER_VRING_IDX_MASK, > - .size = sizeof(m.u64), > + .payload.u64 = file->index & VHOST_USER_VRING_IDX_MASK, > + .size = sizeof(m.payload.u64), > }; > > if (ioeventfd_enabled() && file->fd > 0) { > fds[fd_num++] = file->fd; > } else { > - msg.u64 |= VHOST_USER_VRING_NOFD_MASK; > + msg.payload.u64 |= VHOST_USER_VRING_NOFD_MASK; > } > > vhost_user_write(dev, &msg, fds, fd_num); > @@ -412,8 +412,8 @@ static int vhost_user_set_u64(struct vhost_dev *dev, int request, uint64_t u64) > VhostUserMsg msg = { > .request = request, > .flags = VHOST_USER_VERSION, > - .u64 = u64, > - .size = sizeof(m.u64), > + .payload.u64 = u64, > + .size = sizeof(m.payload.u64), > }; > > vhost_user_write(dev, &msg, NULL, 0); > @@ -456,12 +456,12 @@ static int vhost_user_get_u64(struct vhost_dev *dev, int request, uint64_t *u64) > return -1; > } > > - if (msg.size != sizeof(m.u64)) { > + if (msg.size != sizeof(m.payload.u64)) { > error_report("Received bad msg size."); > return -1; > } > > - *u64 = msg.u64; > + *u64 = msg.payload.u64; > > return 0; > } > @@ -591,8 +591,8 @@ static int vhost_user_migration_done(struct vhost_dev *dev, char* mac_addr) > VHOST_USER_PROTOCOL_F_RARP)) { > msg.request = VHOST_USER_SEND_RARP; > msg.flags = VHOST_USER_VERSION; > - memcpy((char *)&msg.u64, mac_addr, 6); > - msg.size = sizeof(m.u64); > + memcpy((char *)&msg.payload.u64, mac_addr, 6); > + msg.size = sizeof(m.payload.u64); > > err = vhost_user_write(dev, &msg, NULL, 0); > return err; > -- > MST > > ^ permalink raw reply [flat|nested] 4+ messages in thread
* Re: [Qemu-devel] [PULL] vhost: build fix 2015-10-22 19:37 [Qemu-devel] [PULL] vhost: build fix Michael S. Tsirkin 2015-10-22 19:37 ` [Qemu-devel] [PULL] vhost-user: fix up rhel6 build Michael S. Tsirkin @ 2015-10-23 11:08 ` Peter Maydell 1 sibling, 0 replies; 4+ messages in thread From: Peter Maydell @ 2015-10-23 11:08 UTC (permalink / raw) To: Michael S. Tsirkin; +Cc: QEMU Developers On 22 October 2015 at 20:37, Michael S. Tsirkin <mst@redhat.com> wrote: > The following changes since commit 3c23402d4032f69af44a87fdb8019ad3229a4f31: > > hw/isa/lpc_ich9: inject the SMI on the VCPU that is writing to APM_CNT (2015-10-22 14:39:09 +0300) > > are available in the git repository at: > > git://git.kernel.org/pub/scm/virt/kvm/mst/qemu.git tags/for_upstream > > for you to fetch changes up to 7f4a930e64b9e69cd340395a7e4f0494aef4fcdd: > > vhost-user: fix up rhel6 build (2015-10-22 22:34:59 +0300) > > ---------------------------------------------------------------- > vhost: build fix > > Fix build breakages when using older gcc. > > Signed-off-by: Michael S. Tsirkin <mst@redhat.com> > > ---------------------------------------------------------------- > Michael S. Tsirkin (1): > vhost-user: fix up rhel6 build > > hw/virtio/vhost-user.c | 48 ++++++++++++++++++++++++------------------------ > 1 file changed, 24 insertions(+), 24 deletions(-) Applied, thanks. -- PMM ^ permalink raw reply [flat|nested] 4+ messages in thread
end of thread, other threads:[~2015-10-23 11:09 UTC | newest] Thread overview: 4+ messages (download: mbox.gz follow: Atom feed -- links below jump to the message on this page -- 2015-10-22 19:37 [Qemu-devel] [PULL] vhost: build fix Michael S. Tsirkin 2015-10-22 19:37 ` [Qemu-devel] [PULL] vhost-user: fix up rhel6 build Michael S. Tsirkin 2015-10-23 5:24 ` Laurent Desnogues 2015-10-23 11:08 ` [Qemu-devel] [PULL] vhost: build fix Peter Maydell
This is a public inbox, see mirroring instructions for how to clone and mirror all data and code used for this inbox; as well as URLs for NNTP newsgroup(s).