qemu-devel
[Top][All Lists]
Advanced

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

Re: [Qemu-devel] [PATCH] ioport: remove LITTLE_ENDIAN mark for portio


From: Alexander Graf
Subject: Re: [Qemu-devel] [PATCH] ioport: remove LITTLE_ENDIAN mark for portio
Date: Fri, 12 Jul 2013 22:34:58 +0200

On 12.07.2013, at 22:30, Anthony Liguori wrote:

> Setting it to LE forces a byte swap when host != guest endian but
> this makes no sense at all.
> 
> Herve made the suggestion upon observing that word writes/reads
> were broken into byte writes/reads in such a way as to assume
> devices are interpret registers as LE.
> 
> However, even if this were a problem, marking the region as LE is
> not useful because what's essentially happening here is that LE is
> open coded.  So by marking it LE in MemoryRegionOps, we're doing a
> superflous swap.
> 
> Now, the portio code is suspicious to begin with.  The dispatch
> layer really has no purpose in splitting I/O requests in the first
> place...
> 
> Cc: Hervé Poussineau <address@hidden>
> Cc: Alex Graf <address@hidden>
> Cc: Benjamin Herrenschmidt <address@hidden>
> Signed-off-by: Anthony Liguori <address@hidden>

Acked-by: Alexander Graf <address@hidden>

Let's take a look at the PReP breakage with a test case after we fixed everyone 
else again.


Alex

> ---
> ioport.c | 1 -
> 1 file changed, 1 deletion(-)
> 
> diff --git a/ioport.c b/ioport.c
> index 79b7f1a..89b17d6 100644
> --- a/ioport.c
> +++ b/ioport.c
> @@ -183,7 +183,6 @@ static void portio_write(void *opaque, hwaddr addr, 
> uint64_t data,
> static const MemoryRegionOps portio_ops = {
>     .read = portio_read,
>     .write = portio_write,
> -    .endianness = DEVICE_LITTLE_ENDIAN,
>     .valid.unaligned = true,
>     .impl.unaligned = true,
> };
> -- 
> 1.8.0
> 




reply via email to

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