ide: Split error status from status register
authorKevin Wolf <kwolf@redhat.com>
Thu, 26 May 2011 13:00:34 +0000 (15:00 +0200)
committerKevin Wolf <kwolf@redhat.com>
Wed, 15 Jun 2011 12:36:15 +0000 (14:36 +0200)
commitdef93791f22a3536c3508244ec7d270098484c7d
treed2730ee2e84d06a24048e8d1abbe937207b60824
parent9e2a3701a1fcfec0316b9dc1a6cd62869de5542c
ide: Split error status from status register

When adding the werror=stop mode, some flags were added to s->status
which are used to determine what kind of operation should be restarted
when the VM is continued.

Unfortunately, it turns out that s->status is in fact a device register
and as such is visible to the guest (some of the abused bits are even
writable for the guest).

For migration we keep on using the old VMState field (renamed to
migration_compat_status) if the status register doesn't use any of the
previously abused bits. If it does, we use a subsection with a clean copy of
the status register.

The error status is always sent in a subsection if there is any error. It can't
use the old field because errors happen even without PCI.

Signed-off-by: Kevin Wolf <kwolf@redhat.com>
hw/ide/core.c
hw/ide/internal.h
hw/ide/pci.c
hw/ide/pci.h