• Asias He's avatar
    tcm_vhost: Initialize vq->last_used_idx when set endpoint · dfd5d569
    Asias He authored
    This patch fixes guest hang when booting seabios and guest.
    
      [    0.576238] scsi0 : Virtio SCSI HBA
      [    0.616754] virtio_scsi virtio1: request:id 0 is not a head!
    
    vq->last_used_idx is initialized only when /dev/vhost-scsi is
    opened or closed.
    
       vhost_scsi_open -> vhost_dev_init() -> vhost_vq_reset()
       vhost_scsi_release() -> vhost_dev_cleanup -> vhost_vq_reset()
    
    So, when guest talks to tcm_vhost after seabios does, vq->last_used_idx
    still contains the old valule for seabios. This confuses guest.
    
    Fix this by calling vhost_init_used() to init vq->last_used_idx when
    we set endpoint.
    Signed-off-by: default avatarAsias He <asias@redhat.com>
    Acked-by: default avatarMichael S. Tsirkin <mst@redhat.com>
    Signed-off-by: default avatarNicholas Bellinger <nab@linux-iscsi.org>
    dfd5d569
tcm_vhost.c 44.2 KB