summaryrefslogtreecommitdiff
path: root/arch/sparc
diff options
context:
space:
mode:
authorDavid S. Miller <davem@davemloft.net>2008-09-11 00:36:13 +0400
committerDavid S. Miller <davem@davemloft.net>2008-09-11 00:36:13 +0400
commitab138c031f72f6d030afa1a06a3a537e85ae843e (patch)
tree96dbd2725e1f9cc11ed5f4639c257744dfae090f /arch/sparc
parent90158d84eb20fa15e3c8010b570f3ea2c925121d (diff)
downloadlinux-ab138c031f72f6d030afa1a06a3a537e85ae843e.tar.xz
sparc32: Need to close openned RTC device just like sparc64.
Otherwise we get refcount problems. Signed-off-by: David S. Miller <davem@davemloft.net>
Diffstat (limited to 'arch/sparc')
-rw-r--r--arch/sparc/kernel/time.c9
1 files changed, 6 insertions, 3 deletions
diff --git a/arch/sparc/kernel/time.c b/arch/sparc/kernel/time.c
index 698c45059fa5..fa54d585f558 100644
--- a/arch/sparc/kernel/time.c
+++ b/arch/sparc/kernel/time.c
@@ -337,9 +337,12 @@ static int sbus_do_settimeofday(struct timespec *tv)
static int set_rtc_mmss(unsigned long secs)
{
struct rtc_device *rtc = rtc_class_open("rtc0");
+ int err = -1;
- if (rtc)
- return rtc_set_mmss(rtc, secs);
+ if (rtc) {
+ err = rtc_set_mmss(rtc, secs);
+ rtc_class_close(rtc);
+ }
- return -1;
+ return err;
}