[PATCH v3 16/18] hw/s390x/css: drop use of .err_hint for vmstate

Vladimir Sementsov-Ogievskiy posted 18 patches 3 weeks, 1 day ago
Maintainers: Peter Xu <peterx@redhat.com>, Fabiano Rosas <farosas@suse.de>, Pierrick Bouvier <pierrick.bouvier@linaro.org>, John Snow <jsnow@redhat.com>, Kevin Wolf <kwolf@redhat.com>, Hanna Reitz <hreitz@redhat.com>, Gerd Hoffmann <kraxel@redhat.com>, "Alex Bennée" <alex.bennee@linaro.org>, Akihiko Odaki <odaki@rsg.ci.i.u-tokyo.ac.jp>, Dmitry Osipenko <dmitry.osipenko@collabora.com>, "Michael S. Tsirkin" <mst@redhat.com>, Dmitry Fleytman <dmitry.fleytman@gmail.com>, Paolo Bonzini <pbonzini@redhat.com>, Richard Henderson <richard.henderson@linaro.org>, Eduardo Habkost <eduardo@habkost.net>, Marcel Apfelbaum <marcel.apfelbaum@gmail.com>, Mark Cave-Ayland <mark.cave-ayland@ilande.co.uk>, Nicholas Piggin <npiggin@gmail.com>, Harsh Prateek Bora <harshpb@linux.ibm.com>, Gautam Menghani <gautam@linux.ibm.com>, Glenn Miles <milesg@linux.ibm.com>, Stefan Weil <sw@weilnetz.de>, Halil Pasic <pasic@linux.ibm.com>, Christian Borntraeger <borntraeger@linux.ibm.com>, Eric Farman <farman@linux.ibm.com>, Farhan Ali <alifm@linux.ibm.com>, Matthew Rosato <mjrosato@linux.ibm.com>, Ilya Leoshkevich <iii@linux.ibm.com>, David Hildenbrand <david@kernel.org>, Thomas Huth <thuth@redhat.com>, Mark Kanda <mark.kanda@oracle.com>, Ben Chaney <bchaney@akamai.com>, Peter Maydell <peter.maydell@linaro.org>, Chinmay Rath <rathc@linux.ibm.com>
[PATCH v3 16/18] hw/s390x/css: drop use of .err_hint for vmstate
Posted by Vladimir Sementsov-Ogievskiy 3 weeks, 1 day ago
That's the only usage through the whole base. Doesn't
worth keeping the whole complexity. And 2.7 machines were
long ago.

Signed-off-by: Vladimir Sementsov-Ogievskiy <vsementsov@yandex-team.ru>
---
 hw/s390x/css.c | 15 ++++++++-------
 1 file changed, 8 insertions(+), 7 deletions(-)

