PCI: kirin: Don't discard .remove() callback
authorUwe Kleine-König <u.kleine-koenig@pengutronix.de>
Sun, 1 Oct 2023 17:02:52 +0000 (19:02 +0200)
committerBjorn Helgaas <bhelgaas@google.com>
Tue, 10 Oct 2023 17:13:09 +0000 (12:13 -0500)
commit3064ef2e88c1629c1e67a77d7bc20020b35846f2
treecca52d60a2ddc9d5401e4f98f4ace8abb044b615
parent83a939f0fdc208ff3639dd3d42ac9b3c35607fd2
PCI: kirin: Don't discard .remove() callback

With CONFIG_PCIE_KIRIN=y and kirin_pcie_remove() marked with __exit, the
function is discarded from the driver. In this case a bound device can
still get unbound, e.g via sysfs. Then no cleanup code is run resulting in
resource leaks or worse.

The right thing to do is do always have the remove callback available.
This fixes the following warning by modpost:

  drivers/pci/controller/dwc/pcie-kirin: section mismatch in reference: kirin_pcie_driver+0x8 (section: .data) -> kirin_pcie_remove (section: .exit.text)

(with ARCH=x86_64 W=1 allmodconfig).

Fixes: 000f60db784b ("PCI: kirin: Add support for a PHY layer")
Link: https://lore.kernel.org/r/20231001170254.2506508-3-u.kleine-koenig@pengutronix.de
Signed-off-by: Uwe Kleine-König <u.kleine-koenig@pengutronix.de>
Signed-off-by: Bjorn Helgaas <bhelgaas@google.com>
Cc: stable@vger.kernel.org
drivers/pci/controller/dwc/pcie-kirin.c