From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from eggs.gnu.org ([208.118.235.92]:50145) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1TkygO-0006nk-E2 for qemu-devel@nongnu.org; Tue, 18 Dec 2012 10:02:16 -0500 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1TkygK-00064D-AI for qemu-devel@nongnu.org; Tue, 18 Dec 2012 10:02:12 -0500 Received: from mx1.redhat.com ([209.132.183.28]:23408) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1TkygK-000643-1t for qemu-devel@nongnu.org; Tue, 18 Dec 2012 10:02:08 -0500 Message-ID: <50D0854E.5030509@redhat.com> Date: Tue, 18 Dec 2012 16:01:34 +0100 From: Paolo Bonzini MIME-Version: 1.0 References: <1346771633-53081-1-git-send-email-cornelia.huck@de.ibm.com> <1346771633-53081-4-git-send-email-cornelia.huck@de.ibm.com> <50D02D27.6070604@redhat.com> <20121218155842.5ac3c4ee@gondolin> In-Reply-To: <20121218155842.5ac3c4ee@gondolin> Content-Type: text/plain; charset=ISO-8859-1 Content-Transfer-Encoding: 7bit Subject: Re: [Qemu-devel] [PATCH v2 3/5] s390: Add new channel I/O based virtio transport. List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , To: Cornelia Huck Cc: linux-s390 , Anthony Liguori , Rusty Russell , KVM , Carsten Otte , Sebastian Ott , Marcelo Tosatti , Heiko Carstens , qemu-devel , Alexander Graf , Christian Borntraeger , Martin Schwidefsky Il 18/12/2012 15:58, Cornelia Huck ha scritto: > On Tue, 18 Dec 2012 09:45:27 +0100 > Paolo Bonzini wrote: > >> Il 04/09/2012 17:13, Cornelia Huck ha scritto: >>> +VirtioCcwBus *virtio_ccw_bus_init(void) >>> +{ >>> + VirtioCcwBus *cbus; >>> + BusState *bus; >>> + DeviceState *dev; >>> + >>> + /* Create bridge device */ >>> + dev = qdev_create(NULL, "virtio-ccw-bridge"); >>> + qdev_init_nofail(dev); >>> + >>> + /* Create bus on bridge device */ >>> + bus = qbus_create(TYPE_VIRTIO_CCW_BUS, dev, "virtio-ccw"); >>> + cbus = DO_UPCAST(VirtioCcwBus, bus, bus); >>> + >>> + /* Enable hotplugging */ >>> + bus->allow_hotplug = 1; >>> + >>> + qemu_register_reset(virtio_ccw_reset_subchannels, cbus); >> >> Please use qdev device-reset and bus-reset callbacks instead of this. > > Will do for the next version. >> >> In particular, when writing the status you should call >> qdev_reset_all(DEVICE(sch)), and whatever state should be reset will >> have to be cleared by the device-reset callback of SubchDev, including >> calling virtio_reset. > > With "writing the status" you mean "the guest sets the status to 0", > right? Yes. Paolo >> Everything else will be cleared instead by the bus-reset callback of >> virtio-ccw-bus, similar to what you are doing in >> virtio_ccw_reset_subchannels. > > Looking at the reset handler, css_reset() is a bit oddly placed, as it > doesn't really have anything to do with virtio-ccw; virtio-ccw is just > the only current creator of channel subsystem images. I'll try to come > up with a better model. > >> >> Paolo >> >> >>> + return cbus; >>> +} >> >