From mboxrd@z Thu Jan 1 00:00:00 1970 From: Paolo Bonzini Subject: Re: [PATCH v2 3/5] s390: Add new channel I/O based virtio transport. Date: Tue, 18 Dec 2012 09:45:27 +0100 Message-ID: <50D02D27.6070604@redhat.com> References: <1346771633-53081-1-git-send-email-cornelia.huck@de.ibm.com> <1346771633-53081-4-git-send-email-cornelia.huck@de.ibm.com> Mime-Version: 1.0 Content-Type: text/plain; charset=ISO-8859-1 Content-Transfer-Encoding: 7bit Return-path: In-Reply-To: <1346771633-53081-4-git-send-email-cornelia.huck@de.ibm.com> Sender: kvm-owner@vger.kernel.org List-Archive: List-Post: To: Cornelia Huck Cc: KVM , linux-s390 , qemu-devel , Avi Kivity , Marcelo Tosatti , Anthony Liguori , Rusty Russell , Christian Borntraeger , Carsten Otte , Alexander Graf , Heiko Carstens , Martin Schwidefsky , Sebastian Ott List-ID: 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. 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. 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. Paolo > + return cbus; > +}