vhost scsi: add lun parser helper
Move code to parse lun from req's lun_buf to helper, so tmf code can use it in the next patch. Signed-off-by: Mike Christie <michael.christie@oracle.com> Reviewed-by: Paolo Bonzini <pbonzini@redhat.com> Acked-by: Jason Wang <jasowang@redhat.com> Link: https://lore.kernel.org/r/1604986403-4931-5-git-send-email-michael.christie@oracle.com Signed-off-by: Michael S. Tsirkin <mst@redhat.com> Acked-by: Stefan Hajnoczi <stefanha@redhat.com>
This commit is contained in:
Родитель
47a3565e8b
Коммит
18f1becb69
|
@ -898,6 +898,11 @@ vhost_scsi_get_req(struct vhost_virtqueue *vq, struct vhost_scsi_ctx *vc,
|
|||
return ret;
|
||||
}
|
||||
|
||||
static u16 vhost_buf_to_lun(u8 *lun_buf)
|
||||
{
|
||||
return ((lun_buf[2] << 8) | lun_buf[3]) & 0x3FFF;
|
||||
}
|
||||
|
||||
static void
|
||||
vhost_scsi_handle_vq(struct vhost_scsi *vs, struct vhost_virtqueue *vq)
|
||||
{
|
||||
|
@ -1036,12 +1041,12 @@ vhost_scsi_handle_vq(struct vhost_scsi *vs, struct vhost_virtqueue *vq)
|
|||
tag = vhost64_to_cpu(vq, v_req_pi.tag);
|
||||
task_attr = v_req_pi.task_attr;
|
||||
cdb = &v_req_pi.cdb[0];
|
||||
lun = ((v_req_pi.lun[2] << 8) | v_req_pi.lun[3]) & 0x3FFF;
|
||||
lun = vhost_buf_to_lun(v_req_pi.lun);
|
||||
} else {
|
||||
tag = vhost64_to_cpu(vq, v_req.tag);
|
||||
task_attr = v_req.task_attr;
|
||||
cdb = &v_req.cdb[0];
|
||||
lun = ((v_req.lun[2] << 8) | v_req.lun[3]) & 0x3FFF;
|
||||
lun = vhost_buf_to_lun(v_req.lun);
|
||||
}
|
||||
/*
|
||||
* Check that the received CDB size does not exceeded our
|
||||
|
|
Загрузка…
Ссылка в новой задаче