From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from eggs.gnu.org ([208.118.235.92]:48140) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1Tksdo-0007Jl-7s for qemu-devel@nongnu.org; Tue, 18 Dec 2012 03:35:10 -0500 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1Tksdm-000566-V5 for qemu-devel@nongnu.org; Tue, 18 Dec 2012 03:35:08 -0500 Received: from mail-wg0-f50.google.com ([74.125.82.50]:39028) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1Tksdm-00055i-MP for qemu-devel@nongnu.org; Tue, 18 Dec 2012 03:35:06 -0500 Received: by mail-wg0-f50.google.com with SMTP id es5so146715wgb.29 for ; Tue, 18 Dec 2012 00:35:06 -0800 (PST) Sender: Paolo Bonzini Message-ID: <50D02AB6.9050208@redhat.com> Date: Tue, 18 Dec 2012 09:35:02 +0100 From: Paolo Bonzini MIME-Version: 1.0 References: <1355761490-10073-1-git-send-email-pbonzini@redhat.com> <20121217214336.GA11991@redhat.com> <50D01AEE.2010508@redhat.com> In-Reply-To: <50D01AEE.2010508@redhat.com> Content-Type: text/plain; charset=ISO-8859-1 Content-Transfer-Encoding: 7bit Subject: Re: [Qemu-devel] [PATCH 00/15] qdev: make reset semantics more clear and consistent, reset qbuses under virtio devices List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: aliguori@us.ibm.com, qemu-devel@nongnu.org, "Michael S. Tsirkin" Il 18/12/2012 08:27, Paolo Bonzini ha scritto: > Il 17/12/2012 22:43, Michael S. Tsirkin ha scritto: >> On Mon, Dec 17, 2012 at 05:24:35PM +0100, Paolo Bonzini wrote: >>> After discussion with mst on the topic of resetting virtio devices, >>> here is a series that hopefully clarifies the semantics of bus and >>> device resets. >>> >>> After this series, there are two kinds of resets: >> >> So just to clarify, what I proposed was this >> (on top of my type safety patch). Then >> all transports can call virtio_config_reset >> when appropriate (e.g. when PA is set to 0). >> >> Signed-off-by: Michael S. Tsirkin >> >> diff --git a/hw/virtio.c b/hw/virtio.c >> index f40a8c5..e65d7c8 100644 >> --- a/hw/virtio.c >> +++ b/hw/virtio.c >> @@ -554,6 +554,14 @@ void virtio_reset(void *opaque) >> } >> } >> >> +/* Device-specific reset through virtio config space. >> + * Reset virtio config and backend child devices if any. >> + */ >> +void virtio_config_reset(VirtIODevice *vdev) >> +{ >> + qdev_reset_all(vdev->binding_opaque); >> +} > > Yes, I had understood. As I said, this is the wrong direction. > Resetting happens from vdev->binding_opaque, it can just do > qdev_reset_all(myself). ... besides, this only works if the reset callback of vdev->binding_opaque remembers to call virtio_reset (in the s390 bindings, it doesn't and this series fixes it). So IMO it is not only useless, it is also misleading. Paolo