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: Jan Kiszka
Subject: Re: [Qemu-devel] [PATCH 2/2] vga: Fix portio list conversion fallouts
Date: Sun, 18 Sep 2011 21:07:40 +0200
User-agent: Mozilla/5.0 (X11; U; Linux i686 (x86_64); de; rv:1.8.1.12) Gecko/20080226 SUSE/2.0.0.12-1.1 Thunderbird/2.0.0.12 Mnenhy/0.7.5.666

On 2011-09-18 18:51, Avi Kivity wrote:
> 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.

Yes, two ABIs, and the only difference is the offset of the data register.

> 
>> >
>> >>        { 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?

Did anyone check that something useful or at least valid comes out of
the handlers when doing this so far impossible access?

Jan

Attachment: signature.asc
Description: OpenPGP digital signature


reply via email to

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