diff options
| -rw-r--r-- | drivers/pci/pcie/pme.c | 12 |
1 files changed, 12 insertions, 0 deletions
diff --git a/drivers/pci/pcie/pme.c b/drivers/pci/pcie/pme.c index 717529331dac..2dd1c68e6de8 100644 --- a/drivers/pci/pcie/pme.c +++ b/drivers/pci/pcie/pme.c | |||
| @@ -433,6 +433,17 @@ static int pcie_pme_resume(struct pcie_device *srv) | |||
| 433 | return 0; | 433 | return 0; |
| 434 | } | 434 | } |
| 435 | 435 | ||
| 436 | /** | ||
| 437 | * pcie_pme_remove - Prepare PCIe PME service device for removal. | ||
| 438 | * @srv - PCIe service device to remove. | ||
| 439 | */ | ||
| 440 | static void pcie_pme_remove(struct pcie_device *srv) | ||
| 441 | { | ||
| 442 | pcie_pme_suspend(srv); | ||
| 443 | free_irq(srv->irq, srv); | ||
| 444 | kfree(get_service_data(srv)); | ||
| 445 | } | ||
| 446 | |||
| 436 | static struct pcie_port_service_driver pcie_pme_driver = { | 447 | static struct pcie_port_service_driver pcie_pme_driver = { |
| 437 | .name = "pcie_pme", | 448 | .name = "pcie_pme", |
| 438 | .port_type = PCI_EXP_TYPE_ROOT_PORT, | 449 | .port_type = PCI_EXP_TYPE_ROOT_PORT, |
| @@ -441,6 +452,7 @@ static struct pcie_port_service_driver pcie_pme_driver = { | |||
| 441 | .probe = pcie_pme_probe, | 452 | .probe = pcie_pme_probe, |
| 442 | .suspend = pcie_pme_suspend, | 453 | .suspend = pcie_pme_suspend, |
| 443 | .resume = pcie_pme_resume, | 454 | .resume = pcie_pme_resume, |
| 455 | .remove = pcie_pme_remove, | ||
| 444 | }; | 456 | }; |
| 445 | 457 | ||
| 446 | /** | 458 | /** |
