aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--util-linux/rtcwake.c8
1 files changed, 4 insertions, 4 deletions
diff --git a/util-linux/rtcwake.c b/util-linux/rtcwake.c
index ee2f031b4..4d2be00f5 100644
--- a/util-linux/rtcwake.c
+++ b/util-linux/rtcwake.c
@@ -30,8 +30,6 @@
30#define SYS_POWER_PATH "/sys/power/state" 30#define SYS_POWER_PATH "/sys/power/state"
31#define DEFAULT_MODE "standby" 31#define DEFAULT_MODE "standby"
32 32
33static time_t rtc_time;
34
35static NOINLINE bool may_wakeup(const char *rtcname) 33static NOINLINE bool may_wakeup(const char *rtcname)
36{ 34{
37 ssize_t ret; 35 ssize_t ret;
@@ -50,7 +48,7 @@ static NOINLINE bool may_wakeup(const char *rtcname)
50 return strncmp(buf, "enabled\n", 8) == 0; 48 return strncmp(buf, "enabled\n", 8) == 0;
51} 49}
52 50
53static NOINLINE void setup_alarm(int fd, time_t *wakeup) 51static NOINLINE void setup_alarm(int fd, time_t *wakeup, time_t rtc_time)
54{ 52{
55 struct tm *tm; 53 struct tm *tm;
56 struct linux_rtc_wkalrm wake; 54 struct linux_rtc_wkalrm wake;
@@ -102,6 +100,8 @@ static NOINLINE void setup_alarm(int fd, time_t *wakeup)
102int rtcwake_main(int argc, char **argv) MAIN_EXTERNALLY_VISIBLE; 100int rtcwake_main(int argc, char **argv) MAIN_EXTERNALLY_VISIBLE;
103int rtcwake_main(int argc UNUSED_PARAM, char **argv) 101int rtcwake_main(int argc UNUSED_PARAM, char **argv)
104{ 102{
103 time_t rtc_time;
104
105 unsigned opt; 105 unsigned opt;
106 const char *rtcname = NULL; 106 const char *rtcname = NULL;
107 const char *suspend; 107 const char *suspend;
@@ -170,7 +170,7 @@ int rtcwake_main(int argc UNUSED_PARAM, char **argv)
170 alarm_time += sys_time - rtc_time; 170 alarm_time += sys_time - rtc_time;
171 } else 171 } else
172 alarm_time = rtc_time + seconds + 1; 172 alarm_time = rtc_time + seconds + 1;
173 setup_alarm(fd, &alarm_time); 173 setup_alarm(fd, &alarm_time, rtc_time);
174 174
175 sync(); 175 sync();
176 printf("wakeup from \"%s\" at %s", suspend, ctime(&alarm_time)); 176 printf("wakeup from \"%s\" at %s", suspend, ctime(&alarm_time));