All of lore.kernel.org
 help / color / mirror / Atom feed
From: "Doru Blânzeanu" <dblanzeanu@linux.microsoft.com>
To: Magnus Kulke <magnuskulke@linux.microsoft.com>
Cc: qemu-devel@nongnu.org, "Wei Liu" <liuwe@microsoft.com>,
	"Peter Maydell" <peter.maydell@linaro.org>,
	"Doru Blânzeanu" <doru.blanzeanu@microsoft.com>,
	"Magnus Kulke" <magnuskulke@microsoft.com>,
	"Paolo Bonzini" <pbonzini@redhat.com>,
	"Wei Liu" <wei.liu@kernel.org>
Subject: Re: [PATCH] accel/mshv: Fix pointer to proc feature bitfield
Date: Thu, 2 Jul 2026 16:48:35 +0300	[thread overview]
Message-ID: <akZsM5Je3Pn8OnYq@linux.microsoft.com> (raw)
In-Reply-To: <20260701130335.418156-1-magnuskulke@linux.microsoft.com>

On Wed, Jul 01, 2026 at 03:03:35PM +0200, Magnus Kulke wrote:
> Processor features are stored in a union containing two "banks":
> 
> union hv_partition_processor_features {
>     uint64_t as_uint[2];
>     struct {
>         uint64_t sse3_support:1;
>         ...
>     }
> }
> 
> get_proc_features() to retrieve the 2nd bank was passing a pointer that
> steps over the whole union (+16B) instead of picking the 2nd bank _in_
> the union. This manifests in mismatching feature bits for the 2nd bank
> and possibly other side-effects caused by writing beyond the union.
> 
> We need to step over the first bank (+8B) by using as_uint64[0/1] to
> correct this behaviour.
> 
> Fixes: 2f6da91e8a ("accel/mshv: store partition proc features")
> Signed-off-by: Magnus Kulke <magnuskulke@linux.microsoft.com>
> ---
>  accel/mshv/mshv-all.c | 4 ++--
>  1 file changed, 2 insertions(+), 2 deletions(-)
> 
> diff --git a/accel/mshv/mshv-all.c b/accel/mshv/mshv-all.c
> index 9452504ac2..c8b7f10294 100644
> --- a/accel/mshv/mshv-all.c
> +++ b/accel/mshv/mshv-all.c
> @@ -167,7 +167,7 @@ static int get_proc_features(int vm_fd,
>  
>      ret = get_partition_property(vm_fd,
>                                   HV_PARTITION_PROPERTY_PROCESSOR_FEATURES0,
> -                                 features[0].as_uint64);
> +                                 &features->as_uint64[0]);
>      if (ret < 0) {
>          error_report("Failed to get processor features bank 0");
>          return -1;
> @@ -175,7 +175,7 @@ static int get_proc_features(int vm_fd,
>  
>      ret = get_partition_property(vm_fd,
>                                   HV_PARTITION_PROPERTY_PROCESSOR_FEATURES1,
> -                                 features[1].as_uint64);
> +                                 &features->as_uint64[1]);
>      if (ret < 0) {
>          error_report("Failed to get processor features bank 1");
>          return -1;
> -- 
> 2.34.1

Reviewed-by: Doru Blânzeanu <dblanzeanu@linux.microsoft.com>


  parent reply	other threads:[~2026-07-02 13:49 UTC|newest]

Thread overview: 4+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2026-07-01 13:03 [PATCH] accel/mshv: Fix pointer to proc feature bitfield Magnus Kulke
2026-07-01 13:20 ` Peter Maydell
2026-07-02 13:48 ` Doru Blânzeanu [this message]
2026-07-06  7:25 ` Philippe Mathieu-Daudé

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=akZsM5Je3Pn8OnYq@linux.microsoft.com \
    --to=dblanzeanu@linux.microsoft.com \
    --cc=doru.blanzeanu@microsoft.com \
    --cc=liuwe@microsoft.com \
    --cc=magnuskulke@linux.microsoft.com \
    --cc=magnuskulke@microsoft.com \
    --cc=pbonzini@redhat.com \
    --cc=peter.maydell@linaro.org \
    --cc=qemu-devel@nongnu.org \
    --cc=wei.liu@kernel.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.