All of lore.kernel.org
 help / color / mirror / Atom feed
From: Cao jin <caoj.fnst@cn.fujitsu.com>
To: Alex Williamson <alex.williamson@redhat.com>
Cc: qemu-devel@nongnu.org, izumi.taku@jp.fujitsu.com, mst@redhat.com,
	Dou Liyang <douly.fnst@cn.fujitsu.com>
Subject: Re: [Qemu-devel] [PATCH v3 1/3] pcie aer: verify if AER functionality is available
Date: Tue, 28 Mar 2017 21:47:30 +0800	[thread overview]
Message-ID: <58DA6972.6020606@cn.fujitsu.com> (raw)
In-Reply-To: <20170324161230.5642283f@t450s.home>



On 03/25/2017 06:12 AM, Alex Williamson wrote:
> On Thu, 23 Mar 2017 17:09:21 +0800
> Cao jin <caoj.fnst@cn.fujitsu.com> wrote:
> 
>> For devices which support AER function, verify it can work or not in the
>> system:
>> 1. AER capable device is a PCIe device, it can't be plugged into PCI bus
>> 2. If root port doesn't support AER, then there is no need to expose the
>>    AER capability
>>
>> Signed-off-by: Dou Liyang <douly.fnst@cn.fujitsu.com>
>> Signed-off-by: Cao jin <caoj.fnst@cn.fujitsu.com>
>> ---
>>  hw/pci/pcie_aer.c | 28 ++++++++++++++++++++++++++++
>>  1 file changed, 28 insertions(+)
>>
>> diff --git a/hw/pci/pcie_aer.c b/hw/pci/pcie_aer.c
>> index daf1f65..a2e9818 100644
>> --- a/hw/pci/pcie_aer.c
>> +++ b/hw/pci/pcie_aer.c
>> @@ -100,6 +100,34 @@ static void aer_log_clear_all_err(PCIEAERLog *aer_log)
>>  int pcie_aer_init(PCIDevice *dev, uint8_t cap_ver, uint16_t offset,
>>                    uint16_t size, Error **errp)
>>  {
>> +    PCIDevice *parent_dev;
>> +    uint8_t type;
>> +    uint8_t parent_type;
>> +
>> +    /* Topology test: see if there is need to expose AER cap */
>> +    type = pcie_cap_get_type(dev);
>> +    parent_dev = pci_bridge_get_device(dev->bus);
>> +    while (parent_dev) {
>> +        parent_type = pcie_cap_get_type(parent_dev);
>> +
>> +        if (type == PCI_EXP_TYPE_ENDPOINT &&
>> +                (parent_type != PCI_EXP_TYPE_ROOT_PORT &&
>> +                 parent_type != PCI_EXP_TYPE_DOWNSTREAM)) {
>> +            error_setg(errp, "Parent device is not a PCIe component");
>> +            return -ENOTSUP;
>> +        }
>> +        
>> +        if (parent_type == PCI_EXP_TYPE_ROOT_PORT) {
>> +            if (!parent_dev->exp.aer_cap)
>> +            {
> 
> Curly brace at the end of the previous line.
> 
>> +                error_setg(errp, "Root port does not support AER");
>> +                return -ENOTSUP;
>> +            }
>> +        }
>> +
>> +        parent_dev = pci_bridge_get_device(parent_dev->bus);
>> +    }
>> +
>>      pcie_add_capability(dev, PCI_EXT_CAP_ID_ERR, cap_ver,
>>                          offset, size);
>>      dev->exp.aer_cap = offset;
> 
> This patch makes existing configurations including PCIe root ports,
> upstream ports, downstream ports, and e1000e fail if they do not meet
> this new configuration requirement.
> 

Yes, I noticed that e1000e could be realized on i440fx, which I think is
not possible in real world, like the commit log(1.) said.

But for those ports, what are the conditions they will fail with this patch?
-- 
Sincerely,
Cao jin

  reply	other threads:[~2017-03-28 13:38 UTC|newest]

Thread overview: 20+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2017-03-23  9:09 [Qemu-devel] [PATCH v3 0/3] vfio-pci: support recovery of AER non fatal error Cao jin
2017-03-23  9:09 ` [Qemu-devel] [PATCH v3 1/3] pcie aer: verify if AER functionality is available Cao jin
2017-03-24 22:12   ` Alex Williamson
2017-03-28 13:47     ` Cao jin [this message]
2017-03-28 16:12       ` Alex Williamson
2017-03-28 16:16   ` Michael S. Tsirkin
2017-03-23  9:09 ` [Qemu-devel] [PATCH v3 2/3] vfio pci: new function to init AER capability Cao jin
2017-03-24 22:12   ` Alex Williamson
2017-03-28 13:47     ` Cao jin
2017-03-23  9:09 ` [Qemu-devel] [PATCH v3 3/3] vfio-pci: process non fatal error of AER Cao jin
2017-03-24 22:12   ` Alex Williamson
2017-03-28 13:49     ` Cao jin
2017-03-28 16:12       ` Alex Williamson
2017-03-28 23:59         ` Michael S. Tsirkin
2017-03-29  2:55           ` Alex Williamson
2017-04-25 20:32             ` Michael S. Tsirkin
2017-04-26  0:06               ` Alex Williamson
2017-03-24 22:12 ` [Qemu-devel] [PATCH v3 0/3] vfio-pci: support recovery of AER non fatal error Alex Williamson
2017-03-28 13:47   ` Cao jin
2017-03-28 16:12     ` Alex Williamson

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=58DA6972.6020606@cn.fujitsu.com \
    --to=caoj.fnst@cn.fujitsu.com \
    --cc=alex.williamson@redhat.com \
    --cc=douly.fnst@cn.fujitsu.com \
    --cc=izumi.taku@jp.fujitsu.com \
    --cc=mst@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.