On 09/11/2022 17:00, Peter Maydell wrote:
This patchset converts the ps2 keyboard and mouse devices to 3-phase reset. The rationale here is that it would be nice to get rid of the device_class_set_parent_reset() function, which is used by legacy-reset subclasses which want to chain to their parent's reset function. There aren't very many of these devices in total, and if we convert them all to 3-phase reset they can use the 3-phase-reset equivalent (resettable_class_set_parent_phases()). Eventually this will then let us simplify the transitional code for handling old-style device reset.This is one of a number of patchsets to do this that I'm planning to write and send out over the next few weeks. It's all 8.0 material. thanks -- PMM Peter Maydell (2): hw/input/ps2: Convert TYPE_PS2_DEVICE to 3-phase reset hw/input/ps2.c: Convert TYPE_PS2_{KBD,MOUSE}_DEVICE to 3-phase reset include/hw/input/ps2.h | 2 +- hw/input/ps2.c | 45 +++++++++++++++++++++++++++++------------- 2 files changed, 32 insertions(+), 15 deletions(-)
I haven't used the new ResettableClass myself previously, however it seems to match the excellent documentation at https://qemu.readthedocs.io/en/latest/devel/reset.html so feel free to add my Acked-by tag.
One part that did stand out to me in the docs is the part that reads "For now migration of a device or bus in reset is not supported. Care must be taken not to delay resettable_release_reset() after its resettable_assert_reset() counterpart". Is this still a valid concern and something we need to think about? I'm thinking about if a guest triggers a SCSI bus or PCI bus reset for example.
ATB, Mark.
