From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from eggs.gnu.org ([2001:4830:134:3::10]:48147) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1YJLEH-00078r-Ip for qemu-devel@nongnu.org; Thu, 05 Feb 2015 07:08:18 -0500 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1YJLEE-0006Vd-71 for qemu-devel@nongnu.org; Thu, 05 Feb 2015 07:08:17 -0500 Received: from mx1.redhat.com ([209.132.183.28]:37671) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1YJLED-0006VZ-VQ for qemu-devel@nongnu.org; Thu, 05 Feb 2015 07:08:14 -0500 Date: Thu, 5 Feb 2015 13:07:49 +0100 From: "Michael S. Tsirkin" Message-ID: <20150205120749.GD30113@redhat.com> References: <1421679157-3510-1-git-send-email-armbru@redhat.com> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <1421679157-3510-1-git-send-email-armbru@redhat.com> Subject: Re: [Qemu-devel] [PATCH 00/10] pci: Partial conversion to realize List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , To: Markus Armbruster Cc: pbonzini@redhat.com, arei.gonglei@huawei.com, kraxel@redhat.com, qemu-devel@nongnu.org, afaerber@suse.de On Mon, Jan 19, 2015 at 03:52:27PM +0100, Markus Armbruster wrote: > I posted this series as RFC back in October, but it depended on > patches then still under review, so I put it aside, and promptly > forgot. Fortunately, rebasing and updating it wasn't much trouble. > > While discussing Gonglei's "[PATCH v2 00/19] usb: convert device init > to realize", Paolo called the PCI conversion job "Gargantuan". This > series attempts to crack it into manageable jobs. > > The basic idea comes from qdev core: have the core deal with just > realize, but default the device models' realize() method to one that > calls the old init() method. Unconverted device models don't set > their realize(), thus get one that calls their init(). We can then > convert device by device instead of having to convert of all of PCI in > one Gargantuan go. > > Since PCI's exit() cannot fail, I chose not to add an unrealize(). > Precedence: USBDeviceClass method handle_destroy(), called on USB > unrealize. > > Aside: USBDeviceClass also has an unrealize() method, but it's never > set and never called. > > PATCH 01 converts the interface between PCI core and qdev to realize. > > PATCH 02 adds realize to the interface between PCI core and PCI device > models. Once all device models are converted to realize, the old init > interface can be dropped, completing the Gargantuan job. > > PATCH 03-04 convert device models that cannot fail initialization. > > PATCH 05-10 convert a few that can fail, but are really easy to > convert. As you posted the test RFC now, I applied this in my tree. Pls do complete the test though, we need this upstream. > Markus Armbruster (10): > pci: Convert core to realize > pci: Permit incremental conversion of device models to realize > pci: Trivial device model conversions to realize > pcnet: pcnet_common_init() always returns 0, change to void > pcnet: Convert to realize > serial-pci: Convert to realize > ide/ich: Convert to realize > cirrus-vga: Convert to realize > qxl: Convert to realize > pci-assign: Convert to realize > > hw/acpi/piix4.c | 5 +- > hw/audio/ac97.c | 5 +- > hw/audio/es1370.c | 5 +- > hw/audio/intel-hda.c | 6 +-- > hw/char/serial-pci.c | 22 ++++----- > hw/display/cirrus_vga.c | 11 ++--- > hw/display/qxl.c | 36 +++++++-------- > hw/display/vga-pci.c | 11 ++--- > hw/display/vmware_vga.c | 6 +-- > hw/i2c/smbus_ich9.c | 5 +- > hw/i386/kvm/pci-assign.c | 10 ++-- > hw/ide/cmd646.c | 5 +- > hw/ide/ich.c | 13 +++--- > hw/ide/piix.c | 10 ++-- > hw/ide/via.c | 6 +-- > hw/ipack/tpci200.c | 6 +-- > hw/isa/i82378.c | 6 +-- > hw/isa/piix4.c | 5 +- > hw/isa/vt82c686.c | 24 ++++------ > hw/misc/pci-testdev.c | 6 +-- > hw/net/e1000.c | 6 +-- > hw/net/eepro100.c | 6 +-- > hw/net/lance.c | 3 +- > hw/net/ne2000.c | 6 +-- > hw/net/pcnet-pci.c | 6 +-- > hw/net/pcnet.c | 4 +- > hw/net/pcnet.h | 2 +- > hw/net/rtl8139.c | 6 +-- > hw/net/vmxnet3.c | 6 +-- > hw/pci-bridge/dec.c | 5 +- > hw/pci-host/apb.c | 5 +- > hw/pci-host/bonito.c | 6 +-- > hw/pci-host/grackle.c | 5 +- > hw/pci-host/piix.c | 12 ++--- > hw/pci-host/ppce500.c | 6 +-- > hw/pci-host/prep.c | 6 +-- > hw/pci-host/q35.c | 5 +- > hw/pci-host/uninorth.c | 20 ++++---- > hw/pci-host/versatile.c | 5 +- > hw/pci/pci.c | 113 ++++++++++++++++++++++++++------------------- > hw/sd/sdhci.c | 5 +- > hw/usb/hcd-ehci-pci.c | 6 +-- > hw/usb/hcd-xhci.c | 6 +-- > hw/watchdog/wdt_i6300esb.c | 6 +-- > include/hw/pci/pci.h | 3 +- > 45 files changed, 203 insertions(+), 259 deletions(-) > > -- > 1.9.3