Re: [PATCH V8 2/4] USB: serial: f81232: fix interrupt worker not stop

Johan Hovold
2019-04-26T06:26:13Z

On Fri, Apr 19, 2019 at 10:45:31AM +0800, Ji-Ze Hong (Peter Hong) wrote:
> The F81232 will use LSR/Interrupt worker to handle LSR error & MSR
> change. This patch will fix the interrupt work should stop in close()
> and suspend().
>
> Cc: Johan Hovold <johan@kernel.org>
> Signed-off-by: Ji-Ze Hong (Peter Hong) <hpeter+linux_kernel@gmail.com>
> ---
> v8:
> 1: no change
>
> v7:
> 1: first introduce to this series patch.
>
> drivers/usb/serial/f81232.c | 5 ++++-
> 1 file changed, 4 insertions(+), 1 deletion(-)
>
> diff --git a/drivers/usb/serial/f81232.c b/drivers/usb/serial/f81232.c
> index 1f0dd4087d79..25ec47d7f318 100644
> --- a/drivers/usb/serial/f81232.c
> +++ b/drivers/usb/serial/f81232.c
> @@ -576,6 +576,7 @@ static void f81232_close(struct usb_serial_port *port)
> usb_serial_generic_close(port);
> usb_kill_urb(port->interrupt_in_urb);
> flush_work(&port_priv->lsr_work);
> + flush_work(&port_priv->interrupt_work);
> port_priv->is_port_open = false;
>
> mutex_unlock(&port_priv->lock);
> @@ -679,8 +680,10 @@ static int f81232_suspend(struct usb_serial *serial, pm_message_t message)
>
> usb_kill_urb(port->interrupt_in_urb);
>
> - if (port_priv)
> + if (port_priv) {
> flush_work(&port_priv->lsr_work);
> + flush_work(&port_priv->interrupt_work);
> + }

I think this one should go before the lsr_work() patch as it's fixing
current functionality.

Johan