diff options
author | Sam Bobroff <sbobroff@linux.ibm.com> | 2018-09-12 11:23:21 +1000 |
---|---|---|
committer | Greg Kroah-Hartman <gregkh@linuxfoundation.org> | 2019-12-01 09:16:17 +0100 |
commit | bd2a7e53cd6e246ff469761bddc21c04d8d3d9a8 (patch) | |
tree | d11f73ce5bb633c6a25deaf9a010194def9059ba /arch/powerpc | |
parent | 16e4657a1d2542dba2fce2c91ace742e2e47f6e7 (diff) | |
download | linux-stable-bd2a7e53cd6e246ff469761bddc21c04d8d3d9a8.tar.gz linux-stable-bd2a7e53cd6e246ff469761bddc21c04d8d3d9a8.tar.bz2 linux-stable-bd2a7e53cd6e246ff469761bddc21c04d8d3d9a8.zip |
powerpc/eeh: Fix null deref for devices removed during EEH
[ Upstream commit bcbe3730531239abd45ab6c6af4a18078b37dd47 ]
If a device is removed during EEH processing (either by a driver's
handler or as part of recovery), it can lead to a null dereference
in eeh_pe_report_edev().
To handle this, skip devices that have been removed.
Signed-off-by: Sam Bobroff <sbobroff@linux.ibm.com>
Signed-off-by: Michael Ellerman <mpe@ellerman.id.au>
Signed-off-by: Sasha Levin <sashal@kernel.org>
Diffstat (limited to 'arch/powerpc')
-rw-r--r-- | arch/powerpc/kernel/eeh_driver.c | 4 |
1 files changed, 4 insertions, 0 deletions
diff --git a/arch/powerpc/kernel/eeh_driver.c b/arch/powerpc/kernel/eeh_driver.c index 110eba400de7..af1f3d5f9a0f 100644 --- a/arch/powerpc/kernel/eeh_driver.c +++ b/arch/powerpc/kernel/eeh_driver.c @@ -281,6 +281,10 @@ static void eeh_pe_report_edev(struct eeh_dev *edev, eeh_report_fn fn, struct pci_driver *driver; enum pci_ers_result new_result; + if (!edev->pdev) { + eeh_edev_info(edev, "no device"); + return; + } device_lock(&edev->pdev->dev); if (eeh_edev_actionable(edev)) { driver = eeh_pcid_get(edev->pdev); |