All of lore.kernel.org
 help / color / mirror / Atom feed
From: Markus Armbruster <armbru@redhat.com>
To: Gonglei <arei.gonglei@huawei.com>
Cc: "pbonzini@redhat.com" <pbonzini@redhat.com>,
	"mst@redhat.com" <mst@redhat.com>,
	"kraxel@redhat.com" <kraxel@redhat.com>,
	"afaerber@suse.de" <afaerber@suse.de>,
	"qemu-devel@nongnu.org" <qemu-devel@nongnu.org>
Subject: Re: [Qemu-devel] [PATCH RFC 01/10] pci: Convert core to realize
Date: Tue, 28 Oct 2014 10:38:26 +0100	[thread overview]
Message-ID: <8761f4sfe5.fsf@blackfin.pond.sub.org> (raw)
In-Reply-To: <544F54BB.2080508@huawei.com> (Gonglei's message of "Tue, 28 Oct 2014 16:32:59 +0800")

Gonglei <arei.gonglei@huawei.com> writes:

> On 2014/10/28 15:35, Markus Armbruster wrote:
>
>> Implement DeviceClass methods realize() and unrealize() instead of
>> init() and exit().  The core's initialization errors now get
>> propagated properly, and QMP sends them instead of an unspecific
>> "Device initialization failed" error.  Unrealize can't fail, so no
>> change there.
>> 
>> PCIDeviceClass is unchanged: it still provides init() and exit().
>> Therefore, device models' errors are still not propagated.
>> 
>> Signed-off-by: Markus Armbruster <armbru@redhat.com>
>> ---
>>  hw/pci/pci.c | 91 +++++++++++++++++++++++++++++++-----------------------------
>>  1 file changed, 47 insertions(+), 44 deletions(-)
>> 
>> diff --git a/hw/pci/pci.c b/hw/pci/pci.c
>> index cd7a403..aef95c3 100644
>> --- a/hw/pci/pci.c
>> +++ b/hw/pci/pci.c
[...]
>>  void pci_register_bar(PCIDevice *pci_dev, int region_num,
>> @@ -1742,10 +1747,11 @@ PCIDevice *pci_find_device(PCIBus *bus, int bus_num, uint8_t devfn)
>>      return bus->devices[devfn];
>>  }
>>  
>> -static int pci_qdev_init(DeviceState *qdev)
>> +static void pci_qdev_realize(DeviceState *qdev, Error **errp)
>>  {
>>      PCIDevice *pci_dev = (PCIDevice *)qdev;
>>      PCIDeviceClass *pc = PCI_DEVICE_GET_CLASS(pci_dev);
>> +    Error *local_err = NULL;
>>      PCIBus *bus;
>>      int rc;
>>      bool is_default_rom;
>> @@ -1758,15 +1764,16 @@ static int pci_qdev_init(DeviceState *qdev)
>>      bus = PCI_BUS(qdev_get_parent_bus(qdev));
>>      pci_dev = do_pci_register_device(pci_dev, bus,
>>                                       object_get_typename(OBJECT(qdev)),
>> -                                     pci_dev->devfn);
>> +                                     pci_dev->devfn, errp);
>>      if (pci_dev == NULL)
>
>> -        return -1;
>> +        return;
>>  
>
> Maybe we can use '{}' for if statement follow Qemu's coding style.

scripts/checkpatch.pl is happy with the patch as is.

I prefer to add braces only when I touch the conditional.

Naturally, I also add them when a maintainer asks me to :)

>>      if (pc->init) {
>>          rc = pc->init(pci_dev);
>>          if (rc != 0) {
>>              do_pci_unregister_device(pci_dev);
>> -            return rc;
>> +            error_setg(errp, "Device initialization failed");
>> +            return;
>>          }
>>      }
>>  
[...]

Thanks!

  reply	other threads:[~2014-10-28  9:38 UTC|newest]

Thread overview: 32+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2014-10-28  7:35 [Qemu-devel] [PATCH RFC 00/10] pci: Partial conversion to realize Markus Armbruster
2014-10-28  7:35 ` [Qemu-devel] [PATCH RFC 01/10] pci: Convert core " Markus Armbruster
2014-10-28  8:32   ` Gonglei
2014-10-28  9:38     ` Markus Armbruster [this message]
2014-10-30 16:58       ` Marcel Apfelbaum
2014-10-30 17:02   ` Marcel Apfelbaum
2014-10-28  7:35 ` [Qemu-devel] [PATCH RFC 02/10] pci: Permit incremental conversion of device models " Markus Armbruster
2014-10-28  8:35   ` Gonglei
2014-10-28  7:35 ` [Qemu-devel] [PATCH RFC 03/10] pci: Trivial device model conversions " Markus Armbruster
2014-10-28  8:38   ` Gonglei
2014-10-28  7:35 ` [Qemu-devel] [PATCH RFC 04/10] pcnet: pcnet_common_init() always returns 0, change to void Markus Armbruster
2014-10-28  8:42   ` Gonglei
2014-10-28  9:41     ` Markus Armbruster
2014-10-28 10:35       ` Gonglei
2014-10-28  7:35 ` [Qemu-devel] [PATCH RFC 05/10] pcnet: Convert to realize Markus Armbruster
2014-10-28  7:35 ` [Qemu-devel] [PATCH RFC 06/10] serial-pci: " Markus Armbruster
2014-10-28  8:43   ` Gonglei
2014-10-28  7:35 ` [Qemu-devel] [PATCH RFC 07/10] ide/ich: " Markus Armbruster
2014-10-28  8:44   ` Gonglei
2014-10-28  7:35 ` [Qemu-devel] [PATCH RFC 08/10] cirrus-vga: " Markus Armbruster
2014-10-28  8:44   ` Gonglei
2014-10-28  7:35 ` [Qemu-devel] [PATCH RFC 09/10] qxl: " Markus Armbruster
2014-10-28  8:46   ` Gonglei
2014-10-28  7:35 ` [Qemu-devel] [PATCH RFC 10/10] pci-assign: " Markus Armbruster
2014-10-28  8:49   ` Gonglei
2014-10-28  8:27 ` [Qemu-devel] [PATCH RFC 00/10] pci: Partial conversion " Gonglei
2014-10-30 14:01 ` Andreas Färber
2014-11-03  7:40   ` Markus Armbruster
2015-01-19 15:21     ` Markus Armbruster
2015-01-30  9:17       ` Markus Armbruster
2014-11-02 11:20 ` Michael S. Tsirkin
2014-11-03  7:22   ` Markus Armbruster

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=8761f4sfe5.fsf@blackfin.pond.sub.org \
    --to=armbru@redhat.com \
    --cc=afaerber@suse.de \
    --cc=arei.gonglei@huawei.com \
    --cc=kraxel@redhat.com \
    --cc=mst@redhat.com \
    --cc=pbonzini@redhat.com \
    --cc=qemu-devel@nongnu.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.