Change a couple of breaks to gotos, remove multiple unnecessary checks.
Signed-off-by: Youling Tang <[email protected]>
Acked-by: Dave Young <[email protected]>
Suggested-by: Joe Perches <[email protected]>
---
kernel/kexec_file.c | 30 ++++++++++++------------------
1 file changed, 12 insertions(+), 18 deletions(-)
diff --git a/kernel/kexec_file.c b/kernel/kexec_file.c
index 78c0837..ec8b716 100644
--- a/kernel/kexec_file.c
+++ b/kernel/kexec_file.c
@@ -763,7 +763,7 @@ static int kexec_calculate_store_digests(struct kimage
*image)
ret = crypto_shash_update(desc, ksegment->kbuf,
ksegment->bufsz);
if (ret)
- break;
+ goto out_free_digest;
/*
* Assume rest of the buffer is filled with zero and
@@ -777,32 +777,26 @@ static int kexec_calculate_store_digests(struct kimage
*image)
bytes = zero_buf_sz;
ret = crypto_shash_update(desc, zero_buf, bytes);
if (ret)
- break;
+ goto out_free_digest;
nullsz -= bytes;
}
- if (ret)
- break;
-
sha_regions[j].start = ksegment->mem;
sha_regions[j].len = ksegment->memsz;
j++;
}
- if (!ret) {
- ret = crypto_shash_final(desc, digest);
- if (ret)
- goto out_free_digest;
- ret = kexec_purgatory_get_set_symbol(image,
"purgatory_sha_regions",
- sha_regions,
sha_region_sz, 0);
- if (ret)
- goto out_free_digest;
+ ret = crypto_shash_final(desc, digest);
+ if (ret)
+ goto out_free_digest;
- ret = kexec_purgatory_get_set_symbol(image,
"purgatory_sha256_digest",
- digest,
SHA256_DIGEST_SIZE, 0);
- if (ret)
- goto out_free_digest;
- }
+ ret = kexec_purgatory_get_set_symbol(image, "purgatory_sha_regions",
+ sha_regions, sha_region_sz, 0);
+ if (ret)
+ goto out_free_digest;
+
+ ret = kexec_purgatory_get_set_symbol(image, "purgatory_sha256_digest",
+ digest, SHA256_DIGEST_SIZE, 0);
out_free_digest:
kfree(digest);
--
2.1.0
_______________________________________________
kexec mailing list
[email protected]
http://lists.infradead.org/mailman/listinfo/kexec