mirror of
https://git.proxmox.com/git/mirror_ubuntu-kernels.git
synced 2025-11-19 08:37:08 +00:00
In a struct pcie_link_state, link->root points to the pcie_link_state of
the root of the PCIe hierarchy. For the topmost link, this points to
itself (link->root = link). For others, we copy the pointer from the
parent (link->root = link->parent->root).
Previously we recognized that Root Ports originated PCIe hierarchies, but
we treated PCI/PCI-X to PCIe Bridges as being in the middle of the
hierarchy, and when we tried to copy the pointer from link->parent->root,
there was no parent, and we dereferenced a NULL pointer:
BUG: unable to handle kernel NULL pointer dereference at 0000000000000090
IP: [<ffffffff9e424350>] pcie_aspm_init_link_state+0x170/0x820
Recognize that PCI/PCI-X to PCIe Bridges originate PCIe hierarchies just
like Root Ports do, so link->root for these devices should also point to
itself.
Fixes:
|
||
|---|---|---|
| .. | ||
| aer | ||
| aspm.c | ||
| Kconfig | ||
| Makefile | ||
| pcie-dpc.c | ||
| pme.c | ||
| portdrv_acpi.c | ||
| portdrv_bus.c | ||
| portdrv_core.c | ||
| portdrv_pci.c | ||
| portdrv.h | ||
| ptm.c | ||