Re: [PATCH] Input: synaptics-rmi4 - add missed operations in remove
From: Chuhong Yuan <hidden>
Date: 2019-11-13 08:53:14
Also in:
lkml
On Wed, Nov 13, 2019 at 4:23 PM Dmitry Torokhov [off-list ref] wrote:
On Wed, Nov 13, 2019 at 02:36:56PM +0800, Chuhong Yuan wrote:quoted
The driver forgets to deal with work and workqueue in remove like what is done when probe fails. Add the missed operations to fix it.Is it really possible for the work to still be pending when fully registered device is properly unregistered? I thought we'd wait for successful data acquisition in rmi_f54_buffer_queue() before unregister can complete.
In fact, I am not familiar with the mechanism here... I have checked other drivers with video_unregister_device and found none of them deals with work in remove. Therefore, I think your opinion should be right and we only need to deal with the workqueue. Regards, Chuhong
quoted
Signed-off-by: Chuhong Yuan <redacted> --- drivers/input/rmi4/rmi_f54.c | 3 +++ 1 file changed, 3 insertions(+)diff --git a/drivers/input/rmi4/rmi_f54.c b/drivers/input/rmi4/rmi_f54.c index 710b02595486..2c0cde5c775c 100644 --- a/drivers/input/rmi4/rmi_f54.c +++ b/drivers/input/rmi4/rmi_f54.c@@ -730,6 +730,9 @@ static void rmi_f54_remove(struct rmi_function *fn) video_unregister_device(&f54->vdev); v4l2_device_unregister(&f54->v4l2); + cancel_delayed_work_sync(&f54->work); + flush_workqueue(f54->workqueue); + destroy_workqueue(f54->workqueue); } struct rmi_function_handler rmi_f54_handler = { --2.23.0Thanks. -- Dmitry