diff mbox

[v5,4/4] pcie: don't assert when hotplug a PCIe device with 'function != 0'

Message ID 1409659388-9404-5-git-send-email-arei.gonglei@huawei.com
State New
Headers show

Commit Message

Gonglei (Arei) Sept. 2, 2014, 12:03 p.m. UTC
From: Gonglei <arei.gonglei@huawei.com>

It's enough to report 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(-)

Comments

Michael S. Tsirkin Sept. 3, 2014, 1:48 p.m. UTC | #1
On Tue, Sep 02, 2014 at 08:03:08PM +0800, arei.gonglei@huawei.com wrote:
> From: Gonglei <arei.gonglei@huawei.com>
> 
> It's enough to report an error. Assert() is not acceptable
> because the error is not a fatal error.
> 
> Signed-off-by: Gonglei <arei.gonglei@huawei.com>


I think it's an unrelated issue, don't send this
as part of a bugfix qdev patchset pls.

> ---
>  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 1babddf..ab7f8a2 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;
> +    }
>  
>      pci_word_test_and_set_mask(exp_cap + PCI_EXP_SLTSTA,
>                                 PCI_EXP_SLTSTA_PDS);
> -- 
> 1.7.12.4
>
Gonglei (Arei) Sept. 4, 2014, 12:25 a.m. UTC | #2
> From: Michael S. Tsirkin [mailto:mst@redhat.com]
> Sent: Wednesday, September 03, 2014 9:48 PM
> Subject: Re: [PATCH v5 4/4] pcie: don't assert when hotplug a PCIe device with
> 'function != 0'
> 
> On Tue, Sep 02, 2014 at 08:03:08PM +0800, arei.gonglei@huawei.com wrote:
> > From: Gonglei <arei.gonglei@huawei.com>
> >
> > It's enough to report an error. Assert() is not acceptable
> > because the error is not a fatal error.
> >
> > Signed-off-by: Gonglei <arei.gonglei@huawei.com>
> 
> 
> I think it's an unrelated issue, don't send this
> as part of a bugfix qdev patchset pls.
> 
Got it. Thanks

Best regards,
-Gonglei
diff mbox

Patch

diff --git a/hw/pci/pcie.c b/hw/pci/pcie.c
index 1babddf..ab7f8a2 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;
+    }
 
     pci_word_test_and_set_mask(exp_cap + PCI_EXP_SLTSTA,
                                PCI_EXP_SLTSTA_PDS);