[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [Qemu-devel] [PATCH 1.5 0/3] qdev: switch reset to post-order
From: |
Michael S. Tsirkin |
Subject: |
Re: [Qemu-devel] [PATCH 1.5 0/3] qdev: switch reset to post-order |
Date: |
Thu, 2 May 2013 13:35:40 +0300 |
On Thu, May 02, 2013 at 11:38:36AM +0200, Paolo Bonzini wrote:
> I was going to keep these for 1.6, but since they have been tested
> by the user and myself, and they fix a regression, it can be worthwhile
> to include these in 1.5.
I remember there were some tricky issues last time
we tried something like this for PCI.
Seems too risky to me.
Let's find an LSI specific solution for 1.5 please.
> qdev reset (qdev_reset_all/qbus_reset_all) is currently done in
> pre-order. This is not right, because it means the parent devices
> cannot expect anything about the children devices' state during the
> reset callback.
>
> With the traversal done *before* invoking the bus-reset callback,
> there is no way for the bus-reset callback to take care of the device
> tree traversal. This is currently done only for PCI, which requires
> some adjustments.
>
> This fixes a crash in resetting the LSI SCSI adapter, as reported and
> tested by Claudio Bley.
>
> Paolo Bonzini (3):
> pci: do not export pci_bus_reset
> qdev: allow both pre- and post-order vists in qdev walking functions
> qdev: switch reset to post-order
>
> hw/core/qdev.c | 47 ++++++++++++++++++++++++++++++++++-------------
> hw/pci/pci.c | 37 +++++++++++++++++--------------------
> hw/pci/pci_bridge.c | 2 +-
> include/hw/pci/pci.h | 1 -
> include/hw/qdev-core.h | 15 ++++++++++-----
> 5 files changed, 62 insertions(+), 40 deletions(-)
>
> --
> 1.8.2
>