Re: BUG_ON(root->parent) in pcie_update_aspm_capable()

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



* Jesse Barnes <jbarnes@xxxxxxxxxxxxxxxx>:
> Kenji Kaneshige <kaneshige.kenji@xxxxxxxxxxxxxx> wrote:
> > 
> > Fix the following BUG_ON() problem reported by Alex Chiang.
> > 
> > This problem happened when removing PCIe root port using PCI logical
> > hotplug operation.
> > 
> > The immediate cause of this problem is that the pointer to invalid
> > data structure is passed to pcie_update_aspm_capable() by
> > pcie_aspm_exit_link_state(). When pcie_aspm_exit_link_state() received
> > a pointer to root port link, it unconfigures the root port link and
> > frees its data structure at first. At this point, there are not links
> > to configure under the root port and the data structure for root port
> > link is already freed. So pcie_aspm_exit_link_state() must not call
> > pcie_update_aspm_capable() and pcie_config_aspm_path().
> > 
> > This patch fixes the problem by changing pcie_aspm_exit_link_state()
> > not to call pcie_update_aspm_capable() and pcie_config_aspm_path() if
> > the specified link is root port link.
> 
> I applied this with Alex's tested by since I didn't see a new one.
> Hope that's ok with you, Kenji-san.  If not, please send an incremental
> patch to fix things up.

Jesse,

I'm a little confused; I thought you already applied this patch?

In Linus's tree:

	commit 761434a318a64bf521f8abcc920e1d9837640fa2
	Author: Kenji Kaneshige <kaneshige.kenji@xxxxxxxxxxxxxx>
	Date:   Fri Nov 6 16:22:44 2009 +0900

	PCI ASPM: fix oops on root port removal

Someone forgot his meds, either you or me. ;)

/ac

--
To unsubscribe from this list: send the line "unsubscribe linux-pci" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at  http://vger.kernel.org/majordomo-info.html

[Index of Archives]     [DMA Engine]     [Linux Coverity]     [Linux USB]     [Video for Linux]     [Linux Audio Users]     [Yosemite News]     [Linux Kernel]     [Linux SCSI]     [Greybus]

  Powered by Linux