diff --git a/src/hibernate-resume/hibernate-resume.c b/src/hibernate-resume/hibernate-resume.c index 3f45836d59..519aefe29f 100644 --- a/src/hibernate-resume/hibernate-resume.c +++ b/src/hibernate-resume/hibernate-resume.c @@ -60,7 +60,7 @@ static int run(int argc, char *argv[]) { return r; if (arg_info.efi) - clear_efi_hibernate_location_and_warn(); + (void) clear_efi_hibernate_location_and_warn(); } if (stat(arg_info.device, &st) < 0) diff --git a/src/shared/hibernate-util.c b/src/shared/hibernate-util.c index 3547476c85..2e3f7cfb84 100644 --- a/src/shared/hibernate-util.c +++ b/src/shared/hibernate-util.c @@ -513,13 +513,17 @@ int write_resume_config(dev_t devno, uint64_t offset, const char *device) { return 0; } -void clear_efi_hibernate_location_and_warn(void) { +int clear_efi_hibernate_location_and_warn(void) { int r; if (!is_efi_boot()) - return; + return 0; r = efi_set_variable(EFI_SYSTEMD_VARIABLE(HibernateLocation), NULL, 0); + if (r == -ENOENT) + return 0; if (r < 0) - log_warning_errno(r, "Failed to clear EFI variable HibernateLocation, ignoring: %m"); + return log_warning_errno(r, "Failed to clear EFI variable HibernateLocation: %m"); + + return 1; } diff --git a/src/shared/hibernate-util.h b/src/shared/hibernate-util.h index 1064d2b4dd..394d0b4176 100644 --- a/src/shared/hibernate-util.h +++ b/src/shared/hibernate-util.h @@ -22,7 +22,7 @@ int hibernation_is_safe(void); int write_resume_config(dev_t devno, uint64_t offset, const char *device); -void clear_efi_hibernate_location_and_warn(void); +int clear_efi_hibernate_location_and_warn(void); /* Only for test-fiemap */ int read_fiemap(int fd, struct fiemap **ret); diff --git a/src/sleep/sleep.c b/src/sleep/sleep.c index 693484e886..c96207428d 100644 --- a/src/sleep/sleep.c +++ b/src/sleep/sleep.c @@ -308,7 +308,7 @@ static int execute( fail: if (SLEEP_OPERATION_IS_HIBERNATION(operation)) - clear_efi_hibernate_location_and_warn(); + (void) clear_efi_hibernate_location_and_warn(); return r; }