diff --git a/hw/s390x/css.c b/hw/s390x/css.c
index 04ce3178a0b..df5f0bc27f1 100644
--- a/hw/s390x/css.c
+++ b/hw/s390x/css.c
@@ -192,10 +192,6 @@ static const VMStateDescription vmstate_schdev_orb = {
 static int subch_dev_post_load(void *opaque, int version_id);
 static int subch_dev_pre_save(void *opaque);
 
-const char err_hint_devno[] = "Devno mismatch, tried to load wrong section!"
-    " Likely reason: some sequences of plug and unplug  can break"
-    " migration for machine versions prior to  2.7 (known design flaw).";
-
 const VMStateDescription vmstate_subch_dev = {
     .name = "s390_subch_dev",
     .version_id = 1,
@@ -203,10 +199,15 @@ const VMStateDescription vmstate_subch_dev = {
     .post_load = subch_dev_post_load,
     .pre_save = subch_dev_pre_save,
     .fields = (const VMStateField[]) {
-        VMSTATE_UINT8_EQUAL(cssid, SubchDev, "Bug!"),
-        VMSTATE_UINT8_EQUAL(ssid, SubchDev, "Bug!"),
+        VMSTATE_UINT8_EQUAL(cssid, SubchDev, NULL),
+        VMSTATE_UINT8_EQUAL(ssid, SubchDev, NULL),
         VMSTATE_UINT16(migrated_schid, SubchDev),
-        VMSTATE_UINT16_EQUAL(devno, SubchDev, err_hint_devno),
+        /*
+         * If devno mismatch on target, it may be due to some
+         * sequences of plug and unplug breaks migration for
+         * machine versions prior to 2.7 (known design flaw).
+         */
+        VMSTATE_UINT16_EQUAL(devno, SubchDev, NULL),
         VMSTATE_BOOL(thinint_active, SubchDev),
         VMSTATE_STRUCT(curr_status, SubchDev, 0, vmstate_schib, SCHIB),
         VMSTATE_UINT8_ARRAY(sense_data, SubchDev, 32),
-- 
2.52.0
Re: [PATCH v3 16/18] hw/s390x/css: drop use of .err_hint for vmstate
Posted by Peter Xu 3 weeks ago
On Thu, Mar 05, 2026 at 12:23:00AM +0300, Vladimir Sementsov-Ogievskiy wrote:
> That's the only usage through the whole base. Doesn't
> worth keeping the whole complexity. And 2.7 machines were
> long ago.
> 
> Signed-off-by: Vladimir Sementsov-Ogievskiy <vsementsov@yandex-team.ru>

Reviewed-by: Peter Xu <peterx@redhat.com>

-- 
Peter Xu
Re: [PATCH v3 16/18] hw/s390x/css: drop use of .err_hint for vmstate
Posted by Eric Farman 3 weeks, 1 day ago
On Thu, 2026-03-05 at 00:23 +0300, Vladimir Sementsov-Ogievskiy wrote:
> That's the only usage through the whole base. Doesn't
> worth keeping the whole complexity. And 2.7 machines were
> long ago.
> 
> Signed-off-by: Vladimir Sementsov-Ogievskiy <vsementsov@yandex-team.ru>
> ---
>  hw/s390x/css.c | 15 ++++++++-------
>  1 file changed, 8 insertions(+), 7 deletions(-)

Agreed that the two "Bug!" hints aren't helpful, and the devno hint is probably offering more
confusion than anything else.

Reviewed-by: Eric Farman <farman@linux.ibm.com>

> 
> diff --git a/hw/s390x/css.c b/hw/s390x/css.c
> index 04ce3178a0b..df5f0bc27f1 100644
> --- a/hw/s390x/css.c
> +++ b/hw/s390x/css.c
> @@ -192,10 +192,6 @@ static const VMStateDescription vmstate_schdev_orb = {
>  static int subch_dev_post_load(void *opaque, int version_id);
>  static int subch_dev_pre_save(void *opaque);
>  
> -const char err_hint_devno[] = "Devno mismatch, tried to load wrong section!"
> -    " Likely reason: some sequences of plug and unplug  can break"
> -    " migration for machine versions prior to  2.7 (known design flaw).";
> -
>  const VMStateDescription vmstate_subch_dev = {
>      .name = "s390_subch_dev",
>      .version_id = 1,
> @@ -203,10 +199,15 @@ const VMStateDescription vmstate_subch_dev = {
>      .post_load = subch_dev_post_load,
>      .pre_save = subch_dev_pre_save,
>      .fields = (const VMStateField[]) {
> -        VMSTATE_UINT8_EQUAL(cssid, SubchDev, "Bug!"),
> -        VMSTATE_UINT8_EQUAL(ssid, SubchDev, "Bug!"),
> +        VMSTATE_UINT8_EQUAL(cssid, SubchDev, NULL),
> +        VMSTATE_UINT8_EQUAL(ssid, SubchDev, NULL),
>          VMSTATE_UINT16(migrated_schid, SubchDev),
> -        VMSTATE_UINT16_EQUAL(devno, SubchDev, err_hint_devno),
> +        /*
> +         * If devno mismatch on target, it may be due to some
> +         * sequences of plug and unplug breaks migration for
> +         * machine versions prior to 2.7 (known design flaw).
> +         */
> +        VMSTATE_UINT16_EQUAL(devno, SubchDev, NULL),
>          VMSTATE_BOOL(thinint_active, SubchDev),
>          VMSTATE_STRUCT(curr_status, SubchDev, 0, vmstate_schib, SCHIB),
>          VMSTATE_UINT8_ARRAY(sense_data, SubchDev, 32),