efi/capsule-loader: Don't output reset log when reset flags are not set
authorShunyong Yang <shunyong.yang@hxt-semitech.com>
Fri, 4 May 2018 06:00:02 +0000 (08:00 +0200)
committerIngo Molnar <mingo@kernel.org>
Mon, 14 May 2018 06:57:49 +0000 (08:57 +0200)
When reset flags in capsule header are not set, it means firmware
attempts to immediately process or launch the capsule. Moreover, reset
is not needed in this case. The current code will output log to indicate
reset.

This patch adds a branch to avoid reset log output when the flags are not
set.

[ardb: use braces in multi-line 'if', clarify comment and commit log]
Signed-off-by: Shunyong Yang <shunyong.yang@hxt-semitech.com>
Signed-off-by: Ard Biesheuvel <ard.biesheuvel@linaro.org>
Cc: Joey Zheng <yu.zheng@hxt-semitech.com>
Cc: Linus Torvalds <torvalds@linux-foundation.org>
Cc: Matt Fleming <matt@codeblueprint.co.uk>
Cc: Peter Zijlstra <peterz@infradead.org>
Cc: Thomas Gleixner <tglx@linutronix.de>
Cc: linux-efi@vger.kernel.org
Link: http://lkml.kernel.org/r/20180504060003.19618-17-ard.biesheuvel@linaro.org
Signed-off-by: Ingo Molnar <mingo@kernel.org>
drivers/firmware/efi/capsule-loader.c

index e456f46..9668898 100644 (file)
@@ -134,10 +134,16 @@ static ssize_t efi_capsule_submit_update(struct capsule_info *cap_info)
 
        /* Indicate capsule binary uploading is done */
        cap_info->index = NO_FURTHER_WRITE_ACTION;
-       pr_info("Successfully upload capsule file with reboot type '%s'\n",
-               !cap_info->reset_type ? "RESET_COLD" :
-               cap_info->reset_type == 1 ? "RESET_WARM" :
-               "RESET_SHUTDOWN");
+
+       if (cap_info->header.flags & EFI_CAPSULE_PERSIST_ACROSS_RESET) {
+               pr_info("Successfully uploaded capsule file with reboot type '%s'\n",
+                       !cap_info->reset_type ? "RESET_COLD" :
+                       cap_info->reset_type == 1 ? "RESET_WARM" :
+                       "RESET_SHUTDOWN");
+       } else {
+               pr_info("Successfully processed capsule file\n");
+       }
+
        return 0;
 }