From c1f7e29c538241dc83d20c28d82fe5c916052bb2039f54ceb2d7d5e700a89d8c Mon Sep 17 00:00:00 2001 From: Bruce Rogers Date: Thu, 31 Jan 2019 15:32:31 +0000 Subject: [PATCH] Accepting request 670231 from home:lyan:branches:Virtualization Return specification exception for unimplemented diag 308 subcodes OBS-URL: https://build.opensuse.org/request/show/670231 OBS-URL: https://build.opensuse.org/package/show/Virtualization/qemu?expand=0&rev=451 --- ...-s390x-Return-specification-exceptio.patch | 40 +++++++++++++++++++ qemu-linux-user.changes | 7 ++++ qemu-linux-user.spec | 2 + qemu-testsuite.changes | 9 +++++ qemu-testsuite.spec | 2 + qemu.changes | 9 +++++ qemu.spec | 2 + 7 files changed, 71 insertions(+) create mode 100644 0057-s390x-Return-specification-exceptio.patch diff --git a/0057-s390x-Return-specification-exceptio.patch b/0057-s390x-Return-specification-exceptio.patch new file mode 100644 index 00000000..521092b3 --- /dev/null +++ b/0057-s390x-Return-specification-exceptio.patch @@ -0,0 +1,40 @@ +From: Janosch Frank +Date: Fri, 11 Jan 2019 12:36:57 +0100 +Subject: s390x: Return specification exception for unimplemented diag 308 + subcodes + +The architecture specifies specification exceptions for all +unavailable subcodes. + +The presence of subcodes is indicated by checking some query subcode. +For example 6 will indicate that 3-6 are available. So future systems +might call new subcodes to check for new features. This should not +trigger a hw error, instead we return the architectured specification +exception. + +Signed-off-by: Janosch Frank +Cc: qemu-stable@nongnu.org +Message-Id: <20190111113657.66195-3-frankja@linux.ibm.com> +Reviewed-by: Christian Borntraeger +Reviewed-by: David Hildenbrand +Signed-off-by: Cornelia Huck +(cherry picked from commit 37dbd1f4d4805edcd18d94eb202bb3461b3cd52d) +[LY: BSC#1123179] +Signed-off-by: Liang Yan +--- + target/s390x/diag.c | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +diff --git a/target/s390x/diag.c b/target/s390x/diag.c +index acb0f3d4af..aafa740f61 100644 +--- a/target/s390x/diag.c ++++ b/target/s390x/diag.c +@@ -130,7 +130,7 @@ out: + } + return; + default: +- hw_error("Unhandled diag308 subcode %" PRIx64, subcode); ++ s390_program_interrupt(env, PGM_SPECIFICATION, ILEN_AUTO, ra); + break; + } + } diff --git a/qemu-linux-user.changes b/qemu-linux-user.changes index 8cd27920..8ef26d09 100644 --- a/qemu-linux-user.changes +++ b/qemu-linux-user.changes @@ -1,3 +1,10 @@ +------------------------------------------------------------------- +Wed Jan 30 15:54:31 UTC 2019 - Liang Yan + +- Patch queue updated from git://github.com/openSUSE/qemu.git opensuse-3.1 +* Patches added: + 0057-s390x-Return-specification-exceptio.patch + ------------------------------------------------------------------- Fri Jan 25 19:21:00 UTC 2019 - Bruce Rogers diff --git a/qemu-linux-user.spec b/qemu-linux-user.spec index 3152a79b..039dbbfd 100644 --- a/qemu-linux-user.spec +++ b/qemu-linux-user.spec @@ -88,6 +88,7 @@ Patch0053: 0053-block-Fix-hangs-in-synchronous-APIs.patch Patch0054: 0054-linux-user-make-pwrite64-pread64-fd.patch Patch0055: 0055-xen-Add-xen-v4.12-based-xc_domain_c.patch Patch0056: 0056-slirp-check-data-length-while-emula.patch +Patch0057: 0057-s390x-Return-specification-exceptio.patch # Please do not add QEMU patches manually here. # Run update_git.sh to regenerate this queue. ExcludeArch: s390 @@ -175,6 +176,7 @@ syscall layer occurs on the native hardware and operating system. %patch0054 -p1 %patch0055 -p1 %patch0056 -p1 +%patch0057 -p1 %build ./configure \ diff --git a/qemu-testsuite.changes b/qemu-testsuite.changes index 3a7a3e04..bf2637eb 100644 --- a/qemu-testsuite.changes +++ b/qemu-testsuite.changes @@ -1,3 +1,12 @@ +------------------------------------------------------------------- +Wed Jan 30 15:54:30 UTC 2019 - Liang Yan + +- Return specification exception for unimplemented diag 308 subcodes + rather than a hardware error (bsc#1123179) +- Patch queue updated from git://github.com/openSUSE/qemu.git opensuse-3.1 +* Patches added: + 0057-s390x-Return-specification-exceptio.patch + ------------------------------------------------------------------- Fri Jan 25 19:20:59 UTC 2019 - Bruce Rogers diff --git a/qemu-testsuite.spec b/qemu-testsuite.spec index 7e355a1e..10a546dd 100644 --- a/qemu-testsuite.spec +++ b/qemu-testsuite.spec @@ -193,6 +193,7 @@ Patch0053: 0053-block-Fix-hangs-in-synchronous-APIs.patch Patch0054: 0054-linux-user-make-pwrite64-pread64-fd.patch Patch0055: 0055-xen-Add-xen-v4.12-based-xc_domain_c.patch Patch0056: 0056-slirp-check-data-length-while-emula.patch +Patch0057: 0057-s390x-Return-specification-exceptio.patch # Please do not add QEMU patches manually here. # Run update_git.sh to regenerate this queue. @@ -979,6 +980,7 @@ This package provides a service file for starting and stopping KSM. %patch0054 -p1 %patch0055 -p1 %patch0056 -p1 +%patch0057 -p1 pushd roms/seabios %patch1100 -p1 diff --git a/qemu.changes b/qemu.changes index 3a7a3e04..bf2637eb 100644 --- a/qemu.changes +++ b/qemu.changes @@ -1,3 +1,12 @@ +------------------------------------------------------------------- +Wed Jan 30 15:54:30 UTC 2019 - Liang Yan + +- Return specification exception for unimplemented diag 308 subcodes + rather than a hardware error (bsc#1123179) +- Patch queue updated from git://github.com/openSUSE/qemu.git opensuse-3.1 +* Patches added: + 0057-s390x-Return-specification-exceptio.patch + ------------------------------------------------------------------- Fri Jan 25 19:20:59 UTC 2019 - Bruce Rogers diff --git a/qemu.spec b/qemu.spec index 5561aa86..8ac30410 100644 --- a/qemu.spec +++ b/qemu.spec @@ -193,6 +193,7 @@ Patch0053: 0053-block-Fix-hangs-in-synchronous-APIs.patch Patch0054: 0054-linux-user-make-pwrite64-pread64-fd.patch Patch0055: 0055-xen-Add-xen-v4.12-based-xc_domain_c.patch Patch0056: 0056-slirp-check-data-length-while-emula.patch +Patch0057: 0057-s390x-Return-specification-exceptio.patch # Please do not add QEMU patches manually here. # Run update_git.sh to regenerate this queue. @@ -979,6 +980,7 @@ This package provides a service file for starting and stopping KSM. %patch0054 -p1 %patch0055 -p1 %patch0056 -p1 +%patch0057 -p1 pushd roms/seabios %patch1100 -p1