SHA256
1
0
forked from pool/qemu

Accepting request 964919 from home:dfaggioli:devel:Virtualization

- Add missing patch from a PTFs (bsc#1194938, P2 bug!)
* Patches added:
  scsi-generic-check-for-additional-SG_IO-.patch

OBS-URL: https://build.opensuse.org/request/show/964919
OBS-URL: https://build.opensuse.org/package/show/Virtualization/qemu?expand=0&rev=699
This commit is contained in:
Dario Faggioli 2022-03-25 17:52:29 +00:00 committed by Git OBS Bridge
parent f37eee9181
commit c2608fba2c
4 changed files with 47 additions and 2 deletions

View File

@ -1,3 +1,3 @@
version https://git-lfs.github.com/spec/v1
oid sha256:9891379f129dd699bb0ad0b1a9de1c5d6464fec478ca5e597a3461cd6e2b4b1f
size 88208
oid sha256:5f4a8d7f2f09d3aa230e21e5c02290085428420b66c277a96e8db820e6246566
size 88892

View File

@ -1,3 +1,10 @@
-------------------------------------------------------------------
Fri Mar 25 17:44:06 UTC 2022 - Dario Faggioli <dfaggioli@suse.com>
- Add missing patch from a PTFs (bsc#1194938)
* Patches added:
scsi-generic-check-for-additional-SG_IO-.patch
-------------------------------------------------------------------
Thu Mar 24 11:18:54 UTC 2022 - Li Zhang <li.zhang@suse.com>

View File

@ -221,6 +221,7 @@ Patch00074: tools-virtiofsd-Add-rseq-syscall-to-the-.patch
Patch00075: tests-qemu-iotests-040-Skip-TestCommitWi.patch
Patch00076: tests-qemu-iotests-testrunner-Quote-case.patch
Patch00077: Fix-the-module-building-problem-for-s390.patch
Patch00078: scsi-generic-check-for-additional-SG_IO-.patch
# Patches applied in roms/seabios/:
Patch01000: seabios-use-python2-explicitly-as-needed.patch
Patch01001: seabios-switch-to-python3-as-needed.patch
@ -1221,6 +1222,7 @@ This package records qemu testsuite results and represents successful testing.
%patch00075 -p1
%patch00076 -p1
%patch00077 -p1
%patch00078 -p1
%patch01000 -p1
%patch01001 -p1
%patch01002 -p1

View File

@ -0,0 +1,36 @@
From: Hannes Reinecke <hare@suse.de>
Date: Fri, 25 Mar 2022 18:41:52 +0100
Subject: scsi-generic: check for additional SG_IO status on completion
References: bsc#1178049
SG_IO may return additional status in the 'status', 'driver_status',
and 'host_status' fields. When either of these fields are set the
command has not been executed normally, so we should not continue
processing this command but rather return an error.
scsi_read_complete() already checks for these errors,
scsi_write_complete() does not.
Signed-off-by: Hannes Reinecke <hare@suse.de>
Signed-off-by: Lin Ma <lma@suse.com>
Signed-off-by: Dario Faggioli <dfaggioli@suse.com>
---
hw/scsi/scsi-generic.c | 5 ++++-
1 file changed, 4 insertions(+), 1 deletion(-)
diff --git a/hw/scsi/scsi-generic.c b/hw/scsi/scsi-generic.c
index 343b51c2c0ab5dc7fb792aeb6458..513b10bed0f4279dc4077a31c66f 100644
--- a/hw/scsi/scsi-generic.c
+++ b/hw/scsi/scsi-generic.c
@@ -391,7 +391,10 @@ static void scsi_write_complete(void * opaque, int ret)
aio_context_acquire(blk_get_aio_context(s->conf.blk));
- if (ret || r->req.io_canceled) {
+ if (ret || r->req.io_canceled ||
+ r->io_header.status != SCSI_HOST_OK ||
+ (r->io_header.driver_status & SG_ERR_DRIVER_TIMEOUT) ||
+ r->io_header.status != GOOD) {
scsi_command_complete_noio(r, ret);
goto done;
}