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