From: "Michael S. Tsirkin" <mst@redhat.com>
To: arei.gonglei@huawei.com
Cc: peter.crosthwaite@xilinx.com, weidong.huang@huawei.com,
qemu-devel@nongnu.org, peter.huangpeng@huawei.com,
imammedo@redhat.com, pbonzini@redhat.com, afaerber@suse.de
Subject: Re: [Qemu-devel] [PATCH 3/3] pcie: using error_setg instead of impolite assert
Date: Tue, 19 Aug 2014 23:31:29 +0200 [thread overview]
Message-ID: <20140819213129.GA10908@redhat.com> (raw)
In-Reply-To: <1408441305-11044-4-git-send-email-arei.gonglei@huawei.com>
On Tue, Aug 19, 2014 at 05:41:45PM +0800, arei.gonglei@huawei.com wrote:
> From: Gonglei <arei.gonglei@huawei.com>
>
> It's enough of reporting an error. Assert() is not acceptable
> because the error is not a fatal error.
>
> Signed-off-by: Gonglei <arei.gonglei@huawei.com>
> ---
> hw/pci/pcie.c | 6 +++++-
> 1 file changed, 5 insertions(+), 1 deletion(-)
>
> diff --git a/hw/pci/pcie.c b/hw/pci/pcie.c
> index a123c01..7b46140 100644
> --- a/hw/pci/pcie.c
> +++ b/hw/pci/pcie.c
> @@ -254,7 +254,11 @@ void pcie_cap_slot_hotplug_cb(HotplugHandler *hotplug_dev, DeviceState *dev,
> * Right now, only a device of function = 0 is allowed to be
> * hot plugged/unplugged.
> */
> - assert(PCI_FUNC(pci_dev->devfn) == 0);
> + if (PCI_FUNC(pci_dev->devfn) != 0) {
> + error_setg(errp, "Unsupported device function %d for PCIe hotplugging, "
> + "only supported function 0", PCI_FUNC(pci_dev->devfn));
> + return;
> + }
Unplug of multifunction devices really should work.
Drop this assert and see what happens.
For hot-plug we don't have good APIs yet but we
really should define them rather than add more
code that we have to later remove.
> pci_word_test_and_set_mask(exp_cap + PCI_EXP_SLTSTA,
> PCI_EXP_SLTSTA_PDS);
> --
> 1.7.12.4
>
next prev parent reply other threads:[~2014-08-19 21:31 UTC|newest]
Thread overview: 14+ messages / expand[flat|nested] mbox.gz Atom feed top
2014-08-19 9:41 [Qemu-devel] [PATCH 0/3] Refactor device_set_realized to avoid resource leak arei.gonglei
2014-08-19 9:41 ` [Qemu-devel] [PATCH 1/3] qdev: add missing error check arei.gonglei
2014-08-19 13:50 ` Peter Crosthwaite
2014-08-19 14:03 ` Paolo Bonzini
2014-08-20 2:29 ` Gonglei (Arei)
2014-08-20 2:27 ` Gonglei (Arei)
2014-08-19 9:41 ` [Qemu-devel] [PATCH 2/3] qdev: Refactor device_set_realized to avoid resource leak arei.gonglei
2014-08-19 13:46 ` Peter Crosthwaite
2014-08-20 2:36 ` Gonglei (Arei)
2014-08-19 9:41 ` [Qemu-devel] [PATCH 3/3] pcie: using error_setg instead of impolite assert arei.gonglei
2014-08-19 13:50 ` Peter Crosthwaite
2014-08-20 2:54 ` Gonglei (Arei)
2014-08-19 21:31 ` Michael S. Tsirkin [this message]
2014-08-20 2:50 ` Gonglei (Arei)
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=20140819213129.GA10908@redhat.com \
--to=mst@redhat.com \
--cc=afaerber@suse.de \
--cc=arei.gonglei@huawei.com \
--cc=imammedo@redhat.com \
--cc=pbonzini@redhat.com \
--cc=peter.crosthwaite@xilinx.com \
--cc=peter.huangpeng@huawei.com \
--cc=qemu-devel@nongnu.org \
--cc=weidong.huang@huawei.com \
/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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).