Commit b5a23ad40c38ab6f5d496c1b0fbd92c460e36efa
1 parent
c717d8bf
Do not set RTC frequency if already set (Aurelien Jarno).
git-svn-id: svn://svn.savannah.nongnu.org/qemu/trunk@3954 c046a42c-6fe2-441c-8c8c-71466251a162
Showing
1 changed file
with
4 additions
and
1 deletions
vl.c
... | ... | @@ -1305,11 +1305,14 @@ static void hpet_stop_timer(struct qemu_alarm_timer *t) |
1305 | 1305 | static int rtc_start_timer(struct qemu_alarm_timer *t) |
1306 | 1306 | { |
1307 | 1307 | int rtc_fd; |
1308 | + unsigned long current_rtc_freq = 0; | |
1308 | 1309 | |
1309 | 1310 | TFR(rtc_fd = open("/dev/rtc", O_RDONLY)); |
1310 | 1311 | if (rtc_fd < 0) |
1311 | 1312 | return -1; |
1312 | - if (ioctl(rtc_fd, RTC_IRQP_SET, RTC_FREQ) < 0) { | |
1313 | + ioctl(rtc_fd, RTC_IRQP_READ, ¤t_rtc_freq); | |
1314 | + if (current_rtc_freq != RTC_FREQ && | |
1315 | + ioctl(rtc_fd, RTC_IRQP_SET, RTC_FREQ) < 0) { | |
1313 | 1316 | fprintf(stderr, "Could not configure '/dev/rtc' to have a 1024 Hz timer. This is not a fatal\n" |
1314 | 1317 | "error, but for better emulation accuracy either use a 2.6 host Linux kernel or\n" |
1315 | 1318 | "type 'echo 1024 > /proc/sys/dev/rtc/max-user-freq' as root.\n"); | ... | ... |