#DPATCHLEVEL=1
---
# vl.c |    6 +++++-
# 1 file changed, 5 insertions(+), 1 deletion(-)
#
Index: qemu/vl.c
===================================================================
--- qemu.orig/vl.c	2007-06-13 11:51:53.000000000 +0100
+++ qemu/vl.c	2007-06-13 11:52:19.000000000 +0100
@@ -1026,10 +1026,14 @@ static int rtc_fd;
 
 static int start_rtc_timer(void)
 {
+    unsigned long current_rtc_freq = 0;
+
     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");
