From: poza@codeaurora.org (poza at codeaurora.org)
To: linux-arm-kernel@lists.infradead.org
Subject: [PATCH V5 3/3] PCI: Mask and unmask hotplug interrupts during reset
Date: Tue, 03 Jul 2018 20:42:12 +0530 [thread overview]
Message-ID: <fda77cee8e379f2e9b7ab55fefe17cad@codeaurora.org> (raw)
In-Reply-To: <20180703143434.GA4086@wunner.de>
On 2018-07-03 20:04, Lukas Wunner wrote:
> On Mon, Jul 02, 2018 at 06:52:47PM -0400, Sinan Kaya wrote:
>> @@ -308,8 +310,17 @@ void pcie_do_fatal_recovery(struct pci_dev *dev,
>> u32 service)
>> pci_dev_put(pdev);
>> }
>>
>> + hpsvc = pcie_port_find_service(udev, PCIE_PORT_SERVICE_HP);
>> + hpdev = pcie_port_find_device(udev, PCIE_PORT_SERVICE_HP);
>> +
>> + if (hpdev && hpsvc)
>> + hpsvc->mask_irq(to_pcie_device(hpdev));
>> +
>> result = reset_link(udev, service);
>>
>> + if (hpdev && hpsvc)
>> + hpsvc->unmask_irq(to_pcie_device(hpdev));
>> +
>
> We've already got the ->reset_slot callback in struct hotplug_slot_ops,
> I'm wondering if we really need additional ones for this use case.
>
> If you just do...
>
> if (!pci_probe_reset_slot(dev->slot))
> pci_reset_slot(dev->slot)
> else {
> /* regular code path */
> }
>
> would that not be equivalent?
>
pcie_do_fatal_recovery() calls
reset_link()
which calls dpc_reset_link() or aer_root_reset() depending
on the event.
and dpc_reset_link() and aer_root_reset() do their own cleanup stuffs.
infact, aer_root_reset() is the only function which actually triggers
pci_reset_bridge_secondary_bus().
So if we try to fit in your suggestion:
if (!pci_probe_reset_slot(dev->slot))
{
pci_reset_slot(dev->slot)
result = reset_link(udev, service); >> in this case aer_root_reset
must not call pci_reset_bridge_secondary_bus()
} else
result = reset_link(udev, service); >> in this case aer_root_reset
must call pci_reset_bridge_secondary_bus() [since bridge is not hotplug
capable)
Did I get your suggestion right ?
Regards,
Oza.
> (It's worth noting though that pciehp is the only hotplug driver
> implementing the ->reset_slot callback. If hotplug is handled by
> a different driver or by the platform firmware, devices may still
> be removed and re-enumerated twice.)
>
> Thanks,
>
> Lukas
next prev parent reply other threads:[~2018-07-03 15:12 UTC|newest]
Thread overview: 25+ messages / expand[flat|nested] mbox.gz Atom feed top
2018-07-02 22:52 [PATCH V5 0/3] PCI: separate hotplug handling from fatal error handling Sinan Kaya
2018-07-02 22:52 ` [PATCH V5 1/3] PCI: pciehp: implement mask and unmask interrupt functions Sinan Kaya
2018-07-02 22:52 ` [PATCH V5 2/3] PCI: pciehp: reuse pciehp_mask/unmask_irq() in reset_slot() Sinan Kaya
2018-07-02 22:52 ` [PATCH V5 3/3] PCI: Mask and unmask hotplug interrupts during reset Sinan Kaya
[not found] ` <20180703083447.GA2689@wunner.de>
2018-07-03 10:52 ` poza at codeaurora.org
2018-07-03 12:04 ` okaya at codeaurora.org
2018-07-03 11:30 ` okaya at codeaurora.org
2018-07-03 13:11 ` poza at codeaurora.org
2018-07-03 13:25 ` Sinan Kaya
2018-07-03 13:31 ` Sinan Kaya
[not found] ` <20180703135956.GA18639@wunner.de>
2018-07-03 14:10 ` poza at codeaurora.org
2018-07-03 15:34 ` Sinan Kaya
[not found] ` <20180703141255.GB18639@wunner.de>
2018-07-03 14:29 ` poza at codeaurora.org
[not found] ` <20180703143434.GA4086@wunner.de>
2018-07-03 15:12 ` poza at codeaurora.org [this message]
2018-07-03 15:49 ` Sinan Kaya
2018-07-03 15:43 ` Sinan Kaya
[not found] ` <20180708171418.GA11476@wunner.de>
2018-07-09 14:48 ` Sinan Kaya
[not found] ` <20180709160008.GA1490@wunner.de>
2018-07-10 18:30 ` Sinan Kaya
2018-07-20 20:01 ` Bjorn Helgaas
2018-07-21 2:58 ` Sinan Kaya
2018-07-21 6:07 ` Sinan Kaya
2018-07-25 8:29 ` poza at codeaurora.org
2018-07-31 18:44 ` [PATCH V5 0/3] PCI: separate hotplug handling from fatal error handling Bjorn Helgaas
2018-07-31 18:54 ` Sinan Kaya
2018-07-31 20:16 ` 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=fda77cee8e379f2e9b7ab55fefe17cad@codeaurora.org \
--to=poza@codeaurora.org \
--cc=linux-arm-kernel@lists.infradead.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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).