PCI: endpoint: Fix WARN() when an endpoint driver is removed
authorYoshihiro Shimoda <yoshihiro.shimoda.uh@renesas.com>
Thu, 23 Jun 2022 00:38:17 +0000 (09:38 +0900)
committerLorenzo Pieralisi <lpieralisi@kernel.org>
Thu, 27 Oct 2022 13:02:29 +0000 (15:02 +0200)
commit7711cbb4862aa00909a248f011ba3fa578bd1cf3
tree808b2fc90db0b79c5c85599c4e790583c4c9885c
parent9abf2313adc1ca1b6180c508c25f22f9395cc780
PCI: endpoint: Fix WARN() when an endpoint driver is removed

Since there is no release callback defined for the PCI EPC device,
the below warning is thrown by driver core when a PCI endpoint driver is
removed:

  Device 'e65d0000.pcie-ep' does not have a release() function, it is broken and must be fixed. See Documentation/core-api/kobject.rst.
  WARNING: CPU: 0 PID: 139 at drivers/base/core.c:2232 device_release+0x78/0x8c

Hence, add the release callback and also move the kfree(epc) from
pci_epc_destroy() so that the epc memory is freed when all references are
dropped.

Link: https://lore.kernel.org/r/20220623003817.298173-1-yoshihiro.shimoda.uh@renesas.com
Tested-by: Vidya Sagar <vidyas@nvidia.com>
Signed-off-by: Yoshihiro Shimoda <yoshihiro.shimoda.uh@renesas.com>
Signed-off-by: Lorenzo Pieralisi <lpieralisi@kernel.org>
Reviewed-by: Manivannan Sadhasivam <manivannan.sadhasivam@linaro.org>
drivers/pci/endpoint/pci-epc-core.c