set_rtc_mmss: show warning message only once
Stephen Hemminger [Thu, 13 Jan 2011 00:59:31 +0000 (16:59 -0800)]
Occasionally the system gets into a state where the CMOS clock has gotten
slightly ahead of current time and the periodic update of RTC fails.  The
message is a nuisance and repeats spamming the log.

  See: http://www.ntp.org/ntpfaq/NTP-s-trbl-spec.htm#Q-LINUX-SET-RTC-MMSS

Rather than just removing the message, make it show only once and reduce
severity since it indicates a normal and non urgent condition.

Signed-off-by: Stephen Hemminger <shemminger@vyatta.com>
Cc: Richard Henderson <rth@twiddle.net>
Cc: Ivan Kokshaysky <ink@jurassic.park.msu.ru>
Cc: Matt Turner <mattst88@gmail.com>
Cc: Ralf Baechle <ralf@linux-mips.org>
Cc: David Howells <dhowells@redhat.com>
Cc: Paul Mundt <lethal@linux-sh.org>
Cc: Ingo Molnar <mingo@elte.hu>
Cc: "H. Peter Anvin" <hpa@zytor.com>
Cc: Thomas Gleixner <tglx@linutronix.de>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>

arch/alpha/kernel/time.c
arch/cris/kernel/time.c
arch/mips/dec/time.c
arch/mips/include/asm/mc146818-time.h
arch/mn10300/kernel/rtc.c
arch/sh/boards/mach-sh03/rtc.c
arch/x86/kernel/rtc.c

index 0f1d849..c1f3e7c 100644 (file)
@@ -506,7 +506,7 @@ set_rtc_mmss(unsigned long nowtime)
                CMOS_WRITE(real_seconds,RTC_SECONDS);
                CMOS_WRITE(real_minutes,RTC_MINUTES);
        } else {
-               printk(KERN_WARNING
+               printk_once(KERN_NOTICE
                       "set_rtc_mmss: can't update from %d to %d\n",
                       cmos_minutes, real_minutes);
                retval = -1;
index b509643..4e73092 100644 (file)
@@ -86,7 +86,7 @@ int set_rtc_mmss(unsigned long nowtime)
                CMOS_WRITE(real_seconds,RTC_SECONDS);
                CMOS_WRITE(real_minutes,RTC_MINUTES);
        } else {
-               printk(KERN_WARNING
+               printk_once(KERN_NOTICE
                       "set_rtc_mmss: can't update from %d to %d\n",
                       cmos_minutes, real_minutes);
                retval = -1;
index 02f505f..ea57f39 100644 (file)
@@ -104,7 +104,7 @@ int rtc_mips_set_mmss(unsigned long nowtime)
                CMOS_WRITE(real_seconds, RTC_SECONDS);
                CMOS_WRITE(real_minutes, RTC_MINUTES);
        } else {
-               printk(KERN_WARNING
+               printk_once(KERN_NOTICE
                       "set_rtc_mmss: can't update from %d to %d\n",
                       cmos_minutes, real_minutes);
                retval = -1;
index 199b457..4a08dbe 100644 (file)
@@ -66,7 +66,7 @@ static inline int mc146818_set_rtc_mmss(unsigned long nowtime)
                CMOS_WRITE(real_seconds, RTC_SECONDS);
                CMOS_WRITE(real_minutes, RTC_MINUTES);
        } else {
-               printk(KERN_WARNING
+               printk_once(KERN_NOTICE
                       "set_rtc_mmss: can't update from %d to %d\n",
                       cmos_minutes, real_minutes);
                retval = -1;
index e9e20f9..48d7058 100644 (file)
@@ -89,7 +89,7 @@ static int set_rtc_mmss(unsigned long nowtime)
                CMOS_WRITE(real_seconds, RTC_SECONDS);
                CMOS_WRITE(real_minutes, RTC_MINUTES);
        } else {
-               printk(KERN_WARNING
+               printk_once(KERN_NOTICE
                       "set_rtc_mmss: can't update from %d to %d\n",
                       cmos_minutes, real_minutes);
                retval = -1;
index 1b20099..f83ac79 100644 (file)
@@ -108,7 +108,7 @@ static int set_rtc_mmss(unsigned long nowtime)
                __raw_writeb(real_minutes % 10, RTC_MIN1);
                __raw_writeb(real_minutes / 10, RTC_MIN10);
        } else {
-               printk(KERN_WARNING
+               printk_once(KERN_NOTICE
                       "set_rtc_mmss: can't update from %d to %d\n",
                       cmos_minutes, real_minutes);
                retval = -1;
index 1cfbbfc..6f39cab 100644 (file)
@@ -76,7 +76,7 @@ int mach_set_rtc_mmss(unsigned long nowtime)
                CMOS_WRITE(real_seconds, RTC_SECONDS);
                CMOS_WRITE(real_minutes, RTC_MINUTES);
        } else {
-               printk(KERN_WARNING
+               printk_once(KERN_NOTICE
                       "set_rtc_mmss: can't update from %d to %d\n",
                       cmos_minutes, real_minutes);
                retval = -1;