mirror of https://github.com/xemu-project/xemu.git
vhost-user: Don't ask for reply on postcopy mem table set
According to documentation, NEED_REPLY_MASK should not be set
for VHOST_USER_SET_MEM_TABLE request in postcopy mode.
This restriction was mistakenly applied to 'reply_supported'
variable, which is local and used only for non-postcopy case.
CC: Dr. David Alan Gilbert <dgilbert@redhat.com>
Fixes: 9bb3801994
("vhost+postcopy: Send address back to qemu")
Signed-off-by: Ilya Maximets <i.maximets@samsung.com>
Message-Id: <20181002140947.4107-1-i.maximets@samsung.com>
Reviewed-by: Maxime Coquelin <maxime.coquelin@redhat.com>
Signed-off-by: Dr. David Alan Gilbert <dgilbert@redhat.com>
This commit is contained in:
parent
c4f753859a
commit
5ce43896e1
|
@ -374,8 +374,6 @@ static int vhost_user_set_mem_table_postcopy(struct vhost_dev *dev,
|
||||||
int fds[VHOST_MEMORY_MAX_NREGIONS];
|
int fds[VHOST_MEMORY_MAX_NREGIONS];
|
||||||
int i, fd;
|
int i, fd;
|
||||||
size_t fd_num = 0;
|
size_t fd_num = 0;
|
||||||
bool reply_supported = virtio_has_feature(dev->protocol_features,
|
|
||||||
VHOST_USER_PROTOCOL_F_REPLY_ACK);
|
|
||||||
VhostUserMsg msg_reply;
|
VhostUserMsg msg_reply;
|
||||||
int region_i, msg_i;
|
int region_i, msg_i;
|
||||||
|
|
||||||
|
@ -384,10 +382,6 @@ static int vhost_user_set_mem_table_postcopy(struct vhost_dev *dev,
|
||||||
.hdr.flags = VHOST_USER_VERSION,
|
.hdr.flags = VHOST_USER_VERSION,
|
||||||
};
|
};
|
||||||
|
|
||||||
if (reply_supported) {
|
|
||||||
msg.hdr.flags |= VHOST_USER_NEED_REPLY_MASK;
|
|
||||||
}
|
|
||||||
|
|
||||||
if (u->region_rb_len < dev->mem->nregions) {
|
if (u->region_rb_len < dev->mem->nregions) {
|
||||||
u->region_rb = g_renew(RAMBlock*, u->region_rb, dev->mem->nregions);
|
u->region_rb = g_renew(RAMBlock*, u->region_rb, dev->mem->nregions);
|
||||||
u->region_rb_offset = g_renew(ram_addr_t, u->region_rb_offset,
|
u->region_rb_offset = g_renew(ram_addr_t, u->region_rb_offset,
|
||||||
|
@ -503,10 +497,6 @@ static int vhost_user_set_mem_table_postcopy(struct vhost_dev *dev,
|
||||||
return -1;
|
return -1;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (reply_supported) {
|
|
||||||
return process_message_reply(dev, &msg);
|
|
||||||
}
|
|
||||||
|
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -519,8 +509,7 @@ static int vhost_user_set_mem_table(struct vhost_dev *dev,
|
||||||
size_t fd_num = 0;
|
size_t fd_num = 0;
|
||||||
bool do_postcopy = u->postcopy_listen && u->postcopy_fd.handler;
|
bool do_postcopy = u->postcopy_listen && u->postcopy_fd.handler;
|
||||||
bool reply_supported = virtio_has_feature(dev->protocol_features,
|
bool reply_supported = virtio_has_feature(dev->protocol_features,
|
||||||
VHOST_USER_PROTOCOL_F_REPLY_ACK) &&
|
VHOST_USER_PROTOCOL_F_REPLY_ACK);
|
||||||
!do_postcopy;
|
|
||||||
|
|
||||||
if (do_postcopy) {
|
if (do_postcopy) {
|
||||||
/* Postcopy has enough differences that it's best done in it's own
|
/* Postcopy has enough differences that it's best done in it's own
|
||||||
|
|
Loading…
Reference in New Issue