[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [Qemu-devel] [PATCH] virtio: move bi-endian target support to a sing
From: |
David Gibson |
Subject: |
Re: [Qemu-devel] [PATCH] virtio: move bi-endian target support to a single location |
Date: |
Wed, 1 Jun 2016 12:33:28 +1000 |
User-agent: |
Mutt/1.6.1 (2016-04-27) |
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 <address@hidden>
Should I take this through my tree?
--
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