summaryrefslogtreecommitdiffstats
path: root/drivers/char
diff options
context:
space:
mode:
authorMartin Schwidefsky <schwidefsky@de.ibm.com>2015-07-24 13:13:30 +0200
committerHerbert Xu <herbert@gondor.apana.org.au>2015-07-28 14:59:54 +0800
commit17fb874dee093139923af8ed36061faa92cc8e79 (patch)
treef2f58fa3ba55fc20a5b6c786e2d32ad62046ce45 /drivers/char
parentf898c522f0e9ac9f3177d0762b76e2ab2d2cf9c0 (diff)
downloadlinux-17fb874dee093139923af8ed36061faa92cc8e79.tar.gz
linux-17fb874dee093139923af8ed36061faa92cc8e79.tar.bz2
linux-17fb874dee093139923af8ed36061faa92cc8e79.zip
hwrng: core - correct error check of kthread_run call
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>
Diffstat (limited to 'drivers/char')
-rw-r--r--drivers/char/hw_random/core.c2
1 files changed, 1 insertions, 1 deletions
diff --git a/drivers/char/hw_random/core.c b/drivers/char/hw_random/core.c
index da8faf78536a..5643b65cee20 100644
--- a/drivers/char/hw_random/core.c
+++ b/drivers/char/hw_random/core.c
@@ -429,7 +429,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;
}