From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from eggs.gnu.org ([140.186.70.92]:57241) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1QxhF1-0001HB-Qf for qemu-devel@nongnu.org; Sun, 28 Aug 2011 11:25:44 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1QxhF0-0003R5-Fn for qemu-devel@nongnu.org; Sun, 28 Aug 2011 11:25:43 -0400 Received: from mx1.redhat.com ([209.132.183.28]:55273) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1QxhF0-0003Qx-8f for qemu-devel@nongnu.org; Sun, 28 Aug 2011 11:25:42 -0400 Message-ID: <4E5A5DF2.1010503@redhat.com> Date: Sun, 28 Aug 2011 18:25:38 +0300 From: Avi Kivity MIME-Version: 1.0 References: <1313015300-23920-1-git-send-email-rth@twiddle.net> <1313015300-23920-8-git-send-email-rth@twiddle.net> In-Reply-To: <1313015300-23920-8-git-send-email-rth@twiddle.net> Content-Type: text/plain; charset=ISO-8859-1; format=flowed Content-Transfer-Encoding: 7bit Subject: Re: [Qemu-devel] [PATCH 07/11] i8259: Convert to MemoryRegion. List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , To: Richard Henderson Cc: qemu-devel@nongnu.org On 08/11/2011 01:28 AM, Richard Henderson wrote: > The only non-obvious part is pic_poll_read which used > "addr1>> 7" to detect whether one referred to either > the master or slave PIC. Instead, test this directly. Crashes mipsel-test from qemu.org immediately: > /* XXX: add generic master/slave system */ > static void pic_init1(int io_addr, int elcr_addr, PicState *s) > { > - register_ioport_write(io_addr, 2, 1, pic_ioport_write, s); > - register_ioport_read(io_addr, 2, 1, pic_ioport_read, s); > + memory_region_init_io(&s->base_io,&pic_base_ioport_ops, s, "pic", 2); > + memory_region_init_io(&s->elcr_io,&pic_elcr_ioport_ops, s, "elcr", 1); > + > + isa_register_ioport(NULL,&s->base_io, io_addr); > if (elcr_addr>= 0) { > - register_ioport_write(elcr_addr, 1, 1, elcr_ioport_write, s); > - register_ioport_read(elcr_addr, 1, 1, elcr_ioport_read, s); > + isa_register_ioport(NULL,&s->elcr_io, elcr_addr); > } > + > vmstate_register(NULL, io_addr,&vmstate_pic, s); > qemu_register_reset(pic_reset, s); > } #0 0x00000000005979a9 in isa_register_ioport (dev=0x0, io=0x2c19380, start=32) at /build/home/tlv/akivity/qemu/hw/isa-bus.c:113 #1 0x00000000005ae200 in pic_init1 (io_addr=32, elcr_addr=1232, s=0x2c19360) at /build/home/tlv/akivity/qemu/hw/i8259.c:508 #2 0x00000000005ae943 in i8259_init (parent_irq=0x2c19280) at /build/home/tlv/akivity/qemu/hw/i8259.c:557 #3 0x00000000005a6b36 in mips_malta_init (ram_size=, boot_device=, kernel_filename=, kernel_cmdline=0x7fff7acf17b5 "console=ttyS0 init=/bin/sh", initrd_filename=0x7fff7acf17a3 "initrd.gz", cpu_model=) at /build/home/tlv/akivity/qemu/hw/mips_malta.c:913 #4 0x000000000055d2eb in main (argc=, argv=, envp=) at /build/home/tlv/akivity/qemu/vl.c:3257 -- error compiling committee.c: too many arguments to function