comedi: jr3_pci: Fix synchronous deletion of timer
commit 44d9b3f584c59a606b521e7274e658d5b866c699 upstream.
When `jr3_pci_detach()` is called during device removal, it calls
`timer_delete_sync()` to stop the timer, but the timer expiry function
always reschedules the timer, so the synchronization is ineffective.
Call `timer_shutdown_sync()` instead. It does not matter that the timer
expiry function pointer is cleared, because the device is being removed.
Fixes: 07b509e658
("Staging: comedi: add jr3_pci driver")
Cc: stable <stable@kernel.org>
Signed-off-by: Ian Abbott <abbotti@mev.co.uk>
Link: https://lore.kernel.org/r/20250415123901.13483-1-abbotti@mev.co.uk
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
This commit is contained in:
committed by
Greg Kroah-Hartman
parent
c4312c4d24
commit
ffe79cc6c7
@@ -758,7 +758,7 @@ static void jr3_pci_detach(struct comedi_device *dev)
|
|||||||
struct jr3_pci_dev_private *devpriv = dev->private;
|
struct jr3_pci_dev_private *devpriv = dev->private;
|
||||||
|
|
||||||
if (devpriv)
|
if (devpriv)
|
||||||
del_timer_sync(&devpriv->timer);
|
timer_shutdown_sync(&devpriv->timer);
|
||||||
|
|
||||||
comedi_pci_detach(dev);
|
comedi_pci_detach(dev);
|
||||||
}
|
}
|
||||||
|
Reference in New Issue
Block a user