All of lore.kernel.org
 help / color / mirror / Atom feed
From: "Philippe Mathieu-Daudé" <f4bug@amsat.org>
To: "Dr. David Alan Gilbert" <dgilbert@redhat.com>
Cc: "Hervé Poussineau" <hpoussin@reactos.org>,
	qemu-devel@nongnu.org, "Aurelien Jarno" <aurelien@aurel32.net>
Subject: Re: [PATCH v2] hw/isa/piix4: Migrate Reset Control Register
Date: Wed, 24 Mar 2021 21:00:33 +0100	[thread overview]
Message-ID: <496821ce-dc75-34b1-020a-846409073ddc@amsat.org> (raw)
In-Reply-To: <YFuVmTJcsdXj1UrG@work-vm>

On 3/24/21 8:40 PM, Dr. David Alan Gilbert wrote:
> * Philippe Mathieu-Daudé (f4bug@amsat.org) wrote:
>> When adding the Reset register in commit 5790b757cfb we
>> forgot to migrate it.
>>
>> While it is possible a VM using the PIIX4 is migrated just
>> after requesting a system shutdown, it is very unlikely.
>> However when restoring a migrated VM, we might have the
>> RCR bit #4 set on the stack and when the VM resume it
>> directly shutdowns.
>>
>> Add a post_load() migration handler and set the default
>> RCR value to 0 for earlier versions, assuming the VM was
>> not going to shutdown before migration.
>>
>> Fixes: 5790b757cfb ("piix4: Add the Reset Control Register")
>> Signed-off-by: Philippe Mathieu-Daudé <f4bug@amsat.org>
>> ---
>> v2: Add piix4_ide_post_load() and describe
>> ---
>>  hw/isa/piix4.c | 15 ++++++++++++++-
>>  1 file changed, 14 insertions(+), 1 deletion(-)
>>
>> diff --git a/hw/isa/piix4.c b/hw/isa/piix4.c
>> index a50d97834c7..e7bce0e590c 100644
>> --- a/hw/isa/piix4.c
>> +++ b/hw/isa/piix4.c
>> @@ -93,12 +93,25 @@ static void piix4_isa_reset(DeviceState *dev)
>>      pci_conf[0xae] = 0x00;
>>  }
>>  
>> +static int piix4_ide_post_load(void *opaque, int version_id)
>> +{
>> +    PIIX4State *s = opaque;
>> +
>> +    if (version_id == 2) {
>> +        s->rcr = 0;
>> +    }
>> +
>> +    return 0;
>> +}
>> +
>>  static const VMStateDescription vmstate_piix4 = {
>>      .name = "PIIX4",
>> -    .version_id = 2,
>> +    .version_id = 3,
>>      .minimum_version_id = 2,
>> +    .post_load = piix4_ide_post_load,
>>      .fields = (VMStateField[]) {
>>          VMSTATE_PCI_DEVICE(dev, PIIX4State),
>> +        VMSTATE_UINT8(rcr, PIIX4State),
> 
> I don't think that looks right any more; you'd need to make that a 
>    VMSTATE_UINT8_V(rcr, PIIX4State, 3),
> 
> I think, otherwise when you loaded a v2 it would still try
> and read the rcr byte.

Ah now I guess I understood.

Thanks!


      reply	other threads:[~2021-03-24 20:02 UTC|newest]

Thread overview: 3+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2021-03-24 19:27 [PATCH v2] hw/isa/piix4: Migrate Reset Control Register Philippe Mathieu-Daudé
2021-03-24 19:40 ` Dr. David Alan Gilbert
2021-03-24 20:00   ` Philippe Mathieu-Daudé [this message]

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=496821ce-dc75-34b1-020a-846409073ddc@amsat.org \
    --to=f4bug@amsat.org \
    --cc=aurelien@aurel32.net \
    --cc=dgilbert@redhat.com \
    --cc=hpoussin@reactos.org \
    --cc=qemu-devel@nongnu.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.