]> err.no Git - util-linux/commitdiff
hwclock: check for ENODEV
authorDavid Woodhouse <dwmw2@infradead.org>
Tue, 4 Dec 2007 13:44:05 +0000 (14:44 +0100)
committerKarel Zak <kzak@redhat.com>
Wed, 5 Dec 2007 10:43:57 +0000 (11:43 +0100)
/sbin/hwclock is supposed to fall back to using /dev/rtc0 if /dev/rtc isn't
working (which it isn't, because mkinitrd creates it with the old device
numbers, and we're switching to the new RTC_CLASS driver).

Unfortunately, it'll only cope if the error it gets is ENOENT (i.e. the device
node doesn't exist). It doesn't fall back to the next device in the list if the
error is ENODEV, which is what happens when the device node exists, but there's
no driver.

Signed-off-by: David Woodhouse <dwmw2@infradead.org>
Signed-off-by: Karel Zak <kzak@redhat.com>
hwclock/rtc.c

index 724daf99e3fa79b60a0d04c08ab2110bdd4043ba..46a5b5258137cc32aa4d651d73c348534b9dda25 100644 (file)
@@ -113,7 +113,7 @@ open_rtc(void) {
        for (p=fls; *p; ++p) {
                int fd = open(*p, O_RDONLY);
 
-               if (fd < 0 && errno == ENOENT)
+               if (fd < 0 && (errno == ENOENT || errno == ENODEV))
                        continue;
                rtc_dev_name = *p;
                return fd;