From: poza@codeaurora.org
To: Lukas Wunner <lukas@wunner.de>
Cc: Bjorn Helgaas <bhelgaas@google.com>,
Philippe Ombredanne <pombredanne@nexb.com>,
Thomas Gleixner <tglx@linutronix.de>,
Greg Kroah-Hartman <gregkh@linuxfoundation.org>,
Kate Stewart <kstewart@linuxfoundation.org>,
linux-pci@vger.kernel.org, linux-kernel@vger.kernel.org,
Dongdong Liu <liudongdong3@huawei.com>,
Keith Busch <keith.busch@intel.com>, Wei Zhang <wzhang@fb.com>,
Sinan Kaya <okaya@codeaurora.org>,
Timur Tabi <timur@codeaurora.org>
Subject: Re: [PATCH v16 5/9] PCI/AER: Factor out error reporting from AER
Date: Fri, 11 May 2018 21:04:36 +0530 [thread overview]
Message-ID: <7317531a7a85404d590008a27131955f@codeaurora.org> (raw)
In-Reply-To: <20180511125857.GA23225@wunner.de>
On 2018-05-11 18:28, Lukas Wunner wrote:
> On Fri, May 11, 2018 at 06:43:24AM -0400, Oza Pawandeep wrote:
>> +void pcie_do_fatal_recovery(struct pci_dev *dev)
>> +{
>> + struct pci_dev *udev;
>> + struct pci_bus *parent;
>> + struct pci_dev *pdev, *temp;
>> + pci_ers_result_t result = PCI_ERS_RESULT_RECOVERED;
>> + struct aer_broadcast_data result_data;
>> +
>> + if (dev->hdr_type == PCI_HEADER_TYPE_BRIDGE)
>> + udev = dev;
>> + else
>> + udev = dev->bus->self;
>> +
>> + parent = udev->subordinate;
>> + pci_lock_rescan_remove();
>> + list_for_each_entry_safe_reverse(pdev, temp, &parent->devices,
>> + bus_list) {
>> + pci_dev_get(pdev);
>> + pci_dev_set_disconnected(pdev, NULL);
>> + if (pci_has_subordinate(pdev))
>> + pci_walk_bus(pdev->subordinate,
>> + pci_dev_set_disconnected, NULL);
>> + pci_stop_and_remove_bus_device(pdev);
>> + pci_dev_put(pdev);
>> + }
>
> Any reason not to simply call
>
> pci_walk_bus(udev->subordinate, pci_dev_set_disconnected, NULL);
>
> before the list_for_each_entry_safe_reverse() iteration, instead of
> calling it for each device on the subordinate bus and for each
> device's children? Should be semantically identical, saves 3 LoC
> and saves wasted cycles of acquiring pci_bus_sem over and over again
> for each device on the subordinate bus.
>
> Thanks,
>
> Lukas
Well this is borrowed code from DPC driver, hence I thought to keep the
same.
but to me it looks like its taking care of PCIe switch where is goes
through all the subordinates, and which could turn out to be more
swicthes down the line, and son on...
it goes all the way down to the tree
Am I missing something here ?
next prev parent reply other threads:[~2018-05-11 15:34 UTC|newest]
Thread overview: 29+ messages / expand[flat|nested] mbox.gz Atom feed top
2018-05-11 10:43 [PATCH v16 0/9] Address error and recovery for AER and DPC Oza Pawandeep
2018-05-11 10:43 ` [PATCH v16 1/9] PCI: Unify wait for link active into generic PCI Oza Pawandeep
2018-05-11 10:43 ` [PATCH v16 2/9] pci-error-recovery: Add AER_FATAL handling Oza Pawandeep
2018-05-11 10:43 ` [PATCH v16 3/9] PCI/AER: Handle ERR_FATAL with removal and re-enumeration of devices Oza Pawandeep
2018-05-15 23:59 ` Bjorn Helgaas
2018-05-16 5:49 ` poza
2018-05-11 10:43 ` [PATCH v16 4/9] PCI/AER: Rename error recovery to generic PCI naming Oza Pawandeep
2018-05-11 10:43 ` [PATCH v16 5/9] PCI/AER: Factor out error reporting from AER Oza Pawandeep
2018-05-11 12:58 ` Lukas Wunner
2018-05-11 15:34 ` poza [this message]
2018-05-11 15:54 ` Lukas Wunner
2018-05-11 16:11 ` poza
2018-05-16 0:06 ` Bjorn Helgaas
2018-05-11 10:43 ` [PATCH v16 6/9] PCI/PORTDRV: Implement generic find service Oza Pawandeep
2018-05-11 10:43 ` [PATCH v16 7/9] PCI/PORTDRV: Implement generic find device Oza Pawandeep
2018-05-11 10:43 ` [PATCH v16 8/9] PCI/DPC: Unify and plumb error handling into DPC Oza Pawandeep
2018-05-11 11:52 ` poza
2018-05-15 23:56 ` Bjorn Helgaas
2018-05-16 8:16 ` poza
2018-05-16 10:52 ` Bjorn Helgaas
2018-05-16 12:15 ` poza
2018-05-16 13:04 ` Bjorn Helgaas
2018-05-16 13:58 ` poza
2018-05-16 14:58 ` poza
2018-05-16 20:02 ` Bjorn Helgaas
2018-05-16 12:51 ` poza
2018-05-16 13:09 ` Bjorn Helgaas
2018-05-11 10:43 ` [PATCH v16 9/9] PCI/DPC: Disable ERR_NONFATAL and enable ERR_FATAL for DPC Oza Pawandeep
2018-05-16 0:09 ` [PATCH v16 0/9] Address error and recovery for AER and DPC Bjorn Helgaas
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=7317531a7a85404d590008a27131955f@codeaurora.org \
--to=poza@codeaurora.org \
--cc=bhelgaas@google.com \
--cc=gregkh@linuxfoundation.org \
--cc=keith.busch@intel.com \
--cc=kstewart@linuxfoundation.org \
--cc=linux-kernel@vger.kernel.org \
--cc=linux-pci@vger.kernel.org \
--cc=liudongdong3@huawei.com \
--cc=lukas@wunner.de \
--cc=okaya@codeaurora.org \
--cc=pombredanne@nexb.com \
--cc=tglx@linutronix.de \
--cc=timur@codeaurora.org \
--cc=wzhang@fb.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