From: JWP Date: Thu, 8 Jan 2015 04:15:39 +0000 (-0500) Subject: hwclock: Incorrect UTC defaults X-Git-Tag: v2.26-rc1~56 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=bf6199673bbca046ceed59002004eb1c1aebaca1;p=thirdparty%2Futil-linux.git hwclock: Incorrect UTC defaults Hwclock's default timescale was changed to UTC in: commit 7894bf0f08740f75610990a2ba76af7a7cbce61e Date: Mon Feb 21 13:27:07 2011 +0000 This change was incomplete. With no /etc/adjtime file the current behavior is: hwclock --utc --adjust #Creates a UTC file. hwclock --localtime --adjust #File is not created. That is the opposite of what UTC default should do. With this patch the behavior is: hwclock --utc --adjust #File is not created. hwclock --localtime --adjust #Creates a LOCAL file. 'Creates a xxxx file' means: An /etc/adjtime file is created with zero for all parameters except the Hardware Clock's timescale field, which is set to the value indicated by xxxx. The second item missed in the patch was a test in the save_adjtime() function that defaults to LOCAL. Theoretically we cannot get to the save function without having a value set for adjtime.local_utc, but the test is there so it needs be correct. Signed-off-by: J William Piggott --- diff --git a/sys-utils/hwclock.c b/sys-utils/hwclock.c index c236b03bf3..a376516ff2 100644 --- a/sys-utils/hwclock.c +++ b/sys-utils/hwclock.c @@ -272,7 +272,7 @@ static int read_adjtime(struct adjtime *adjtime_p) adjtime_p->last_adj_time = 0; adjtime_p->not_adjusted = 0; adjtime_p->last_calib_time = 0; - adjtime_p->local_utc = UNKNOWN; + adjtime_p->local_utc = UTC; adjtime_p->dirty = FALSE; /* don't create a zero adjfile */ return 0; @@ -1135,7 +1135,7 @@ static void save_adjtime(const struct adjtime adjtime, const bool testing) (long)adjtime.last_adj_time, adjtime.not_adjusted, (long)adjtime.last_calib_time, - (adjtime.local_utc == UTC) ? "UTC" : "LOCAL"); + (adjtime.local_utc == LOCAL) ? "LOCAL" : "UTC"); if (testing) { printf(_