]> xenbits.xensource.com Git - qemu-xen-unstable.git/commitdiff
Do not set RTC frequency if already set (Aurelien Jarno).
authorbalrog <balrog@c046a42c-6fe2-441c-8c8c-71466251a162>
Sun, 3 Feb 2008 03:45:47 +0000 (03:45 +0000)
committerbalrog <balrog@c046a42c-6fe2-441c-8c8c-71466251a162>
Sun, 3 Feb 2008 03:45:47 +0000 (03:45 +0000)
git-svn-id: svn://svn.savannah.nongnu.org/qemu/trunk@3954 c046a42c-6fe2-441c-8c8c-71466251a162

vl.c

diff --git a/vl.c b/vl.c
index 3ad3625b628c08f8598fc82075df18c1dc0346f9..deff1496ef69e75401b0bf8d2c502ff98249e777 100644 (file)
--- a/vl.c
+++ b/vl.c
@@ -1305,11 +1305,14 @@ static void hpet_stop_timer(struct qemu_alarm_timer *t)
 static int rtc_start_timer(struct qemu_alarm_timer *t)
 {
     int rtc_fd;
+    unsigned long current_rtc_freq = 0;
 
     TFR(rtc_fd = open("/dev/rtc", O_RDONLY));
     if (rtc_fd < 0)
         return -1;
-    if (ioctl(rtc_fd, RTC_IRQP_SET, RTC_FREQ) < 0) {
+    ioctl(rtc_fd, RTC_IRQP_READ, &current_rtc_freq);
+    if (current_rtc_freq != RTC_FREQ &&
+        ioctl(rtc_fd, RTC_IRQP_SET, RTC_FREQ) < 0) {
         fprintf(stderr, "Could not configure '/dev/rtc' to have a 1024 Hz timer. This is not a fatal\n"
                 "error, but for better emulation accuracy either use a 2.6 host Linux kernel or\n"
                 "type 'echo 1024 > /proc/sys/dev/rtc/max-user-freq' as root.\n");