ide: cancel pending callbacks on SRST
commit55adb3c45620c31f29978f209e2a44a08d34e2da
authorJohn Snow <jsnow@redhat.com>
Fri, 24 Jul 2020 05:23:00 +0000 (24 01:23 -0400)
committerJohn Snow <jsnow@redhat.com>
Thu, 1 Oct 2020 17:04:16 +0000 (1 13:04 -0400)
treef3f9f8d417e8b2fc3ed2d0ddbca69cdf20e4361b
parent6f52e69f468f3b75db0292be3ee479db699a9a57
ide: cancel pending callbacks on SRST

The SRST implementation did not keep up with the rest of IDE; it is
possible to perform a weak reset on an IDE device to remove the BSY/DRQ
bits, and then issue writes to the control/device registers which can
cause chaos with the state machine.

Fix that by actually performing a real reset.

Reported-by: Alexander Bulekov <alxndr@bu.edu>
Fixes: https://bugs.launchpad.net/qemu/+bug/1878253
Fixes: https://bugs.launchpad.net/qemu/+bug/1887303
Fixes: https://bugs.launchpad.net/qemu/+bug/1887309
Signed-off-by: John Snow <jsnow@redhat.com>
hw/ide/core.c