On 30.06.14 19:28, Alex Williamson wrote:
> From: Alexey Kardashevskiy <a...@ozlabs.ru>
> 
> Slow BAR access path is used when VFIO fails to mmap() BAR.
> Since this is just a transport between the guest and a device, there is
> no need to do endianness swapping.
> 
> This changes BARs to use native endianness. Since non-ROM BARs were
> doing byte swapping, we need to remove it so does the patch.
> As the result, this eliminates cancelling byte swaps and there is
> no change in behavior for non-ROM BARs.
> 
> ROM BARs were declared little endian too but byte swapping was not
> implemented for them so they never actually worked on big endian systems
> as there was no cancelling byte swap. This fixes endiannes for ROM BARs
> by declaring them native endian and only fixing access sizes as it is
> done for non-ROM BARs.
> 
> Signed-off-by: Alexey Kardashevskiy <a...@ozlabs.ru>
> Signed-off-by: Alex Williamson <alex.william...@redhat.com>

This patch is semantically wrong. We now assume that target endian ==
host endian.

Instead, the correct fix would have been to introduce the le read/write
accessors to ROM regions as well.


Alex

Reply via email to