aboutsummaryrefslogtreecommitdiffstats
path: root/packages/qemu/qemu-0.9.1/04_do_not_print_rtc_freq_if_ok.patch
blob: 31c9da491d3840c1885b19ea498acf96e75a4c2a (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
#DPATCHLEVEL=1
---
# vl.c |    5 ++++-
# 1 file changed, 4 insertions(+), 1 deletion(-)
#
Index: qemu/vl.c
===================================================================
--- qemu.orig/vl.c	2007-12-03 15:44:35.000000000 +0000
+++ qemu/vl.c	2007-12-03 15:51:03.000000000 +0000
@@ -1289,12 +1289,15 @@ static void hpet_stop_timer(struct qemu_
 
 static int rtc_start_timer(struct qemu_alarm_timer *t)
 {
+    unsigned long current_rtc_freq = 0;
     int rtc_fd;
 
     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");