[systemd-commits] rules/50-udev-default.rules src/shared

Kay Sievers kay at kemper.freedesktop.org
Wed Apr 24 10:23:34 PDT 2013


 rules/50-udev-default.rules |    3 ---
 src/shared/hwclock.c        |   17 ++++++++---------
 2 files changed, 8 insertions(+), 12 deletions(-)

New commits:
commit 2b3c81b02fa5dd47b19558c7684e113f36a48486
Author: Kay Sievers <kay at vrfy.org>
Date:   Wed Apr 24 19:12:44 2013 +0200

    do not create /dev/rtc symlink, let systemd search for it if needed
    
    The export of the RTCs hctosys flag is uneccesary, the kernel takes care
    of the persistemt clock management itself, without any need for:
      CONFIG_RTC_HCTOSYS=y
      CONFIG_RTC_HCTOSYS_DEVICE="rtc0"
    
    "Chaotic hardware platforms" without native kernel persistent clock
    support will find the proper RTC with the logic rtc_open() without
    the need for a custom symlink.

diff --git a/rules/50-udev-default.rules b/rules/50-udev-default.rules
index 1790652..234dc3b 100644
--- a/rules/50-udev-default.rules
+++ b/rules/50-udev-default.rules
@@ -1,6 +1,5 @@
 # do not edit this file, it will be overwritten on update
 
-SUBSYSTEM=="rtc", ATTR{hctosys}=="1", SYMLINK+="rtc"
 SUBSYSTEM=="virtio-ports", KERNEL=="vport*", ATTR{name}=="?*", SYMLINK+="virtio-ports/$attr{name}"
 
 SUBSYSTEM=="usb", ENV{DEVTYPE}=="usb_device", IMPORT{builtin}="usb_id", IMPORT{builtin}="hwdb --subsystem=usb"
@@ -15,8 +14,6 @@ SUBSYSTEM=="tty", KERNEL=="tty[0-9]*", GROUP="tty", MODE="0620"
 SUBSYSTEM=="vc", KERNEL=="vcs*|vcsa*", GROUP="tty"
 KERNEL=="tty[A-Z]*[0-9]|pppox[0-9]*|ircomm[0-9]*|noz[0-9]*|rfcomm[0-9]*", GROUP="dialout"
 
-SUBSYSTEM=="rtc", ATTR{hctosys}=="1", MODE="0644"
-
 SUBSYSTEM=="mem", KERNEL=="mem|kmem|port", GROUP="kmem", MODE="0640"
 
 SUBSYSTEM=="input", KERNEL=="mouse*|mice|event*", MODE="0640"
diff --git a/src/shared/hwclock.c b/src/shared/hwclock.c
index a3b33ed..837f51f 100644
--- a/src/shared/hwclock.c
+++ b/src/shared/hwclock.c
@@ -47,15 +47,14 @@ static int rtc_open(int flags) {
         int fd;
         DIR *d;
 
-        /* First, we try to make use of the /dev/rtc symlink. If that
-         * doesn't exist, we open the first RTC which has hctosys=1
-         * set. If we don't find any we just take the first RTC that
-         * exists at all. */
-
-        fd = open("/dev/rtc", flags);
-        if (fd >= 0)
-                return fd;
-
+        /*
+         * Some "chaotic platforms" have multiple RTCs and we need to
+         * find the "system RTC", which is in some setups /dev/rtc1.
+         *
+         * First, we try to find the RTC which has hctosys=1 set. If we
+         * don't find any we just take the first RTC that exists at all,
+         * then try to open /dev/rtc0.
+         */
         d = opendir("/sys/class/rtc");
         if (!d)
                 goto fallback;



More information about the systemd-commits mailing list