[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] [Xen-changelog] Fix the issue of on x86_64, rhel4 can not get into runlevel 5.
# HG changeset patch # User kaf24@xxxxxxxxxxxxxxxxxxxx # Node ID 26b961b7215378fd0356c6be73b8ff669b83945c # Parent a8ac8be1a889d633e5d65e3f27a93b4726bfc9a4 Fix the issue of on x86_64, rhel4 can not get into runlevel 5. Xserver will scan pci and the cirrus VGA driver will register mmio each time, cause mmio array out of space. Signed-off-by: Xiaofeng Ling <xiaofeng.ling@xxxxxxxxx> diff -r a8ac8be1a889 -r 26b961b72153 tools/ioemu/exec.c --- a/tools/ioemu/exec.c Fri Nov 25 08:15:08 2005 +++ b/tools/ioemu/exec.c Fri Nov 25 08:17:34 2005 @@ -262,13 +262,24 @@ unsigned long size, unsigned long phys_offset) { - if (mmio_cnt == MAX_MMIO) { - fprintf(logfile, "too many mmio regions\n"); - exit(-1); - } - mmio[mmio_cnt].io_index = phys_offset; - mmio[mmio_cnt].start = start_addr; - mmio[mmio_cnt++].size = size; + int i; + + for (i = 0; i < mmio_cnt; i++) { + if(mmio[i].start == start_addr) { + mmio[i].io_index = phys_offset; + mmio[i].size = size; + return; + } + } + + if (mmio_cnt == MAX_MMIO) { + fprintf(logfile, "too many mmio regions\n"); + exit(-1); + } + + mmio[mmio_cnt].io_index = phys_offset; + mmio[mmio_cnt].start = start_addr; + mmio[mmio_cnt++].size = size; } /* mem_read and mem_write are arrays of functions containing the _______________________________________________ Xen-changelog mailing list Xen-changelog@xxxxxxxxxxxxxxxxxxx http://lists.xensource.com/xen-changelog
|
Lists.xenproject.org is hosted with RackSpace, monitoring our |