On Thu, Jun 02, 2016 at 06:04:37PM +0200, Greg Kurz wrote: > On Wed, 1 Jun 2016 12:33:28 +1000 > David Gibson <da...@gibson.dropbear.id.au> wrote: > > > On Tue, May 31, 2016 at 03:15:21PM +0200, Paolo Bonzini wrote: > > > > > > > > > On 31/05/2016 15:10, Greg Kurz wrote: > > > >>> > > +#if defined(TARGET_PPC64) || defined(TARGET_ARM) > > > >>> > > +#define LEGACY_VIRTIO_IS_BIENDIAN 1 > > > >>> > > +#endif > > > >> > > > > >> > These will only be correct if something else includes cpu.h. > > > >> > Instead of > > > > Unless I missed something, the TARGET_* macros come from the generated > > > > config-target.h header, which is in turn included by qemu/osdep.h and > > > > thus included by most of the code. > > > > > > You're right. Problems _could_ happen if virtio-access.h is included in > > > a file compiled without -DNEED_CPU_H (i.e. with common-obj-y instead of > > > obj-y) but include/exec/poison.h should take care of that. > > > > > > >> > defining this, you should add > > > >> > > > > >> > #include "cpu.h" > > > >> > > > > >> > at the top of include/hw/virtio-access.h and leave the definitions in > > > >> > target-*/cpu.h. > > > >> > > > > > All this bi-endian stuff is really an old-virtio-only thing... it is > > > > only to be used by virtio_access_is_big_endian(). The fact that it > > > > broke silently with your cleanup series is yet another proof that > > > > this workaround is fragile. > > > > > > It is not fragile actually. cpu.h doesn't exist in common-obj-y, so the > > > TARGET_IS_BIENDIAN define can be safely taken from cpu.h. > > > > > > Anyway because of poison.h your solution isn't fragile either, so > > > > > > Reviewed-by: Paolo Bonzini <pbonz...@redhat.com> > > > > Should I take this through my tree? > > > > That would be great !
Actually, that was a question for Paolo.. -- David Gibson | I'll have my music baroque, and my code david AT gibson.dropbear.id.au | minimalist, thank you. NOT _the_ _other_ | _way_ _around_! http://www.ozlabs.org/~dgibson
signature.asc
Description: PGP signature