]>
Commit | Line | Data |
---|---|---|
b7ca0ba0 SL |
1 | From 8038aad5e0fd636363cf3b015970cd85fa1475ef Mon Sep 17 00:00:00 2001 |
2 | From: Sasha Levin <sashal@kernel.org> | |
3 | Date: Mon, 4 Oct 2021 14:59:25 +0200 | |
4 | Subject: PCI: Drop pci_device_remove() test of pci_dev->driver | |
5 | MIME-Version: 1.0 | |
6 | Content-Type: text/plain; charset=UTF-8 | |
7 | Content-Transfer-Encoding: 8bit | |
8 | ||
9 | From: Uwe Kleine-König <u.kleine-koenig@pengutronix.de> | |
10 | ||
11 | [ Upstream commit 097d9d414433315122f759ee6c2d8a7417a8ff0f ] | |
12 | ||
13 | When the driver core calls pci_device_remove(), there is a driver bound | |
14 | to the device, so pci_dev->driver is never NULL. | |
15 | ||
16 | Remove the unnecessary test of pci_dev->driver. | |
17 | ||
18 | Link: https://lore.kernel.org/r/20211004125935.2300113-2-u.kleine-koenig@pengutronix.de | |
19 | Signed-off-by: Uwe Kleine-König <u.kleine-koenig@pengutronix.de> | |
20 | Signed-off-by: Bjorn Helgaas <bhelgaas@google.com> | |
21 | Reviewed-by: Christoph Hellwig <hch@lst.de> | |
22 | Stable-dep-of: 9d5286d4e7f6 ("PCI/PM: Drain runtime-idle callbacks before driver removal") | |
23 | Signed-off-by: Sasha Levin <sashal@kernel.org> | |
24 | --- | |
25 | drivers/pci/pci-driver.c | 16 +++++++--------- | |
26 | 1 file changed, 7 insertions(+), 9 deletions(-) | |
27 | ||
28 | diff --git a/drivers/pci/pci-driver.c b/drivers/pci/pci-driver.c | |
29 | index c22cc20db1a74..dbfeb5c148755 100644 | |
30 | --- a/drivers/pci/pci-driver.c | |
31 | +++ b/drivers/pci/pci-driver.c | |
32 | @@ -444,16 +444,14 @@ static int pci_device_remove(struct device *dev) | |
33 | struct pci_dev *pci_dev = to_pci_dev(dev); | |
34 | struct pci_driver *drv = pci_dev->driver; | |
35 | ||
36 | - if (drv) { | |
37 | - if (drv->remove) { | |
38 | - pm_runtime_get_sync(dev); | |
39 | - drv->remove(pci_dev); | |
40 | - pm_runtime_put_noidle(dev); | |
41 | - } | |
42 | - pcibios_free_irq(pci_dev); | |
43 | - pci_dev->driver = NULL; | |
44 | - pci_iov_remove(pci_dev); | |
45 | + if (drv->remove) { | |
46 | + pm_runtime_get_sync(dev); | |
47 | + drv->remove(pci_dev); | |
48 | + pm_runtime_put_noidle(dev); | |
49 | } | |
50 | + pcibios_free_irq(pci_dev); | |
51 | + pci_dev->driver = NULL; | |
52 | + pci_iov_remove(pci_dev); | |
53 | ||
54 | /* Undo the runtime PM settings in local_pci_probe() */ | |
55 | pm_runtime_put_sync(dev); | |
56 | -- | |
57 | 2.43.0 | |
58 |