Change a couple of breaks to gotos, remove multiple unnecessary checks.

Signed-off-by: Youling Tang <tangyoul...@loongson.cn>
Acked-by: Dave Young <dyo...@redhat.com>
Suggested-by: Joe Perches <j...@perches.com>
---
 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
kexec@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/kexec

Reply via email to