PCI: rockchip: Fix bus checks in rockchip_pcie_valid_device()
authorLorenzo Pieralisi <lorenzo.pieralisi@arm.com>
Fri, 4 Sep 2020 14:09:04 +0000 (15:09 +0100)
committerBjorn Helgaas <bhelgaas@google.com>
Tue, 8 Sep 2020 21:52:42 +0000 (16:52 -0500)
commite338eecf3fe79054e8a31b8c39a1234b5acfdabe
tree155e65e0a9fa813e32535dc256fe4330e8b2b8d4
parent7c2308f79fc81ba0bf24ccd2429fb483a91bcd51
PCI: rockchip: Fix bus checks in rockchip_pcie_valid_device()

The root bus checks rework in d84c572de1a3 ("PCI: rockchip: Use
pci_is_root_bus() to check if bus is root bus") caused a regression whereby
in rockchip_pcie_valid_device() if the bus parameter is the root bus and
the dev value == 0, the function should return 1 (ie true) without checking
if the bus->parent pointer is a root bus because that triggers a NULL
pointer dereference.

Fix this by streamlining the root bus detection.

Fixes: d84c572de1a3 ("PCI: rockchip: Use pci_is_root_bus() to check if bus is root bus")
Link: https://lore.kernel.org/r/20200904140904.944-1-lorenzo.pieralisi@arm.com
Reported-by: Samuel Dionne-Riel <samuel@dionne-riel.com>
Tested-by: Samuel Dionne-Riel <samuel@dionne-riel.com>
Signed-off-by: Lorenzo Pieralisi <lorenzo.pieralisi@arm.com>
Signed-off-by: Bjorn Helgaas <bhelgaas@google.com>
Reviewed-by: Rob Herring <robh@kernel.org>
Cc: Shawn Lin <shawn.lin@rock-chips.com>
drivers/pci/controller/pcie-rockchip-host.c