On 11.01.2012, at 01:07, Anthony Liguori wrote: > On 01/10/2012 06:07 PM, Alexander Graf wrote: >> From: Benjamin Herrenschmidt<b...@kernel.crashing.org> >> >> The virtio config area in PIO space is a bit special. The initial >> header is little endian but the rest (device specific) is guest >> native endian. >> >> The PIO accessors for PCI on machines that don't have native IO ports >> assume that all PIO is little endian, which works fine for everything >> except the above. >> >> A complicated way to fix it would be to split the BAR into two memory >> regions with different endianess settings, but this isn't practical >> to do, besides, the PIO code doesn't honor region endianness anyway >> (I have a patch for that too but it isn't necessary at this stage). >> >> So I decided to go for the quick fix instead which consists of >> reverting the swap in virtio-pci in selected places, hoping that when >> we eventually do a "v2" of the virtio protocols, we sort that out once >> and for all using a fixed endian setting for everything. >> >> Unfortunately, that mean moving virtio-pci from Makefile.objs to >> Makefile.target so we can use TARGET_WORDS_BIGENDIAN which would >> otherwise be poisoned. >> >> Signed-off-by: Benjamin Herrenschmidt<b...@kernel.crashing.org> >> Signed-off-by: Alexander Graf<ag...@suse.de> >> [agraf: keep virtio in libhw and determine endianness through a >> helper function in exec.c] > > Both: > > Reviewed-by: Anthony Liguori <aligu...@us.ibm.com>
Cool :). Queued up in ppc-next. Alex