qemu-devel
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [Qemu-devel] [PATCH 2/2] vga: Fix portio list conversion fallouts


From: Avi Kivity
Subject: Re: [Qemu-devel] [PATCH 2/2] vga: Fix portio list conversion fallouts
Date: Sun, 18 Sep 2011 19:51:46 +0300
User-agent: Mozilla/5.0 (X11; Linux x86_64; rv:6.0.2) Gecko/20110906 Thunderbird/6.0.2

On 09/18/2011 07:28 PM, Jan Kiszka wrote:
On 2011-09-18 17:51, Avi Kivity wrote:
>  On 09/18/2011 03:44 PM, Jan Kiszka wrote:
>>  From: Jan Kiszka<address@hidden>
>>
>>  Fix copy&paste errors and reduce duplications of the BOCHS VBE ranges.
>>
>>  Signed-off-by: Jan Kiszka<address@hidden>
>>  ---
>>
>>    #ifdef CONFIG_BOCHS_VBE
>>    static const MemoryRegionPortio vbe_portio_list[] = {
>>  -# ifdef TARGET_I386
>>        { 0, 1, 2, .read = vbe_ioport_read_index, .write =
>>  vbe_ioport_write_index },
>>  +# ifdef TARGET_I386
>
>  Strange how the card knows what target it's plugged into.  Fixing this
>  is going to involve major pain - need to update the bios and need to
>  provide backwards compatibility.  All this assuming guests don't
>  hardcode the address.
>
>  Anyway I find the deduplication makes the code harder to read.

That line is rather tricky to deduplicate in mind. So it's not nice for
our readers keeping it duplicated around.

I don't think it should be deduplicated. The device is providing two separate ABIs.

>
>>        { 1, 1, 2, .read = vbe_ioport_read_data, .write =
>>  vbe_ioport_write_data },
>>    # else
>>  -    { 0, 2, 2, .read = vbe_ioport_read_index, .write =
>>  vbe_ioport_write_index },
>>  -    { 2, 2, 2, .read = vbe_ioport_read_data, .write =
>>  vbe_ioport_write_data },
>>  +    { 2, 1, 2, .read = vbe_ioport_read_data, .write =
>>  vbe_ioport_write_data },
>
>  Is this correct?  length 1 region with size 2?

Yes, it prevents accesses on base+1.


Why disallow it?

For the general case or a 2-byte access near the end of a region, we need to provide a general fix.

--
error compiling committee.c: too many arguments to function




reply via email to

[Prev in Thread] Current Thread [Next in Thread]