From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mx-out-2.rwth-aachen.de ([134.130.5.187]:21294 "EHLO mx-out-2.rwth-aachen.de" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S933594AbdACIOX (ORCPT ); Tue, 3 Jan 2017 03:14:23 -0500 Received: from messenger-mbx.win.comsys.rwth-aachen.de (messenger-mbx.win.comsys.rwth-aachen.de [137.226.13.43]) by lists.comsys.rwth-aachen.de (Postfix) with ESMTPS id 491943FF2E for ; Tue, 3 Jan 2017 09:04:37 +0100 (CET) To: From: =?UTF-8?B?SmFuIFLDvHRo?= Subject: [PATCH] pci/aspm: Fix null pointer dereference during re-enumeration of PCI bus in pcie_aspm_init_link_state even though ASPM is off Message-ID: <4cec62c2-218a-672b-8c12-d44e8df56aae@comsys.rwth-aachen.de> Date: Tue, 3 Jan 2017 09:04:36 +0100 MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Sender: linux-pci-owner@vger.kernel.org List-ID: This patch fixes a null pointer dereference during PCI bus enumeration when ASPM is off. On an IBM x3850 8664 this bug causes the kernel to halt, this behavior did not appear in 3.10, so this is a regression. pcie_aspm_sanity_check should only be called if ASPM is on. Signed-off-by: Jan Rueth --- drivers/pci/pcie/aspm.c | +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/drivers/pci/pcie/aspm.c b/drivers/pci/pcie/aspm.c index f981129..e758b56 100644 --- a/drivers/pci/pcie/aspm.c +++ b/drivers/pci/pcie/aspm.c @@ -552,11 +552,12 @@ static struct pcie_link_state *alloc_pcie_link_state(struct pci_dev *pdev) void pcie_aspm_init_link_state(struct pci_dev *pdev) { struct pcie_link_state *link; - int blacklist = !!pcie_aspm_sanity_check(pdev); - + int blacklist; if (!aspm_support_enabled) return; + blacklist = !!pcie_aspm_sanity_check(pdev); + if (pdev->link_state) return;