qemu-devel
[Top][All Lists]
Advanced

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

Re: [Qemu-devel] [PATCH v2 2a/6] x86: Allow multiple cpu feature matches


From: Glauber Costa
Subject: Re: [Qemu-devel] [PATCH v2 2a/6] x86: Allow multiple cpu feature matches of lookup_feature
Date: Wed, 27 Apr 2011 15:38:03 -0300

On Tue, 2011-04-19 at 13:06 +0200, Jan Kiszka wrote:
> kvmclock is represented by two feature bits. Therefore, lookup_feature
> needs to continue its search even after the first match. Enhance it
> accordingly and switch to a bool return type at this chance.
> 
> Signed-off-by: Jan Kiszka <address@hidden>
> ---
>  target-i386/cpuid.c |   14 ++++++++------
>  1 files changed, 8 insertions(+), 6 deletions(-)
> 
> Glauber, could you check/ack this? Marcelo, please respin the series
> afterward. I'd like to see all bits upstream and merged back into
> qemu-kvm to proceed with switching the latter to upstream's kvm
> infrastructure.

Yes, this patch is okay.

Actually, I did sent out something like this, maybe Marcelo applied only
part of the series?

Anyway, Jan's version is handy, please apply it.

> diff --git a/target-i386/cpuid.c b/target-i386/cpuid.c
> index 814d13e..0ac592f 100644
> --- a/target-i386/cpuid.c
> +++ b/target-i386/cpuid.c
> @@ -182,20 +182,22 @@ static int altcmp(const char *s, const char *e, const 
> char *altstr)
>  }
>  
>  /* search featureset for flag *[s..e), if found set corresponding bit in
> - * *pval and return success, otherwise return zero
> + * *pval and return true, otherwise return false
>   */
> -static int lookup_feature(uint32_t *pval, const char *s, const char *e,
> -    const char **featureset)
> +static bool lookup_feature(uint32_t *pval, const char *s, const char *e,
> +                           const char **featureset)
>  {
>      uint32_t mask;
>      const char **ppc;
> +    bool found = false;
>  
> -    for (mask = 1, ppc = featureset; mask; mask <<= 1, ++ppc)
> +    for (mask = 1, ppc = featureset; mask; mask <<= 1, ++ppc) {
>          if (*ppc && !altcmp(s, e, *ppc)) {
>              *pval |= mask;
> -            break;
> +            found = true;
>          }
> -    return (mask ? 1 : 0);
> +    }
> +    return found;
>  }
>  
>  static void add_flagname_to_bitmaps(const char *flagname, uint32_t *features,





reply via email to

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