ACK: [PATCH] uwb: properly check kthread_run return value

Stefan Bader stefan.bader at canonical.com
Thu Jul 19 12:23:56 UTC 2018


On 10.07.2018 13:49, Paolo Pisati wrote:
> From: Andrey Konovalov <andreyknvl at google.com>
> 
> uwbd_start() calls kthread_run() and checks that the return value is
> not NULL. But the return value is not NULL in case kthread_run() fails,
> it takes the form of ERR_PTR(-EINTR).
> 
> Use IS_ERR() instead.
> 
> Also add a check to uwbd_stop().
> 
> Signed-off-by: Andrey Konovalov <andreyknvl at google.com>
> Cc: stable <stable at vger.kernel.org>
> Signed-off-by: Greg Kroah-Hartman <gregkh at linuxfoundation.org>
> (cherry picked from commit bbf26183b7a6236ba602f4d6a2f7cade35bba043)
> Signed-off-by: Paolo Pisati <paolo.pisati at canonical.com>
Acked-by: Stefan Bader <stefan.bader at canonical.com>
> ---
>  drivers/uwb/uwbd.c | 12 ++++++++----
>  1 file changed, 8 insertions(+), 4 deletions(-)
> 
> diff --git a/drivers/uwb/uwbd.c b/drivers/uwb/uwbd.c
> index bdcb13c..5c98283 100644
> --- a/drivers/uwb/uwbd.c
> +++ b/drivers/uwb/uwbd.c
> @@ -303,18 +303,22 @@ static int uwbd(void *param)
>  /** Start the UWB daemon */
>  void uwbd_start(struct uwb_rc *rc)
>  {
> -	rc->uwbd.task = kthread_run(uwbd, rc, "uwbd");
> -	if (rc->uwbd.task == NULL)
> +	struct task_struct *task = kthread_run(uwbd, rc, "uwbd");
> +	if (IS_ERR(task)) {
> +		rc->uwbd.task = NULL;
>  		printk(KERN_ERR "UWB: Cannot start management daemon; "
>  		       "UWB won't work\n");
> -	else
> +	} else {
> +		rc->uwbd.task = task;
>  		rc->uwbd.pid = rc->uwbd.task->pid;
> +	}
>  }
>  
>  /* Stop the UWB daemon and free any unprocessed events */
>  void uwbd_stop(struct uwb_rc *rc)
>  {
> -	kthread_stop(rc->uwbd.task);
> +	if (rc->uwbd.task)
> +		kthread_stop(rc->uwbd.task);
>  	uwbd_flush(rc);
>  }
>  
> 


-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 819 bytes
Desc: OpenPGP digital signature
URL: <https://lists.ubuntu.com/archives/kernel-team/attachments/20180719/67b010d6/attachment.sig>


More information about the kernel-team mailing list