27 lines
1.0 KiB
Diff
27 lines
1.0 KiB
Diff
#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, ¤t_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");
|