hwrng: cleanup in hwrng_register()
My static checker complains that: drivers/char/hw_random/core.c:341 hwrng_register() warn: we tested 'old_rng' before and it was 'false' The problem is that sometimes we test "if (!old_rng)" and sometimes we test "if (must_register_misc)". The static checker knows they are equivalent but a human being reading the code could easily be confused. I have simplified the code by removing the "must_register_misc" variable and I have removed the redundant check on "if (!old_rng)". Signed-off-by: Dan Carpenter <dan.carpenter@oracle.com> Reviewed-by: Rusty Russell <rusty@rustcorp.com.au> Signed-off-by: Herbert Xu <herbert@gondor.apana.org.au>
This commit is contained in:
Родитель
fecfd7f7e9
Коммит
d167b6e1fb
|
@ -302,7 +302,6 @@ err_misc_dereg:
|
|||
|
||||
int hwrng_register(struct hwrng *rng)
|
||||
{
|
||||
int must_register_misc;
|
||||
int err = -EINVAL;
|
||||
struct hwrng *old_rng, *tmp;
|
||||
|
||||
|
@ -327,7 +326,6 @@ int hwrng_register(struct hwrng *rng)
|
|||
goto out_unlock;
|
||||
}
|
||||
|
||||
must_register_misc = (current_rng == NULL);
|
||||
old_rng = current_rng;
|
||||
if (!old_rng) {
|
||||
err = hwrng_init(rng);
|
||||
|
@ -336,13 +334,11 @@ int hwrng_register(struct hwrng *rng)
|
|||
current_rng = rng;
|
||||
}
|
||||
err = 0;
|
||||
if (must_register_misc) {
|
||||
if (!old_rng) {
|
||||
err = register_miscdev();
|
||||
if (err) {
|
||||
if (!old_rng) {
|
||||
hwrng_cleanup(rng);
|
||||
current_rng = NULL;
|
||||
}
|
||||
hwrng_cleanup(rng);
|
||||
current_rng = NULL;
|
||||
goto out_unlock;
|
||||
}
|
||||
}
|
||||
|
|
Загрузка…
Ссылка в новой задаче