pci-v4.11-fixes-2
-----BEGIN PGP SIGNATURE----- Version: GnuPG v1 iQIcBAABAgAGBQJYwa7RAAoJEFmIoMA60/r8sNcQAJ9M25ncSLa1m1KmaIHbRanS Pki30P/wWGiD61APDULtdGaepzxNrOEipZbvl0SLgWhdLeKc53POv0po75iVozbm JfWZETb5HY1Kg6ufyxZ9OrLERab6jqqlHe/qVdIsoc/z369PByISJws1x4DZ9UUH ZcEKrPwOrlfSqCUR4UI7zVjTdE9vFT5IsLBXpusvwWhyqIIGhAqxGT3gd6uohFrK B5iUTn+44wYZb3n4qXY1cHb5eXj4U/SJoDW9pignoGbLHsdun5zSwm0h3p6gav0M IoYMT+g1NFgaa0XV7mibBfRG6j5dLC437cRJlezGWWQteQ9AkyhBCjzE9ESiHzoQ XiJJHZIyzvq9Amo9SKzfQIhiGpSavo+rqEDLYdOANaJRr/4gMi8nqI+4ygrsdGWr VBWwok+/wJ1/U6vtYvTySCFqqFOOvX8f0Zd6QeUQ/CmnPsHd0k5s2xy2/MvJc+TB +mOdcOurRidqIGOGOpIE/pmk4MpbvB3+g6pM/nAwAOQN2qnnCbABKcDr4mPiyNG3 UscCrr7v4M3r52wFhAJljJx6rauh5HpG8DfoYSviJGIkRPC/mYcijvUwslRiKLGS q/hQO1p/Aqsuvp0CMqlIgMdZGkJyosAHRdYHuLa34g1DD9gpjSJ9Nm/61gKQw8rs z8HZWE1bue2M8YcVlkYI =Iy1b -----END PGP SIGNATURE----- Merge tag 'pci-v4.11-fixes-2' of git://git.kernel.org/pub/scm/linux/kernel/git/helgaas/pci Pull PCI fixes from Bjorn Helgaas: "PCI fixes: - fix NULL pointer dereference in Exynos driver - fix NULL pointer dereference in ASPM with pre-1.1 PCIe devices - blacklist QLogic ISP2722 to prevent panics while reading VPD" * tag 'pci-v4.11-fixes-2' of git://git.kernel.org/pub/scm/linux/kernel/git/helgaas/pci: PCI/ASPM: Always set link->downstream to avoid NULL dereference on remove PCI: Prevent VPD access for QLogic ISP2722 PCI: exynos: Initialize elbi_base even when using PHY framework
This commit is contained in:
commit
144c7666b5
@ -132,10 +132,6 @@ static int exynos5440_pcie_get_mem_resources(struct platform_device *pdev,
|
||||
struct device *dev = pci->dev;
|
||||
struct resource *res;
|
||||
|
||||
/* If using the PHY framework, doesn't need to get other resource */
|
||||
if (ep->using_phy)
|
||||
return 0;
|
||||
|
||||
ep->mem_res = devm_kzalloc(dev, sizeof(*ep->mem_res), GFP_KERNEL);
|
||||
if (!ep->mem_res)
|
||||
return -ENOMEM;
|
||||
@ -145,6 +141,10 @@ static int exynos5440_pcie_get_mem_resources(struct platform_device *pdev,
|
||||
if (IS_ERR(ep->mem_res->elbi_base))
|
||||
return PTR_ERR(ep->mem_res->elbi_base);
|
||||
|
||||
/* If using the PHY framework, doesn't need to get other resource */
|
||||
if (ep->using_phy)
|
||||
return 0;
|
||||
|
||||
res = platform_get_resource(pdev, IORESOURCE_MEM, 1);
|
||||
ep->mem_res->phy_base = devm_ioremap_resource(dev, res);
|
||||
if (IS_ERR(ep->mem_res->phy_base))
|
||||
|
@ -478,7 +478,7 @@ static void aspm_calc_l1ss_info(struct pcie_link_state *link,
|
||||
|
||||
static void pcie_aspm_cap_init(struct pcie_link_state *link, int blacklist)
|
||||
{
|
||||
struct pci_dev *child, *parent = link->pdev;
|
||||
struct pci_dev *child = link->downstream, *parent = link->pdev;
|
||||
struct pci_bus *linkbus = parent->subordinate;
|
||||
struct aspm_register_info upreg, dwreg;
|
||||
|
||||
@ -491,9 +491,7 @@ static void pcie_aspm_cap_init(struct pcie_link_state *link, int blacklist)
|
||||
|
||||
/* Get upstream/downstream components' register state */
|
||||
pcie_get_aspm_reg(parent, &upreg);
|
||||
child = pci_function_0(linkbus);
|
||||
pcie_get_aspm_reg(child, &dwreg);
|
||||
link->downstream = child;
|
||||
|
||||
/*
|
||||
* If ASPM not supported, don't mess with the clocks and link,
|
||||
@ -800,6 +798,7 @@ static struct pcie_link_state *alloc_pcie_link_state(struct pci_dev *pdev)
|
||||
INIT_LIST_HEAD(&link->children);
|
||||
INIT_LIST_HEAD(&link->link);
|
||||
link->pdev = pdev;
|
||||
link->downstream = pci_function_0(pdev->subordinate);
|
||||
|
||||
/*
|
||||
* Root Ports and PCI/PCI-X to PCIe Bridges are roots of PCIe
|
||||
|
@ -2174,6 +2174,7 @@ DECLARE_PCI_FIXUP_FINAL(PCI_VENDOR_ID_LSI_LOGIC, 0x005d, quirk_blacklist_vpd);
|
||||
DECLARE_PCI_FIXUP_FINAL(PCI_VENDOR_ID_LSI_LOGIC, 0x005f, quirk_blacklist_vpd);
|
||||
DECLARE_PCI_FIXUP_FINAL(PCI_VENDOR_ID_ATTANSIC, PCI_ANY_ID,
|
||||
quirk_blacklist_vpd);
|
||||
DECLARE_PCI_FIXUP_FINAL(PCI_VENDOR_ID_QLOGIC, 0x2261, quirk_blacklist_vpd);
|
||||
|
||||
/*
|
||||
* For Broadcom 5706, 5708, 5709 rev. A nics, any read beyond the
|
||||
|
Loading…
Reference in New Issue
Block a user