From f818212873059845e573c79c186930d30ec3c459 Mon Sep 17 00:00:00 2001 From: NeilBrown Date: Sun, 22 Apr 2012 14:21:41 +1000 Subject: [PATCH] wakealarmd fixes 1/ make sure to reset the wakealarm before write to write a new value. 2/ We need to block suspend if it is *not* already disabled, not if it is. Signed-off-by: NeilBrown --- wakealarmd.c | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/wakealarmd.c b/wakealarmd.c index 6b11fad..07b3831 100644 --- a/wakealarmd.c +++ b/wakealarmd.c @@ -182,6 +182,7 @@ static int do_suspend(void *data) int fd = open("/sys/class/rtc/rtc0/wakealarm", O_WRONLY); if (fd >= 0) { char buf[20]; + write(fd, "0\n", 2); sprintf(buf, "%lld\n", (long long)state->conns->stamp - 2); write(fd, buf, strlen(buf)); @@ -190,7 +191,7 @@ static int do_suspend(void *data) return 1; } /* too close to next wakeup */ - if (state->disabled) { + if (!state->disabled) { suspend_block(state->disablefd); state->disabled = 1; } -- 2.39.5