diff options
author | Martin Schwidefsky <schwidefsky@de.ibm.com> | 2015-07-24 14:13:30 +0300 |
---|---|---|
committer | Sasha Levin <sasha.levin@oracle.com> | 2015-08-27 20:25:26 +0300 |
commit | 25920396cd64d55eec36eb64502ea582e191f390 (patch) | |
tree | f359c99655b158eb1a62d237dc1c01b9cb2e0737 /drivers/char | |
parent | 728757eda0dcdfac1f8d46548849cbf2597fe5da (diff) | |
download | linux-25920396cd64d55eec36eb64502ea582e191f390.tar.xz |
hwrng: core - correct error check of kthread_run call
[ Upstream commit 17fb874dee093139923af8ed36061faa92cc8e79 ]
The kthread_run() function can return two different error values
but the hwrng core only checks for -ENOMEM. If the other error
value -EINTR is returned it is assigned to hwrng_fill and later
used on a kthread_stop() call which naturally crashes.
Cc: stable@vger.kernel.org
Signed-off-by: Martin Schwidefsky <schwidefsky@de.ibm.com>
Signed-off-by: Herbert Xu <herbert@gondor.apana.org.au>
Signed-off-by: Sasha Levin <sasha.levin@oracle.com>
Diffstat (limited to 'drivers/char')
-rw-r--r-- | drivers/char/hw_random/core.c | 2 |
1 files changed, 1 insertions, 1 deletions
diff --git a/drivers/char/hw_random/core.c b/drivers/char/hw_random/core.c index aa30a25c8d49..7d52c0aafa7f 100644 --- a/drivers/char/hw_random/core.c +++ b/drivers/char/hw_random/core.c @@ -365,7 +365,7 @@ static int hwrng_fillfn(void *unused) static void start_khwrngd(void) { hwrng_fill = kthread_run(hwrng_fillfn, NULL, "hwrng"); - if (hwrng_fill == ERR_PTR(-ENOMEM)) { + if (IS_ERR(hwrng_fill)) { pr_err("hwrng_fill thread creation failed"); hwrng_fill = NULL; } |