qemu-ppc
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [Qemu-ppc] [PATCH v2] linux-user: ppc64: fix ARCH_206 bit in AT_HWCA


From: David Gibson
Subject: Re: [Qemu-ppc] [PATCH v2] linux-user: ppc64: fix ARCH_206 bit in AT_HWCAP
Date: Wed, 21 Sep 2016 20:15:23 +1000
User-agent: Mutt/1.7.0 (2016-08-17)

On Wed, Sep 21, 2016 at 11:57:05AM +0200, Michael Walle wrote:
> Only the POWER[789] CPUs should have the ARCH_206 bit set. This is what the
> linux kernel does. I guess this was also the intention of commit 0e019746.
> We have to make sure all *206 bits are set.
> 
> Before this patch, the flags check in the GET_FEATURES2 macro returned true
> if _any_ bit was set. This worked well as long as there was only one bit
> set in the 'flag' parameter. But as explained before, we have to make sure
> all bits in the 'flag' parameter are set.
> 
> Signed-off-by: Michael Walle <address@hidden>

Applied to ppc-for-2.8, thanks.

> ---
> v2:
>   - rename flag to flags
>   - use normal indent style in macro (also makes checkpatch.pl happy ;)
>   - add explanation in commit message
> 
>  linux-user/elfload.c | 8 ++++++--
>  1 file changed, 6 insertions(+), 2 deletions(-)
> 
> diff --git a/linux-user/elfload.c b/linux-user/elfload.c
> index f807baf..515ba6c 100644
> --- a/linux-user/elfload.c
> +++ b/linux-user/elfload.c
> @@ -741,8 +741,12 @@ static uint32_t get_elf_hwcap(void)
>         Altivec/FP/SPE support.  Anything else is just a bonus.  */
>  #define GET_FEATURE(flag, feature)                                      \
>      do { if (cpu->env.insns_flags & flag) { features |= feature; } } while 
> (0)
> -#define GET_FEATURE2(flag, feature)                                      \
> -    do { if (cpu->env.insns_flags2 & flag) { features |= feature; } } while 
> (0)
> +#define GET_FEATURE2(flags, feature) \
> +    do { \
> +        if ((cpu->env.insns_flags2 & flags) == flags) { \
> +            features |= feature; \
> +        } \
> +    } while (0)
>      GET_FEATURE(PPC_64B, QEMU_PPC_FEATURE_64);
>      GET_FEATURE(PPC_FLOAT, QEMU_PPC_FEATURE_HAS_FPU);
>      GET_FEATURE(PPC_ALTIVEC, QEMU_PPC_FEATURE_HAS_ALTIVEC);

-- 
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

Attachment: signature.asc
Description: PGP signature


reply via email to

[Prev in Thread] Current Thread [Next in Thread]