mirror of
https://github.com/qemu/qemu.git
synced 2025-08-09 19:15:32 +00:00
virtio-scsi: add target swap for VirtIOSCSICtrlTMFReq fields
Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
This commit is contained in:
parent
36b15c79aa
commit
b0b4ea17dc
@ -207,6 +207,7 @@ static void virtio_scsi_do_tmf(VirtIOSCSI *s, VirtIOSCSIReq *req)
|
|||||||
/* Here VIRTIO_SCSI_S_OK means "FUNCTION COMPLETE". */
|
/* Here VIRTIO_SCSI_S_OK means "FUNCTION COMPLETE". */
|
||||||
req->resp.tmf->response = VIRTIO_SCSI_S_OK;
|
req->resp.tmf->response = VIRTIO_SCSI_S_OK;
|
||||||
|
|
||||||
|
tswap32s(&req->req.tmf->subtype);
|
||||||
switch (req->req.tmf->subtype) {
|
switch (req->req.tmf->subtype) {
|
||||||
case VIRTIO_SCSI_T_TMF_ABORT_TASK:
|
case VIRTIO_SCSI_T_TMF_ABORT_TASK:
|
||||||
case VIRTIO_SCSI_T_TMF_QUERY_TASK:
|
case VIRTIO_SCSI_T_TMF_QUERY_TASK:
|
||||||
@ -314,8 +315,11 @@ static void virtio_scsi_handle_ctrl(VirtIODevice *vdev, VirtQueue *vq)
|
|||||||
if (iov_to_buf(req->elem.out_sg, req->elem.out_num, 0,
|
if (iov_to_buf(req->elem.out_sg, req->elem.out_num, 0,
|
||||||
&type, sizeof(type)) < sizeof(type)) {
|
&type, sizeof(type)) < sizeof(type)) {
|
||||||
virtio_scsi_bad_req();
|
virtio_scsi_bad_req();
|
||||||
|
continue;
|
||||||
|
}
|
||||||
|
|
||||||
} else if (req->req.tmf->type == VIRTIO_SCSI_T_TMF) {
|
tswap32s(&req->req.tmf->type);
|
||||||
|
if (req->req.tmf->type == VIRTIO_SCSI_T_TMF) {
|
||||||
if (virtio_scsi_parse_req(req, sizeof(VirtIOSCSICtrlTMFReq),
|
if (virtio_scsi_parse_req(req, sizeof(VirtIOSCSICtrlTMFReq),
|
||||||
sizeof(VirtIOSCSICtrlTMFResp)) < 0) {
|
sizeof(VirtIOSCSICtrlTMFResp)) < 0) {
|
||||||
virtio_scsi_bad_req();
|
virtio_scsi_bad_req();
|
||||||
|
Loading…
Reference in New Issue
Block a user