[PATCH] staging: usbip: stub_dev: Fixed oops during removal of usbip_host

Sergei Shtylyov sshtylyov at mvista.com
Fri Sep 14 11:42:42 UTC 2012


Hello.

On 14-09-2012 13:53, navin patidar wrote:

> stub_device_reset should set kernel thread pointers to NULL.
> so that at the time of usbip_host removal stub_shoutdown_connection
> doesn't try to kill kernel threads which are already killed.

> Signed-off-by: navin patidar <navinp at cdac.in>
> ---
>   drivers/staging/usbip/stub_dev.c |   14 +++++++++-----
>   1 file changed, 9 insertions(+), 5 deletions(-)

> diff --git a/drivers/staging/usbip/stub_dev.c b/drivers/staging/usbip/stub_dev.c
> index 92ced35..f584af8 100644
> --- a/drivers/staging/usbip/stub_dev.c
> +++ b/drivers/staging/usbip/stub_dev.c
> @@ -192,16 +192,13 @@ static void stub_shutdown_connection(struct usbip_device *ud)
>   	if (ud->tcp_tx)
>   		kthread_stop_put(ud->tcp_tx);
>
> -	/*
> -	 * 2. close the socket
> +	/* 2. close the socket

    It's the preferred comment style -- why modify it?

>   	 *
>   	 * tcp_socket is freed after threads are killed so that usbip_xmit does
>   	 * not touch NULL socket.
>   	 */
> -	if (ud->tcp_socket) {
> +	if (ud->tcp_socket)
>   		sock_release(ud->tcp_socket);
> -		ud->tcp_socket = NULL;
> -	}
>
>   	/* 3. free used data */
>   	stub_device_cleanup_urbs(sdev);
> @@ -233,6 +230,13 @@ static void stub_device_reset(struct usbip_device *ud)
>
>   	dev_dbg(&udev->dev, "device reset");
>
> +	/*reset tcp socket*/

    Add spaces after /* and before */, please.

> +	ud->tcp_socket = NULL;
> +
> +	/*reset kernel thread pointers */

    Here too.

WBR, Sergei




More information about the devel mailing list