[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [Qemu-devel] [PATCH 3/3] pcie: using error_setg instead of impolite
From: |
Michael S. Tsirkin |
Subject: |
Re: [Qemu-devel] [PATCH 3/3] pcie: using error_setg instead of impolite assert |
Date: |
Tue, 19 Aug 2014 23:31:29 +0200 |
On Tue, Aug 19, 2014 at 05:41:45PM +0800, address@hidden wrote:
> From: Gonglei <address@hidden>
>
> It's enough of reporting an error. Assert() is not acceptable
> because the error is not a fatal error.
>
> Signed-off-by: Gonglei <address@hidden>
> ---
> 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
>