qemu-devel
[Top][All Lists]
Advanced

[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
> 



reply via email to

[Prev in Thread] Current Thread [Next in Thread]