public inbox for linux-staging@lists.linux.dev
 help / color / mirror / Atom feed
* [PATCH] Staging: nvec: Fix pm_power_off reset condition in tegra_nvec_remove
@ 2025-02-09 20:16 Dima Volkovsk
  2025-02-10  6:10 ` Greg KH
                   ` (3 more replies)
  0 siblings, 4 replies; 5+ messages in thread
From: Dima Volkovsk @ 2025-02-09 20:16 UTC (permalink / raw)
  To: marvin24, gregkh, ac100, linux-tegra, linux-staging, linux-kernel
  Cc: Dima Volkovsk

In the current implementation of tegra_nvec_remove, the pm_power_off handler
is set to NULL without checking if it is actually set to nvec_power_off. This
change ensures that pm_power_off is only reset if it was previously set to
nvec_power_off, preventing unintended side effects when removing the device.

Signed-off-by: Dima Volkovsk <s0ldw3ll@gmail.com>
---
 drivers/staging/nvec/nvec.c | 6 ++++--
 1 file changed, 4 insertions(+), 2 deletions(-)

diff --git a/drivers/staging/nvec/nvec.c b/drivers/staging/nvec/nvec.c
index 263774e6a78c..9057f061e927 100644
--- a/drivers/staging/nvec/nvec.c
+++ b/drivers/staging/nvec/nvec.c
@@ -903,8 +903,10 @@ 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;
+
+	/* only reset pm_power_off if it's our handler */
+	if (pm_power_off = nvec_power_off)
+		pm_power_off = NULL;
 }
 
 #ifdef CONFIG_PM_SLEEP
-- 
2.48.1


^ permalink raw reply related	[flat|nested] 5+ messages in thread

end of thread, other threads:[~2025-02-12  7:33 UTC | newest]

Thread overview: 5+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2025-02-09 20:16 [PATCH] Staging: nvec: Fix pm_power_off reset condition in tegra_nvec_remove Dima Volkovsk
2025-02-10  6:10 ` Greg KH
2025-02-10 12:31 ` kernel test robot
2025-02-10 14:08 ` kernel test robot
2025-02-12  7:33 ` Dan Carpenter

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox