Fwd: [PATCH -v3 40/47] PCI: Add pci bus removal through /sys/.../pci_bus/.../remove

From: Yinghai Lu
Date: Fri Apr 06 2012 - 13:42:50 EST


adding back the CC list


---------- Forwarded message ----------
From: Yinghai Lu <yhlu.kernel@xxxxxxxxx>
Date: Fri, Apr 6, 2012 at 9:24 AM
Subject: Re: [PATCH -v3 40/47] PCI: Add pci bus removal through
/sys/.../pci_bus/.../remove
To: Bjorn Helgaas <bhelgaas@xxxxxxxxxx>


On Fri, Apr 6, 2012 at 9:07 AM, Bjorn Helgaas <bhelgaas@xxxxxxxxxx> wrote:
> On Fri, Apr 6, 2012 at 10:01 AM, Yinghai Lu <yhlu.kernel@xxxxxxxxx> wrote:
>> On Fri, Apr 6, 2012 at 8:50 AM, Jiang Liu <liuj97@xxxxxxxxx> wrote:
>>> Hi Yinghai,
>>>        I found many other drivers assume that a pci bus won't disappear if
>>> the corresponding PCI bridge device still exists. The sysfs interface proposed
>>> here breaks that assumption and may cause many access-after-free issues.
>>> So what's the purpose of this interface? Should we remove this interface or
>>> enhance other drivers to avoid invalid memory access issues?
>
> Can you point out some of the specifics about drivers making this
> assumption?  I'm not thrilled about the idea of removing a pci_bus
> while the upstream bridge pci_dev still exists either.

I noticed that too. some hotplug driver link to those child bus
instead of bridge...
So have prepared some local patches to handle them.

>
>> ok, will make it only show up on root bus.
>
> OK.  I'm still interested in the specifics because I don't like the
> way the pci_bus is exposed, even inside the kernel.  The bus itself is
> not an active entity, and we can't really do anything with it except
> by touching a device connected to it.

I want to keep that to remove root bus that is not added acpi root.

Yinghai

Attachment: fix_pciehcp_after_remove_bus_panic.patch
Description: Binary data

Attachment: fix_pcie_hotplug_null_subordinate.patch
Description: Binary data

Attachment: fix_pcie_hotplug_null_subordinate_pciehp.patch
Description: Binary data

Attachment: fix_pcie_hotplug_null_subordinate_acpiphp.patch
Description: Binary data