summaryrefslogtreecommitdiff
path: root/drivers/uio
diff options
context:
space:
mode:
authorBjorn Helgaas <bhelgaas@google.com>2017-01-27 21:00:45 (GMT)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>2017-02-09 07:08:25 (GMT)
commit610c2b7ff8f6d5cbad76bbe522f7f367d7116b0f (patch)
treea326a8ee88252da5ea0bee51043efdafe8d03ea9 /drivers/uio
parentc8ea2f3b8247b6046f02527127ecf2fd0b045f46 (diff)
downloadlinux-610c2b7ff8f6d5cbad76bbe522f7f367d7116b0f.tar.xz
PCI/ASPM: Handle PCI-to-PCIe bridges as roots of PCIe hierarchies
commit 030305d69fc6963c16003f50d7e8d74b02d0a143 upstream. 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: 51ebfc92b72b ("PCI: Enumerate switches below PCI-to-PCIe bridges") Link: https://bugzilla.kernel.org/show_bug.cgi?id=193411 Link: https://bugzilla.opensuse.org/show_bug.cgi?id=1022181 Tested-by: lists@ssl-mail.com Tested-by: Jayachandran C. <jnair@caviumnetworks.com> Signed-off-by: Bjorn Helgaas <bhelgaas@google.com> Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
Diffstat (limited to 'drivers/uio')
0 files changed, 0 insertions, 0 deletions