summaryrefslogtreecommitdiff
path: root/drivers/staging/nvec
diff options
context:
space:
mode:
authorAlexandru Hossu <hossu.alexandru@gmail.com>2026-04-27 10:17:13 +0200
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>2026-05-04 16:17:10 +0200
commitfb2ae75b1ae5cffa11309b9ebf27aa4a2ceff9bd (patch)
tree2af36515756398249bc9b68caaf22ad2528a6284 /drivers/staging/nvec
parent26813881181deb3a32fbb59eadb2599cbe8423f6 (diff)
downloadlinux-fb2ae75b1ae5cffa11309b9ebf27aa4a2ceff9bd.tar.gz
linux-fb2ae75b1ae5cffa11309b9ebf27aa4a2ceff9bd.zip
staging: nvec: fix unconditional pm_power_off teardown
tegra_nvec_remove() unconditionally sets pm_power_off = NULL, even if nvec was not the one that registered it. This breaks any other driver that may have set pm_power_off to its own handler. Replace the unconditional assignment with a guarded check so that pm_power_off is only cleared if nvec was the one that set it. Also remove the stale FIXME comment, as the guard addresses exactly what it was asking for. Reviewed-by: Dan Carpenter <error27@gmail.com> Signed-off-by: Alexandru Hossu <hossu.alexandru@gmail.com> Link: https://patch.msgid.link/20260427081713.3401874-3-hossu.alexandru@gmail.com Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
Diffstat (limited to 'drivers/staging/nvec')
-rw-r--r--drivers/staging/nvec/nvec.c4
1 files changed, 2 insertions, 2 deletions
diff --git a/drivers/staging/nvec/nvec.c b/drivers/staging/nvec/nvec.c
index 2a3499dd4d63..88c416ee0381 100644
--- a/drivers/staging/nvec/nvec.c
+++ b/drivers/staging/nvec/nvec.c
@@ -906,8 +906,8 @@ static void tegra_nvec_remove(struct platform_device *pdev)
nvec_unregister_notifier(nvec, &nvec->nvec_status_notifier);
cancel_work_sync(&nvec->rx_work);
cancel_work_sync(&nvec->tx_work);
- /* FIXME: needs check whether nvec is responsible for power off */
- pm_power_off = NULL;
+ if (pm_power_off == nvec_power_off)
+ pm_power_off = NULL;
}
#ifdef CONFIG_PM_SLEEP